Java SE第二章:基础数据类型

Posted 快乐的星球

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java SE第二章:基础数据类型相关的知识,希望对你有一定的参考价值。

🎇前言🎇:

在初步认识Java是什么之后,接下来便来到了语法学习中的重要部分数据类型与运算符,希望大家能有所收获。


目录

🎇前言🎇:

✨数据类型✨

💎数据类型和变量💎

💎整型变量💎

💎长整型变量💎

💎双精度浮点型变量💎

 💎单精度浮点型变量💎

 💎字节型变量💎

 💎字符型变量💎

💎短整型变量💎

💎布尔类型变量💎

 💎字符串类型变量(重点)💎

 💎常量💎

💡字面值常量:

💡final 关键字修饰的常量:

 💎类型转换 💎

🔑:隐式类型转换

🔑:强制类型转换



✨数据类型✨

在开始之前请大家看看下面这张图,建立起对数据类型认知的总框架。

本篇博客着重讲解基本数据类型,至于引用数据类型后期会进行讲解。


💎数据类型和变量💎

在学习数据类型之前大家一定要知道,数据类型是用来干嘛的?这就不得不去了解数据类型和变量之间的关系。

💡:1:数据类型是用来定义变量的。

        2:数据类型决定了创建这个变量时所分配内存空间的大家

        3:数据类型同时还决定了存放的内容,不同的数据类型存放不同类型的数据

而变量又是什么?

我们可以把变量想象为一个箱子,自然它就有类型和大小,它是一块用来存储数据的容器。


💎整型变量💎

定义方法:

int  变量名=初始值;

使用方法

        int a=10;
        System.out.println(a);

空间大小:

int型变量占4个字节大小的空间。4个字节所表示的数据的范围是 -2^(31)-2^(31)-1

什么是字节?

字节是计算机中表示空间内存大小的最小单元。

计算机使用二进制存储数据,一个字节表示8个比特位。

💡:重点:Java语言具有良好的跨平台性。因此无论是16位平台还是32位或者是64位平台,整型变量都占四个字节的空间。

我们可以通过以下语句来打印出整型的最大值和最小值。

        System.out.println(Integer.MAX_VALUE);
        System.out.println(Integer.MIN_VALUE);

但处于大数据时代,在很多工程场景整型的最大值是很容易超出的,因此Java提供了长整型变量。


💎长整型变量💎

定义方法

long  变量名=初始值;

使用方法

        long b=20;
        System.out.println(b);

空间大小:长整型占8个字节的空间,所表示数据的范围是 -2^(63)-2^(63)-1

长整型足以适用于绝大多数工程场景。

        System.out.println(Long.MAX_VALUE);
        System.out.println(Long.MIN_VALUE);

💎双精度浮点型变量💎

定义方法:

double  变量名=初始值;

使用方法:

        double d=3.14;
        System.out.println(d);

空间大小:双精度浮点型变量占8个字节的空间。 

现在我们来看看一个有趣的例子。

        double c=1/2;
        System.out.println(c);
//结果:0.0

这是为什么呢?因为在Java中,整数/整数=整数,会把小数部分舍去,若想得到小数部分应该这样做。

        double e=1.0;
        double f=2.0;
        double g=e/f;
        System.out.println(g);
//其输出结果是:0.5

Java 的 double 类型的内存布局遵守 IEEE 754 标准(和C语言一样), 尝试使用有限的内存空间表示可能无限的小数, 势必会存在一定的精度误差.

 例如:

        double e=1.0;
        double f=3.0;
        double g=e/f;
        System.out.println(g);

输出结果:


 💎单精度浮点型变量💎

定义方法:

float  变量名=初始值;

使用方法:

        float f=3.14f;
        System.out.println(f);

空间大小:4个字节大小的空间。


 💎字节型变量💎

定义方法:

byte  变量名=初始值;

使用方法:

        byte value=20;
        System.out.println(value);

注意:1:字节类型变量存储的也是小数。

           2:字节类型变量存储的数据的范围是:(-128--127)


 💎字符型变量💎

定义方法:

char  变量名=初始值;

使用方法:

        char c='A';
        System.out.println(c);

注意:在Java中的字符型变量所占的空间大小为2个字节。


