Java
文章平均质量分 85
吉sf
这个作者很懒,什么都没留下…
展开
-
Java设计模式
设计模式七大原则单一职责原则对类来说,一个类应该只负责一项职责注意事项:1,降低类的复杂度,一个类只负责一项职责。2,提高类的可读性,可维护性3,降低变更引起的风险4,通常情况下,我们应当遵守单一职责原则,只有逻辑足够简单,才可以在代码级违反单一职责原则;只有类中方法数量足够少,可以在方法级别保持单一职责原则开闭原则里氏替换原则任何基类可以出现的地方,子类一定可以出现子类可以扩展父类的功能,但不能改变父类原有的功能子类继承父类时,除添加新的方法完成.原创 2021-11-16 21:54:27 · 352 阅读 · 0 评论 -
垃圾收集器
串行垃圾收集器串行垃圾收集器,是指使用单线程进行垃圾回收,垃圾回收时,只有一个线程在工作,并且java应用中的所有线程都要暂停,等待垃圾回收的完成。这种现象称之为STW(Stop-The-World)。对于交互性较强的应用而言,这种垃圾收集器是不能够接受的。一般在Javaweb应用中是不会采用该收集器的。并行垃圾收集器并行垃圾收集器在串行垃圾收集器的基础之上做了改进,将单线程改为了多线程进行垃圾回收,这样可以缩短垃圾回收的时间。(这里是指,并行能力较强的机器)并行垃圾收集器在收原创 2021-08-12 16:12:02 · 90 阅读 · 0 评论 -
Java多线程
线程的六种状态:初始态(NEW):创建一个Thread对象,但还未调用start()启动线程时,线程处于初始态。运行态(RUNNABLE):(包括 就绪态 和 运行态)就绪态:该状态下的线程已经获得执行所需的所有资源,只要CPU分配执行权就能运行。所有就绪态的线程存放在就绪队列中。运行态:获得CPU执行权,正在执行的线程。由于一个CPU同一时刻只能执行一条线程,因此每个CPU每个时刻只有一条运行态的线程。阻塞态(BLOCKED):当一条正在执行的线程请求某一资源原创 2021-08-11 20:00:32 · 211 阅读 · 0 评论 -
Java排序算法
冒泡排序:执行流程:① 从头开始比较每一对相邻元素,如果第1个比第2个大,就交换它们的位置(执行完一轮后,最末尾那个元素就是最大的元素)② 忽略 ① 中曾经找到的最大元素,重复执行步骤 ①,直到全部元素有序优化:如果序列已经完全有序,可以提前终止冒泡排序优化:如果序列尾部已经局部有序,可以记录最后1次交换的位置,减少比较次数复杂度:最坏时间复杂度:O(n2)最好时间复杂度:O(n)平均时间复杂度:O(n2)空间复杂度:O(1)稳定性:稳定选择排序.原创 2021-08-23 21:38:29 · 94 阅读 · 0 评论 -
Java对象模型
对象的实例化创建对象的方式:newClass的newInstance()使用clone()使用反序列化第三方库Objenesis创建对象的步骤:1,判断对象对应的类是否加载、链接、初始化2,为对象分配内存3,处理并发安全问题4,初始化分配到的空间5,设置对象的头对象6,执行init方法进行初始化对象实例化过程:1,加载类元信息2,为对象分配内存3,处理并发问题4,属性的默认初始化(零值初始化)5,设置对象头信息6,属性的显示初原创 2021-10-03 11:15:54 · 223 阅读 · 0 评论 -
JavaIO
BIO概述同步并阻塞(传统阻塞型),服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器 端就需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的线程开销适用场景BIO 方式适用于连接数目比较小且固定的架构,这种方式对服务器资源要求比较高,并发局限于应用中,JDK1.4以前的唯一选择,但程序简单易理解。基本介绍Java BIO 就是传统的 java io 编程,其相关的类和接口在 java.ioBIO(blocking I/O) : 同步阻塞,服务器实现模式原创 2021-09-20 21:01:37 · 118 阅读 · 0 评论 -
JVM内存结构
方法区:(线程共享)存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据堆:(线程共享)所有的对象实例以及数组都要在堆上分配虚拟机栈:(线程私有)存储局部变量表,局部变量表存放了编译期可知长度的各种基本数据类型(boolean、byte、char、short、int、float、long、double)对象引用(reference类型,是对象在堆内存的首地址)。方法执行完,自动释放本地方法栈:(线程私有)程序计数器:(线程私有).原创 2021-08-11 11:10:30 · 162 阅读 · 0 评论 -
Java内存模型(JMM)
是什么JMM(Java Memory Model)是一组规范,需要各个JVM的实现来遵守JMM规范,以便于开发者可以利用这些规范,更方便地开发多线程程序。如果没有这样的一个JMM内存模型来规范,那么很可能经过了不同JVM的不同规则的重排序之后,导致不同的虚拟机上运行的结果不一样,那是很大的问题。如果没有JMM,那就需要我们自己指定什么时候用内存栅栏等,JMM让我们只需要用同步工具和关键字就可以开发并发程序。最重要的3点内容重排序:...原创 2021-08-30 21:51:41 · 105 阅读 · 0 评论 -
垃圾回收的常见算法
引用计数法原理假设有一个对象A,任何一个对象对A的引用,那么对象A的引用计数器+1,当引用失败时,对象A的引用计数器就-1,如果对象A的计数器的值为0,就说明对象A没有引用了,可以被回收。优缺点优点:实时性较高,无需等到内存不够的时候,才开始回收,运行时根据对象的计数器是否为0,就可以直接回收。在垃圾回收过程中,应用无需挂起。如果申请内存时,内存不足,则立刻报outofmember 错误。区域性,更新对象的计数器时,只是影响到该对象,不会扫描全部对象。缺点:每次对象原创 2021-08-12 13:46:52 · 126 阅读 · 1 评论 -
Java数据结构
真二叉树所有节点的度都为0或都为2满二叉树所有节点的度都为0或都为2,所有叶子节点都在最后一层完全二叉树叶子节点指挥出现在最后2层,最后一层的叶子节点都靠左对齐二叉搜索树、二叉查找树、二叉排序树任意一个结点的值都大于其左子树所有节点的值任意一个结点的值都小于其右子树所有结点的值它的左右子树也是一颗二叉搜索树...原创 2021-08-17 21:52:13 · 130 阅读 · 0 评论 -
JavaSE
实参给形参赋值时:基本数据类型:数据值引用数据类型:地址值不可变:String、包装类等对象不可变,进行运算时重新指向新的值原创 2021-08-10 20:52:04 · 119 阅读 · 0 评论