Java学习记录

Java学习笔记(不定期更新)

2019-02-21  本文已影响6人  WonderSky_HY

此文章作为Java学习过程中一些知识点的记录:

1 操作数据库相关

SqlsessionFactory:采用一个全局单例.
Sqlsession:相当于jdbc中的connection,在一次请求事务回话后,将其关闭
Mapper:相当于去执行一条sql语句,由于他们难以控制,当sqlsession销毁的时候,也会销毁它

2 线程安全

ConcurrentHashMap --> 线程安全的HashMap
CopyOnWriteArrayList --> 线程安全的ArrayList (适用于读多写少的场合)
ConcurrentLinkedQueue --> 线程安全的LinkedList
BlockingQueue --> 数据共享通道(大量应用于生产者消费者模式),应用比较广泛
-> ArrayBlockingQueue<E> 适合做有界队列,先进先出
-> DelayedWorkQueue
-> DelayedQueue<E>
-> LinkedBlockingQueue<E> 适合做无界队列
-> PriorityBlockingQueue<E>
-> SynchronousQueue<E>
-> BlockingDeque<E>

3 Java中的初始化顺序

JAVA类首次装入时,会对静态成员变量或方法进行一次初始化,但方法不被调用是不会执行的,静态成员变量和静态初始化块级别相同,非静态成员变量和非静态初始化块级别相同。

4 Instanceof

Instanceof只能用于对象的判断,不能用于基本类型的判断;使用instanceof时,若左操作数是null,则直接返回false,不再运算右操作数是什么类型

5 BIO,NIO,AIO区别

6 线程死锁条件

互斥条件:一个资源每次只能被一个线程使用
资源独占条件:一个线程因请求资源而阻塞时,对已获得的资源保持不放
不剥夺条件:线程已获得的资源在未使用完之前,不能强行剥夺
循环等待条件:若干线程之间形成一种头尾相接的循环等待资源关系

7 Maven学习记录(标签)

groupId:表示开发该项目的组织名称,一般用该组织的倒序网站名称表示
artifactId:该项目的名称
packaging:该项目的打包方式,主要有jar(默认)、war、pom等属性。Pom属性表示该项目由多个子模块整合打包,每个module都是一个maven项目。
scope:标签依赖范围,主要有compile(默认)、test、runtime、provided等属性。
compile:表示参与当前项目的编译、测试、运行周期等,适用于所有阶段,会随着项目一起发布。
test:表示测试阶段使用
runtime:表示运行时使用
provided:表示打包的时候可以不用打包进去,别的设施(web容器等)会提供。理论上可以参与编译、测试、运行等周期。相当于compile,但是在打包阶段做了exclude的动作。

8 ACID和CAP是什么意思

9 面向对象和面向过程的区别

面向过程=数据+算法
面向对象=对象+交互

10 面向对象六大设计原则

11、设计模式分类(创建型模式、结构型模式、行为模式)

工厂方法模式(Factory Method)
抽象工厂模式(Abstract Factory)
创建者模式(Builder)
原型模式(Prototype)
单例模式(Singleton)
简单工厂模式不是GoF总结出来的23种设计模式之一
适配器模式(Adapter)
代理模式(Proxy)
装饰模式(Decorator)
桥梁模式/桥接模式(Bridge)
组合模式(Composite)
享元模式(Flyweight)
观察者模式(Observer)
状态模式(State)
策略模式(Strategy)
职责链模式(Chain of Responsibility)
命令模式(Command)
访问者模式(Visitor)
调停者模式(Mediator)
备忘录模式(Memento)
迭代器模式(Iterator)
解释器模式(Interpreter)

12、强引用、软引用、弱引用、虚引用区别

参考:理解Java的强引用、软引用、弱引用和虚引用

上一篇 下一篇

猜你喜欢

热点阅读