【Java SE】基本数据类型

简介: 大家好!我是保护小周ღ,本期为大家带来的是 Java的基本数据类型,内容会与C语言的基本数据类型进行基本的比较,数据类型提示,整型提升,以及简单了解 String 类型 ,进一步感受Java 的安全性。C语言混不下去了,面向对象的编程太爽了~

 image.gif编辑

大家好!我是保护小周ღ,本期为大家带来的是 Java的基本数据类型,内容会与C语言的基本数据类型进行基本的比较,数据类型提示,整型提升,以及简单了解 String 类型 ,进一步感受Java 的安全性。

C语言混不下去了,面向对象的编程太爽了~


目录

一、常量

二、基本数据类型

2.1 整型

int 整型

long  长整型

short  短整型

byte 字节型

2.2 浮点型

double 双精度 和 float 单精度

2.3  char 字符型

Unicode 字符集

2.4 布尔型

三、String 字符串类型

image.gif编辑

一、常量

常量就是在程序运行期间,不能被修改,固定不变的量叫常量。

相较于C 语言来讲,Java 的基本数据类型多了个字符串类型,还是一个byte 类型,属于整型数据,后面再给大家介绍。

字面常量的分类:

1. 字符串常量:由""括起来的,比如“12345”、“Hello World!”、“你好”。

2. 整形常量:程序中直接写的数字没有小数点,比如:100、1000

3. 浮点数常量:程序中直接写的小数,比如:3.14、0.49

4. 字符常量:由 单引号 括起来的当个字符,比如:‘A’、‘1’

5. 布尔常量:只有两种true和false

6. 空常量:null

这里浅提一手 null ,NULL 在C语言中,一般是给指针类型的变量赋值的,代表存储的地址为空,Java 当中没有指针类型,但是有引用,同样可以存储地址,但是不能对地址进行操作。

其余数据类型且听我慢慢道来……


二、基本数据类型

Java 的基本数据类型有 八种:

2.1 整型

int 整型

首先当然是介绍我们最最最常用的 int

public class Main {
    public static void main(String[] args) {
        int a=10; //定义了一个整型数据 a 并初始化为10
        System.out.println(a);
        System.out.println(Integer.MAX_VALUE);
        System.out.println(Integer.MIN_VALUE);
    }
}

image.gif

image.gif编辑 Java 当中 整型数据默认是有符号(signed)的,没有无符号(unsigned)之分(java ,没有所谓的无符号和有符号位的概念)其次在给变量设置初始值时,不能超过该数据类型的表示范围,否则就会造成溢出,编译器会报错,变量在使用之前也必须赋初值,这些在 Java中都是错误。Integer 这个是 int的包装类,可以理解为将一些功能集成在一起,

其中MAX_VALUE  就是输出 int 类型的最大值,MIN_VALUE 就是输出 最小值

image.gif编辑所以一个 int 类型的数据 取值范围为 [-2^31, 2^31 -1] ;


long  长整型

public static void main(String[] args) {
        int a = 10;
        long b = 20;
        long c = 30L;
}

image.gif

为了区分 int 和 long 类型,一般是在初始化的时候在数值后面加 大写的L ,小写的也可,但是小写的不易区分, 不加L的话 20 默认是整型数据(int )但是这没有错,后面讲。

C 语言的long 类型具体占几个字节没有固定的说法 ,即 long >= int  ,在  vs 2019 集成开发环境32位环境下 long 占4个字节, 有些编译器可能是8个字节,但是在 64 位环境下就是 8 个字节,Java中就没有计较这么多, 不管操作系统是多少位,平台是多少位 都没有关系,long 类型就是8个字节,取值范围就是[-2^63 , 2^63 - 1];


short  短整型

public static void main(String[] args) {
        short a = 10;
        //short 类型的取值范围
        System.out.println(Short.MAX_VALUE);
        System.out.println(Short.MIN_VALUE);
}

image.gif

image.gif编辑

