java自动装箱与拆箱
来源:互联网 发布:编程软件利润率 编辑:程序博客网 时间:2024/05/19 12:16
网上看了些java装箱与拆箱,根据自己理解写一些感悟,本人是菜鸟作品,大神勿进
自动拆装箱为java5以后的功能,主要作用为8种基础数据类型进行拆装箱。
例1:Integer的拆装箱
1)装箱
Integer b=1;
intb=1;
两种方式的区别,1是对象的初始化,可以有 b.method 第二种则没有方法可使用
Integer b=1;其实为 Integer b=Integer.valueOf(1);由java自动实现了装箱操作。 其实我还是没看懂,所以我看了下valueOf的源码,如下
心路历程完成,再看看String的public static Integer valueOf(int i) { if (i >= IntegerCache.low && i <= IntegerCache.high) return IntegerCache.cache[i + (-IntegerCache.low)]; return new Integer(i);}大致上说在-128~127之间,直接用缓存,否则new Integer,这倒是解决了另一个问题Integer a=100; Integer b=100; System.out.print(a==b)//trueInteger a=200; Integer b=200;System.out.print(a==b)//false(==与equals区别:==为存储位置比较,equals为值比较)其实我还是没搞懂Integer i=new Integer(1)与Integer i=Integer.valueOf(1)的区别,查了一下网上有人说valueOf效率高,哦对,valueOf在-128~127之间动用了缓存机制,不在此范围则new,果然如此。途中看了一个int 与Integer的使用示例:当需要往ArrayList,HashMap中放东西时,像int,double这种内建类型是放不进去的,因为容器都是装 object的,这是就需要这些内建类型的外覆类。2)拆箱网上说的是Integer i=100;int j=i;//相当于执行了j=i.valueOf();老实说没看懂,所以呢老老实实的查看了一下valueOf()的源码,如下/** * Returns the value of this {@code Integer} as an * {@code int}. */public int intValue() { return value;}为什么用valueOf这个方法而不用别的呢?去查api看Integer,首先既然int=Integer,那么此方法肯定是返回int型,看了一下所有方法,符合此条件的只有valueOf,再返回来看源码,就一目了然了。
2.照理,先看一段网上代码
String str1 ="abc";
String str2 ="abc";
System.out.println(str2==str1); //输出为 true
System.out.println(str2.equals(str1)); //输出为 true
String str3 =new String("abc");
String str4 =new String("abc");
System.out.println(str3==str4); //输出为 false
System.out.println(str3.equals(str4)); //输出为 true
一看很熟悉啊,java面试题常有,知其然而不知其所以然呗。大致上是 abc存放在一个位置,后面的String str2为位置指向,并非new一个新地址。
最后再抄一个例子
String d ="2";
String e ="23";
e = e.substring(0, 1);
System.out.println(e.equals(d)); //输出为 true
System.out.println(e==d); //输出为 false
http://www.cnblogs.com/danne823/archive/2011/04/22/2025332.html
- Java自动装箱与自动拆箱
- java-自动装箱与自动拆箱
- JAVA自动装箱与拆箱
- java的自动装箱与拆箱
- java自动装箱与拆箱
- Java 自动装箱与拆箱
- java 自动拆箱与装箱
- Java 自动装箱与拆箱
- Java 自动装箱与拆箱
- java 自动装箱与拆箱
- Java自动装箱与拆箱题目
- java自动装箱与拆箱
- Java 自动装箱与拆箱
- Java 自动装箱与拆箱
- java 自动装箱与拆箱
- JAVA 自动装箱与拆箱
- Java 自动装箱与拆箱
- java自动装箱与拆箱
- Linux安装配置mariadb
- 记录下用jquery实现双向绑定的
- Kafka使用ambari安装遇到的问题
- git 常用指令+git初始化常用
- String StringBuffer StringBuilder 的区别
- java自动装箱与拆箱
- 六步实现Rest风格的API
- 一个前端工程师的从业之路(01)
- Android深入浅出之Binder机制
- CAAnimation类
- AIDL
- MySql事务及隔离级别简介
- caffe基础(4):其他常用层及参数
- 第1章:zookeeper介绍