Bootstrap

Java的8种基本数据类型

博主前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住也分享一下给大家,
👉点击跳转到网站

前言: 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
36335107
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("周末没有时间,不好意思!");
        }

以上是八种基本数据类型的介绍,供大家学习参考,如有不足之处,可在评论区指正!一起学习!

;