Java语言基础
标识符|注释符
标识符
Java语言中,对变量、方法和类等命名时使用的字符序列称为标识符。
-
Java的命名规则如下
- 标识符由字母、下划线“_”、美元符号“$”或数字组成
- 标识符应以字母、下划线、美元符号开头(不能用数字开头)
- Java标识符区分大小写,长度不限
- 标识符不能时Java的关键字
注意:Java采用的是Unicode字符集。
规范化命名:
①类和接口名:采用大小写混合形式,且每个英文单词首字母大写,不要空格。如:HelloWorld
②方法名:首个单词首字母小写,其余单词首字母大写,称为驼峰命名法。如:myName
③常量名:全大写,且单词之间用下划线分隔,对象常量名可大小写混合。如:SIZE_NAME
注释符
-
单行注释://
- 仅一行被注释
-
多行注释:/* ...... */
- 注释若干行,又称为块注释
-
文档注释:/** ...... */
- 注释若干行,并写入javadoc文档
数据类型
定义:Java语言是强类型语言,对于每一种数据都定义了明确的具体的数据类型,在内存中分配了不同大小的内存空间。
分类:
-
基本数据类型
-
数值型
- 整数类型(byte,short,int,long)
- 浮点类型(float,double)
-
字符型(char)
-
布尔型(boolean)
-
-
引用数据类型
- 类(class)
- 接口(interface)
- 数组([])
整型
| 整型类型 | 整形长度 |
|---|---|
| byte | 8位 |
| short | 16位 |
| int | 32位 |
| long | 64位 |
| 整型类型 | 最大值 | 最小值 |
|---|---|---|
| int | Integer.MAX_VALUE | Integer.MIN_VALUE |
| long | Long.MAX_VALUE | Long.MIN_VALUE |
浮点型
| 浮点类型 | 字节长度 |
|---|---|
| float | 32位 |
| double | 64位 |
注:小数默认为double类型。也可以在数值后加D或d、F或f作为double、float类型
BUG:
double a = 0.1 + 0.2 ;
System.out.println(a);//0.30...04
字符类型
使用char类型表示单个字符,占16位
char类型的常量必须在一对单引号内
布尔类型
boolean,占一个字节
字符串类型
Java概述→字符串
基本数据类型
八大基本数据类型:
byte short int long double float boolean char
- 这八种数据变量中直接存储值
- 其中byte占一个字节
- short和char占两个字节
- int,float占四个字节
- double和long占8个字节
- boolean只有true和false
注意:八大基本数据类型对应着各自的封装类型的包装类,提供了更多的方法,且不进行初始化时值默认为空(基本数据类型必须初始化),并且属于引用类型。
引用数据类型
引用类型主要是一些类、接口、数组 引用类型变量中存储的是地址,对应的地址存储数据
包装类
概述
Java 为每种基本数据类型分别设计了对应的类,称之为包装类(Wrapper Classes),也有地方称为外覆类或数据类型类。
| 基本数据类型 | 包装类 |
|---|---|
| byte | Byte |
| short | Short |
| int | Integer |
| long | Long |
| char | Character |
| double | Double |
| float | Float |
| boolean | Boolean |
装箱和拆箱
装箱:基本数据类型转换为包装类的过程称为装箱,例如把 int 包装成 Integer 类的对象。
拆箱:包装类变为基本数据类型的过程称为拆箱,例如把 Integer 类的对象重新简化为 int。
手动拆箱装箱:手动实例化一个包装类称为手动拆箱装箱。Java 1.5 版本之前必须手动拆箱装箱。
自动拆箱装箱:在进行基本数据类型和对应的包装类转换时,系统将自动进行装箱及拆箱操作。
实例:
public class Demo {
public static void main(String[] args) {
int m = 500;
Integer obj = m; // 自动装箱
int n = obj; // 自动拆箱
System.out.println("n = " + n);
Integer obj1 = 500;
System.out.println("obj等价于obj1返回结果为" + obj.equals(obj1));
}
}
//运行结果
n = 500
obj等价于obj1返回结果为true
应用
1) 实现 int 和 Integer 的相互转换
可以通过 Integer 类的构造方法将 int 装箱,通过 Integer 类的 intValue 方法将 Integer 拆箱。例如:
public class Demo {
public static void main(String[] args) {
int m = 500;
Integer obj = new Integer(m); // 手动装箱
int n = obj.intValue(); // 手动拆箱
System.out.println("n = " + n);
Integer obj1 = new Integer(500);
System.out.println("obj等价于obj1的返回结果为" + obj.equals(obj1));
}
}
//运行结果
n = 500
obj等价于obj1的返回结果为true
2) 将字符串转换为数值类型
在 Integer 和 Float 类中分别提供了以下两种方法:
-
Integer 类(String 转 int 型)
- int parseInt(String s);
- s 为要转换的字符串。
-
Float 类(String 转 float 型)
- float parseFloat(String s)
-
注意:使用以上两种方法时,字符串中的数据必须由数字组成,否则转换时会出现程序错误。
字符串转换为数值类型的例子:
public class Demo {
public static void main(String[] args) {
String str1 = "30";
String str2 = "30.3";
// 将字符串变为int型
int x = Integer.parseInt(str1);
// 将字符串变为float型
float f = Float.parseFloat(str2);
System.out.println("x = " + x + ";f = " + f);
}
}
//运行结果:
x = 30;f = 30.3
3) 将整数转换为字符串
Integer 类有一个静态的 toString() 方法,可以将整数转换为字符串。
例如:
public class Demo {
public static void main(String[] args) {
int m = 500;
String s = Integer.toString(m);
System.out.println("s = " + s);
}
}
//运行结果
s = 500
数据类型转换
数据类型的转换方式分为“自动类型转换”和“强制类型转换”。
转换的一般原则是低精度数据类型转换为高精度数据类型参与运算。
自动类型转换
bye→short→int→long→float→double
Java会在下列的条件皆成立时,自动转换: ①转换前的数据类型与转换后的类型兼容; ②转换后的数据类型的表示范围比转换前的类型大。
类型范围小的变量,可以直接赋值给类型大的变量
如:
byte a = 12;
int b = a;
强制类型转换
语法:
(要转换的数据类型) 变量名称;
如:
int a = 3;
byte b = (byte) i;
注:转换过程中可能会丢失数据的精度。
运算符
算术运算符
- 一元运算符
| 运算符 | 用法 | 描述 |
|---|---|---|
| + | +a | a取正值 |
| - | -a | a取负值 |
| ++ | ++a | 先加1,再使用 |
| ++ | a++ | 先使用,再加1 |
| -- | --a | 先减1,再使用 |
| -- | a-- | 先使用,再减1 |
- 二元运算符
| 运算符 | 表达式 | 描述 |
|---|---|---|
| + | a + b | 两数相加 |
| - | a - b | 两数相减 |
| * | a * b | 两数相乘 |
| / | a / b | 两数相除 |
| % | a % b | 取余 |
注意:
+:可作连接运算符。能算就算,不能算就相连
char类型在运算时会先转换为数值
关系运算符
有>、<、>= 大于或者等于、<= 小于或者等于、!=
操作结果是一个布尔类型
逻辑运算符
| 运算符 | 表达式 | 描述 |
|---|---|---|
| &&(短路与) | a && b | 全真则真,若左为false则右不执行 |
| 11(短路或) | a 11 b | 一真则真,若左为true则右不执行 |
| &(逻辑与) | a & b | 全真则真,右一直执行 |
| 1(逻辑或) | a 1 b | 一真则真,右一直执行 |
| ^(逻辑异或) | a ^ b | 两面结果相同则为false,不同则为true |
| !(逻辑非) | ! a | 取反 |
注意:上方的或(1)即是符号||。
其他运算符
| 运算符 | 用法 | 功能 |
|---|---|---|
| ?:(三元运算符) | a ? b : c | 若a为true,则返回b,否则返回c |
拓展
输入语句
// 1、在程序首部导入Scanner类
import java.util.Scanner;
// 2、在主方法中创建Scanner类的对象
// 创建对象的格式:类名称 对象名 = new 类名称([]); 其中[]为参数。如:
Scanner sr = new Scanner(System.in); // Scanner类;sr为对象名;参数为System.in
// 3、利用对象调用不同的方法实现不同数据类型的输出
// ①输出整型数:变量名 = 对象名.nextInt();
// ②输出单精度实型数:变量名 = 对象名.nextFloat();
// ③输出字符型:变量名 = 对象名.next();
mima = sr.nextInt(); // mima为变量名;sr为对象名
Random随机数
// 1、导包,告诉程序取JDK的哪个包找此技术
import java.util.Random;
// 2、得到随机数对象
Random r = new Random();
// 3、调用随机数的功能获取0-9的数
int number = r.nextInt(10);
注:nextInt(n)功能只能生成 0至n-1 之间的数