2019年9月7日
摘要: 1、体系: 2、ArrayList和Vector底层都是用数组实现,唯一区别是Vector是一种线程安全的实现。 3、LinkedList底层使用双向循环链表实现,无论LinkedList是否为空,链表内都有一个header节点,header的后驱节点是链表第一个元素,前驱节点是链表的最后一个元素。 阅读全文
posted @ 2019-09-07 14:05 逍遥1989 阅读(153) 评论(0) 推荐(0) 编辑
  2019年8月31日
摘要: 1、装饰模式(Decorator):动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更加灵活。 2、装饰模式结构图: 3、装饰模式是利用SetComponent来对对象进行包装的,每个装饰对象的实现和如何使用这个对象分离开了,每个装饰对象只关心自己的功能,不需要关心如何被添加到 阅读全文
posted @ 2019-08-31 15:38 逍遥1989 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 1、单一职责原则(SRP): (1)就一个类而言,应该仅有一个引起它变化的原因。 (2)软件设计真正要做的许多内容,就是发现职责并把那些职责相互分离。 2、开放-封闭原则: (1)软件实体(类、模块、函数等等)对于扩展是开放的,对于更改是封闭的。 (2)在我们最初编写代码时,假设变化不会发生,当变化 阅读全文
posted @ 2019-08-31 15:31 逍遥1989 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 1、面向对象的编程,并不是类越多越好,类的划分是为了封装,但分类的基础是抽象,具有相同属性和功能的对象的抽象集合才是类。 2、策略模式(Strategy):定义了算法家族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化不会影响到使用算法的客户。 3、策略模式的结构图: 4、策略模式就是用来 阅读全文
posted @ 2019-08-31 14:27 逍遥1989 阅读(120) 评论(0) 推荐(0) 编辑
摘要: 1、面向对象的好处:通过封装、继承、多态把程序的耦合度降低,用设计模式使得程序可维护、可复用、可扩展以及灵活性好。 2、UML类图: (1)类:类图分三层,第一层类名、第二层类的字段和属性、第三层类的方法或行为,‘+’表示public,‘-’表示private,‘#’表示protected。 (2) 阅读全文
posted @ 2019-08-31 11:03 逍遥1989 阅读(113) 评论(0) 推荐(0) 编辑
  2019年8月25日
摘要: 1、高效并发是JDK1.5到JDK1.6的一个重要改进,出现了适应性自旋(Adaptive Spinning)、锁消除(Lock Elimination)、锁粗化(Lock Coarsening)、轻量级锁(Lightweight Locking)和偏向锁(Biased Locking)等一系列锁优 阅读全文
posted @ 2019-08-25 11:39 逍遥1989 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 1、线程安全:当多个线程访问一个对象时,如果不用考虑这些线程在运行时环境下的调度和交替执行,也无需进行额外的同步,或者在调用方进行任何其他的协调操作,调用这个对象的行为都可以获得正确的结果,那这个对象就是线程安全的。 2、线程安全的等级(由强到弱依次如下): (1)不可变:不可变(Immutable 阅读全文
posted @ 2019-08-25 10:39 逍遥1989 阅读(199) 评论(0) 推荐(0) 编辑
  2019年8月24日
摘要: 1、操作系统线程:轻量级的进程,是CPU调度的基本单位。线程的引入,可以把一个进程的资源分配和执行调度分开,各个线程之间共享进程资源(内存地址、文件I/O等)。 2、Java线程:一个已经执行了start()且还未结束的java.lang.Thread类的实例。 3、线程模型 (1)内核线程(Ker 阅读全文
posted @ 2019-08-24 18:49 逍遥1989 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 1、Java内存模型(Java Memory Model,JMM):线程、主内存和工作内存。所有的变量都存储在主内存(虚拟机内存的一部分)中,每条线程还有自己的工作内存。线程对变量的所有操作(读取、赋值等)必须在工作内存中进行,不同线程之间无法直接访问对方工作内存中的变量,需要通过主内存来完成。 2 阅读全文
posted @ 2019-08-24 18:04 逍遥1989 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 1、类加载机制的含义:Java程序运行期间,虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型。 2、类在虚拟机中的生命周期: (1)分为7个阶段:加载、验证、准备、解析、初始化、使用和卸载。 (2)验证、准备、解析统称为连 阅读全文
posted @ 2019-08-24 15:06 逍遥1989 阅读(119) 评论(0) 推荐(0) 编辑