Java教程

Java基础(基础篇:1:Java的基本数据类型)(成长贴)

本文主要是介绍Java基础(基础篇:1:Java的基本数据类型)(成长贴),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

一如Java深似海,从此头发是路人,预计此贴将会成为一个成长贴,旨在从头到尾将JavaSE的内容整理完善,同时希望能与各位同好共同进步,希望初学Java的小白能通过此篇获得帮助共同进步,也希望有大佬看到对有争议的地方进行指正,不足之处进行补充指教

关于JDK的安装和环境配置网上应该已经有很多视频和教程了,新手可自行查阅

这里推荐一个

JDK的下载、安装和环境配置教程(2021年,win10)_Marvin_996_ICU的博客-CSDN博客_jdk

另外关于JDK JVM JRE是什么玩意儿做一下简单说明(不牵扯更深一层的lib类库以及class的编译)

JDK:Java Development Kit   Java的开发工具,有了JDK你就可以去编译Java程序,就可以进行Java程序的开发,就跟有了锅厨子就能做饭一样,JDK就是那个锅,Java程序员就是那个厨子

JRE:Java Runtime Enviroment    字面意思来理解就是java运行环境,有了JRE就可以跑Java程序了,就像给你个筷子你就能吃饭一样,Java程序就相当于是饭,JRE就是那双筷子

JVM:Java Virtual Machine  字面意思:Java虚拟机,Java有一个很重要的特性就是跨平台性,如何实现这个特性?就是JVM的功劳,Java程序是运行在JVM上的,这样不论你Windows系统,还是Linux系统,亦或者是Mac系统,Java程序都可以正常运行,这就像你如果随身带一个厨房,不管在平原腹地还是深山老林都能吃上一口热乎饭,JVM就是你的厨师团队,保证你在不同的平台都能把Java程序运行起来

三者的关系:安装JDK的时候可以选择安装JRE,JRE中包含JVM

进入正题:

什么是数据类型?

就像生活中我们把生物分成动物和植物一样,不同性质物品会被进行分类一样,Java作为一种计算机语言也是如此,不同的类型的数据有不同的定义方式

Java中的数据类型分为两种:

基本数据类型:

作为Java表示数据的基本组成部分Java一共提供了四大类一共八种基本数据类型

整型:其实就是整数型,用来表示整数,一共有四种

1.byte:

byte 数据类型是8位、有符号的,以二进制补码表示的整数

取值范围:-128~127    一共能表示256个整数,超出这个范围就会报错,程序就运行不起来

测试代码:

public class byteTest {
    public static void main(String[] args) {
        //定义一个变量名为byte_MAX的变量用来存放byte的最大值
        //为啥代码里是Byte  这里用的是包装类 后面我应该可以更新到这里
        Byte byte_MAX = Byte.MAX_VALUE;
        //同上,定义byte_MIN用来接收byte的最小值
        Byte byte_MIN = Byte.MIN_VALUE;
        //将结果输出到控制台
        System.out.println("byte最大值是:"+byte_MAX);
        System.out.println("byte最小值是:"+byte_MIN);
    }
}

运行结果:

2.short

short 数据类型是 16 位、有符号的以二进制补码表示的整数

取值范围:-32768~32767  一共可以表示六万多个整数

测试代码:

public class shortTest {
    public static void main(String[] args) {
        short short_MAX = Short.MAX_VALUE;
        short short_MIN = Short.MIN_VALUE;
        //将结果输出到控制台
        System.out.println("short最大值是:"+short_MAX);
        System.out.println("short最小值是:"+short_MIN);
    }
}

运行结果:

3.int

int 数据类型是32位、有符号的以二进制补码表示的整数;

取值范围:-2^31~2^31-1  这个数老大了,没有意外的话项目里需要定义的整数大部分都在这个取值范围中,所以这也是我们最常用的整数型数据类型

测试代码:

public class intTest {
    public static void main(String[] args) {
        //int的包装类比较特殊是Integer
        int int_MAX = Integer.MAX_VALUE;
        int int_MIN = Integer.MIN_VALUE;
        //将结果输出到控制台
        System.out.println("int最大值是:"+int_MAX);
        System.out.println("int最小值是:"+int_MIN);
    }
}

运行结果:

4.long

long数据类型是64位、有符号的以二进制补码表示的整数;

