JavaSE基础知识大总结

将自己部分易忘知识点做小结

第一章 初始Java

JDK、JRE、JVM之间的区别

JDK(Java Development Kit):java的开发工具包,包含JRE、编译器Javaac和调试工具Jconsolejstack。

JRE(Java Runtime environment):Java运行时环境,包含了JVMJava基础类库。是使用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

第五章 方法的使用

第六章 数组的定义和使用

数组是引用类型,会开辟一段连续的内存,通过下标访问

粗浅理解:

虚拟机栈:里面存储方法、局部变量。

本地方法栈:native方法的局部变量。
堆:new出来的对象
方法区:类信息、常量、静态变量、字节码文件
注意:引用数据类型, 变量名存在虚拟机栈中, 数据存在 里。
注意:数组赋值,其实是赋予的地址
注意:int[ ] arr = null;相当于只创建变量名,但是不指向其他地方

第七章 类和对象

类是一种自定义类型,可以用来定义变量。将其想象为Integer i;

this相当python当中的self,用在类的内部,可以粗略的将其理解为一个大容器,各种变量、函数都可以存入其中。可以通过this.的方法来调用。

通过this.的操作来访问成员方法和成员变量。

构造方法相当于python中的def __init__(self):,用来初始化的

封装

将部分信息隐藏起来,通过private、default、protected、public访问限定符

类比的记忆:

public :可以理解为一个人的外貌特征,谁都可以看得到
default: 对于自己家族中 ( 同一个包中 ) 不是什么秘密,对于其他人来说就是隐私了
private :只有自己知道,其他人都不知道(只能在自己类用)(可以通过设置接口
注意:一般情况下成员变量设置为private,成员方法设置为public

java.lang:系统常用基础类(StringObject),自动导入

static成员

static修饰成员变量,称静态成员变量。是所有对象公用的。

static修饰的成员变量或方法,是通过类名来访问的。

静态成员变量的初始化:直接赋值 或 静态代码块初始化

静态代码块:普通代码块、构造块、静态块、同步代码块

第八章 继承和多态

继承

通过super关键字去访问父类中的成员变量(非静态)和成员方法

子类构造方法会初始化父类构造方法

this是实例化对象以后,用来调用的,而super是子类对象继承下来父类的引用

this 用来访问本类的方法和属性, super 用来访问父类继承下来的方法和属性

protected不能在不同包的非子类用,也就是只要跨包,就一定要继承才可以使用

default表示只能在当前这个包里面操作,不能跨包

final修饰变量表示常量,final修饰类,表示类不能被继承

多态

粗暴理解为等号左边为更高级的类变量,等号右边为低级类变量

多态一定要在继承条件下才能触发

多态一定  要复写父类方法!!!就是因为不同的对象复写的内容不同,所以导致会有多种形态的出现。

粗暴理解:父类其实是一个癞子,一个通式,一个模板。子类继承他要用的时候,要复写

向上向下转型可以粗暴理解为,类似于强制转换,大转小或小转大

第九章 抽象类和接口

抽象类/抽象方法 = 外壳

在父类中写一个外壳,具体的实现方法在子类中复写。把他抽象为抽象类(abstract class)

接口可以理解成继承一个外壳,由于这个外壳要被很多人继承,接口要给很多人用,所以在这个类里面不会去写具体的实现,只是做一个外壳供继承者使用。所以使用接口一定要复写里面的函数。

一个类可以实现多个接口(类似继承多个类),通过复写这些不同接口里的方法,从而达到多继承的效果。

注意,使用接口一定要实现抽象方法,每一个都要复现。或者再将其设置为抽象方法。

抽象类和接口的区别:抽象类中包含普通方法和普通字段,可以直接被子类使用(不必重写),而接口中不能有普通方法,且子类必须复写。

第十章 string类

string使用+=时,其实底层是通过不停的创建sb对象来实现的,效率很低。应直接使用sb,来增删改查

StringBuilder和StringBuffer:后者多了一个开关的动作,一次只能一个人进去,安全但效率低一点

第十一章 认识异常

Throwable类似于Object,顶层,下面有Error和Exception
异常处理主要的 5 个关键字: throw try catch final throws
抛出异常:理解为打印错误信息。一旦抛出,其他内容就不执行了。
throw new XXXException ( " 异常产生的原因 " );

异常声明 throws:在函数后面写,可以粗略理解为继承报异常的类。一旦在这个函数中发生了异常,就调用这个继承的类,去抛出一个异常。

try-catch:报出异常就到catch中去找对应的提示

自定义异常:需要自己定义一个异常类(需继承Exception或RunTimeException),在调用函数后写throws,如果触发异常就throw出这个异常类,就会触发这个异常类里的方法,提示人

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值