short 在 Java 中占2个字节 ,数值的表示范围 [-2^15,2^15-1] , 这个类型用的少,还有大家有没有注意一个点,上面说过 , 在初始化的时候,初始化的值(常量)默认是整型4个字节, 那编译器为啥不报错呢,原因是编译器会帮我们检查如果 常量值的范围在该类型数值的表示范围内就不会报错,如果是一个 整型int 类型给低字节的变量赋值那编译肯定是不被允许的,报错除非 像 C 语言那样(类型)变量, 强制类型转换,但是会对被转数值的变量值精度造成损失 , 比如人家存了 4 个字节的二进制位 , 你把他强转为 short 类型, 就只剩下 16 个二进制位描述数据,哪能一样嘛。


byte 字节型

public static void main(String[] args) {
        byte a = 10;
        byte b = 20;
        // byte 类型数值的取值范围
        System.out.println(Byte.MAX_VALUE);
        System.out.println(Byte.MIN_VALUE);
    }

image.gif

image.gif编辑 byte 类型 是C语言没有的一个类型,只有一个字节,额,取值范围如图所示,有一点比较值得注意。

image.gif编辑

很奇怪啊, 报错了,10 ,20 都是在byte 数值的取值范围内,哪怕他们相加的结果30也在范围内,怎么就错了呢,这里就涉及到一个知识点,整型提升,不足4个字节的数据在进行运算的时候会进行整型提升,a 跟 b 就是int 类型 了, 那将两个 int 类型的数据运算后的结果给到一个 byte 字节型变量 ,那肯定装不下的嘞,还有一点就是,不足4个字节的整型 在打印时也会提升至4字节打印。

这样就没有任何问题啦,

image.gif编辑

用 short 类型也会报错,咱就是说 >=  int 才可以。

image.gif编辑

image.gif编辑

那如果是说这样:

public static void main(String[] args) {
        int a = 10;
        int b = 10;
        long sum = a+b;
        System.out.println(sum);
}

image.gif

这就不是整型提升了, 这个叫类型提升, 在运算时int 会提升至long 类型参与运算,没有任何问题。

C语言 整型提升规则:一般用于不足整型(4个字节)的数据,有符号位根据符号位,高位补齐,无符号位,直接高位补0。

Java 安全性好,很多你没注意到的地方,集成开发环境都能很好的帮你找出来,即使是这样,我们还是要避免这些不应该的错误,养成良好的编程习惯。

高字节类型(强制类型转换)为低字节类型,就会发生截断,保留低位,舍去高位,如果不是强转是自己的疏忽造成的原因Java编译就通过不了。

1. 不同类型的数据混合运算, 范围小的会提升成范围大的.
2. 对于 short, byte 这种比 4 个字节小的类型, 会先提升成 4 个字节的 int , 再运算.


2.2 浮点型

Java  的浮点型数据存储遵循  IEEE 754 标准(和C语言一样)

image.gif编辑

image.gif编辑

image.gif编辑

这个起一个了解的目的,Java 当中可以不关注这些东西。


double 双精度 和 float 单精度

double 在Java 中占8 个字节,且所有小数默认是double 类型,使用的最多的是 double ,

image.gif编辑

 蛮智能的,会把后面的小数去掉。

image.gif编辑

用 C语言的输出格式也是没有问题的,想保留几位的话就 + %. 小数位数 f  ,printf() 格式化输出也是可以的 Java 保留了这种输出方式。

在Java 中  int数据 除以 int 数据 的值仍然是 int(会直接舍弃小数部分),跟C语言一样的规则,整数乘除小数的结果是小数。

image.gif编辑


对于 float  类型来讲,这是一种错误……

image.gif编辑

你会觉得,e 其实是怎么回事呢,就上面说过啦,是 小数数值默认是 double 类型, 把 8个字节的数据给 4个字节得 float 装 ,可不报错嘛,是除非是强制类型转换,但会丢失精度,所以对 float 变量进行初始化的时候,初始化数值加 f 即可(大小写都行,通常是小写 f)。


2.3  char 字符型

