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);

注:在创建一个interger对象的时候,interger源码中规定如果数值满足一定的范围的时候,如果之前已经创建过一个相同值的数值范围的时候,就直接返回之前创建的那个就可以了,如果不是指定范围中的,就每一个创建interger对象(即使数值相同),也必须新创建一个,会浪费堆内存空间。

猜你喜欢

转载自blog.csdn.net/hezuo1181/article/details/82918669