Java基础入门
- 基本数据类型
- 整形
- 浮点类型
- 基本类型和包装类型(重点)
基本数据类型
整形
在Java中,整形的范围与运行Java代码的机器无关。
一共四种,分别为 : byte short int long
长整形后面需要跟着L后缀。
十六进制、八进制、二进制需要有前缀。
Java中没有任何无符号的整形。
浮点类型
有两种,float 和 double
正常默认用double。特别注释float的话需要加F。
double精度一般是float的两倍。
float有效位数6~7位,double有效位数15位。
浮点数不能用“==”来判断是否相等!!
基本类型和包装类型(重点)
Java 的每个基本类型都对应了一个包装类型。
比如说 int 的包装类型为 Integer,double 的包装类型为 Double。
基本类型和包装类型的区别主要有四个方面。
第一,基本类型在栈中直接存储的具体数值,而包装类型则存储的是堆中的引用。
相比较于基本类型而言,包装类型需要占用更多的内存空间。假如没有基本类型的话,对于数值这类经常使用到的数据来说,每次都要通过 new 一个包装类型就显得非常笨重。
第二,两个包装类型的值可以相同,但却不相等。
Integer chenmo = new Integer(10);
Integer wanger = new Integer(10);System.out.println(chenmo == wanger); // false
System.out.println(chenmo.equals(wanger )); // true
两个包装类型在使用==
进行判断的时候,判断的是其指向的地址是否相等。chenmo 和 wanger 两个变量使用了 new 关键字,导致它们在==
的时候输出了 false。
而 chenmo.equals(wanger)
的输出结果为 true,是因为 equals 方法内部比较的是两个 int 值是否相等。
第三,包装类型可以为 null,而基本类型不可以。包装类型可用于泛型,而基本类型不可以。
这两点我目前不太明白,等会了,再来补充。
第四,自动装箱和自动拆箱
tips:既然有基本类型和包装类型,肯定某些时候要将它们进行互相转换。
把基本类型转换成包装类型的过程叫做装箱(boxing)。
反之,把包装类型转换成基本类型的过程叫做拆箱(unboxing)。
自动装箱是通过 Integer.valueOf()
完成的;自动拆箱是通过 Integer.intValue()
完成的。
当需要进行自动装箱时,如果数字在 -128 至 127 之间时,会直接使用缓存中的对象,而不是重新创建一个对象。
// 1)基本类型和包装类型
int a = 100;
Integer b = 100;
System.out.println(a == b);// 2)两个包装类型
Integer c = 100;
Integer d = 100;
System.out.println(c == d);// 3)
c = 200;
d = 200;
System.out.println(c == d);
这三道题答案分别是 True True False
本篇文章最后致谢大佬,我把大佬的网站附在此处。感谢!!
https://mp.weixin.qq.com/s/IoXT2D8eAG8UWK4j2Gem4A