取值范围:-2^63~2^63-1   这个类型能表示的数更多,取值范围更大,但是在底层占的空间大影响效率,所以我们平时还是用int

测试代码:

public class longTest {
    public static void main(String[] args) {

        long long_MAX = Long.MAX_VALUE;
        long long_MIN = Long.MIN_VALUE;
        //将结果输出到控制台
        System.out.println("long最大值是:"+long_MAX);
        System.out.println("long最小值是:"+long_MIN);
    }
}

运行结果:

浮点型:其实通俗来理解就是小数型,用来表示小数,但是你念还是得念成浮点型,一共有两种

1.float

float:单精度浮点型数据,32位

取值范围:-2^128 ~ +2^128 

float类型在进行数据运算时有可能会造成精度损失,所以不能用在涉及到精确数字的地方例如:任何关于钱的项目

测试代码:

public class floatTest {
    public static void main(String[] args) {
        //注意:定义float类型的变量时候要在值的后面加上f
        float float1 = 10.01f;
        float float2 = 10.00f;
        float result = float1-float2;
        //结果本应是0.01吧?
        System.out.println("两个小数相减的结果是:"+result);
    }
}

运行结果:

2.double

double:双精度浮点型数据,64位

取值范围:-2^1024 ~ +2^1024

double的数据类型进行运算时也可能会造成精度的损失,但是因为表示的数据范围更大,效率比float高,所以我们一般定义小数的话默认使用double类型来表示,但是哪怕是double,运算的时候也会造成精度损失,所以依然不能用在任何与钱有关的项目当中。

那么问题来了,关于精确的计算我们用啥?

答案是  BigDecimal  但这是后话了,我们以后再说

测试代码:

public class doubleTest {
    public static void main(String[] args) {
        //定义double类型的变量时候直接写小数就行
        double double1 = 10000.01;
        double double2 = 10000.00;
        double result = double1-double2;
        //结果本应是0.01吧?
        System.out.println("两个小数相减的结果是:"+result);
    }
}

运行结果:

布尔型:其实也就是逻辑型,用来判断条件是否成立的一种数据类型

boolean:

boolean类型只有两个值:一个是true,一个是flase

boolean在底层中占了多少位还没有明确定论,因为没有公布源码,但是现在市面上的论调主要是觉得boolean在底层是16位

测试代码:

public class booleanTest {
    public static void main(String[] args) {
        //定义一个boolean类型的变量flag1用来接收判断结果
        boolean flag1 = 1>2;
        boolean flag2 = 2>1;
        //输出结果到控制台
        System.out.println("1比2大吗?:"+flag1);
        System.out.println("2比1大吗?:"+flag2);
    }
}

运行结果:

字符型:

char

char 类型是一个单一的 16 位 Unicode 字符;Unicode编码集规定了每个字符对应的数字,通过一系列运算将人看的懂的字符变成机器看得懂的字符,被广泛应用,但是Java中char类型单一的字符对应的应该是Unicode中的ASCII码表

用来表示任何一个字符,用单引号表示,char类型只能表示一个字符!

测试代码:

public class charTest {
    public static void main(String[] args) {
        //定义一个char类型的变量用来表示在ASCII编码中97表示的是哪个字符
        char character = 97;
        System.out.println("97表示的字符是:"+character);
        //定义一个整型变量用来接收a这个字符在ASCII编码中的编号值多少
        int serialNumber = 'a';
        System.out.println("a这个字符在ASCII编码中是:"+serialNumber);
    }
}

运行结果:

贴一个Ascii编码表

ASCii码表 ascii码对照表 ASCII码查询 (ip138.com)

注:string类型不是基本数据类型!!!它不是!!!它是引用数据类型!!!

引用数据类型:

范围很广泛,类,对象,数组,接口,可以说除了基本数据类型,其他的都是引用数据类型,包括上述代码中提到的包装类,以后我们一一了解

总结:四类八种基本数据类型搭建起了Java语言的基础框架,让各种数据在Java代码中可以表示,用这各种各样的类型组成的数据搭建起了Java的世界,而引用数据类型则极大的增强了Java代码的灵活性,使开发更加灵活

还有,别问为啥设置这么多数据类型,觉得麻烦建议去找高斯林干一架(看戏.jpg)

这篇关于Java基础(基础篇:1:Java的基本数据类型)(成长贴)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!