zoukankan      html  css  js  c++  java
  • java基本数据类型及其包装类

    1.String类

       String s1 = "hello world";

       String s2 = "hello world";

       String s3 = s1 + "桔子桑";

       String s4 = s1 + "桔子桑";

       String s5 = new String("桔子桑");

       String s6 = new String("桔子桑");

       s1 == s2;            //返回true;

       s3 == s4;            //返回false;

       s5 == s6;            //返回false;

       分析:s1-s2:声明一个对象"hello world",内存中没有这个对象,于是新建;

                  指针s1指向这个对象在内存中的地址,创建s2指针时发现内存中已经有"hello world"对象,

                  于是指针直接指向这个已有的对象,所以s1和s2指向的是内存中相同的地址。

                  s3-s4:只要是使用+操作符对变量的修改,都是新建一个对象,就算这个修改后的结果可以在

                  内存中找到,也是新建一个对象。

                  s5-s6:new 一个字符,也是新建一个对象,不会考虑这个对象之前在内存中有没有。

       总结:使用操作符+和new出来的对象都是新对象,在内存中是拥有自己独立的空间的,不会和他人共享内存。

       String方法创建的对象是不可更改的,String s7 ="hello";String s7=s7+"桔子桑",先后两个s7占据了内存中的两块位置。

    2.String类方法

       其实String也是java中的一个类,作为类,它自然有它的方法,这里简要列举几种常见的:

       String str ="桔 子 桑";

       str.length();                                //字符串长度:5

       str.indexOf('桑');                        //字符“桑”的位置:4

       str.split(" ");                                //按空格拆分成字符串数组

       str.substring(1,4)                       //截取 [1,4)位的子串:" 子 "

       str.equals(" 子 ")                         //是否含有字符串" 子 ",字符串之间的比较,str是字符串," 子 "也是三个字符的字符串

       str.charAt(4)                               //索引为4位置上的字符"桑",字符之间的比较用==,str.charAt(4)=='桑',返回true

    3.StringBuilder类

       之前我们看了String类存储字符串,缺点在于String具有不可变性,当对字符串进行+操作时,会不断创建临时变量;

       StringBuilder类创建的对象是内容可变的;

       StringBuilder str1 = new StringBuilder();                                   //空的对象

       StringBuilder str2 = new StringBuilder("桔子桑");                     //存储字符串"桔子桑"

       与此相同的还有StringBuffer类,StringBuffer类是线程安全的,而StringBuilder没有实现线程安全,所以性能高,通常

       我们要创建一个可变的字符串对象,优先考虑StringBuffer类。

    4.StringBuilder类方法

       StringBuilder str3 = new StringBuilder("桔子桑");

       str3.append("java");                       //在末尾追加字符串"java";桔子桑java

       str3.insert(3,"hello");                        //在索引为3位置上添加字符串"hello";桔子桑hellojava

       String str4 = str3.toString();             //转化为String对象

     5.包装类

       我们已经知道了java里的一些数据类型,原本它们只能用来定义一个数据类型,例如:string int char double等

       其实,java还额外为每个数据类型添加了一个配套的类;

       为string添加的类名为String,当然String类内部自然就有一套相应的方法,这一点上面第二条已经列举出来了;

       相似的,int的包装类名为Integer,Integer int1=new Integer(520);double int2=int1.doubleValue();

       创建Integer包装类对象int1,并赋值520,然后调用Integer类的方法doubleValue()将int1转化为double型数据赋值给int2。

       其他数据类型也定义了这样的包装类和方法,在此就不一一赘述了。

    6.基本类型和包装类之间的转换(装箱和拆箱)

       int a = 520;

       Integer x = new Integer(a);               //手动装箱

       Integer y =  a;                                   //自动装箱

       Integer z = new Integer(2017);

       int b = z.intValue();                           //手动拆箱

       int c = z;                                           //自动拆箱

    7.基本类型和字符串之间的转换

       基本类型==>字符串

       int a = 123;

       String b = Integer.toString(a);          //基本类包装类的toString()方法

       String c = String.vauleOf(a);            //String的vauleOf()方法

       String d = a + "";                              //基本类型加上一个空字符串

       字符串==>基本类型

       String str ="88888";                         //该字符串转化的类型必须可行,你总不能把中文转化为数字吧

       int f = Integer.parseInt(str);             //基本类包装类的parseXxx()方法  

       int g = Integer.vauleOf(str);             //基本类包装类的vauleOf()方法

    8.Date类和SimpleDateFormat类

       Date date = new Date();                 //获取系统时间

       SimpleDateFormat way = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");      //定义一种时间显示样式

       way.format(date);                            //对时间使用显示样式,返回字符串(format)

       String str = "2017-10-23 12:57:58";//设置时间字符串,格式要和方法匹配

       way.parse(str);                                //对时间字符串使用显示样式,返回日期(parse)

    9.Calendar类的使用

       Calendar c = Calendar.getInstance();//实例化一个Calendar对象

       int year = c.get(Calendar.YEAR);       //获取年

       int month = c.get(Calendar.MONTH); //获取月份

       Date date = c.getTime();                     //获取时间,转化为Date对象

    10.Math类的使用

       Math类下常用的方法主要有以下几种:

       方法名                      返回值                     用途

       Math.round(a)           long                      参数a四舍五入后的整数

       Math.floor(a)             double                  参数a向下取整

       Math.ceil(a)               double                  参数a向上取整

       Math.random()          double                  返回 [0,1)之间的随机浮点数

    这一篇讲到的都是java里面一些常用的类及其方法,毋须死记,写得多了,自然就记住了。

  • 相关阅读:
    虚方法的调用是怎么实现的(单继承VS多继承)
    C++ Data Member内存布局
    删除单链表,你会吗?
    最近面试遇到的Windows相关的题目
    C# 文章导航
    移动端开发文章导航
    Vue源码阅读(一) 准备工作
    vue-router源码阅读(一) 内部探究
    Vuex源码阅读(二) store内的getters实现逻辑
    Vuex源码阅读(一) new Vuex.Store()内部探究
  • 原文地址:https://www.cnblogs.com/eco-just/p/7712758.html
Copyright © 2011-2022 走看看