java关键字:
1.static:
- 方便在没有对象的时候调用方法或变量//无this
- 被所有对象共享,仅仅在类加载时被初始化、非静态变量在创建对象时被
初始化。 - 静态方法不能调用非静态方法、非静态方法可以调用静态方法
2.final、finally、finalize的区别
-
final:
final修饰的类不能被继承
final修饰的方法不能被重写
final修饰的变量的值不能被修改 -
finally:
异常处理的一部分,try-catch语句的末尾
不一定每次都执行
抛异常时不执行
try 中有exit不执行
多个return 只return finally的 -
finalize():
该方法被定义在java.lang.object中,每个对象都有
该方法,在对象被gc时调用
3.String、StringBuffer、StringBuilder的区别
- 执行速度:StringBuilder>StringBuilder>String
- String字符串常量 不可改变的对象
- StringBuffer、StringBuilder值可以改变
- StringBuffer线程安全 StringBuilder线程安全
- 数据量少用String,单线程操作用StringBuilder 多线程操作使用StringBuffer
java多进程:
-
进程和线程的区别:
(1)进程时资源分配的独立单位、线程时调度和分配的基本单位
(2) 进程拥有资源,线程少量资源或无资源
(3) 进程系统开销大,线程开销小 -
java实现多线程的方式
(1)继承Thread类
(2)实现runnable接口
(3)实现callable接口//带返回值 -
线程安全的定义:共享资源的进程在并行执行过程中通过同步机制使各线程能正常正确的执行
-
线程安全产生的原因和解决方案
原因:1两个或者两个以上的线程共享着同一个资源
解决方法:同步代码块、同步方法 -
volatile关键字
6. volatile和synchronized的区别 7. snchronized的底层实现 8. sleep和wait的区别 sleep():Thead线程类方法, 放弃当前CPU资源、但不释放对象锁,当时间到时cpu继续执行回到该线程 wait():对象类方法,放弃当前CPU资源、并且释放对象锁、进入等待队列,直到被唤醒时才可以进入锁池、再次获得对象锁才可以继续执行
-
java线程池的组成部分
-
线程的生命周期
11 . 线程池参数
设计模式
-
java有哪些设计模式?
单例模式、工厂模式、迭代器模式等23种
-
单例模式
懒汉式
class Singleton{
static Singleton s;
public Singleton(){//构造方法
}
public static Singleton getSingleton(){
if(s==null)
s = new Singleton();
return s;//不要忘记
}
}
饿汉式:
class Singleton{
static Singleton s = new Singleton();
public Singleton(){//构造方法
}
public static Singleton getSingleton(){
return s;//不要忘记
}
}
类的设计
-
什么是面向对象?
把数据和操纵数据的方法放在一起,作为一个相互依存的整体 -
面向对象的三大特征:
封装,继承,多态 -
多态的概念
同一个行为具有多种表现形式或形态的能力
或者指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式。(发送消息就是函数调用) -
多态存在的必要条件:
继承、方法重写、向上转型(父类引用指向子类对象) -
重载和重写
重载:写本类中的方法,必须就有不同的参数列表,方法名相同,函数类型,返回值可以不相同
重写:重写父类存在的方法,方法名、参数类型、参数个数、返回值类型完全一致
访问修饰符的限定必须大于父类修饰符的限定