Java 基础
一.基本开发步骤
- 编写代码,形成 文件名.java 源代码文件
文件名称继续为java为结尾文件名称必须与类名称一致
- 使用 javac 编译,形成 filename.class 字节码文件
cmd:javac filename.java
- 使用 java 运行
cmd:java filename (绝对绝对不要写 .class !!!)JDK11 以上才能直接运行 java 文件
二、JDK的组成
JDK ( Java Development Kit ): Java 开发工具包
-
开发工具: Java、Javac ……
-
JRE ( Java Runtime Environment ): Java 的运行环境
- JVM ( Java Virtual Machine ): Java 虚拟机
- 核心类库: Java 自己写好的程序,给予调用
三、字面量
-
整数
-
小数
-
字符:使用单引号,单引号内必须只有一个字符(可为空字符)
- 特殊字符:
- /n :换行
- /t :缩进
-
字符串:使用双引号,可无内容
-
布尔值:true 或 false ,无数值含义
-
空值:null
四、变量
1. 格式:数据类型 变量名称 = 值
2. 一些常用的变量:
- int 整数
- double 小数
- char 字符
3. 注意事项
-
先声明后使用,声明后可以没有值,但使用时必须有值
-
同一域内不能定义名称一样的变量
五、标识符
-
由数字、字母、“_”、汉字和 “$” 组成,但开头不能是数字,取名要见名知意。
-
变量名称首字母小写,后继单词首字母大写。
-
类名称首字母大写,其余与变量名称规则相同。
六、数据类型
- 整形
| byte | short | int | long |
|---|---|---|---|
| 1字节 | 2字节 | 4字节 | 8字节 |
- 浮点型
| float | double |
|---|---|
| 4字节 | 8字节 |
- 字符型
| char |
|---|
| 2字节 |
- 布尔型
| boolean |
|---|
| 1字节 |
- 自动类型转换:
byte -> short -> (char ->) int -> long -> float -> double
- 随机
- Random
七、基本算术运算符
| + | - | * | / | % | ++ |
|---|---|---|---|---|---|
| 加 | 减 | 乘 | 除 | 除余 | 自增 |
| -- | += | -= | *= | /= | %= |
| 自减 | 先加后赋值 | 先减后赋值 | 先乘后赋值 | 先除后赋值 | 先除余后赋值 |
| > | < | >= | <= | == | != |
| 判断是否大于 | 判断是否小于 | 判断是否大于等于 | 判断是否小于等于 | 判断是否相等 | 判断是否不等 |
| & | | | ! | ^ | 条件表达式 ? 值1 : 值2 | |
| 逻辑与 | 逻辑或 | 逻辑非 | 逻辑异或 | 判断条件表达式,是为值1,否为值2 |
八、流程控制结构
1. 分支结构
- if 语句
if ( 条件 ) {
语句;
} else if ( 条件 ) { //必要时可省略
语句;
} else { //必要时可省略
语句;
}
- switch 语句
switch (变量) {
case "xxx": //可以一次只放一个
语句;
break;
case "xxx": case "xxx": case "xxx": …… //多个时可并排放
语句;
break;
default:
语句;
}
2. 循环结构
- for 循环
for( 初始化语句 ; 循环条件 ; 迭代语句 ) { //条件下循环
语句;
}
for( 元素类型 循环变量名:数组名 ) { //整个数组遍历一次
语句;
}
- while 循环:先 while 后 do
初始化语句;
while ( 循环条件 ) {
循环体语句;
迭代语句;
}
- do-while 循环:先 do 后 while
初始化语句;
do {
循环体语句;
迭代语句
} while ( 循环条件 );
3. 跳转关键字
- break :跳出并结束当前所在循环的执行
- continue :跳出当前循环的当次执行
九、数组
所谓的数组其实是存在一连串连续空间的数据,数组名指向该一连串空间的首空间的地址。
- 创建数组
- 数据类型[] 数组名 = new 数据类型[] {元素1,元素2,…… };
- 数据类型 数组名[] = {元素1,元素2,…… };
- 数组的长度
- 数组名.length
3.动态初始化数组
- 数据类型[] 数组名 = new 数据类型[长度];
十、方法
方法是一种语法结构,可以把一段代码封装成一个功能,以便调用。
1.格式
修饰符 返回值类型 方法名 { 形参列表 } {
方法体代码;
return 返回值;
}
- 调用
- 方法名称( 实参列表 );
- 变量 = 方法名称( 实参列表 );
- 参数的传递
- 基本数据类型:传递实参,但不会改变调用前所在函数的数据。
- 引用类型:使用地址传参,会改变地址所在的数据。
- 方法重载
一个类中,出现多个方法名称相同但形参列表不同。
十一、对象
通俗的讲,对象是一个放了数据和操作方法的容器。
首先,需要设计对象,如:
public class Student {
//对象的属性,一般来说有默认值(null或0)
String name;
int age;
...
//对象的方法,处理所需要的信息并返回
public void putImformation() {
...
}
//可以同时有多个方法
public void getScore() {
...
}
}
然后,在需要调用时,可像这样操作:
//创建对象实例,并输入实例信息
Student st1 = new Student();
st1.name = "...";
st1.age = ...;
...
//调用对象里存在的方法
st1.putImformation();
...
同时,也可以通过直接赋值,从而引用对象实例,并可从中作出修改(即将对象的地址直接传给了另一个实例)
//创建实例1
Student st1 = new Student();
st1.name = "...";
st1.age = ...;
...
//创建实例2,直接赋值
Student st2 = st1;
//从中可做出修改,此时会影响 st1
st2.name = "...";
...
注意事项:
- 当堆内存中的对象,没有被任何变量引用(指向)时,就会被判定为内存中的“垃圾”,Java 虚拟机的垃圾回收机制会自动清除掉垃圾对象
十二、this 关键字
如单词所表达,this 关键字用来指当前的对象。
什么是 this 关键字?
- this 就是一个变量,可以用在方法中,来拿到当前对象。
- 哪个对象调用方法,this 就指向哪个对象。
this 关键字有什么用?
- 用来解决变量名称冲突问题,例如:
public class Stduent {
double score; //这是对象里的变量
public void compare(double score) { //这是对象里的方法所接收数据用的变量名
//错误使用示例
if(score > score) {语句;} //此时两个score都指的是最近的变量名。即方法所使用的变量名
//正确使用示例
if(this.score > score) {语句;} //此时前者访问对象里的变量名,后者访问方法所使用的变量名
}
}
十三、构造器与封装
什么?原来对象里可以放多个和对象重名的方法以加强兼容性?
什么是构造器?
- 与类名相同的方法,例如:
public class Student {
//构造器
public Student() {
...
}
}
特点是什么?
- 不能写返回值。
- 与类名同名。
- 打开对象时,会调用构造器,例如:
//对象
public class Student {
public Student() {
System.out.println("无参数构造器被执行了。");
}
public Student(int N) {
System.out.println("有参数构造器被执行了,参数为" + N);
}
public Student(String name, int N) {
System.out.println("多参数构造器被执行了。");
this.name = name;
this.age = N;
}
}
//调用对象的程序
public class Test {
public static void main(String[] args) {
//调用无参数构造器
Student st1 = new Student();
//调用有参数对象构造器
Student st2 = new Student(10);
}
//调用多参数对象构造器
Student st3 = new Student("李华", 10);
System.out.println(st3.name + st3.age);
}
则输出结果为:

注意事项:
- 如果不写构造器,Java会为类自动生成一个无参构造器。
- 若已定义有参数构造器,则Java不自动生成无参构造器,此时应自己手写一个无参数构造器。
什么是封装?
- 将要处理的数据及方法设计到一个对象中。
封装的特点
- 合理隐藏,合理暴露:根据实际需要,将变量或方法利用 public 或 private 来对外公开或隐藏,防止外部程序过度访问对象内容。
十四、实体类
很特殊,特殊到外部只能看到接口,不能看到内部
什么是实体类?
- 是一种特殊形式的类,仅用于保存数据。
- 必须要有一个公共的无参构造器。
- 成员变量都要 private ,并且要对外提供相应的getXxx,setXxx方法。(一般没有其它方法)
附录一:部分常用ASCII码
| 字符 | 字符编号 |
|---|---|
| 0-9 | 48-57 |
| A-Z | 65-90 |
| a-z | 97-122 |

浙公网安备 33010602011771号