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