Java基础(1)-数据类型
越努力越幸运
一.java的基本数据类型
short byte char int double float long boolean
面试官:int是多少字节?
答:4个字节。
面试官:那int在32位的jvm中是多少字节,int在64位的jvm中是多少字节?
答:回答不上来.......
正确回答:都是4个字节,就是因为这个也是java平台无关性的原因之一。
自动转换 强制转换
short s1=1; s1=s1+1;//1
short s2=1;
s2+=1;//2
对于注释1来说,在s1+1运算时自动提升为int类型,所以将int赋值给short类型会出现类型转换错误,除非加上强转。
对于注释2来说,+=是java语法的规定符,所以java编译器会对它进行特殊类型处理,可以正确编译执行。
Java的Integer和int有什么区别
int是java内置基本数据类型之一,java为每个基本类型都提供了一个封装类,Integer就是int的封装类;
int变量的默认值为0,Integer默认值为null,Integer能区分出未赋值和值为0的区别;
Integer类内部提供了一些关于操作整数的方法。
二.自动装箱与自动拆箱
Java基本类型存储在栈中,因此它们的存取速度要快于存储在堆中的对应包装类的实例对象。从Java5.0(1.5)开始,JAVA虚拟机(JavaVirtual Machine)可以完成基本类型和它们对应包装类之间的自动转换。因此我们在赋值、参数传递以及数学运算的时候像使用基本类型一样使用它们的包装类,但这并不意味着你可以通过基本类型调用它们的包装类才具有的方法。另外,所有基本类型(包括void)的包装类都使用了final修饰,因此我们无法继承它们扩展新的类,也无法重写它们的任何方法。
基本类型的优势:数据存储相对简单,运算效率比较高
包装类的优势:有的容易,比如集合的元素必须是对象类型,满足了java一切皆是对象的思想
三.int integer包装类
相互转换:
1.Integer转换成int的方法
Integer i = new Integer(10);
int k = i.intValue();
即Integer.intValue();
2.int转换成Integer
int i = 10;
Integer it = new Integer(i);
3.String转换成int的方法
String str = "10";
Integer it = new Interger(str);int i = it.intValue();
即:int i = Integer.intValue(string);
4.int转换成String
int i = 10;
(1)String s = String.valueOf(i);
(2)String s = Ingeger.toString(i);
(3)String s = "" + i;
5.String转换成Integer
String str = "10";
Integer it = Integer.valueOf(str);
6.Integer转换成String
Integer it = new Integer(10);
String str = it.toString();
7.String转换成BigDecimal
BigDecimal bd = new BigDecimal(str);