💎短整型变量💎

定义方法:

short  变量名=初始值;

        short a=3;
        System.out.println(a);

变量大小:1:短整型变量占两个字节的空间。

                  2:短整型变量所储存数据的范围是 -32768 -> +32767


💎布尔类型变量💎

定义方法:

boolean  变量名=初始值;

注意:1:布尔类型变量只有 true(真)和false(假)两种取值。

           2:2. Java 的 boolean 类型和 int 不能相互转换, 不存在 1 表示 true, 0 表示 false 这样的用法.

           3:3. boolean 类型有些 JVM 的实现是占 1 个字节, 有些是占 1 个比特位, 这个没有明确规定.

使用示例:

        boolean a1=(3>5);
        System.out.println(a1);
        a1=(3<5);
        System.out.println(a1);
        a1=(5==5);
        System.out.println(a1);
        a1=(3==5);
        System.out.println(a1);

输出示例:


 💎字符串类型变量(重点)💎

定义方法:

String  变量名=初始值;

使用示例:

        String name="zhangsan";
        System.out.println(name);

注意:1:在Java中我们一般用 双引号+若干字符 来表示字符串的字面值。

           2:字符串类型不是基础数据类型,而是引用类型。

字符串的’+‘操作:

字符串的+操作表示字符串的拼接。只要➕操作符的两个操作数中有一个是字符串,就会进行字符串的拼接,将两个操作数合并成一个字符串。

🔑示例:

        String str1="hello"+"world";
        System.out.println(str1);

        String str2="hello"+10+20;
        System.out.println(str2);

        String str3="hello"+(10+20);
        System.out.println(str3);

💡:输出样例:


 💎常量💎

在了解了变量之后,现在来介绍常量。

在Java中每种类型的变量都对应着一种常量。那什么叫做常量呢?

常量顾名思义就是在程序运行时不能改变的量,在编译过程中就确定了取值。

💡字面值常量:

💡final 关键字修饰的常量:

示例:

这样会报错。

我们可以从中更加深入的了解何为常量.常量也可以理解为只能进行一次赋值操作,一旦给final修饰的常量赋值,它的值就不能够再被修改。


 💎类型转换 💎

类型转换一般分为两种:一种是隐式类型转换,一种是强制类型转换。

由于Java是强类型语言,在进行不同类型的赋值时会有严格的检验。

🔑:隐式类型转换

        int a=10;
        long b=20;
        b=a;//把int赋值给long不会报错
        a=b;//把long赋值给int就会报错

上述代码第一个赋值操作不会报错,第二个就会报错,这是为什么了?

同样的我们再来感受一下下面的代码。

        double d=3.5;
        float f=3.14;//这个会报错
        d=f;//这个不会报错
        f=d;//这个会报错

通过上述的两个例子我们可以看出来:

1:long表示的范围更大,将int类型赋值给long类型不会报错,反之则不行。

2:double表示的范围更大,将float类型赋值给double类型不会报错,反之则不行。

结论: 不同数字类型的变量之间赋值, 表示范围更小的类型能隐式转换成范围较大的类型, 反之则不行.

若要将上述表示大的范围的类型赋值给小的范围的类型就要进行强制类型转换。

🔑:强制类型转换

示例:

        double d=3.5;
        float f=(float)3.14;
        d=f;
        f=(float)d;

我们虽然可以通过强制类型转换让大的范围的类型得以赋值给小的范围的类型,但这其中存在精度丢失的风险,所以一般我们使用的时候,建议尽量类型对应。


由于本人水平十分有限,若有错误请即使告知!如果有帮助别忘了,万分感谢。

点赞👍         收藏✨    关注✌

 

 

以上是关于Java SE第二章:基础数据类型的主要内容,如果未能解决你的问题,请参考以下文章

Java面试之SE基础基本数据类型

Java面试总结之SE基础基本数据类型

JAVA SE基础篇34.包装类

java1234教程系列笔记 S1 Java SE chapter 02 lesson 03 java基本数据类型

JAVA SE JAVA基础强袭之路 数据类型及其转换和提升全面讲解(猛男细节+保底一个收藏)

JAVA SE基础篇10.运算符优先级与类型转换