1.JVM:java虚拟机
JRE:java运行环境:JVM+核心类库
JDK:java开发工具包:JRE+开发工具
2.基本数据类型:包括 整数、浮点数、字符、布尔
引用数据类型:包括 类、数组、接口
DAY02
3.算数运算符包括:+ - * / % ++ --
赋值运算符包括:
①基本赋值运算符:=
②复合赋值运算符:+= -= *= /= %=
4.前++和后++的区别(前--和后--一样)
①单独运算时:
前++和后++没有区别
②混合运算时:
++在前,先自增,再参与其他操作
++在后,先参与其他操作,再自增
5.+符号在遇到字符串的时候,表示连接、拼接的含义
6.三元运算符三个数求最大值
①int max = a > b ? (a > c ? a : c) : (b > c ? b : c)
②int max = a > b ? a : b
max = max > c ? max : c
DAY03
7.switch语句中,表达式的数据类型,可以是byte,short,char,int,String,enum(枚举)
8.在switch语句中,如果case的后面不写break,将出现穿透现象,也就是不会在判断下一个case的值,
直接向后运行,直到遇到break,或者整体switch结束。
9.do...while循环的特点:无条件执行一次循环体,即使我们将循环条件直接写成false,也依然会循环一次。
10.for 和 while 的小区别:
①控制条件语句所控制的那个变量,在for循环结束后,就不能再被访问到了,而while循环结束还可以继
续使用,如果你想继续使用,就用while,否则推荐使用for。原因是for循环结束,该变量就从内存中消失,
能够提高内存的使用效率。
②在已知循环次数的时候使用推荐使用for,循环次数未知的时推荐使用while。
11.break
使用场景:终止switch或者循环
continue
使用场景:结束本次循环,继续下一次的循环
12.死循环:①也就是循环中的条件永远为true,死循环的是永不结束的循环。例如:while(true){}
②for循环实现死循环:
for(int i = 1;i <= 10; ) {
System.out.print(i);
}
13.嵌套循环格式:
for(初始化表达式①; 循环条件②; 步进表达式⑦) {
for(初始化表达式③; 循环条件④; 步进表达式⑥) {
执行语句⑤;
}
}
嵌套循环执行流程:
①执行顺序:①②③④⑤⑥>④⑤⑥>⑦②③④⑤⑥>④⑤⑥
②外循环一次,内循环多次。
③比如跳绳:一共跳5组,每组跳10个。5组就是外循环,10个就是内循环。
DAY04
14.方法的三种调用格式
①单独调用:方法名称(参数); method(2,4);
②打印调用:System.out.println(方法名称(参数));
③赋值调用:数据类型 变量名称 = 方法名称(参数); int sum = method(2,4);
15.注意事项:
①对于有返回值的方法,可以使用单独调用、打印调用或者赋值调用。
②但是对于无返回值的方法,只能使用单独调用,不能使用打印调用或者赋值调用。
16.方法的重载(Overload):多个方法的名称一样,但是参数列表不一样。
①方法重载与下列因素相关:
a.参数个数不同
b.参数类型不同
c.参数的多类型顺序不同
②方法重载与下列因素无关:
a.与参数的名称无关
b.与方法的返回值类型无关
DAY05
17.常见的两种创建方式:
①动态初始化(指定长度)
②静态初始化(指定内容)
A.数组的第一种动态初始化:
第一种定义格式:
数据类型[] 名称 = new 数据类型[指定的长度];
int [] array = new int [10];
B.数组的第二种静态初始化
第二种定义格式
数据类型[] 数组名称 = new 数据类型[] {指定数据以逗号隔开};
int[] array = new int[]{20,22,30,25,60};
C.数组的第三种省略的静态初始化
第三种定义格式
int [] array = {20,30,40,50,60};
18.内存的5个部分
①栈:中存储的是局部变量,main方法和自己定义的方法中的变量,方法运行会有进栈的操作。
②堆:我们new出来的都在堆中
③方法区:就是存放我们.class文件,顾名思义存储方法的信息
④本地方法栈
⑤寄存器
19.数值获取长度,
关键字 length:他的作用就是获取数组中的个数。
比如 int[] array = {11,15,13,15,23,32,34,40};
使用length关键字,就可以直接帮助我们获取数组的长度
如何获取:
数组名称.length(array.length)
int num = array.length
DAY06
20.面向对象的三大特征之封装
封装:隐藏代码细节,暴露公共调用方法
1.方法封装
a.我们常常用自定义的方法去封装一个我们写好的功能代码,什么时候想去用了我们去调用,它就是我们最常用也是最简单的封装。
2.private关键字封装
a.private关键字是私用的意思,它所修饰的成员变量只能在本类中去使用。无法再其他实现类中直接去使用和赋值。
b.无法直接去使用private所修饰的成员变量,我们只能用间接的方式去赋值和获取成员变量。就要使用getter和setter方法。
c.成员变量使用private修饰用get和set方法去调用的好处就是保证了数据的安全和对不合理的数据进行检索。
21.this关键字
1.在程序中如果成员变量和局部变量是相同的变量名的话。
打印输入的时候,谁里的近就用谁的值。这也是代码中的就近原则
2.那成员变量和局部变量名相同,我如何在方法中去使用成员变量的值,这时候关键字this就起到了作用。
3.用this. num就会指向成员变量的值。
代码演示
class Demo{
int num = 10;//成员变量
public viod method(){//成员方法
int num = 20;//局部变量
System.out.println(num); //打印结果是20
System.out.println(this.num)//打印的结果是成员变量的10;
}
}
22.构造方法
定义格式和注意事项
①构造方法名字和类名必须一摸一样
②不能有返回值,void也不能写
③方法体中不能有return
A.我们在创建person类的时候,系统会默认给我们一个构造方法
B.在main方法创建person的对象的时候,如果person中没有给定任何的构造方法系统就会默认给一个空参构造。
C.如果写上一个有参数构造的话,系统会默认使用有参数构造方法,不会再给一个无参数构造了。
这时在main方法场景对象就会报错,需要传值。
D.构造方法是可以进行重载的,所有我们把有参和无参的都定义在类中,这样我们就可以有多种创建方式和多种选择。
23.成员变量和局部变量区别
①在类中的位置不同 (重点)
成员变量:类中,方法外
局部变量:方法中或者方法声明上(形式参数)
②作用范围不一样 (重点)
成员变量:类中
局部变量:方法中
③初始化值的不同 (重点)
成员变量:有默认值
局部变量:没有默认值。必须先定义,赋值,最后使用
④在内存中的位置不同 (了解)
成员变量:堆内存
局部变量:栈内存
⑤生命周期不同 (了解)
成员变量:随着对象的创建而存在,随着对象的消失而消失
局部变量:随着方法的调用而存在,随着方法的调用完毕而消失
DAY07
24.匿名对象
概念:创建对象时,只有创建对象的语句,却没有把对象地址值赋值给某个变量。虽然是创建对象的简化写法,但是应用
场景非常有限。
匿名对象:没有变量名的对象
格式:
new 类名(参数列表);
举例:
new Scanner(System.in);
应用场景
①创建匿名对象直接调用方法,没有变量名。
new Scanner(System.in).nextInt();
②一旦调用两次方法,就是创建了两个对象,造成浪费,请看如下代码。
new Scanner(System.in).nextInt();
new Scanner(System.in).nextInt();
小贴士:一个匿名对象,只能使用一次。
③匿名对象可以作为方法的参数和返回值
作为参数:
class Test {
public static void main(String[] args) {
// 普通方式
Scanner sc = new Scanner(System.in);
input(sc);
//匿名对象作为方法接收的参数
input(new Scanner(System.in));
}
public static void input(Scanner sc){
System.out.println(sc);
}
}
作为返回值:
class Test2 {
public static void main(String[] args) {
// 普通方式
Scanner sc = getScanner();
}
public static Scanner getScanner(){
//普通方式
//Scanner sc = new Scanner(System.in);
//return sc;
//匿名对象作为方法返回值
return new Scanner(System.in);
}
}
25.ArrayList类
创建格式
ArrayList<E> list = new ArrayList<E>();
E泛型
泛型中必须是引用数据类型
如果执行泛型那ArrayList中就必须存储相同类型的值
比如
ArrayList<String> list = new ArrayList<String>();
泛型中指定了String类型,就必须是存储String的值
其中的方法
添加元素 add(E );
获取长度 size();
获取索引值 get(int num);
删除元素remove(int index)
基本类型 包装类(引用类型,包装类都位于java.lang包下)
byte Byte
short Short
int Integer 【特殊】
long Long
float Float
double Double
char Character 【特殊】
boolean Boolean |
|