javaSE学习笔记02-注释、关键字、标识符、数据类型、类型转换
注释
java里注释分为哪几种;
//单行注释
/*
多行注释
*/
/**JavaDoc
* 文档注释
*/
//注释并不会被执行,是给我们写代码的人看的
//平时写代码注意规范
关键字
Java 关键字是 Java 语言中预定义的、具有特殊含义的保留字,不能用作标识符(如变量名、类名、方法名等)。以下是 Java 的关键字列表:
1. 基本数据类型关键字
这些关键字用于声明变量或定义方法返回值的数据类型。
-
byte
:8 位有符号整数。 -
short
:16 位有符号整数。 -
int
:32 位有符号整数。 -
long
:64 位有符号整数。 -
float
:32 位单精度浮点数。 -
double
:64 位双精度浮点数。 -
char
:16 位 Unicode 字符。 -
boolean
:布尔类型,取值为true
或false
。示例:2. 流程控制关键字
这些关键字用于控制程序的执行流程。
-
if
:条件判断语句。 -
else
:与if
配合使用,表示条件不成立时执行的代码块。 -
switch
:多分支选择语句。 -
case
:与switch
配合使用,表示一个分支。 -
default
:与switch
配合使用,表示默认分支。 -
while
:循环语句,条件为真时重复执行。 -
do
:与while
配合使用,先执行一次循环体,再判断条件。 -
for
:循环语句,通常用于遍历数组或集合。 -
break
:跳出循环或switch
语句。 -
continue
:跳过当前循环的剩余代码,进入下一次循环。 -
return
:从方法中返回值并结束方法。示例:3. 类和对象关键字
这些关键字用于定义类、接口、继承关系以及创建对象。
-
class
:定义一个类。 -
interface
:定义一个接口。 -
extends
:表示类继承另一个类。 -
implements
:表示类实现一个接口。 -
new
:创建对象。 -
this
:引用当前对象。 -
super
:引用父类的对象或构造函数。 -
instanceof
:检查对象是否是某个类的实例。示例:4. 访问控制关键字
这些关键字用于控制类、方法、变量的访问权限。
-
public
:公开访问,任何类都可以访问。 -
protected
:受保护访问,只有子类或同一包中的类可以访问。 -
private
:私有访问,只有本类可以访问。示例:5. 修饰符关键字
这些关键字用于修饰类、方法或变量的行为。
-
static
:表示类级别的成员(静态成员)。 -
final
:表示不可修改的常量或不可继承的类。 -
abstract
:表示抽象类或抽象方法。 -
synchronized
:表示同步方法或代码块,用于多线程。 -
transient
:表示变量不会被序列化。 -
volatile
:表示变量在多线程中可见。 -
native
:表示方法由本地代码(如 C/C++)实现。 -
strictfp
:表示浮点数计算严格遵守 IEEE 754 标准。示例:6. 异常处理关键字
这些关键字用于处理程序中的异常。
-
try
:尝试执行可能抛出异常的代码。 -
catch
:捕获并处理异常。 -
finally
:无论是否发生异常,都会执行的代码块。 -
throw
:手动抛出异常。 -
throws
:声明方法可能抛出的异常。示例:7. 包相关关键字
这些关键字用于管理 Java 包。
-
package
:定义类所属的包。 -
import
:导入其他包中的类。示例:8. 其他关键字
-
void
:表示方法没有返回值。 -
enum
:定义枚举类型。 -
assert
:用于调试,检查条件是否为真。 -
const
:保留字,未使用。 -
goto
:保留字,未使用。示例:9. 字面值
虽然不是关键字,但有特殊含义,不能用作标识符。
-
true
:布尔值真。 -
false
:布尔值假。 -
null
:表示空引用。
标识符
包名:使用小写字母
类名和接口名:由具有含义的单词组成,单词首字母大写,如:HelloWorld
方法名:由具有含义的单词组成,首字母小写,其他首字母大写,如:numberSum
变量名:成员变量和方法相同,局部变量全部使用小写
常量名:全部使用大写,多个单词组成用下划线连接,如:VALUE_HELLO
1.标识符注意要点:所有的标识符都应该以字母(A-Z或
者a-z),美元符($),或者下划线(_)开始
2.首字符之后可以是字母(A-Z或者a-z),美元符($),下划线(_)或数字的任何字符组合
3.不能使用关键字作为变量名或方法名
4.标识符是大小写敏感的,严格区分大小写
5.合法的标识符举例: age、$salary、_value_、_1_value
6.非法的标识符举例:123abc、-salary、#abc等
7.标识符可以是中文、拼音,不建议这样做
用java编写第一个程序代码,输出“Hello,World!”
基本数据类型
在 Java 中,数据类型分为基本数据类型(8种)和引用类型(3种),基本数据类型(Primitive Data Types) 是编程中最基础的数据类型,它们不是对象,而是直接存储在栈内存中的简单数据。Java 提供了 8 种基本数据类型,分为以下四类:
1. 整数类型(4)
用于存储整数值,包括以下四种:
数据类型 | 大小(字节) | 取值范围 | 默认值 |
---|---|---|---|
byte |
1 | -128 到 127 | 0 |
short |
2 | -32,768 到 32,767 | 0 |
int |
4 | -2³¹ 到 2³¹-1(约 -21 亿到 21 亿) | 0 |
long |
8 | -2⁶³ 到 2⁶³-1(约 -922 亿亿到 922 亿亿) | 0L |
2. 浮点类型(2)
用于存储小数值,包括以下两种:
数据类型 | 大小(字节) | 取值范围 | 默认值 |
---|---|---|---|
float |
4 | 约 ±3.4e-38 到 ±3.4e38,精度为 6-7 位小数 | 0.0f |
double |
8 | 约 ±1.7e-308 到 ±1.7e308,精度为 15 位小数 | 0.0d |
3. 字符类型(1)
用于存储单个字符,使用 Unicode 编码。
数据类型 | 大小(字节) | 取值范围 | 默认值 |
---|---|---|---|
char |
2 | 0 到 65,535(\u0000 到 \uffff) | '\u0000'(空字符) |
4. 布尔类型 (1)
用于存储逻辑值,只有两个可能的值:true
或 false
。
数据类型 | 大小(字节) | 取值范围 | 默认值 |
---|---|---|---|
boolean |
1(实际大小取决于 JVM 实现) | true 或 false |
false |
5. 默认值
在 Java 中,如果类的成员变量是基本数据类型,它们会被赋予默认值;而局部变量则不会被自动初始化,必须显式赋值。
数据类型 | 默认值 |
---|---|
byte |
0 |
short |
0 |
int |
0 |
long |
0L |
float |
0.0f |
double |
0.0d |
char |
'\u0000' |
boolean |
false |
6. 注意事项
-
范围问题:使用基本数据类型时,需要注意其取值范围。例如,
byte
类型的值不能超过 127,否则会溢出。示例:
2.精度问题:
浮点类型(float
和 double
)在计算时可能存在精度丢失问题。示例:
3.自动类型转换:
小范围类型可以自动转换为大范围类型(如 int
转 long
),但大范围类型转换为小范围类型时需要强制类型转换。示例:
4.包装类:
Java 为每种基本数据类型提供了对应的包装类(如 Integer
、Double
等),用于将基本数据类型转换为对象。示例:
基本数据类型如下代码:
整数拓展(进制)、浮点数拓展、字符拓展、转义字符、布尔值拓展等;
注意:定义八进制整数时候必须在该数的前面加一个0,定义十六进制的时候在数前面加0X或0x
练习代码:
类型转换
在 Java 中,类型转换是将一种数据类型的值转换为另一种数据类型的过程。Java 中的类型转换分为两种:自动转换(隐式类型转换)和强制转换(显式类型转换)
自动转换
规则:
-
从小范围类型向大范围类型转换。
-
例如:
byte -> short -> int -> long -> float -> double
。示例:
强制转换
强制转换是指程序员手动将一种数据类型转换为另一种数据类型,通常发生在以下情况:
-
目标类型比源类型范围更小。
-
转换可能导致数据丢失或精度损失。
语法:
示例:
类型转换的注意事项
(1) 数据丢失
当从大范围类型向小范围类型转换时,可能会导致数据丢失或精度损失。
示例:
(2) 布尔类型不能转换
Java 中的 boolean
类型不能与其他任何类型进行转换。
错误示例:
(3) 字符串与基本类型的转换
-
字符串转基本类型:使用包装类的
parseXxx()
方法。 -
基本类型转字符串:使用
String.valueOf()
或直接拼接。示例:
对象类型转换
在 Java 中,对象类型之间也可以进行类型转换,通常发生在继承关系中。
(1) 向上转型(Upcasting)
将子类对象赋值给父类引用,是自动转换(隐式转换)。
示例:
(2) 向下转型(Downcasting)
将父类对象赋值给子类引用,需要强制转换(显式转换)。
示例:
(3) 类型检查
向下转型时,如果对象不是目标类型,会抛出 ClassCastException
。可以使用 instanceof
进行检查。
示例:
总结
-
自动类型(隐式类型)转换:自动完成,适用于从小范围类型向大范围类型转换。
-
强制类型(显式类型)转换:手动完成,适用于从大范围类型向小范围类型转换,可能导致数据丢失。
-
对象类型转换:向上转型是隐式的,向下转型需要显式转换,并使用
instanceof
进行检查。