java
文章平均质量分 57
zxadcsdn
这个作者很懒,什么都没留下…
展开
-
java笔记short相加自动转换
精度小于int的数值运算的时候都回被自动转换为int后进行计算所以,下面的代码会报编译错误short s1 = 5;short s2 = 3;s1= (s1+s2);必须改成:short s1 = 1;short s2 = 1;s1= (short)(s1+s2);但是,s1+=4;是正确的原创 2016-09-27 16:50:40 · 1879 阅读 · 0 评论 -
对象的共享——可见性
可见性单线程,写入读取,很自然。 多线程,当一个线程写入数据,一个读取时候,会产生一系列问题,无法确保读操作的线程看到其他线程写入的数据,因此,需要使用同步。public classNovisibility{ private static boolean ready; private static int number; private static class...原创 2018-08-26 10:28:39 · 434 阅读 · 0 评论 -
ClassLoader类结构
作用将Class加载到JVM审查类由谁加载字节码解析成JVM统一要求的对象格式类结构分析常用方法: findClass(String) Class<?>; loadClass(String) Class<?>; resolveClass(Class<?>) void;defineClass(b原创 2018-10-15 09:38:03 · 192 阅读 · 0 评论 -
同步工具类(闭锁,信号量,FutureTask,信号量,栅栏)
同步工具类可以使任何一个对象,只要它根据自身的状态来协调线程的控制流。阻塞队列可以作为同步工具类,其他类型的同步工具类还包括信号量,栅栏以及闭锁。所有的同步工具类都包含一些特定的结构化属性:封装了一些状态,这些状态将决定执行同步工具类的线程是继续执行还是等待,还提供一些方法对状态进行操作,自己用于高效的等待同步工具类进入预期状态的方法。闭锁可以延迟线程的进度直到其到达终止状态。闭锁作用相当...原创 2018-11-04 18:12:14 · 346 阅读 · 0 评论 -
线程池(Executor框架)
任务是一组逻辑工作单元,而线程则是使任务异步执行的机制。当把所有任务都放在单个线程中串行执行时,会产生糟糕的响应性;“为每个任务分配一个线程”资源管理的复杂性会升高,不足如下:线程生命周期的开销非常高。(创建和销毁)资源消耗活跃资源消耗资源,尤其内存。当可运行线程大于可用处理器时,有些线程将闲置,从而闲置线程占用许多内存,给垃圾回收器带来压力,而且在竞争CPU会有其他性能消耗。稳定性...原创 2018-11-07 08:54:10 · 839 阅读 · 1 评论 -
Future和Callable,CompletionService实现并行化
Callable和Future实现并行化Future表示一个任务的生命周期,并可以判断是否完成和取消。接口 方法如下:boolean cancel(boolean);取消任务V get();获取结果,阻塞等待V get(long, TimeUnit);最大超时等待(时间,时间单位)boolean isCancelled();boolean isDone();如下面代码示例:当加载...原创 2018-11-07 21:09:54 · 196 阅读 · 0 评论 -
构建 高效可伸缩的结果缓存
通过HashMap实现缓存Computable接口public interface Computable<A, V> { V compute(A arg) throws InterruptedException;}**ExpensiveFunction **(表示结果的计算过程)public class ExpensiveFunction implements Compu...原创 2018-11-05 08:45:46 · 160 阅读 · 0 评论