<stron>
(1)private权限修饰符:</stron>

  • 用于将成员变量和成员方法私有化,私有是针对类而不是针对对象,也就是说,同一个类的不同对象之间,可以互相访问别的对象的私有化成员。

(2)this代表所在类的对象引用:

  • 方法被哪个对象调用,this就代表那个对象。
  • 使用this的情况:局部变量和 成员变量重名,此时this.变量名代表的是所在类的对象的引用。

(3)方法重载:

  • 适用于方法名相同,方法的参数表不同。
  • 与方法的返回值和修饰符无关。

(4)构造方法:

  • 为对象的实例化做准备。
  • 方法名和类名相同。
  • 不用定义返回类型,void也不用定义。 没有具体的返回值。
  • 系统会给出默认的构造方法,不过建议还是写上。 多个构造方法存在是以重载的形式存在。
  • 有参的构造方法会覆盖无参的构造方法,从而无法借助无参的构造方法实例化出对象。

(5)static权限修饰符:

  • 修饰成员变量(类变量)和成员函数。
  • 被修饰后可以直接被类名调用。
  • static修饰的成员,优先存在计算机内存中,随着类的加载而存在。
  • 被所有对象所共享。
  • 静态方法中不可以写this,super关键字。(因为static依赖于类,而this依赖于对象)

(6)成员变量和静态变量的区别:

  • ①存储位置不同
  • ②调用方式不同
  • ③生命周期不同

(7)两个小知识点:

  • 类名作为形式参数,实际上要的是该类的对象。
  • 类名作为方法的返回值,实际上返回的是该类的对象。

(8)main方法剖析:

  • public-------权限是最大的,这样才能被jvm虚拟机看到
  • static-------不需要对象,直接用主函数的名就可以调用了
  • void-------没有具体的返回类型
  • main-------函数名,不是关键字,知识jvm认识的一个固定名字
  • String[] args-------是形参列表 ,是一个字符串数组类型

(9)单例设计模式:

  • 确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。
  • 有立即加载和延迟加载两种形式。

(10)继承:
java只支持单继承,不支持多重继承。
子类继承父类有可能出现方法的重写(覆盖),但父类的私有方法不能被覆盖。

(11)子类实例化过程:

  • 子类中所有的构造函数默认会访问父类中的空参构造函数。(因为子类的构造函数中第一行有一个默认的隐式语句super())。
  • 当父类中没有空参构造函数时,子类的构造函数必须通过this或super语句指定要访问的构造函数。
  • super和this只能存在一个,并且super和this在、都只能定义在第一行。

(11)final修饰符:

  • final可以修饰类,方法,变量。
  • final修饰的类不可以被继承。
  • final修饰的方法不可以被覆盖。
  • final修饰的变量是一个常量,只能被赋值一次。
  • 内部类只能访问被final修饰的局部变量。

(12)抽象类:

  • java中没有方法体的方法叫做抽象方法,抽象方法的类就叫做抽象类。
  • 一个类中只要有一个方法是abstract,那么这个类就是abstract。
  • 抽象类无法被实例化,只能被抽象类继承。
  • 子类继承抽象类两种方法:①将子类也定义为抽象类②子类对抽象类所有抽象方法重写。
  • abstract使用时是有限制的,不能和private,static, final一起使用。

(13)接口:

  • 接口(interface)是一种特殊的抽象类。
  • 接口中的成员修饰符是固定的(会自动添加): 成员常量:public staticfinal 成员方法:public abstra
  • 接口的出现将"多继承"通过另一种形式体现出来,即"多实现"。
  • 类与接口之间是实现关系,通过implements关键字。
  • 子类实现了接口,必须对接口中所有的方法进行重写(覆盖)。
  • 子类继承一个类的同时,可以实现多个接口。
  • 类与类之间是单继承,接口与接口之间可以多继承。

(14)多态:

(15)内部类:

  • 将一个类定义在另一个类里面,里面那个类就称为内部类。

(16)匿名内部类:

  • 匿名内部类需要有接口或者父类,接口或者父类中的方法不超过三个,过多时候就不使用匿名了。
  • 匿名内部类可以当做参数传递。

(17)包:

  • package mypack.a是一个写包语句,编译后会产生一个mypack文件夹。

(18)四种权限修饰符比较:

  • public;
  • private;
  • default;
  • protected;

(19)Object类:

(20)包裹类:

  • 包裹类就是将一个基本数据类型的数据转换成对象的形式,从而使得它可以像对象一样参与运算和传递。

(21)异常处理:

  • ArrayIndexOutOfBoundsException
  • ArithmeticException
  • ClassCastException
  • NullPointerException
  • ClassNotFoundException
  • lllegalArgumentException
  • NumberFormatException

(22)异常日志:

  • log4j的使用

(23)多线程:

(24)线程安全问题:

  • 多线程有不安全的问题,解决问题使用同步。
  • 同步方法或同步代码块。

(25)死锁:

  • 两个或两个以上的线程在活动。
  • 某个线程拿到一个锁后,还想拿第二个锁,造成锁的嵌套。

(26)线程池:

  • 使用线程池的原因:
  • 线程缺乏统一管理,占用过多系统资源。
  • 缺乏更多功能,如定时执行、定期执行等。

(27)集合框架:

(29)file类操作文件的属性:

(30)序列化和反序列化

  • 序列化的步骤:
  • 实现Serrializable接口
  • 创建对象输出流
  • 调用writeObject()方法将对象写入文件
  • 关闭对象输出流