前言: Java数据类型分为两大类,基本数据类型,引用类型
如图所示:
下面讲解的是Java的八种基本数据类型
一、按照数据类型来分
1、整型->即整数类型
byte,short,int,long
占用存储空间
byte 一个字节=8bit
short 2个字节
int 4个字节
long 8个字节
具体如图所示:
long si=100000000000000L; //如果不加L则会显示报错,输出结果无L System.out.println(si);
(1) java中整形变量默认为int型,除非不足以表示较大的数,才会用long型
声明long型时,数字后面要加L或l
整数类型的具体细节:
代码如下:
public class IntDetail { public static void main(String[] args) { //1.java的整数常量(具体值)默认为int型,声明为long型常量须后加'l'或'L' int n1 = 1; //占四个字节 //int n2=1L; //不对 long n3 = 1L; //对 } }
以下代码,在内存中是怎么存放的,如下:
byte n1 = 3; short n2 = 3;
内存中,存放的示意图:
2、浮点类型
float,double
float 占用四个字节,声明float型时,数值后面要加“f”,或“F”
double 占用八个字节
float 指的是单精度变量,尾数可以有7位数,精确度较低。
double指的是双精度变量。尾数是float的二倍,所以常用double。
浮点类型说明:
浮点类型使用细节:
具体代码如下:
public class FloatDetail { public static void main(String[] args) { //Java 浮点类型常量(具体值)默认为double型,声明float型常量,须后加'f'或'F' //float num1=1.1; //错误 float num2 = 1.1F; //对的 double num3 = 1.1; //对的 double num4 = 1.1f; //对的 //十进制数形式:如:5.12 512.0f .512(必须有小数点) double num5 = .123; //等价0.123 System.out.println(num5); //0.123 //科学计数法形式:如:5.12e2[5.12*10的2次方] 5.12E-2[5.12/10的2次方] System.out.println(5.12e2); //512.0 System.out.println(5.12E-2); //0.0512 //通常情况下,应该使用double类型,因为它比float型更精确 double num9 = 2.1234567851; float num10 = 2.1234567851f; System.out.println(num9); //输出: 2.1234567851 System.out.println(num10); //输出: 2.1234567 //浮点数使用陷阱:2.7 和 8.1/3 比较 //看一看代码 double num11 = 2.7; double num12 = 8.1 / 3; //2.7 System.out.println(num11);//2.7 System.out.println(num12); //输出接近2.7的小数 2.6999999999999997 //得到一个重要的使用点:当我们对运算结果是小数的进行相等判断时,要小心 //应该是以两个数的差值的绝对值,在某个精度范围内判断 if (num11 == num12) { //false System.out.println("相等"); } //正确的写法 if (Math.abs(num11 - num12) < 0.000001) { System.out.println("差值非常小,到我的规定精度,认为相等..."); } System.out.println(Math.abs(num11 - num12)); //4.440892098500626E-16 //细节:如果是直接查询得到的小数,或者是直接赋值,是可以判断相等的 double num13 = 2.7; double num14 = 2.7; if (num13 == num14) { //true System.out.println("相等"); } } }
输出结果如下:
0.123 512.0 0.0512 2.1234567851 2.1234567 2.7 2.6999999999999997 差值非常小,到我的规定精度,认为相等... 4.440892098500626E-16 相等
3、字符类型
char 常用单引号放字符
char aa='a'; char aa='ab';//这个则报错,只能放一个 char ='\n' //换行符 char='\t' //制表符 相当于Tab键
字符类型的基本介绍:
代码如下:
public class Char01 { public static void main(String[] args) { char c1 = 'a'; char c2 = '\t'; char c3 = '路'; char c4 = 97;//说明:字符类型可以直接存放一个数字 System.out.println(c1); System.out.println(c2); System.out.println(c3); System.out.println(c4); //当输出c4的时候,会输出97表示的字符 =>编码的概念 } }
输出结果如下:
a 路 a
字符类型细节如下:
具体代码如下:
public class CharDetail { public static void main(String[] args) { //在java中,char的本质是一个整数,在默认输出时,是Unicode码对应的字符 //要输出对应的数字,可以(int)字符 char c1 = 97; System.out.println(c1); //a char c2 = 'a'; //输出'a' 对应的数字 System.out.println((int) c2); //97 char c3 = '路'; System.out.println((int) c3);//36335 char c4 = 36335; System.out.println(c4); //路 //char 类型是可以进行运算的,相当于一个整数,因为它都有对应的Unicode码 System.out.println('a' + 10); //107 //测试 char c5 = 'b' + 1; //98+1 =>99 System.out.println((int) c5); //99 System.out.println(c5); //99 -> 对应的字符-> 编码表ASCII(规定好的)=>c } }
输出结果如下:
a 97 36335 路 107 99 c
字符类型的本质:
面试题:
如果面试官问到ASCII码表,一共有多少个字符?
回答:
ASCII码编码表,每个字符是用一个字节表示的,一共有128个字符,实际最多可以表示256个字符,只用了128个。
Java_常用编码:
ASCII码的介绍如下:
Unicode编码的介绍如下:
UTF-8编码的介绍如下:
4、布尔类型 占用1个字节
boolean
返回的值只能为true或者false,常常在循环结构,或者条件语句中使用
boolean a=true; //表示周末有时间 if (a){ System.out.println("周末可以出去嗨皮!"); }else { System.out.println("周末没有时间,不好意思!"); }
以上是八种基本数据类型的介绍,供大家学习参考,如有不足之处,可在评论区指正!一起学习!