Java 基础知识复习

2022-10-31  本文已影响0人  Luke_单车

1. Java面向对象:对象的概念及面向对象的三个基本特征

  1. 封装:隐藏内部实现细节,对外提供可访问的方法
  2. 继承:子类自动继承父类中所有的非私有属性和方法Java 语言是单继承的,即只能有一个父类,但 Java 可以实现多个接口(接口类似于类,但接口的成员没有执行体。可以防止多继承所引起的冲突问题。
  3. 多态:同一事物,多种不同的表示形态,例如:重载、重写
  4. 抽象:可以不用管具体的实现,定义统一的抽象规则

2. HashMap的特性

  1. HashMap存储键值对实现快速存取,允许为nullkey值不可重复,若key值重复则覆盖。
  2. 非同步,线程不安全。
  3. 底层是hash表,不保证有序
  4. JDK7 采用的是数组+链表
  5. JDK8 采用的数组+链表+红黑树
  6. 链表主要是为了解决数组中的key发生hash冲突时,将发生碰撞的key存到链表中
  7. 红黑树主要是为了解决链表过长,的查询速度太慢问题

3. 单例模式

属于对象创建模式,它可以确保系统中一个类只产生一个实例。这样的行为能带来两大好处:
对于频繁使用的对象,可以省略创建对象所花费的时间,这对于那些重量级对象而言,是非常可观的一笔系统开销。由于new操作的次数减少,因而对系统内存的使用频率也会降低,这将减轻GC压力,缩短GC停顿时间。

public class Singleton03 {
    private volatile static Singleton03 instance;
    /**
     * 私有构造方法
     */
    private Singleton03(){}
    public static Singleton03 getInstance() {
        if(instance == null) {
            synchronized (Singleton03.class) {
                if (instance == null) {
                    instance = new Singleton03();
                }
            }
        }
        return instance;
     }
}

4. 反射机制

  1. 优点:运行期类型判断,动态加载,提高代码的灵活性。
  2. 缺点:性能瓶颈:反射相当于一系列的解释操作,通知JVM要做的事情,性能比直接的Java代码要慢很多。安全问题:让我们可以动态操作改变类的属性同时也增加了类的安全隐患。
  3. 反射的应用场景:
    例如模块化的开发,通过反射去调用对应的字节码;动态代理设计模式,也采用了反射机制;还有Spring等框架,也是利用反射机制实现的(反射是框架设计的灵魂)。

5. 泛型的实现

6. 注解

7. 垃圾回收算法

8. java有几种解决线程安全方法

 synchronized(同步监视器=对象){     
      //需要被同步的代码
   }

上一篇 下一篇

猜你喜欢

热点阅读