二、java基础语法
Java基础语法
二、Java基础语法
1.注释
Java中的注释分为三种:
- 单行注释:
// 这是单行注释文字
- 多行注释:
/*
这是多行注释文字
这是多行注释文字
这是多行注释文字
*/
注意:多行注释不能嵌套使用。
- 文档注释(暂时用不到):
/**
这是多行注释文字
这是多行注释文字
这是多行注释文字
*/
注意点:
? 注释的内容不会参与编译和运行的,仅仅是对代码的解释说明而已。
? 所以,不管在注释当中写什么内容,都不会影响代码运行的结果。
2.字面量
在Java中,字面量是指程序中直接出现的常数值或字符串。它们是一些固定的值,不需要计算或者查找,可以直接使用。
Java支持以下几种类型的字面量:
- 整数字面量:由数位序列组成,包括十进制、二进制(以0b或0B开头)、八进制(以0开头)和十六进制(以0x或0X开头)。
- 浮点数字面量:由数值和指数组成,包括普通浮点数(如1.23)和科学计数法表示的浮点数(如1.23e2)。
- 字符字面量:用单引号包围的一个字符,如’a’或’b’。
- 字符串字面量:用双引号包围的一组字符组成的字符串,如"Hello, World!"。
- 布尔字面量:只有两个值,true和false。
- null字面量:表示一个空对象引用(null不能直接打印,如果想直接打印,需要以字符串的形式打印) 。
字面量类型 | 说明 | 程序中的写法 |
---|---|---|
整数 | 不带小数的数字 | 666,-88 |
小数 | 带小数的数字 | 13.14,-5.21 |
字符 | 必须使用单引号,有且仅能一个字符 | ‘A’,‘0’, ‘我’ |
字符串 | 必须使用双引号,内容可有可无 | “HelloWorld”,“黑马程序员” |
布尔值 | 布尔值,表示真假,只有两个值:true,false | true 、false |
空值 | 一个特殊的值,空值(null不能直接打印,如果想直接打印,需要以字符串的形式打印) | 值是:null |
public class Demo {
public static void main(String[] args) {
System.out.println(66); // 输出一个整数
System.out.println(5.21); // 输出一个小数
System.out.println('a'); // 输出一个字符
System.out.println(true); // 输出boolean值true
System.out.println(false); // 输出boolean值false
System.out.println("null"); // 输出字符串null
System.out.println("Java程序"); // 输出字符串
}
}
3.变量
变量是一个用于存储和表示数据的标识符(identifier),用于引用计算机内存中的一个位置或值。
变量可以存储各种不同类型的数据,例如数字、字符、字符串、布尔值等。
3.1 定义格式
? 数据类型 变量名 = 数据值;
【注】不可以忘了分号“;”
Java语句的结束需要添加分号!!!
3.2 注意事项
- 变量名不能重复
- 在一条语句中,可以定义多个变量。但是这种方式影响代码的阅读,所以了解一下即可。
- 变量在使用之前必须要赋值。
4. 数据类型
Java中有两种基本的数据类型:原始数据类型和引用数据类型。
原始数据类型是Java语言预定义的基本数据类型,用于存储简单的值
而引用数据类型则是对对象的引用。
4.1 基本数据
Java的原始数据类型可以分为以下几类:
- 整数类型:byte、short、int、long
- 浮点数类型:float、double
- 字符类型:char
- 布尔类型:boolean
数据类型 | 关键字 | 内存占用 | 取值范围 |
---|---|---|---|
整数 | byte | 1 | 负的2的7次方 ~ 2的7次方-1(-128~127) |
short | 2 | 负的2的15次方 ~ 2的15次方-1(-32768~32767) | |
int | 4 | 负的2的31次方 ~ 2的31次方-1 | |
long | 8 | 负的2的63次方 ~ 2的63次方-1 | |
浮点数 | float | 4 | 1.401298e-45 ~ 3.402823e+38 |
double | 8 | 4.9000000e-324 ~ 1.797693e+308 | |
字符 | char | 2 | 0-65535 |
布尔 | boolean | 1 | true,false |
e+38表示是乘以10的38次方,同样,e-45表示乘以10的负45次方。
在java中整数默认是int类型,浮点数默认是double类型。
整数类型和小数类型的取值范围大小关系:double > float > long > int > short > byte
这些原始数据类型具有不同的存储容量和取值范围,可以根据需求选择适当的类型来存储数据。
最为常用的数据类型选择:
-
在定义变量的时候,要根据实际的情况来选择不同类型的变量。
比如:人的年龄,可以选择byte类型。
比如:地球的年龄,可以选择long类型。
-
如果整数类型中,不太确定范围,那么默认使用int类型。
-
如果小数类型中,不太确定范围,那么默认使用double类型。
-
如果要定义字符类型的变量,那么使用char
-
如果要定义布尔类型的变量,那么使用boolean
从内存的角度解释:
- 数据值是存储在自己的空间中的
- 赋值给其他变量,赋的是真实的值
4.2 引用数据类型
在Java中,引用数据类型是通过类、接口和数组来表示的。
Java提供了一些内置的引用数据类型,例如:
-
类类型:用于创建对象的类,例如String、Integer等。
-
接口类型:用于声明接口,例如List、Map等。
-
数组类型:用于存储一组相同类型的元素的数据结构。
引用数据类型存储的是对象的引用,而不是对象本身。通过引用,我们可以操作对象的属性和方法。
从内存的角度解释:
- 数据值是存储在其他空间中的,自己空间中存储的是地址值
- 赋值给其他变量,赋的是地址值
4.3 自定义数据类型
此外,Java还支持自定义的数据类型,我们可以使用类和接口来定义自己的数据类型。
在Java中,我们可以使用类和接口来定义自定义的数据类型。
自定义数据类型可以更好地满足程序的需求,提高程序的可读性、可维护性和灵活性。
定义一个类可以使用以下语法格式:
class 类名 {
// 类的成员变量和方法
}
在类中,我们可以定义一些成员变量来存储数据,以及一些方法来操作数据。例如,下面的代码定义了一个Person类,该类包括姓名和年龄两个成员变量,并且提供了getName和getAge两个方法来获取这些成员变量的值:
class Person {
String name; // 姓名
int age; // 年龄
String getName() {
return name;
}
int getAge() {
return age;
}
}
我们创建一个Person对象可以使用以下语句:
Person person = new Person();
person.name = "Alice";
person.age = 25;
在这个示例中,我们使用new操作符创建了一个Person对象,并使用.运算符给name和age成员变量赋值。
除了类之外,Java还可以使用接口来定义自定义数据类型。
一个接口是一个抽象的数据类型,它包含了一组方法的声明。可以将接口看作是一种能力或者协议,我们可以让类实现接口来具备这些能力或者遵守这些协议。
例如,下面的代码定义了一个Drawable接口,包含了一个draw方法的声明:
interface Drawable {
void draw();
}
如果一个类实现了这个接口,就必须实现draw方法。这样,我们就可以将这个类看作是可绘制的(Drawable)。
5.标识符
在Java语言中,标识符(identifier)是用来标识Java程序中各种元素的命名,包括类名、方法名、变量名、常量名等。
5.1 命名规则
Java标识符的命名有一定的规则,下面是Java标识符的一些要求:
- Java标识符只能由字母、数字、下划线(_)和美元符号($)组成。
- Java标识符的第一个字符必须是字母或者下划线(_)或者美元符号($)。
- Java标识符不能是Java的关键字和保留字,这些都是Java中使用的特殊单词和符号,例如class、public、private等。
- Java标识符是区分大小写的。
根据以上规则,以下都是合法的Java标识符:
age
_firstName
$lastName
isValid
MAX_VALUE
以下则是不合法的Java标识符:
1name // 不能以数字开头
first-name // 不能包含连续的横线
class // 不能使用Java的关键字
5.2 小驼峰命名法
当在Java中使用驼峰命名法来命名标识符时,一般有两种规则:小驼峰命名法(camel case)和大驼峰命名法(Pascal case)。
小驼峰命名法(camel case):
- 首字母小写。
- 第一个单词的首字母小写,后续单词的首字母大写。
- 例子:firstName、lastName、userName。
一般来说,小驼峰命名法适用于变量、方法、参数和局部变量等。
以下是一些示例,展示了小驼峰命名法和大驼峰命名法的应用:
// 小驼峰命名法
public class student{
int studentId;
String firstName;
void myFunction();
int numberOfStudents;
}
5.3 大驼峰命名法
大驼峰命名法(Pascal case):
-
首字母大写。
-
每个单词的首字母都大写。
-
例子:Person、HelloWorld、MyClass。
大驼峰命名法适用于类、接口、枚举和常量等。
// 大驼峰命名法
class Person {
String firstName;
int age;
void sayHello();
}
5.4 阿里巴巴命名规范细节:
-
尽量不要用拼音。但是一些国际通用的拼音可视为英文单词。
正确:alibaba、hangzhou、nanjing
错误:jiage、dazhe
-
平时在给变量名、方法名、类名起名字的时候,不要使用下划线或美元符号。
错误:_name
正确:name
6.运算符和表达式
运算符和表达式
(之后章节会详细讲到)
7 转换
在Java中,我们经常需要将一种数据类型转换为另一种数据类型。
这种转换通常分为两种类型:
- 隐式转换
- 强制转换
7.1 隐式转换
隐式转换指的是Java自动将一种数据类型转换为另一种兼容的数据类型。
例如,当一个整数类型的值赋值给一个浮点数类型变量时,Java将自动执行一个从整数类型到浮点数类型的转换。
此时不需要我们额外写代码单独实现,是程序自动帮我们完成的。
1.下面是一些常见的隐式转换的规则:
-
byte类型 -> short类型 -> int类型 -> long类型 -> float类型 -> double类型
-
所有整数类型(即 byte, short, int, long 和 char )都可以自动转换为浮点型(即 float 或 double)。
2.提升规则:
- 取值范围小的,和取值范围大的进行运算,小的会先提升为大的,再进行运算。
- byte、short、char三种类型的数据在运算的时候,都会直接先提升为int,然后再进行运算。
7.2 强制转换
强制类型转换指的是将一个数据类型显式地转换为另一个数据类型。
语法如下:
(目标类型) 原始数据;
例如,将一个double类型转为int类型,可以使用如下代码:
double d = 2.5;
int i = (int) d;
需要注意一下几点:
- 强制类型转换可能导致信息的丢失或精度的损失。因此,我们需要谨慎地使用强制类型转换。
- 只能对兼容的数据类型进行转换,否则会编译错误。
- 在进行强制类型转换时,需要考虑目标类型的取值范围,如果原始数据超过了目标类型的取值范围,将会产生错误的结果。
8 字符串或字符的"+"操作
- 字符串的加法操作是用于字符串连接
- 字符的加法操作是用于ASCII码相加
8.1 字符串的"+"操作
字符串的加法操作(字符串连接):字符串的加法操作(+)用于连接两个字符串,产生一个新的字符串。
- 当+操作中出现字符串时,此时就是字符串的连接符,会将前后的数据进行拼接,并产生一个新的字符串。
- 当连续进行+操作时,从左到右逐个执行的。
例如:
String str1 = "Hello";
String str2 = "world";
String result = str1 + " " + str2;
System.out.println(result);
输出结果为:“Hello world”。在此例中,str1和str2是两个字符串,通过加法操作进行了连接,并赋值给result变量。
8.2 字符的"+"操作
字符的加法操作(ASCII码相加): 字符的加法操作(+)实际上是将字符的ASCII码值相加,得到一个整数结果。例如:
- 当+操作中出现了字符,会拿着字符到计算机内置的ASCII码表中去查对应的数字,然后再进行计算。
char c1 = 'A';
char c2 = 'B';
int result = c1 + c2;
System.out.println(result);
输出结果为:131。在此例中,c1和c2是两个字符,通过加法操作将它们的ASCII码值相加得到131。
9. 流程控制语句
流程控住语句
(在之后章节有详细总结)
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!