博主前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住也分享一下给大家,
👉点击跳转到网站
前言: 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("周末没有时间,不好意思!");
}
以上是八种基本数据类型的介绍,供大家学习参考,如有不足之处,可在评论区指正!一起学习!