想要拥有从未拥有的东西,就要去做从未做过的事情
——文记
目录
一、认识java
1.什么是java?你是如何理解java?
2.如何解释 jdk、API文档、JVM、垃圾回收机制?
二、理解java
3.提问 :package的作用是什么?
4.提问:java和javac命令的作用?
5.编写:使用idea创建java项目,编写可以运行的程序
三、注释、标识符、关键字、变量
6.提问:你为什么要在代码中添加注释?添加过多的注释会导致打包后的项目增大吗?
7.提问:使用标识符时需要注意什么?
8.提问:列举你常用的关键字,并说明关键字的作用是什么?
9.提问:变量在程序中的作用?
10.提问: 变量的种类有哪些?
四、操作符、流程控制
11.提问:操作符的分类
12.提问: 流程控制中for与while在循环场景中如何选择?
13.提问:分支语句中if语句和switch语句在逻辑判断场景中如何选择?
14.使用分支语句实现判断数值是否大于0?
五、数组
15.提问: 数组的特点是什么?你在编写java程序中为什么使用数组?
六、类和对象(重点)
16.提问:类和对象的关系是什么?
17.提问:什么是引用?作用是什么?
18.提问:举生活中的例子说明引用、对象、类之间的关系
19.提问: 如果现在需要将我们教室里同学和老师的信息存储到计算机中,如何编码实现?
七、封装、继承、多态(重点)
20.提问: 如何理解封装?封装的优点是什么?
21.提问: 继承是在描述什么内容?
22.提问:继承的优点是什么?
23.提问:java中是否存在一个类,它是没有父类型的?
24.提问:在子类创建对象时,会不会调用父类的构造器?为什么?
25.提问:如何编写代码表示多态?
八、重写、重载
26.提问: 在java哪个类中有方法的重载?
27.提问: 你在编程中如何使用重写的语法?
28.提问: 你在编程中如何使用重载的语法?
九、静态、抽象、接口
29.提问:静态与非静态的区别是什么?
30.提问:什么业务场景下会定义抽象方法?
31.提问:什么时候需要定义接口?如何用一个词解释接口?
十、集合、泛型
32.提问:画图描述你了解的集合知识结构
33.提问: 以下信息如果保存在java程序中,选择集合框架中的哪个类进行处理?
34.提问: 泛型在集合中使用的作用?
35.提问:ArrayList和LinkedList的区别是什么?
36.提问: HashMap是如何实现存储数据?
十一、枚举、反射
37.编写程序使用反射机制创建对象
38.思考:反射机制可以为java程序提供什么好处?
十二、异常
39.提问: 你在编程过程中遇到过哪些异常?是什么原因导致的异常?
40.提问:什么情况下需要我们自定义异常?
41.任务: 定义一个异常类,描述用户登录过程中出现的异常情况:
十三、IO流
43.提问?使用io流可以解决什么问题?
44.使用画图方式分类表示java.io包中类
十四、网络编程
46.提问:可以直接通过浏览器访问的javaweb项目一定需要网络编程代码吗?如果需要,我们每 次开发一个javaweb项目需要编写一个服务器程序吗?
47.提问:你接触过哪些通过java编写的服务器程序吗?
十五、线程
48.编写程序实现线程的创建和运行?
49.如果将网络编程章节的服务器程序扩展为一个多线程服务器,如果实现?能够解决什么问题?
执行Java命令 jvm 开辟内存:存放程序信息、数据
垃圾回收机制:在某个内存(堆)不会再使用Java对象 自动销毁释放程序内存。不需要靠手动
package com.briup.day01;
import java.util.List;
import java.util.Map;
import java.util.Set;
/**
* 变量的种类划分
* 1.通过位置划分变量:
* 全局变量
* 局部变量
* 2.通过类型划分:
* 基本数据类型
* 引用数据类型
* @Author lining
* @Date 2022/6/30
*/
public class Test5 {
private int a;//成员变量 属性 全局变量 定义在类的内部,方法外边
private int d;//全局变量 默认初始化 =0
public void method(){
int b = 2;//局部变量,定义在方法中
System.out.println(b);//调用局部变量
int c;
System.out.println(a);
// System.out.println(c); 使用局部变量,必须初始化后使用
}
public void method2(){
System.out.println(a);//调用全局变量
//System.out.println(b);局部变量只能在定义的范围内使用
}
public void method3(){
//基本数据类型 整型 byte studentList = null;
Set studentSet = null;
Map studentMap = null;
Student[] students = null;
}
}
for循环更偏重于从头到尾的范围的便利,如遍历一个数组。
while循环,更偏重于满足于某个条件下的数据的处理。
int [] arrray={1,2,3};
int i=0;
// for (i = 0; i < arrray.length-1; i++) {
//处理数据
//}
//for 转while
while(i
public int search(int[] nums, int target) {
//边界判断
int left=0;
int right=nums.length-1;
// while (left<=right) {
// int index=(right +left)/2;
// int current = nums[index];
// if (current > target) { //左移
// right=index-1;
// } else if (current < target) {//右移
// left=index+1;
// } else {//返回下标
// return index;
// }
// }
//while转for
for (;left<=right;) {
int index=(right +left)/2;
int current = nums[index];
if (current > target) { //左移
right=index-1;
} else if (current < target) {//右移
left=index+1;
} else {//返回下标
return index;
}
}
return -1;
}
if...if if...else if...elseif if四种
public class TestClassroom {
public static void main(String[] args) {
//现在需要将我们教室里同学和老师的信息存储到计算机中,如何编码实现?
new TestClassroom().method();
}
public void method2(){
//1.创建教室类对象
Classroom classroom = new Classroom("401教室");
//2.创建教师对象
Teacher t = new Teacher(1, "lining");
//3.创建多个学生对象
Student s = new Student(202201, "jack");
Student s2 = new Student(202202, "tom");
Student s3 = new Student(202203, "bob");
//4.将teacher对象和student对象保存教室对象中
classroom.setTeacher(t);
Student[] stus = new Student[3];
stus[0] = s;
stus[1] = s2;
stus[2] = s3;
classroom.setStudents(stus);
//5.打印classroom对象查看信息
System.out.println(classroom);//toString()
}
public void method(){
//能不能不创建自定义的类实现程序保存信息:
String msg = "xxxx教室xxx老师xxx学生";
//利用集合将信息保存集合对象中:
//表示一个老师:
Map t = new HashMap<>();
t.put(1,"lining");//key=value
//表示一个学生
Map s = new HashMap<>();
s.put("202001","jack");
Map s2 = new HashMap<>();
s2.put("202002","tom");
//将老师和学生存储在一个集合对象中
List
表格1:
表格2: