Java复习总结一
java复习: java复习总结二
java复习: java复习总结三
202402150378 许景程
前言
Java 前言一般会涉及到它的背景、特点和重要性等内容。
Java 是一门广泛应用的高级编程语言。它诞生于 20 世纪 90 年代,由 Sun Microsystems 公司开发(现在归属于 Oracle 公司)。其设计初衷是为了让程序员能够 “一次编写,到处运行”,这是通过 Java 虚拟机(JVM)来实现的。
Java 的特点众多。它是面向对象的语言,支持封装、继承和多态这些面向对象的基本概念,便于代码的维护和扩展。
一. java概述
1.1 java语言发展史
语言:人与人交流沟通的表达方式
计算机语言:人与计算机之间进行信息交流沟通的一种特殊语言
Java语言是美国Sun公司(Stanford University Network)在1995年推出的计算机语言
Java之父:詹姆斯·高斯林(James Gosling)
1.2 java语言的特点
Java是一门简单的、面向对象的优秀变成语言,它具有跨平台性、可移植性、安全性、健壮性、编译和解释性、高性能和动态性等特点,支持多线程、分布式计算与网络编程等高级特性。
1.简单性
2.面向对象
3.跨平台性
4.可移植性
5.安全性
6.健壮性
7.编译和解释性
8.高性能
9.动态性
10.多线程
11.分布性
1.3 面向对象程序设计思想
面向对象具有抽象、封装、继承、多态等特性,更符合程序设计中“高内聚,低耦合”的主旨。
封装、继承、多态是面向对象的三大特性。
封装:封装是指将对象的状态信息(属性)和行为(方法)隐藏在对象内部,只通过定义好的接口(公共方法)来访问对象的属性。
继承:继承是子类继承父类的特征和行为。子类可以在继承的基础上添加新的属性和方法,或者重写父类的方法。这就像子女会继承父母的某些特征,同时也有自己的个性一样。
多态:多态是指同一种行为(方法)在不同的对象上有不同的表现形式。简单说,就是一个方法调用根据对象的实际类型不同而执行不同的操作。
1.4 代码解析
HelloWorld案例编写。
书写规范:
1、非法字符问题。Java中的符号都是英文格式的。
2、类名首字母大写,单词之间需要用到驼峰写法。Java语言对大小写敏感(区分大小写)。
3、类名只能由数字、字母、下划线、美元符号$组成,并且第一个字符不能是数字。类名与文件名一致。
4、一个Java类源文件中至多只有一个类能用public声明,并且public修饰的类必须与文件名一致。
代码如下:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("HelloWorld");
}
}
public class 是Java中两个关键字,声明一个公共类。
HelloWorld 是这个类的主类名(区分大小写)
public static void main 是Java的main()方法。main()方法是程序的入口。
二、Java基础
2.1关键字和保留字
#pic_center =500x300
2.2 数据类型
2.2.1 Java数据类型
2.2.2 占用空间
2.3 运算符
2.3.1算术运算符
2.3.2 赋值运算符
2.3.3 关系运算符
运算符 | 描述 |
---|---|
< | 大于 |
> | 小于 |
== | 等于,一个“=” 是赋值运算符 |
>= | 大于或等于 |
<= | 小于或等于 |
!= | 不等于 |
2.3.4 逻辑运算符
符号 | 作用 | 说明 |
---|---|---|
& | 逻辑与 | a&b,a和b都是true,结果为true,否则为false |
I | 逻辑或 | aIb,a和b都是false,结果为false,否则为true |
^ | 逻辑异或 | a^b,a和b结果不同为true,相同为false |
! | 逻辑非 | !a,结果和a的结果正好相反 |
2.4 选择结构
2.4.1 if语句
if (关系表达式) {
语句体1;
} else {
语句体2;
}
2.4.1 switch语句
switch (表达式) {
case 1:
语句体1;
break;
case 2:
语句体2;
break;
...
default:
语句体n+1;
break;
}
2.5 循环结构
2.5.1 for语句
for (初始化语句;条件判断语句;条件控制语句) {
循环体语句;
}
2.5.2 while语句
初始化语句;
while (条件判断语句) {
循环体语句;
条件控制语句;
}
2.5.3 do…while语句
初始化语句;
do {
循环体语句;
条件控制语句;
}while(条件判断语句);
三种循环的区别
for循环和while循环先判断条件是否成立,然后决定是否执行循环体(先判断后执行)
do…while循环先执行一次循环体,然后判断条件是否成立,是否继续执行循环体(先执行后判断)
for循环和while的区别
条件控制语句所控制的自增变量,因为归属for循环的语法结构中,在for循环结束后,就不能再次被访问到了
条件控制语句所控制的自增变量,对于while循环来说不归属其语法结构中,在while循环结束后,该变量还可以继续使用
死循环(无限循环)的三种格式
for(;; ){}
while(true){}
do {} while(true);
2.6 break 和 continue 语句
break:break语句用于终止最内层的循环或者switch语句。当程序执行到break语句时,会立即跳出当前循环或switch结构,继续执行后面的代码。(如果是在多层嵌套循环中,break语句只会跳出它所在的最内层循环。)
continue:continue语句用于跳过当前循环中剩余的语句,然后直接开始下一次循环。它不会像break那样终止整个循环,只是跳过当前这一轮循环中的部分代码。
2.7 方法
一个完整的方法定义包括方法修饰符、返回类型、方法名、参数列表和方法体。
方法的参数传递
值传递:在 Java 中,基本数据类型(如 int、double、char 等)作为参数传递时是值传递。这意味着在方法内部对参数的修改不会影响到方法外部的原始变量。
public class Main {
public static void main(String[] args) {
int num = 10;
changeValue(num);
System.out.println(num); // 输出仍然是10
}
public static void changeValue(int n) {
n = 20;
}
}
引用传递:对于对象类型(如类的实例),参数传递是引用传递。当把对象作为参数传递给方法时,方法内部可以通过引用来修改对象的属性。
class Person {
int age;
}
public class Main {
public static void main(String[] args) {
Person p = new Person();
p.age = 30;
changeAge(p);
System.out.println(p.age); // 输出31
}
public static void changeAge(Person person) {
person.age++;
}
}
2.7.1 方法重载
方法重载是指在同一个类中,可以有多个方法名相同但参数列表不同(参数的数量、类型或者顺序不同)的方法。
public class Calculator {
public int add(int a, int b) {
return a + b;
}
public double add(double a, double b) {
return a + b;
}
}
2.8 数组
定义:在 Java 中,数组是一种用于存储同类型数据的容器。
以下是初始化格式:
第一种:
int[] arr = new int[];
double[] arr= new double[];
char[] arr= new char[];
---------
第二种:(不推荐)
int arr[]= new int[]{};
double arr[]= new double[]{};
char arr[]= new char[]{};
---------
第三种:
int arr = {};
double arr = {};
char arr = {};
2.8.1 元素访问
每一个存储到数组的元素,都会自动的拥有一个编号,从0开始。
这个自动编号称为数组索引(index),可以通过数组的索引访问到数组中的元素。
数组名[索引];
public class ArrayTest01 {
public static void main(String[] args) {
//定义一个数组
int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
//数组元素访问
System.out.println(arr[0]);//1
System.out.println(arr[1]);//2
System.out.println(arr[2]);//3
//修改数组中的某个元素
arr[4] = 330;
System.out.println(arr[4]);//330
//数组元素访问注音事项 数组索引必须在有效的范围内
//否则会抛出ArrayIndexOutOfBoundsException
System.out.println(arr[11]);
}
}
2.8.2 数组遍历
数组遍历:就是将数组中的每个元素分别获取出来,就是遍历。遍历也是数组操作中的基石。数组的索引是 0 到 lenght-1 ,可以作为循环的条件出现。
public class ArrayTest02 {
public static void main(String[] args) {
//定义数组
int[] arr = {11, 22, 33, 44, 55};
//使用通用的遍历格式
for(int x=0; x<arr.length; x++) {
System.out.println(arr[x]);
}
}
}
2.8.3 数组最值
最大值获取:从数组的所有元素中找出最大值。
实现思路:
- 定义变量,保存数组0索引上的元素
- 遍历数组,获取出数组中的每个元素
- 将遍历到的元素和保存数组0索引上值的变量进行比较
- 如果数组元素的值大于了变量的值,变量记录住新的值
- 数组循环遍历结束,变量保存的就是数组中的最大值
public class ArrayTest03 {
public static void main(String[] args) {
//定义数组
int[] arr = {12, 45, 98, 73, 60};
//定义一个变量,用于保存最大值
//取数组中第一个数据作为变量的初始值
int max = arr[0];
//与数组中剩余的数据逐个比对,每次比对将最大值保存到变量中
for(int x=1; x<arr.length; x++) {
if(arr[x] > max) {
max = arr[x];
}
}
//循环结束后打印变量的值
System.out.println("max:" + max);
}
}
2.9 Java内存分配
栈:方法运行时使用的内存,比如main方法运行,进入方法栈中执行
堆:存储对象或者数组,new来创建的,都存储在堆内存
方法区:存储可以运行的class文件
本地方法栈:JVM在使用操作系统功能的时候使用
寄存器:给CPU使用
总结:
1.只要是new出来的一定是在堆空间里面开辟来了一个小空间
2.如果new了多次,就会在堆空间中开辟多个小空间
3.引用类型在堆空间中的特点和js一样,引用类型赋值给另一个引用的是地址
总结
- 该文档涵盖了 Java 的多个方面。首先介绍了 Java 的背景,包括诞生、发展和其重要的设计初衷。Java 具有多种特性,如简单性、面向对象性、跨平台性等,其中面向对象特性包含抽象、封装、继承和多态等,为代码设计带来高内聚低耦合优势。基础部分包括关键字、数据类型、运算符等,还有选择结构(if、switch)、循环结构(for、while、do…while)及它们的特点和区别,break 与 continue 语句的使用。方法部分涉及完整定义、参数传递(值传递和引用传递)以及方法重载。数组部分介绍了初始化、元素访问、遍历和最值的计算方法。最后提到 Java 的内存分配,栈用于方法运行,堆存储对象和数组,方法区存 class 文件,本地方法栈供 JVM 使用操作系统功能,寄存器给 CPU 用。
- Java 作为一门广泛使用的编程语言,知识体系丰富。从基础语法到高级特性,为程序开发提供了强大支持。学习这些基础知识可以为深入开发打下坚实基础。
前两章复习内容基本写完了。后续章节内容会附上链接。
如有写的不对的地方,烦请大家指出。多谢观看!