JavaSE-数据类型(个人笔记,勿喷)

(三)数据类型


(1)基本数据类型


1.基本数据类型及所占字节:

​ 整型:byte:1,1个字节=8个bit(位),-128——127

​ short:2、-32768——32767。不常用

​ int:4、-2147483648——2147483647

​ long:8 解决int类型数据不足的问题 long a=200L;

​ 小数:表示数字并不精确

​ float:4(单精度浮点数,精确到6到7位)float a=200F;

​ double:8(双精度浮点数,精确到16到17位)

​ 其他:char:2 可以表示一个unicode字符,可以是中文,本质是使用0----65535整数,可以进行数学运算。

​ boolean:不定。一般一个字节,当用数组存储时就不定 (true、false)

​ 注意:

​ 在java中,整型字面常量默认为int类型,如果希望使用long类型,则添加l或L后缀。

​ 小数类型字面常量默认为double类型。如果希望使用float类型,则添加f或F后缀。

(2)引用类型:

包装类型

包装类型的缓存机制
​Java基本数据类型的包装类型的大部分都用到了缓存机制来提升性能。

​ Byte,Short,Integer,Long这4种包装类默认创建了数值[-128,127]的相应类型的缓存数据(只有Integer类型可以改上限),Character创建了数值在[0,127]范围的缓存数据,Boolean直接返回True or False。

​ Integer i1=40 这一行代码会发生装箱,也就是说这行代码等价于 Integer i1=Integer.valueOf(40) 。因此,i1 直接使用的是缓存中的对象。而Integer i2 = new Integer(40) 会直接创建新的对象。

​ 对于Integer i=?在-128至127之间的赋值,Integer对象是在IntegerCache.cache产生,会复用已有对象,这个区间的Integer值可以直接使用==进行判断,但是这个区间之外的所有数据,都会在堆上产生,并不会复用已有对象,这是一个大坑,推荐全部使用equals方法来进行判断。

(3)区别


基本数据类型:性能高。

基本数据类型和包装类型的区别:

1、包装类是对象,有方法和字段,对象的调用是通过引用对象的地址,而基本类型不是。

2、包装类型是引用的传递,基本类型是值的传递。

3、初始值不同:int的初始值位0,boolean的初始值为false;包装类型的初始值null。

4、声明的方式不同:基本类型不需要new关键字;包装类型需要new关键字创建对象分配内存空间。

5、存储位置不同:基本数据类型直接将值保存在堆中;包装类型的对象存储在堆中,通过对象的引用来调用。

6、使用的方式不同:基本数据类型直接赋值就可以;包装类型通常是在集合时使用。

(4)装箱和拆箱:


拆箱:java自动调用xxxValue(),将对象转换为基本数据类型。

装箱:将基本数据类型转换为对应的包装类型,包装类.valueOf(a)。

valueOf():用于把基本数据类型转化成封装类型。如Integer.valueOf(int对象)

xxValue():用于把封装类型转化为基本数据类型,如Integer对象.intValue()

parseXx():用于把String对象转化成基本数据类型,如Integer.parseInt(“String对象”)

toString():将封装类型转化成String类型

获取封装类的最大最小值,如:

System.out.println(Integer.MAX_VALUE);

System.out.println(Integer.MIN_VALUE);

​ new出来的对象永远不相等,也就是==比较出来的必定是false.

两个引用使用==或者!=,是用来判断两个引用是否是指向同一个对象。

对基本数据类型和引用类型的比较时,会先进行拆箱

(五)运算符


1.算术运算符:+ - * / %,注意:结果数据的取值范围。/如果两个操作数都是整数,则为整除。若其中一个操作数为小数,则为小数除。%取余,支持两个操作数为小数。双目。

2.比较运算符:> < >= <= == !=,比较运算有结果,布尔类型。双目。

3.逻辑运算符:&& 与 || 或,!非 and or not。运算结果布尔类型,并且操作数也是布尔类型。注意:短路。&&和||是双目。

4.赋值运算符:=。复合赋值运算符:+= -= *= /= %= ++ -- &= |= ~= ^=。 ++代表自增1,--代表自减1。自增自减运算符支持两种写法,前缀式和后缀式。单独作为一句时,效果完全相同。

后缀式:先取值,后运算

前缀式:先运算,后取值

5.位运算符:& | ~ ^ << >>。与运算:同为1,则为1。或运算:同为0,则为0,异或:位相同,则为0,非:0则1,1则0

6.其它运算符:a?b:c;条件运算符。a是一个布尔值,条件判断

单目运算符:逻辑非,++,--,+正号,-负号

双目运算符:

三目运算符:a?b:c

运算符的优先级:

1.单目>双目

2.小括号>算术>比较>逻辑>赋值>条件

快捷键:

ctrl + /:单行注释

ctrl + shift + /:多行注释

ctrl + z:undo,返回上一步操作

ctrl + y:删除当前行

ctrl + alt + L:格式化代码。

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值