public static void main(String[] args) {
        char ch1 = 'a'; // 单个字符也是两个字节
        char ch2 = '符'; //注意千万别使用引号“ ”,引号代表是字符串类型
        System.out.println(ch1);
        System.out.println(ch2);
}

image.gif

image.gif编辑 Java 的 char 类型 占2个字节,且没有负数,为什么呢,C语言中的  char 占1 个字节,使用的是 ASCLL 码字符集表示字符, 所以一个字节就可以了, Java 中采用的是 Unicode 编码表示字符,所以 Java 中的 char 类型有能力描述更多的字符,包括中文。

char的包装类型为Character


Unicode 字符集

Unicode( 统一码、万国码、单一码)是计算机科学领域里的一项业界标准,包括字符集、编码方案等。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的 二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。1990年开始研发,1994年正式公布。

Unicode与ASCII一样也是一种字符编码方法,它占用两个字节(0000H—FFFFH),容纳65536 个字符,这完全可以容纳全世界所有语言文字的编码。在Unicode 里,所有的字符都按一个字符来处理, 它们都有一个唯一的Unicode 码。Unicode只是一个编码规范,目前实际实现的unicode编码只要有三种:UTF-8, UCS-2 和 UTF-16

如果把各种文字编码形容为各地的语言,那么 Unicode 编码就是世界各国通用的语言,在这种语言环境下,就不会有语言的编码冲突,Unicode 就是将世界上所有的文字用2 个字节 统一进行编码,所以他也被称之为 “万国码”


2.4 布尔型

布尔类型常用来表示真假,boolean 类型的变量只有两种取值, true 表示真, false 表示假,Java 的 boolean 类型和 int 不能相互转换, 不像 C 语言中 0 为假 ,非0 为真 ,boolean 只有 true 和 false ,不存在 0 为 假,1 为真的说法。

image.gif编辑

Java 中的条件只能是 布尔表达式 即 表达式结果只能是 布尔类型,

在Java 当中 真只有 true  假只有 false

image.gif编辑

Java规范中并没有明确规定 boolean 占几个字节,也没有专门用来处理boolean的字节码指令,在

Oracle公司的虚拟机实现中,boolean占1个字节。


三、String 字符串类型

Java 有属于单独的字符串类型,注意:String 字符串类型,不属于基本数据类型,属于引用数据类型,这里先给大家简单的介绍一手,关于字符串类型的详细内容后期再给大家详细讲解。

image.gif编辑

Java 输出的时候 输出项可以拼接,使用 +  有一点需要注意,当输出项出现 字符串时,

任何类型的数据 和 字符串拼接,结果就是字符串举个例子:

image.gif编辑

大家可以看到无论是字符串常量还是字符串变量,只要输出语句里出现了,所有的都变成了字符串,表达式也无法计算,那怎么解决呢?

image.gif编辑

因为程序是从左往右执行的,所以我们可以把需要运算的表达式放最左边,最后再拼接字符串,但这样终究不是我们想要的效果,如果想把字符串放最左边,又想让 表达式计算,该怎么办呢?

image.gif编辑 改变他的优先级,加() 将需要计算的表达式括起来,所以就会先计算,后拼接为字符串。


不知道大家有没有想过一个问题,就是,一个整型数据,或者是浮点型 数据等,怎么转换为字符串, 又或者怎么把字符串转换为 对应的数据类型,这个需要使用对应类型的 “包装类",后期再详细给大家介绍。

image.gif编辑

字符串 转某个类型,前提是 该字符串, 能转,不要太离谱:

image.gif编辑


至此,初始Java 的基本数据类型 内容博主已经分享完了,希望对大家有所帮助,如有不妥之处欢迎批评指正。

image.gif编辑

本期收录于博主的专栏——JavaSE,适用于编程初学者,感兴趣的朋友们可以订阅,查看其它“JavaSE基础知识”。

感谢每一个观看本篇文章的朋友,更多精彩敬请期待:保护小周ღ  *★,°*:.☆( ̄▽ ̄)/$:*.°★*

文章存在借鉴,如有侵权请联系修改删除!image.gif编辑

