Java
带刀少年ha
这个作者很懒,什么都没留下…
展开
-
阻塞队列LinkedBlockingQueue
阻塞队列LinkedBlockingQueue 与平常接触的LinkedList 的最大不同之处就是LinkedBlockingQueue 支持阻塞添加与阻塞删除方法。阻塞添加阻塞添加是指当队列满时,阻塞加入线程,直到不满时才唤醒阻塞线程,才能执行加入操作。阻塞删除阻塞删除是指当队列为空时,阻塞删除线程,直到不为空才唤醒阻塞线程,才能执行删除操作。由此可见这不就是生产者消费...原创 2020-01-07 19:37:15 · 408 阅读 · 0 评论 -
线程池原理
多线程是开发常用的技术,Android 开发更是对UI 线程进行了限制,耗时操作必须放到子线程,new Thread 很简单就创建了一个子线程,但如果大型项目,很多地方都new Thread ,那么有一个问题就是我们将无法管理我的线程,大量的创建线程,占用过多资源,而且它们之间也会相互竞争,还有就是创建线程与线程执行完的销毁操作都是一部分系统开销。所以引入线程池很有意义。描述...原创 2020-01-06 11:37:33 · 233 阅读 · 0 评论 -
插件化基础知识(反射,动态代理,类加载器)
Java 反射获得Class对象获取类的构造函数调用类的私有方法获取类的私有字段并修改值代理静态代理动态代理动态代理的简单应用类加载器类加载器分类双亲委派模型几个重要函数自定义ClassLoaderAndroid 类加载器PathClassLoaderDexClassLoaderJava 反射Java 反射机制在程序运行时,对...原创 2019-12-01 23:08:43 · 410 阅读 · 0 评论 -
生产者消费者
之前看博客学了一种生产者消费者的写法,做一下笔记,以便回顾,因为感觉自己还没有很好的吸收。可以有多个生产与多个消费,LinkedList就像一个仓库容器,生产者往里加,消费者往外拿,只要没到满或空,就会这样进行下去,直到停止程序;如果满了,生产者进行等待(说明生产的太快了,可以歇会了),消费者进行消费后会通知它,它再干活。如果空了,消费者进行等待(说明消费的太快了,消费完了,没得消...原创 2019-05-03 11:11:49 · 118 阅读 · 0 评论 -
Java 浅拷贝
被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用仍然指向原来的对象。换言之,浅拷贝仅仅复制所考虑的对象,而不复制它所引用的对象。public class Book { private String name; public Book(String name) { this.name = name; } publi...原创 2019-04-18 20:13:44 · 289 阅读 · 0 评论 -
面试准备HashMap
HashMap线程不安全,允许null 值null 键 ,由数组+链表构成存储原理有一个数组存储元素,通过hashCode() 来获得关键字的哈希值(实际上是数组的下标)数组元素:Entry 类型3个数据域(key,value,next)。存储过程第一个键值对A进来,通过hashCode()计算其key的hash得到index=0,那么Entry[0]=A,第二个键值对...原创 2019-04-09 19:16:31 · 141 阅读 · 0 评论 -
Java String 学习笔记
在Java中,被final修饰的类是不允许被继承的,并且该类中的成员方法都默认为final方法。String类是final类,也即意味着String类不能被继承,并且它的成员方法都默认为final方法。String 对象一旦被创建就是固定不变的了,对String对象的任何改变都不影响到原对象,相关的任何change操作都会生成新的对象”。字符串常量池字符串的分配和其他对象分配一样,...原创 2019-03-17 11:57:46 · 216 阅读 · 0 评论 -
java 枚举单例
/** * 所有的枚举类型隐性地继承自java.lang.Enum 。 * 枚举实质上还是类!而每个枚举的成员实质就是一个枚举类型的实例, * 他们默认都是public static final 修饰的。可以直接通过枚举类型名使用它们。 * 建议: * 1.当你需要定义一组常量时,可以使用枚举类型 * 2.尽量不要使用枚举的高级特性,事实上高级特性都可以使用普通类...原创 2019-03-14 16:29:53 · 2529 阅读 · 0 评论