第1章和第二2章
第1章
1.1 计算机编程语言发展史
(1)机器语言——》汇编语言——》高级语言
(2)被誉为java语言之父的是:詹姆斯
(3)Java语言的特点:扩平台性
1.42Java跨平台的原理
每个支持Java的操作系统都有一个对应的JVM实现。JVM负责解释或即时编译(Just-In-Time Compilation, JIT)字节码,并将其转换成适合当前操作系统的本地机器指令
1.5 JDK和JRE
(1)开发java语言代码==》JDK
(2)运行JAVA代码 ==》JRE
第2章:Java 编程基础
2.1 Java 程序结构
-
源文件:每个Java源文件通常包含一个公共类(public class),其名称必须与文件名相同。
-
包声明:使用
package
关键字指定该文件所属的命名空间。例如:package com.example;
-
导入语句:通过
import
关键字引入其他包中的类或接口。例如:import java.util.Scanner;
-
类定义:Java程序的基本构建块,由属性(字段)、构造器和方法组成。
-
主方法:每个Java应用程序至少需要一个
main
方法作为入口点,格式为: -
源文件:每个Java源文件通常包含一个公共类(public class),其名称必须与文件名相同。
-
包声明:使用
package
关键字指定该文件所属的命名空间。例如:package com.example;
-
导入语句:通过
import
关键字引入其他包中的类或接口。例如:import java.util.Scanner;
-
类定义:Java程序的基本构建块,由属性(字段)、构造器和方法组成。
-
主方法:每个Java应用程序至少需要一个
main
方法作为入口点,格式为:public static void main(String[] args) { // 程序从这里开始执行 }
-
2.2 数据类型
变量:用于存储可以改变的数据值。声明时需指定数据类型。例如:
int count
-
基本数据类型:
- 整数类型:
byte
,short
,int
,long
。例如:int age = 25;
- 浮点类型:
float
,double
。例如:double pi = 3.14159;
- 字符类型:
char
。例如:char grade = 'A';
- 布尔类型:
boolean
。例如:boolean isStudent = true;
- 整数类型:
-
引用数据类型:
- 类:如
String
、自定义类等。 - 数组:存储相同类型的多个元素。例如:
int[] numbers = {1, 2, 3};
- 接口:定义行为规范,但不实现具体逻辑。
- 类:如
2.3 变量与常量
-
- 变量:用于存储可以改变的数据值。声明时需指定数据类型。例如:
int count = 0;
- 常量:使用
final
关键字声明,一旦赋值就不能更改。例如:final double PI = 3.14159;
-
2.54控制结构
- 选择结构:
- if语句:根据条件执行不同的代码块。例如:
-
123
if
(temperature >
30
) {
System.out.println(
"It's hot outside."
);
}
switch语句:多分支选择,适用于离散值。例如:
-
12345678910
switch
(dayOfWeek) {
case
"Monday"
:
System.out.println(
"Start of the week"
);
break
;
case
"Friday"
:
System.out.println(
"End of the work week"
);
break
;
default
:
System.out.println(
"Another day"
);
}
循环结构:
- for循环:已知次数的重复执行。例如:
-
123
for
(
int
i =
0
; i <
10
; i++) {
System.out.println(i);
}
while循环:未知次数的重复执行,直到条件不再满足。例如:
-
12345
int
counter =
0
;
while
(counter <
5
) {
System.out.println(counter);
counter++;
}
do-while循环:至少执行一次,然后根据条件决定是否继续。例如:
-
123
do
{
System.out.println(
"This will print at least once"
);
}
while
(
false
);
-
跳转语句:
- break:立即退出最内层循环或switch语句。
- continue:跳过当前循环体中剩余部分,直接进入下一次迭代。
- return:从方法中返回,可选带返回值。
2.6 方法(函数)
-
定义方法:方法是一段完成特定任务的代码块,可以通过调用来复用。例如:
-
123
public
void
greet() {
System.out.println(
"Hello!"
);
}
参数传递:
- 方法可以接受零个或多个参数,用于传递外部数据。例如:
-
123
public
void
greet(String name) {
System.out.println(
"Hello, "
+ name +
"!"
);
}
返回值:方法可以有返回值,指定返回的数据类型。例如:
-
123
public
int
add(
int
a,
int
b) {
return
a + b;
}
重载(Overloading):
- 同一方法名可以有不同的参数列表,编译器会根据参数类型和数量自动选择合适的方法。例如:
-
12
public
void
display(
int
number) {
/* ... */
}
public
void
display(String message) {
/* ... */
}
2.7 数组
数组是用于存储固定数量相同类型元素的数据结构。它们可以是一维或多维的,并且提供了对多个数据项进行操作的便捷方式。一维数组:
- 声明和初始化:可以通过指定大小或直接赋值来创建数组。、
- 可以使用for循环或者增强的for-each循环来遍历数组。
-
for (int i = 0; i < numbers.length; i++) { System.out.println(numbers[i]); } for (String name : names) { System.out.println(name); }
2.8 JVM中的堆内存与栈内存
- 堆内存(Heap Memory):
- 用途:主要用于存储对象实例和大型数据结构。所有通过
new
关键字创建的对象都分配在堆上。特点:- 堆是一个共享资源,由整个应用程序的所有线程共同使用。
- 对象的生命周期独立于创建它的方法或作用域。
- 垃圾回收机制自动管理堆上的内存释放,开发者无需手动干预。
- 栈内存(Stack Memory):
-
用途:用于存储局部变量、方法参数以及方法调用信息(如返回地址)。每个线程都有自己的私有栈。
-
特点:
栈的操作非常快,因为它是按后进先出(LIFO)原则组织的。
局部变量的生命周期仅限于其所在的方法或代码块。当方法调用结束时,相关联的栈帧会被弹出,占用的空间也会被释放。
-
堆栈交互:
- 方法内部声明的对象引用通常存放在栈上,而实际的对象则存放在堆上。
- 如果一个方法接收对象作为参数,那么传递的是该对象的引用(即地址),而不是对象本身。
- 返回值如果是对象,则同样只返回引用。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理