相关文章
|
2月前
|
Java
java基础(8)数据类型的分类
Java数据类型分为基本数据类型(8种)和引用数据类型。基本类型包括byte, short, int, long, float, double, boolean, char。每种类型有固定占用空间大小,如int占用4字节。字符编码如ASCII和Unicode用于将文字转换为计算机可识别的二进制形式。
68 2
|
4天前
|
存储 缓存 Java
大厂面试必看!Java基本数据类型和包装类的那些坑
本文介绍了Java中的基本数据类型和包装类,包括整数类型、浮点数类型、字符类型和布尔类型。详细讲解了每种类型的特性和应用场景,并探讨了包装类的引入原因、装箱与拆箱机制以及缓存机制。最后总结了面试中常见的相关考点,帮助读者更好地理解和应对面试中的问题。
22 4
|
2天前
|
存储 消息中间件 NoSQL
使用Java操作Redis数据类型的详解指南
通过使用Jedis库,可以在Java中方便地操作Redis的各种数据类型。本文详细介绍了字符串、哈希、列表、集合和有序集合的基本操作及其对应的Java实现。这些示例展示了如何使用Java与Redis进行交互,为开发高效的Redis客户端应用程序提供了基础。希望本文的指南能帮助您更好地理解和使用Redis,提升应用程序的性能和可靠性。
10 1
|
17天前
|
存储 Java 关系型数据库
[Java]“不同族”基本数据类型间只能“强转”吗?
本文探讨了不同位二进制表示范围的计算方法,重点分析了Java中int和char类型之间的转换规则,以及float与int类型之间的转换特性。通过具体示例说明了显式和隐式转换的条件和限制。
32 0
[Java]“不同族”基本数据类型间只能“强转”吗?
|
2月前
|
存储 Java Windows
java基础(9)数据类型中的char类型以及涉及到的转义字符
Java中的char类型可以存储一个中文字符,因为它占用两个字节。转义字符允许在代码中使用特殊字符,例如`\n`表示换行,`\t`表示制表符,`\\`表示反斜杠,`\'`表示单引号,`\"`表示双引号。可以使用`\u`后跟Unicode编码来表示特定的字符。
50 2
java基础(9)数据类型中的char类型以及涉及到的转义字符
|
1月前
|
Java
JAVA易错点详解(数据类型转换、字符串与运算符)
JAVA易错点详解(数据类型转换、字符串与运算符)
44 4
|
16天前
|
存储 Java 编译器
[Java]基本数据类型与引用类型赋值的底层分析
本文详细分析了Java中不同类型引用的存储方式,包括int、Integer、int[]、Integer[]等,并探讨了byte与其他类型间的转换及String的相关特性。文章通过多个示例解释了引用和对象的存储位置,以及字符串常量池的使用。此外,还对比了String和StringBuilder的性能差异,帮助读者深入理解Java内存管理机制。
18 0
|
2月前
|
存储 Java
Java内置数据类型和实例的详解
Java内置数据类型分为基本和引用两类。基本数据类型包括整型(`byte`、`short`、`int`、`long`)、浮点型(`float`、`double`)、字符型(`char`)和布尔型(`boolean`),用于存储简单的数值;引用数据类型则用于存储对象的引用,包括类(如`String`)、接口和数组。掌握这两类数据类型是Java编程的基础。以下示例展示了各种数据类型的使用方法。
|
2月前
|
Java
java基础(10)数据类型中的整数类型
Java中的整数类型包括byte、short、int和long。整数字面值默认为int类型,加L表示long类型。整数字面值可以是十进制、八进制(0开头)或十六进制(0x开头)。小容量类型(如int)可自动转换为大容量类型(如long),但大容量转小容量需强制转换,可能导致精度损失。
39 2
|
29天前
|
Java 编译器 C++
【编程基础知识】Java基本数据类型
Java的基本类型包括五类九种,涵盖了整型、浮点型、字符型、布尔型和void。成员变量即使未初始化也有默认值,但局部变量必须显式初始化,否则编译会报错。示例代码展示了各种基本类型的默认值和极限值。
31 0
下一篇
无影云桌面