写在前面,大家好!我是【跨考菌】,一枚跨界的程序猿,专注于后台技术的输出,目标成为
全栈攻城狮
!这博客是对我跨界过程的总结和思考。如果你也对Java
、后端技术
感兴趣,抑或是正在纠结于跨界,都可以关注我的动态,让我们一起学习,一起进步~
我的博客地址为:【跨考菌】的博客
课程目录
上一篇Java30天养成计划 || 02 手把手教你搭建Java开发环境 讲解了JDK安装步骤和JVM的内容,本章介绍Java中的数据类型(四类八种)。
1、关键字&标识符&注释
1.1、关键字
关键字:是指在程序中,Java已经定义好的单词,具有特殊含义。Java中常见的关键字有:
访问控制 | private | protected | public | ||||
---|---|---|---|---|---|---|---|
类,方法和变量修饰符 | abstract | class | extends | final | implements | interface | native |
new | static | strictfp | synchronized | transient | volatile | ||
程序控制 | break | continue | return | do | while | if | else |
for | instanceof | switch | case | default | |||
错误处理 | try | catch | throw | throws | finally | ||
包相关 | import | package | |||||
基本类型 | boolean | byte | char | double | float | int | long |
short | null | true | false | ||||
变量引用 | super | this | void | ||||
保留字 | goto | const |
1.2、标识符
命名规则
- 标识符可以包含 英文字母26个(区分大小写) 、 0-9数字 、 $(美元符号) 和 _(下划线) 。
- 标识符不能以数字开头。
- 标识符不能是关键字。
命名规范
- 类名规范:首字母大写,后面每个单词首字母大写(大驼峰式)。
- 方法名规范: 首字母小写,后面每个单词首字母大写(小驼峰式)。
- 变量名规范:全部小写
1.3、关键字和标识符的区别
在我们编写程序的时候,需要大量地为程序
、类
、变量
、方法
等取名字,于是就有了标识符,简单来说,标识符就是一个名字。
但是有一些标识符,Java 语言已经赋予了其特殊的含义,只能用于特定的地方,这种特殊的标识符就是关键字。
因此,关键字是被赋予特殊含义的标识符。
1.4、注释
Java 中的注释有三种:
1.单行注释,只能注释一行内容
2.多行注释,可以注释一段文字
3.JavaDOC文档注释,对代码中的内容及一些内容进行描述
我们在编写代码的时候,一定要养成编写注释的习惯,很多大厂都有自己严格意义的代码规范
,一定要按照要求,对比较关键的代码按照要求加上必要的注释。试想下,你接收的代码,如果业务逻辑比较复杂且完全没有文档和注释,万一他之前的owner离职了,那估计你就真的要疯了,哈哈!
2、数据类型
2.1、数据类型概述
Java中的数据类型分为两大类:
- 基本数据类型:包括 整数 、 浮点数 、 字符 、 布尔 。
- 引用数据类型:包括 类 、 数组 、 接口 。
其中基本数据类型又分为四大类(共8种):
- 整型 :byte、short、int、long
- 浮点型:float、double
- 字符类型:char
- 布尔型:boolean
基本类型 | 位数 | 字节 | 默认值 |
---|---|---|---|
int | 32 | 4 | 0 |
short | 16 | 2 | 0 |
long | 64 | 8 | 0L |
byte | 8 | 1 | 0 |
char | 16 | 2 | ‘u0000’ |
float | 32 | 4 | 0f |
double | 64 | 8 | 0d |
boolean | 1 | false |
注意:
- Java 里使用 long 类型的数据一定要在数值后面加上 L,否则将作为整型解析:
- char a = 'h’char :单引号,String a = “hello” :双引号
2.2、自动装箱与拆箱
Java中每一类基本数据类型都有一个对应的包装类型:
基本类型 | 对应的包装类(位于java.lang包中) |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Character |
boolean | Boolean |
自动装箱与拆箱:基本类型与对应的包装类对象之间,来回转换的过程称为”装箱“与”拆箱“。
-
装箱:从基本类型转换为对应的包装类对象。
-
拆箱:从包装类对象转换为对应的基本类型。
用Integer与 int为例:(看懂代码即可)
基本数值---->包装对象
Integer i = new Integer(4);//使用构造函数函数
Integer iii = Integer.valueOf(4);//使用包装类中的valueOf方法
包装对象---->基本数值
int num = i.intValue();
由于我们经常要做基本类型与包装类之间的转换,从Java 5(JDK 1.5)开始,基本类型与包装类的装箱、拆箱动作可以自动完成。例如:
Integer i = 4;//自动装箱。相当于Integer i = Integer.valueOf(4);
i = i + 5;//等号右边:将i对象转成基本数值(自动拆箱) i.intValue() + 5;
//加法运算完成后,再次装箱,把基本数值转成对象。
2.3、类型转换
2.3.1、自动转换
自动转换:将取值范围小的类型 自动提升为 取值范围大的类型 ,例如:
public static void main(String[] args) {
int i = 1;
byte b = 2;
// byte x = b + i; // 报错
//int类型和byte类型运算,结果是int类型
int j = b + i;
System.out.println(j);
}
转换示意图:
转换规则
范围小的类型向范围大的类型提升, byte、short、char 运算时直接提升为 int
byte、short、char‐‐>int‐‐>long‐‐>float‐‐>double
2.3.2、强制转换
强制类型转换:将 取值范围大的类型 强制转换成 取值范围小的类型 。比较而言,自动转换是Java自动执行的,而强制转换需要我们自己手动执行。
转换格式:数据类型 变量名 = (数据类型)被转数据值;
// double类型数据强制转成int类型,直接去掉小数点。
int i = (int)1.5;
当一个 short 类型与 1 相加,我们知道会类型提升,但是还想给结果赋值给short类型变量,就需要强制转换。
public static void main(String[] args) {
//short类型变量,内存中2个字节
short s = 1;
/*
出现编译失败
s和1做运算的时候,1是int类型,s会被提升为int类型
s+1后的结果是int类型,将结果在赋值会short类型时发生错误
short内存2个字节,int类型4个字节
必须将int强制转成short才能完成赋值
*/
s = s + 1;//编译失败
s = (short)(s+1);//编译成功
}
注意:
- 浮点转成整数,直接取消小数点,可能造成数据损失精度。
- int 强制转成 short 砍掉2个字节,可能造成数据丢失。
// 定义s为short范围内最大值
short s = 32767;
// 运算后,强制转换,砍掉2个字节后会出现不确定的结果
s = (short)(s + 10);
2.3.3、ASCII编码表
public static void main(String[] args) {
//字符类型变量
char c = 'a';
int i = 1;
//字符类型和int类型计算
System.out.println(c+i);//输出结果是98
}
编码表 :就是将人类的文字和一个十进制数进行对应起来组成一张表格。
说明:
a-z:97-112
A-Z:65-90
0-9:4857
在char类型和int类型计算的过程中,char类型的字符先查询编码表,得到97,再和1求和,结果为98。char类型提升为了int类型。char类型内存2个字节,int类型内存4个字节。
最后,如果您觉得对您有帮助的话,不要忘记帮助帮博主一键三连
😊哦