第二章 标识符、常量、变量、类型 转换
文章目录
一、注释
Java中的注释,分为三种:
- 单行注释
- 多行注释
- 文档注释(后续课程讲解)(Javadoc)
文档注释
格式:/** 文档注释内容 */
也可以在idea中培植自己的文档注释
二、关键字
关键字特点:组成关键字的字母全部小写,常用的代码编辑器对关键字都有高亮显示
常见关键字:public static void class
三、标识符(自己起名字的地方就叫标识符)
在Java中给类、方法、变量起的名字,就是标识符,其可以用来标识这个
类、方法、变量
命名规则:
- 标示符可以由==字母、数字、下划线_ 、美元符号$==组成
- 标示符开头不能是数字
- 标识符中的字符大小写敏感
- 标识符的长度没有限制
- 标示符不能使用Java中的关键字或保留字
_int __int 这俩个都满足标识符的条件 _ int _ 也满足(没有空格 typora软件的缘故)
四、常量
常量分类:
- 字面值常量
- 自定义常量 (面向对象部分讲解)
空常量是一个特殊的值,空值,值为null
package com.briup.chap02;
public class Test04_Constant {
//输出各种类型的常量值
public static void main(String[] args) {
System.out.println(10); // 输出整数常量
System.out.println(5.5); // 输出小数常量
System.out.println('a'); // 输出字符常量
System.out.println(true); // 输出boolean常量值true
System.out.println("欢迎来到杰普软件"); // 输出字符串常量
}
}
五、变量
数据类型 变量名 = 数据值; (边声明边定义)
10.sout --> System.out.println(10);
这样写就可以很快的输出
区域 | 内容 |
---|---|
方法栈 | 方法运行时使用的内存,比如main方法运行,进入方法栈中执行 |
方法区 | 存储可以运行的class文件 |
堆内存 | 存储数组或对象,new来创建的,都存储在堆内存 |
程序执行流程:
-
执行命令 java 测试类名 ,系统将
测试类.class文件
内容装入内存中的方法区
-
接下来找到里面的 main方法 (程序入口)
-
然后在栈空间申请一块区域(函数帧)来保证main方法的执行
-
最后顺序执行main方法中的代码
-
遇到main方法的 "}"或return语句 ,方法执行结束,main方法函数帧内
存释放
多个变量内存理解:
六、数据类型(俩大类)
6.1数据类型介绍
Java数据类型可以分为两大类:
- 基本数据类型
- 整形 byte、short、int、long
- 浮点型 float、double
- 字符类型 char
- 布尔类型 boolean
- 引用数据类型
- 数组
- 类
- 接口
一个字节代表的最大的数是 ? 2^8 - 1 = 255
一个字节代表的最大正数是 : 127 (因为开头是1为负数)
取值范围和类型:
整型 (Integer Types)
byte: 8 位,取值范围为 -128 到 127
short: 16 位,取值范围为 -32,768 到 32,767
int: 32 位,取值范围为 -2^31 到 2^31 - 1 (-2,147,483,648 到 2,147,483,647)
long: 64 位,取值范围为 -2^63 到 2^63 - 1 (-9,223,372,036,854,775,808 到 9,223,372,036,854,775,807)
浮点型 (Floating-Point Types)
float: 32 位,单精度浮点数,取值范围约为 1.4E-45 到 3.4E+38(精度为7位有效数字)
double: 64 位,双精度浮点数,取值范围约为 4.9E-324 到 1.7E+308(精度为15位有效数字)
字符型 (Character Type)
char: 16 位,取值范围为 0 到 65,535(无符号的 Unicode 字符)
布尔型 (Boolean Type)
boolean: 只有两个取值 true 和 false
小数默认是double类型
6.2进制转换
二进制前面是 0b 八进制最前面0开头 十六进制是0x开头
1)十进制快速转换
二进制
2)二进制快速转换
为8进制
- 从最低位开始,每3位分一组,不足3位的话高位补0
- 将得到的数字组合到一起,最前面以0开头
3)二进制转换为16进制
- 从最低位开始,每4位分一组,不足4位的话高位补0
- 将得到的数字组合到一起,最前面以0x开头
6.3原码反码补码
1)原码
2)反码
- 正数的反码与其原码相同
- 负数的反码,在原码的基础上,保留符号位,其他位逐位取反
3)补码
- 正数的补码与其原码相同
- 负数的补码是在其反码的末位加1
注意:数据在计算机底层进行存储或运算,以补码方式进行!
七、常量补充
注意:整形字面值,不论是二进制、八进制还是十进制、十六进制,默认都是
int类型常量
。
注意:小数默认是double类型的
- 整形数后面加’L’或’l’,就表示long类型字面值常量
- 小数后面加’F’或’f’,就表示float类型字面值常量
八、类型转换
数据类型转换分为俩类:
- 隐式类型转换
- 显示类型转换
8.1隐式类型转换
情况一(小给大)
赋值过程中,小数据类型值或变量可以直接赋值给大类型变量,类型会自动进行转换
情况二(byte、short、char)
byte、short、char类型的数据在进行算术运算时,会先自动提升int,然后再进行运算
情况三(不同类型相互运算)
其他类型相互运算时,表示范围小的会自动提升为范围大的,然后再运算
8.2显式类型转换
赋值过程中,大类型数据赋值给小类型变量,编译会报错,此时必须通过强制
类型转换实现
固定格式:
数据类型 变量名 = (目标数据类型)(数值或变量或表达式)
8.3特殊情况(重要)
整型常量优化机制
package com.briup.test.day02;
/**
* 测试基本数据类型之间的转换和赋值情况
*/
public class zhushu {
public static void main(String[] args) {
// int -> byte 转换成功的例子
byte b = 10;
System.out.println(b);
// int -> short 转换成功的例子
short s = 20;
System.out.println(s);
// int -> char 转换成功的例子
char c = 97;
System.out.println(c);
// byte 赋值示例:为什么 b2 能成功,而 b3 失败了?
byte b2 = 127;
System.out.println(b2);
// byte b3 = 128; // 编译错误,超出了 byte 类型的范围
// System.out.println(b3);
// short 赋值示例:为什么 s2 能成功,而 s3 失败了?
short s2 = -32768;
System.out.println(s2);
// short s3 = -32769; // 编译错误,超出了 short 类型的范围
// System.out.println(s3);
// char 赋值示例:为什么 c2 能成功,而 c3 失败了?
char c2 = 65535;
System.out.println("c2: " + c2);
// char c3 = 65536; // 编译错误,超出了 char 类型的范围
// System.out.println(c3);
}
}
使用整形字面值常量(默认int类型)赋值给其他类型(byte、char、short)变量时,系统会先判断该字面值是否超出赋值类型的取值范围,如果没有超过范围则赋值成功,如果超出则赋值失败。
注意:
反例:
重要知识点
3、数据类型 基本数据类型(4类8种 整数byte short int long 小数 float double 字符 char赋值有多种 布尔 boolean) 引用数据类型 (面向对象中去讲)String–>最像基本类型的引用数据类型
4、计算机的基础知识 存储单位 比特 字节 进制及进制的转换、进制的Java代码自变量
5、类型转换的知识(基于基本数据类型)
显示类型转换(大转小)和隐式类型转换(小转大)(木桶效应)
6、int常量
赋值时的优化机制
Java 中的基本数据类型包括八种,分别是四种整数类型、两种浮点数类型、一个字符类型和一个布尔类型。以下是这些基本类型及其取值范围:
-
整型 (Integer Types)
byte
: 8 位,取值范围为 -128 到 127short
: 16 位,取值范围为 -32,768 到 32,767int
: 32 位,取值范围为 -2^31 到 2^31 - 1 (-2,147,483,648 到 2,147,483,647)long
: 64 位,取值范围为 -2^63 到 2^63 - 1 (-9,223,372,036,854,775,808 到 9,223,372,036,854,775,807)
-
浮点型 (Floating-Point Types)
float
: 32 位,单精度浮点数,取值范围约为 1.4E-45 到 3.4E+38(精度为7位有效数字)double
: 64 位,双精度浮点数,取值范围约为 4.9E-324 到 1.7E+308(精度为15位有效数字)
-
字符型 (Character Type)
char
: 16 位,取值范围为 0 到 65,535(无符号的 Unicode 字符)
-
布尔型 (Boolean Type)
boolean
: 只有两个取值true
和false
这些基本类型在Java中用于定义变量和常量,便于处理不同类型的数据。在使用时,可以根据具体需求选择合适的基本类型。