
深入java
阿布2
当你的能力撑不起你的野心的时候,静下来好好学习吧!!!
展开
-
ConurrentHashMap和Hashtable的区别
集合类是Java API的核心,但是我觉得要用好它们是一种艺术。我总结了一些个人的经验,譬如使用ArrayList能够提高性能,而不再需要过时的Vector了,等等。JDK 1.5引入了一些好用的并发集合类,它们对于大型的、要求低延迟的电子商务系统来说非常的有用。这篇文章中将会看看ConcurrentHashMap和Hashtable之间的区别。这篇文章是HashMap的工作原理以及H转载 2015-03-30 13:37:14 · 408 阅读 · 0 评论 -
java类的生命周期
本人摘自ImportNew:http://www.importnew.com/15435.html 原作者:卡奴达摩出处:http://blog.youkuaiyun.com/chenleixing/article/details/44732943首先来了解一下jvm(java虚拟机)中的几个比较重要的内存区域,这几个区域在java类的生命周期中扮演着比较重要的角色:方法区:转载 2015-03-30 13:49:34 · 410 阅读 · 0 评论 -
通过变量名获取变量值
public static Object getAllComponentsName(Object f, String name) { Object obj = null; // 获取f对象对应类中的所有属性域 Field[] fields = f.getClass().getDeclaredFields(); for (int原创 2016-04-20 11:31:50 · 3523 阅读 · 0 评论 -
Java并发编程:线程池的使用
Java并发编程:线程池的使用 在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题: 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。 那么有没有一种办法使得线程可以复用,就是执行完一个任务,并不被销毁,而是可以继续执行其他的任转载 2016-09-23 11:57:16 · 299 阅读 · 0 评论 -
CountDownLatch与CyclicBarrier
CountDownLatch使用CountDownLatch的一个非常典型的应用场景是:有一个任务想要往下执行,但必须要等到其他的任务执行完毕后才可以继续往下执行。假如我们这个想要继续往下执行的任务调用一个CountDownLatch对象的await()方法,其他的任务执行完自己的任务后调用同一个CountDownLatch对象上的countDown()方法,这个调用await()方法的任原创 2016-11-30 10:35:42 · 296 阅读 · 0 评论 -
Future和FutureTask
Future和FutureTask Executor框架使用Runnable 作为其基本的任务表示形式。Runnable是一种有局限性的抽象,然后可以写入日志,或者共享的数据结构,但是他不能返回一个值。许多任务实际上都是存在延迟计算的:执行数据库查询,从网络上获取资源,或者某个复杂耗时的计算。对于这种任务,Callable是一个更好的抽象,他能返回一个值,并可能抛出一个异常。Fut原创 2016-11-30 14:35:22 · 932 阅读 · 0 评论 -
java 动态代理
主要用来做方法的增强,让你可以在不修改源码的情况下,增强一些方法,在方法执行前后做任何你想做的事情(甚至根本不去执行这个方法),因为在InvocationHandler的invoke方法中,你可以直接获取正在调用方法对应的Method对象,具体应用的话,比如可以添加调用日志,做事务控制等。原创 2016-11-30 15:25:26 · 279 阅读 · 0 评论 -
java程序猿必修技能
JAVA 基础1. Java 中的几种基本数据类型是什么,各自占用多少字节。 2. String 类能被继承吗,为什么。 3. String,Stringbuffer,StringBuilder的区别。 4. ArrayList 和 LinkedList 有什么区别。 5. 讲讲类的实例化顺序,比如父类静态数据,构造函数,字段,子类静态数据,构造函数,字段,当 new 的时候,转载 2017-04-07 16:12:55 · 2338 阅读 · 1 评论