java基础
文章平均质量分 84
philos3
Android工程师,一个终身学习者,七年就是一辈子,走在践行的路上
展开
-
DirectMemory(堆外(Off-Heap)缓存BigMemory的一个实现)
就Java 本地Cache(非分布式)而言,存在3个地方可以存放数据:Heap, OffHeap和DiskBigMemory非开源产品,所以其源码不能通过正常渠道拿到。同时,有一个开源产品DirectMemory实现了类似BigMemory的Cache实现这是github的地址:https://github.com/raffaeleguidi/DirectMem转载 2016-04-09 09:48:16 · 3878 阅读 · 0 评论 -
完全掌握反射的各种用法
完全掌握反射的各种用法什么是反射反射(Reflection)是Java 程序开发语言的特征之一,它允许运行中的 Java 程序获取自身的信息,并且可以操作类或对象的内部属性。 Oracle官方对反射的解释是 Reflection enables Java code to discover information about the fields, methods and constructor原创 2017-05-24 00:08:06 · 622 阅读 · 0 评论 -
Hashtable 和 HashMap HashSet ConcurrentHashMap的区别
首先看下他们的继承关系public class Hashtable extends Dictionary implements Map, Cloneable, java.io.SerializableHashMap extends AbstractMap implements Map, Cloneable, Serializable他们都实现了Map 接原创 2017-03-30 07:46:20 · 700 阅读 · 0 评论 -
ReentrantReadWriteLock理解与实例
Lock比传统线程模型中的synchronized方式更加面向对象,与生活中的锁类似,锁本身也应该是一个对象。两个线程执行的代码片段要实现同步互斥的效果,它们必须用同一个Lock对象。 读写锁:分为读锁和写锁,多个读锁不互斥,读锁与写锁互斥,这是由jvm自己控制的,你只要上好相应的锁即可。如果你的代码只读数据,可以很多人同时读,但不能同时写,那就上读锁;如果你的代码修改数据,只能有一个人在写原创 2016-04-18 20:21:13 · 894 阅读 · 0 评论 -
深入浅出Java并发包—读写锁ReentrantReadWriteLock原理分析(一)
Java里面真正意义的锁并不多,其实真正的实现Lock接口的类就三个,ReentrantLock和ReentrantReadWriteLock的两个内部类(ReentrantReadWriteLock实现了ReadWriteLock接口,并没有实现Lock接口,是其内部类ReadLock和WriteLock实现了Lock的接口),其他都是通过我们前面说的一些工具类实现了线程的阻塞。 前面锁转载 2016-04-17 11:39:04 · 505 阅读 · 0 评论 -
深入浅出Java并发包—锁机制(二)
2、Sync.FairSync.TryAcquire(公平锁)我们直接来看代码protected final boolean tryAcquire(int acquires) { final Thread current = Thread.currentThread(); int c =getState();转载 2016-04-17 11:35:57 · 351 阅读 · 0 评论 -
深入浅出Java并发包—锁机制(三)
由锁衍生的下一个对象是条件变量,这个对象的存在很大程度上是为了解决Object.wait/notify/notifyAll难以使用的问题。条件(也称为条件队列 或条件变量)为线程提供了一个含义,以便在某个状态条件现在可能为 true 的另一个线程通知它之前,一直挂起该线程(即让其“等待”)。因为访问此共享状态信息发生在不同的线程中,所以它必须受保护,因此要将某种形式的锁与该条件相关联。等待提供转载 2016-04-17 10:51:52 · 350 阅读 · 0 评论 -
深入浅出Java并发包—读写锁ReentrantReadWriteLock原理分析(二)
下面我们再来看下读锁的实现:protected final int tryAcquireShared(int unused) { Thread current = Thread.currentThread(); int c = getState(); if (exclusiveCount(c) != 0 && getExc转载 2016-04-17 10:48:34 · 558 阅读 · 0 评论 -
深入浅出Java并发包—锁机制(一)
转自:http://yhjhappy234.blog.163.com/blog/static/316328322013548580299/前面我们看到了Lock和synchronized都能正常的保证数据的一致性(上文例子中执行的结果都是20000000),也看到了Lock的优势,那究竟他们是什么原理来保障的呢?今天我们就来探讨下Java中的锁机制!Synchroniz转载 2016-04-17 10:41:45 · 746 阅读 · 0 评论 -
Canvas的drawText绘制文本自动换行(支持设置显示最大行数)
Canvas的drawText绘制文本自动换行(支持设置显示最大行数)使用Canvas的drawText绘制文本是不会自动换行的,即使一个很长很长的字符串,drawText也只显示一行,超出部分被隐藏在屏幕之外。可以逐个计算每个字符的宽度,通过一定的算法将字符串分割成多个部分,然后分别调用drawText一部分一部分的显示, 但是这种显示效率会很低。StaticLayout是android中处理文字原创 2017-05-24 00:53:01 · 4952 阅读 · 0 评论