Java记不住知识点总结(随着学习增加)

199 篇文章 0 订阅

1.引用类型的变量只能存储俩类值:null或地址值
2.Person p = new Person();这里面的Person()相当于构造器
3.import static:应该是导入指定类或者接口中的静态结构。(这个静态结构是属性或者方法)
举例:import static java.lang.Math;是错误的写法,正确的写法是在末尾加上.*
4.封装性的体现【1】把类的属性私有化,提供公共的方法来获取和设置此属性的值(也就是set和get方法)
【2】不对外暴露的私有的方法(就是说方法只在当前类中被使用,不需要外界去知道和调用)
【3】单例模式(将构造器私有化)
【4】如果不希望类在包外被使用,将类设置成缺省模式
5.四种访问权限修饰符:
在这里插入图片描述

6.在一个类中声明另一个类的变量,将这俩个类的关系叫做关联关系
7.继承的好处:(1)减少代码的冗余
(2)便于功能扩展
(3)为多态的使用提供了前提
8.子类(subclass)也叫派生类/父类(superclass)也叫超类、基类
9.Java中类的单继承性:一个类只能有一个父类
10.父类被重写的方法的返回值类型是void/基本数据类型,则子类重写的方法的返回值类型只能是void/基本数据类型
父类被重写的方法的返回值类型是A类型,则子类重写的方法的返回值类型可以的A类或者A类的子类
父类中的static方法不可被重写
11.子类的构造器默认调用super();
在一个子类的多个构造器中,至少有一个构造器使用了super(xingcan);
12.当我们通过子类的构造器创建子类对象时,我们一定会直接或者间接的调用其父类的构造器,进而调用父类的父类的构造
器…,直到调用了java.lang.Object类中的空参构造器为止。
13.对象的多态性:对象的引用指向子类的对象
Person p1 = new Man(); //其中Man为Person的子类
14.对象的多态性只适用于方法不适用于属性
15.多态性是一种运行时行为
16.Integer cInteger = 123;
Integer dInteger = 123;
System.out.println(cInteger == dInteger);//结果为true
Integer aInteger = 128;
Integer bInteger = 128;
System.out.println(aInteger == bInteger);//结果为false
//注意:Integer中-128~127是在常量池中,其余的在堆中
17.Object只设置了一个空参构造器
18.equals()在Object类中跟==的作用是一样的
19.像String、Data、File、包装类等都重写了Object类中的equals()方法。重写以后,比较的不是俩个引用的地址是否相同,而实比较俩个对象的“实体内容”是否相同。
20.实例变量 = 非静态变量 / 静态变量 = 类变量
21.静态变量随着类的加载而加载
22.静态变量存放在方法区的静态域里面
23.方法区:类的加载信息,静态域,常量池
24.静态的方法中只能调用静态的方法和属性,如果是非静态的需要先实例化对象
静态的方法中不饿能使用this关键字和super关键字
25.操作静态属性的方法通常设置为静态的,工具类中的方法习惯上声明为static的
26.main()方法也可以作为我们与控制台交互的方式,(之前使用Scanner)
29.toString的源码:public String toString() {
return getClass().getName() + “@” + Integer.toHexString(hashCode());
}
27.静态代码块随着类的加载而执行,且执行一次 / 非静态代码块随着对象的创建而进行,而且每创建一个对象就创建一个代码块。
28.非静态代码块在构造器之前执行
29.final用来修饰一个类,这个类不能被继承,例如:String、System、StringBuffer类。 final用来修饰一个方法,这个方法不能被重写。 final用来修饰“变量”,此时的变量就称为常量。
30.final修饰属性:可以考虑赋值的位置有:显式初始化,代码块中初始化,构造器中初始化
31.抽象类不能实例化,抽象类中一定有构造器,便于子类实例化时调用。开发中都会提供抽象类的子类,让子类对象实例化,完成相关的操作。
32.抽象方法只有方法的声明,没有方法体。并且包含抽象方法的类一定是一个抽象类
33.abstract不能用来修饰私有方法,静态方法,final的方法、final的类
34.接口与抽象类中不叫重写,叫实现
35.接口与接口之间可以多继承
36.jdk8中,接口中除了定义全局变量和抽象方法之外,还可以定义静态方法、默认方法
37.接口中定义的静态方法,只能通过接口来调用
通过实现类的对象,可以调用接口中的默认方法
38.抽象类可以实现接口且抽象类可以继承非抽象类
39.try-catch-finally:真正的将异常处理掉了
throws 的方式只是将异常抛出给了方法的调用者,并没有真正将异常处理掉
40.如果父类中被重写的方法没有throws方式抛出异常,则子类重写的方法也不能用throws,必须用try-catch-finally
41.异常的处理:抓抛模型
过程一:“抛”:程序在执行的过程中,一旦出现异常,就会在异常代码处生成一个对应的异常类的对象,并将对象抛出。一旦抛出对象后,其后的代码就不再执行
关于异常对象的产生:系统自动生成的异常对象
手动的生成一个异常对象并抛出(throw)
过程二:“抓”,可以理解为异常的处理方式: 1.try-catch-finally 2. throws
42.编译时异常:在执行javac.exe命令的时候,可能出现的异常
运行时异常:执行Java.exe的时候,出现的异常
43.并行:多个cpu同时执行多个任务。
并发:一个CPU(采用时间片)同时执行多个任务
44.程序:为了完成某项特定的任务、用某种语言编写的一组指令的集合,即指一段静态的代码
进程:正在运行的一个程序,是一个动态过程(进程作为资源分配的单位,系统在运行时会为每个进程分配不同的内存区域)
线程:进程进一步细化为线程,是一个程序内部的一条执行路径,(线程作为调度和执行的单位,每个线程拥有独立的运行栈和程序计数器)
image
最新2020整理收集的一些高频面试题(都整理成文档),有很多干货,包含mysql,netty,spring,线程,spring cloud、jvm、源码、算法等详细讲解,也有详细的学习规划图,面试题整理等,需要获取这些内容的朋友请加Q君样:909038429
/./*欢迎加入java交流Q君样:909038429一起吹水聊天

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值