将自己部分易忘知识点做小结
第一章 初始Java
JDK、JRE、JVM之间的区别
JDK(Java Development Kit):java的开发工具包,包含JRE、编译器Javaac和调试工具Jconsole、jstack。
JRE(Java Runtime environment):Java运行时环境,包含了JVM,Java基础类库。是使用Java语言编写程序运行的所需环境。
JVE:Java虚拟机,运行Java代码
第二章 数据类型和变量
byte占1个字节,取值范围为-128到127
int占4个字节
类型转换:高转低需要强转,低转高不需要。
byte计算时会自动提升为int类型进行计算
第三章 运算符
位运算符
按位与&:将两个数转化为二进制对位比,都为1则为1,否则为0
按位或|:将两个数转化为二进制对位比,但凡有一个为1,则为1,否则为0
按位取反~:0变1,1变0
按位异或^:将两个数转化为二进制对位比,相同为0,相异为1
位移运算
左移<<:将数转化为二进制,最左位不要,右侧补0
右移>>:将数转化为二进制,最右位不要,左侧补符号(跟原本正负相同)
无符号>>>:将数转化为二进制,最右位不要,左侧补0
注意:左大右小
左移一位 = 原数字 * 2的1次方;左移N位 = 原数字 * 2的N次方。
右移一位 = 原数字 / 2的1次方;右移N位 = 原数字 * 2的N次方。
第四章 程序逻辑控制
switch括号后面只能是byte、char、short、int、string、枚举类型
要补上break
第五章 方法的使用
无
第六章 数组的定义和使用
数组是引用类型,会开辟一段连续的内存,通过下标访问
粗浅理解:
虚拟机栈:里面存储方法、局部变量。
第七章 类和对象
类是一种自定义类型,可以用来定义变量。将其想象为Integer i;
this相当python当中的self,用在类的内部,可以粗略的将其理解为一个大容器,各种变量、函数都可以存入其中。可以通过this.的方法来调用。
通过this.的操作来访问成员方法和成员变量。
构造方法相当于python中的def __init__(self):,用来初始化的
封装
将部分信息隐藏起来,通过private、default、protected、public访问限定符
类比的记忆:
static成员
static修饰成员变量,称静态成员变量。是所有对象公用的。
static修饰的成员变量或方法,是通过类名来访问的。
静态成员变量的初始化:直接赋值 或 静态代码块初始化
静态代码块:普通代码块、构造块、静态块、同步代码块
第八章 继承和多态
继承
通过super关键字去访问父类中的成员变量(非静态)和成员方法
子类构造方法会初始化父类构造方法
this是实例化对象以后,用来调用的,而super是子类对象继承下来父类的引用
protected不能在不同包的非子类用,也就是只要跨包,就一定要继承才可以使用
default表示只能在当前这个包里面操作,不能跨包
final修饰变量表示常量,final修饰类,表示类不能被继承
多态
粗暴理解为等号左边为更高级的类变量,等号右边为低级类变量
多态一定要在继承条件下才能触发
多态一定 要复写父类方法!!!就是因为不同的对象复写的内容不同,所以导致会有多种形态的出现。
粗暴理解:父类其实是一个癞子,一个通式,一个模板。子类继承他要用的时候,要复写
向上向下转型可以粗暴理解为,类似于强制转换,大转小或小转大
第九章 抽象类和接口
抽象类/抽象方法 = 外壳
在父类中写一个外壳,具体的实现方法在子类中复写。把他抽象为抽象类(abstract class)
接口可以理解成继承一个外壳,由于这个外壳要被很多人继承,接口要给很多人用,所以在这个类里面不会去写具体的实现,只是做一个外壳供继承者使用。所以使用接口一定要复写里面的函数。
一个类可以实现多个接口(类似继承多个类),通过复写这些不同接口里的方法,从而达到多继承的效果。
注意,使用接口一定要实现抽象方法,每一个都要复现。或者再将其设置为抽象方法。
抽象类和接口的区别:抽象类中包含普通方法和普通字段,可以直接被子类使用(不必重写),而接口中不能有普通方法,且子类必须复写。
第十章 string类
string使用+=时,其实底层是通过不停的创建sb对象来实现的,效率很低。应直接使用sb,来增删改查
第十一章 认识异常
try-catch:报出异常就到catch中去找对应的提示
自定义异常:需要自己定义一个异常类(需继承Exception或RunTimeException),在调用函数后写throws,如果触发异常就throw出这个异常类,就会触发这个异常类里的方法,提示人