java数据类型总结

java基本数据类型就8种,记住就好了。除了这些都是引用型的了。 

java四类八种基本数据类型

第一类:整型 byte short int long 
第二类:浮点型 float double

第三类:逻辑型 boolean(它只有两个值可取true false)

第四类:字符型 char

在栈中可以直接分配内存的数据是基本数据类型。 
引用数据类型:是数据的引用在栈中,但是他的对象在堆中。 
要想学好Java必须知道各种数据的在内存中存储位置。 
对内存有了很好的了解,可以有助你分析程序。

字节:
boolean 布尔型              1/8 
byte 字节类型                1
char 字符型                  2  一个字符能存储一个中文汉字
short 短整型                 2
int 整数类型                 4
float 浮点类型(单精度)     4
long 长整形                  8
double 双精度类型(双精度)  8

java中默认的整数类型是int类型,如果要定义为float型,则要在数值后加上l或L;
默认的浮点型也是双精度浮点,如果要定义为float型,则要在数值后加上f或F。

一个字节等于8位,一个字节等于256个数,就是-128到127一共256。
kB就是kBytes 
Bytes就是“字节”的意思! 
K就是千的意思,因为计算机是通过二进制来计算,10个1正好是1024
1111111111(二进制)=1024(十进制)
1Bytes(字节)=8bit(比特) 
一个英文字母或一个阿拉伯数字就是一个字符,占用一个字节 
一个汉字就是两个字符,占用两个字节。 
一般讲大小是用Bytes,大写的“B”,讲网络速率是用bit,注意是小写的“b”。 
例:一个文件有8MBytes 
例:我下载文件的速率是256KB/s,即2Mbit,这通常就是我们宽带上网的速率。

扫描二维码关注公众号,回复: 1557813 查看本文章

基本数据类型自动转换,记住小可转大,大转小会失去精度!!!

精度由小到大自由转换,由大到小强制转换
(1)布尔型和其它基本数据类型之间不能相互转换;
(2)byte型可以转换为short、int、、long、float和double;
(3)short可转换为int、long、float和double;
(4)char可转换为int、long、float和double;

(5)int可转换为long、float和double;

(6)long可转换为float和double;

(7)float可转换为double;

Integer可以为null,int不能为null,拆箱过程可能空指针。

Byte、Short、Integer、Long、Char的装箱类范围-128<=x<128是放在常量池的。

自动装箱:Integer x = Integer.valueOf(34);

自动拆箱:int y = x.intValue();

强制转换的只是引用而不是对象。

引用类型的强制转换,转换的仅仅是引用的名义类型。
基本类型的强制转换,涉及到了数据的变化,有可能发生精度丢失的情况,那就转换不回来了。
当然基本类型转到到Object是一个自动装箱的过程,那倒是不会发生精度丢失,也可以转换回去。

==和!=比较的是引用对象的堆地址,基本数据对象的栈地址,比较只能用==和!=;

equals比较的是引用的栈地址,即内容,重写equals方法比较具体内容。

比较两个对象的实际内容使用equals,

1、String 创建的是字符串常量。(表达式创建对象,在缓冲池寻找相同值得对象,都指向同一对象。)

2、用new String() 创建的字符串不是常量,不能在编译期就确定,在堆中重新分配内存地址,栈的引用就不相同。

所以new String() 创建的字符串不放入常量池中,它们有自己的地址空间

String str1 = “ABC”;可能创建一个或者不创建对象,如果”ABC”这个字符串在java String池里不存在,会在java String池里创建一个创建一个String对象(“ABC”),然后str1指向这个内存地址,无论以后用这种方式创建多少个值为”ABC”的字符串对象,始终只有一个内存地址被分配,之后的都是String的拷贝,Java中称为“字符串驻留”,所有的字符串常量都会在编译之后自动地驻留。

String str2 = new String(“ABC”);至少创建一个对象,也可能两个。因为用到new关键字,肯定会在heap中创建一个str2的String对象,它的value是“ABC”。同时如果这个字符串再java String池里不存在,会在java池里创建这个String对象“ABC”。

猜你喜欢

转载自www.cnblogs.com/shuchen007/p/9166872.html