java基础
文章平均质量分 54
馒头咸菜香香滴
哪有什么风花雪夜 只是有人替你负重前行
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
java设计模式 设计原则
java 设计原则设计思想可维护性 Maintainability修改功能,需要改动的地方越少,可维护性越好可复用性 Reusability代码可重复使用率高(工具类)可扩展性 Extensibility 、Scalability添加功能无需修改原来代码灵活性 flexibility、mobility、adaptability代码接口可灵活调用基于以上设计思想 诞生常用的设计原则单一职责原则Single Responsibility Principe一个类别太大原创 2021-01-31 00:22:20 · 232 阅读 · 1 评论 -
设计模式① 单例模式
你真的了解单例模式吗?单例模式单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。注意:1、单例类只能有一个实例。2、单例类必须自己创建自己的唯一实例。3、单例类必须给所有其他对象提供这一实例。单例流程图来看看单例常见的实现模式--.原创 2021-01-26 16:29:33 · 177 阅读 · 0 评论 -
java 容器
容器 Collection List CopyOnWriteList Vector Stack ArrayList LinkedList Set HashSet LinkedHashSet SortedSet TreeSet CopyOnWriteArrayS...原创 2020-11-24 22:45:36 · 128 阅读 · 0 评论 -
数组 链表 树 时间复杂度
参考https://blog.youkuaiyun.com/MOMONGA/article/details/51578602原创 2020-11-24 21:55:33 · 354 阅读 · 0 评论 -
java 锁消除 锁粗化
/** * 锁消除 * StringBuffer是线程安全的,因为它的关键方法都是被synchronized修饰过的,但是我们看上边这段代码会发现 sb 这个引用值会在add方法中使用 * 不可能被其他线程引用(因为是局部变量,栈私有),因此 sb 是不可能共享的资源,JVM 会自动消除 StringBuffer 对象内部的锁。 * */ public void(String str1,String str2){ StringB..原创 2020-11-11 23:28:38 · 272 阅读 · 1 评论 -
java 反射 动态代理
java反射:运行时动态获取类属性和方法及动态调用对象的方法的功能jdk、cglib、动态代理区别一、简单来说: JDK动态代理只能对实现了接口的类生成代理,而不能针对类 CGLIB是针对类实现代理,主要是对指定的类生成一个子类,覆盖其中的方法(继承)二、Spring在选择用JDK还是CGLiB的依据:当Bean实现接口时,Spring就会用JDK的动态代理 当Bean没有实现接口时,Spring使用CGlib是实现 可以强制使用CGlib(在spring配置中加入<ao..原创 2020-11-17 22:11:19 · 136 阅读 · 1 评论 -
wait notifyAll ReentrantLock Condition 实现同步容器
wait notifyAll 实现同步容器public class Container1<T > { final private LinkedList<T> list = new LinkedList<>(); final private int Max = 10; private int count = 0; public synchronized void put(T t){ while (list.size()原创 2020-11-12 17:55:49 · 168 阅读 · 1 评论 -
java 无锁 偏向锁 自旋锁 重量级锁
锁升级 无锁——》偏向锁——》自旋锁——》重量级锁 用户态到内核态的切换消耗资源1、刚开始无锁;2、来一个线程的时候锁升级为偏向锁(记录线程号--当前线程指针);3、再来一个线程竞争,撤销偏向锁;锁升级为轻量级锁(自旋锁、无锁)---》指向线程栈中 Lock Record 的指针,通过CAS方式竞争锁 谁先把自己的 Lock Record指针贴上去,谁先获取锁;另外一个线程一直自旋等待4、有线程超过10次自旋或自旋线程数超过CPU核数的一半,自动升...原创 2020-11-06 20:28:18 · 311 阅读 · 0 评论 -
volatile synchronized
网络编程三要素原创 2020-11-06 20:25:03 · 246 阅读 · 0 评论 -
java基本类型,其实还有第9种
常见的8种整数类型 byte、short、int、long 依次占用 1、2、4、8个字节 (1b = 8bit)浮点类型:float(4字节)、double(8字节)字符类型:char(2字节)布尔类型:boolean (1字节)jvm开发规范中说明: jvm使用的returnAddress 数据类型,不可见,所以还有第9种。如下图...原创 2020-05-23 22:33:54 · 266 阅读 · 0 评论
分享