Java复习总结

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 作为一门广泛使用的编程语言,知识体系丰富。从基础语法到高级特性,为程序开发提供了强大支持。学习这些基础知识可以为深入开发打下坚实基础。

前两章复习内容基本写完了。后续章节内容会附上链接。
如有写的不对的地方,烦请大家指出。多谢观看!

期末考试题型: 一、 填空题(本题共15空 ,每空1分,共15分。) 二、 单项选择题(本题共20小题,每题1分,共20分。) 三、 是非题(对划“√”,错划“×”,本题共10小题,每题1分,共10分。) 四、 简答题(本题共5小题,每小题5分,共25分。) 五、 程序填空题(本题共5空 ,每空2分,共10分。) 六、 编程题(本题共2小题,每小题10分,共20分。) 二、填空题 1、Java语言是一种完全的_面相对象___程序设计语言。 2、布尔型常量有两个值,它们分别是_true__、_false___。 3、在定义一个方法时,一般都要指明该方法的返回值类型,如果它不返回任何值,则必须将其声明成 void 。 4、在Java语言环境中已经包含了一组相关的核心类库,它们属于Java.lang包。 5、写出完整的main方法的声明 public static void main(String args[]) 。 6、要设计一个Applet小程序,必须先引入包 java.applet 。 7、设x=2.5,a=7,y=4.7,算术表达式x+a%3*(int)(x+y)%2/4的值为:2.75___ 8、被关键字_final___修饰的方法是不能被当前类的子类重新定义的方法。 9、Java中类成员的限定词有以下几种:private, _protected__, public__, 默认友好。 10、基类的公有成员在派生类中的访问权限由_基类___决定。 11、用static修饰的方法,称为静态方法。它们不是对象的方法,而是整个类的方法。静态方法只能处理用关键字_static___修饰的数据。 12、在Java中有一种叫作__构造方法__的特殊方法,我们在程序中用它来对类的对象成员进行初始化。 13、面向对象技术具有_封装性___、_继承性___、_抽象性___、多态性等特性。 14、Java中所有类都是类 _Object___的子类。 15、顺序执行以下两个语句的输出结果是: 10 。 String s = “我喜欢学习Java!”; System.out.println(s.length( )); 16、据程序的构成和运行环境的不同,Java源程序分为两大类: Application 程序和 Applet 程序。 17、如果一个Java源程序文件中定义有4个类,则使用Sun公司的JDK编译器javac编译该源程序文件将产生 4 个文件名与类名相同而扩展名为 class 的字节码文件。 18、开发与运行Java程序需要经过的三个主要步骤为 编辑源文件 、 编译器编译生成字节码文件 和 解释器执行 。 19、如果一个Java Applet源程序文件只定义有一个类,该类的类名为MyApplet,则类MyApplet必须是 Applet 类的子类并且存储该源程序文件的文件名必须为 MyApplet.java 。 20、 一个Java Application源程序文件名为MyJavaApplication.java,如果使用Sun公司的Java开发工具JDK编译该源程序文件并使用其虚拟机运算这个程序的字节码文件,应该顺序执行如下两个命令: javac MyJavaApplication.javajava MyJavaApplication 。 21、在Java的基本数据类型中,char型采用Unicode编码方案,每个Unicode码字符占用 2 字节内存空间,这样,无论是中文字符还是英文字符,每个都是占用2 字节内存空间。 22、在Java程序中定义的类有两种成员: 静态成员 、 实例成员 。 23、Java源程序是由类定义组成的,每个程序中可以定义若干个类,但是只有一个类是主类。在Java Application中,这个主类是指包含 main 方法的类;在Java Applet里,这个主类是一个系统类 Applet 的子类。 24、创建一个名为 MyPackage 的包的语句是 package MyPackage ; , 该语句应该放在程序的位置为: 程序中非注释行的第一行 。 25、 抽象或abstract 方法是一种仅有方法头,没有具体方法体和操作实现的方法,该方法必须在抽象类之中定义。 最终后final 方法是不能被当前类的子类重新定义的方法。 26、多态是指 一种定义,多种实现 ,在Java中有两种多态,一种是使用方法的 重载 实现多态,另一种是使用方法的 覆盖 实现多态。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值