Date、Calendar(时间转换格式化)、String类、StringBuffer类、基本数据类型及包装类(各类型取值范围,拆箱、装箱,和String类型的转换,运算及运算符介绍)、数组、多维数组

         JAVA 语言具有两大数据类型:

内置数据类型(基本数据类型)
引用数据类型

八种基本类型:
一种字符类型   char(2个字节)   
一种布尔型    boolean (1个bit)   默认为false
六种数字类型(四个整数型,两个浮点型)  byte(1个字节)  short(俩个字节) int (四个字节) long(8个字节) 默认为0L float (四个字节) 默认为0.0f double (8个字节) 默认为0.0d

对应的引用数据类型分别为:

   char  ->character

   boolean -> Boolean

   byte -> Byte

   short->Short

   int -> Integer

   long -> Long

   folat ->Float

   double -> Double

所以至此引出java 装箱和拆箱的问题:

基本数据类型不是对象(也就是使用int、double、boolean等定义的变量、常量)。
基本数据类型没有可调用的方法。

注意到Integer的valueOf源代码:

public static Integer valueOf(int i) {
    if (i >= IntegerCache.low && i <= IntegerCache.high)
        return IntegerCache.cache[i + (-IntegerCache.low)];
    return new Integer(i);
}

当调用Integer的静态方法来获取新的对象的时候   如果你的赋值在这个Integer的缓存里面的话,直接指向这个值的地址就可以了,而不需要new一个对象,当不在这个区间的时候才需要new一个对象,这样的话通过Integer来保存一个IntegerCache达到降低内存开销的目的,缓存是通过一个数组(数组的每个值都是通过new的相应类型的对象来实现的)来实现的,这个查看源码就知道了。同样的,byte 和 short都是这样的,缓存大概就是在-127~128之间。


当我们创建一个Integer对象时,却可以这样:
Integer i = 100; //装箱 实际执行了 Integer i = Integer.valueOf(100);

int t = i; //拆箱,实际上执行了 int t = i.intValue();
自动拆箱(unboxing),也就是将对象中的基本数据从对象中自动取出

parse+" ";强制转换    

String StringBuffer && StringBuilder

这里看一下String与int之间的转换

int ->String 

第一种方法     String str  = i+" ";  这样会产生俩个String对象    str && “”

第二种方法     String str  = String.valueOf(i);   只产生一个str对象

String ->int

第一种方法: i=Integer.parseInt(s);//直接使用静态方法,不会产生多余的对象,但会抛出异常
第二种方法: i=Integer.valueOf(s).intValue();//Integer.valueOf(s) 相当于有可能new Integer(Integer.parseInt(s))(理由看上面valueOf的源码),也会抛异常,但会多产生一个对象.

String 类一旦初始化创建之后就不可以再次发生变化  


例如上面所示:开始String1 = "hello"

String1+=“world”;   这个时候会给world新建一个对象    然后新生成的helloworld会再次新建一个对象

一共生成了三个对象     









   



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值