11 2018 档案

摘要:一、内部类基础 在Java中,可以将一个类定义在另一个类里面或者一个方法里面,这样的类称为内部类。广泛意义上的内部类一般来说包括这四种:成员内部类、局部内部类、匿名内部类和静态内部类。下面就先来了解一下这四种内部类的用法。 1、成员内部类 成员内部类是最普通的内部类,它的定义为位于另一个类的内部,形 阅读全文
posted @ 2018-11-25 15:17 阿玛尼迪迪 阅读(324) 评论(0) 推荐(0) 编辑
摘要:在前面几篇文章中,我们讨论了同步容器(Hashtable、Vector),也讨论了并发容器(ConcurrentHashMap、CopyOnWriteArrayList),这些工具都为我们编写多线程程序提供了很大的方便。今天我们来讨论另外一类容器:阻塞队列。 在前面我们接触的队列都是非阻塞队列,比如 阅读全文
posted @ 2018-11-22 18:53 阿玛尼迪迪 阅读(262) 评论(0) 推荐(0) 编辑
摘要:Copy-On-Write简称COW,是一种用于程序设计中的优化策略。其基本思路是,从一开始大家都在共享同一个内容,当某个人想要修改这个内容的时候,才会真正把内容Copy出去形成一个新的内容然后再改,这是一种延时懒惰策略。从JDK1.5开始Java并发包里提供了两个使用CopyOnWrite机制实现 阅读全文
posted @ 2018-11-21 15:18 阿玛尼迪迪 阅读(220) 评论(0) 推荐(0) 编辑
摘要:网上有很多人探讨Java中异常捕获机制try...catch...finally块中的finally语句是不是一定会被执行?很多人都说不是,当然他们的回答是正确的,经过试验,至少有两种情况下finally语句时不会被执行的: (1)try语句没有被执行到,如在try语句之前就返回了,这样finall 阅读全文
posted @ 2018-11-20 17:57 阿玛尼迪迪 阅读(257) 评论(0) 推荐(0) 编辑
摘要:如java中:if(name == null)和if(null == name)有什么讲究吗? 答:在java里面,它们是一样的。但是通常写为null == name。这其实是在C语言里面引申出来的。 在C语言里面,为了防止少敲一个等号,编程人员仍然能在编译的时候找到错误。因为if(name = n 阅读全文
posted @ 2018-11-19 19:41 阿玛尼迪迪 阅读(11429) 评论(0) 推荐(0) 编辑
摘要:空串 空串""是长度为0的字符串。可以调用以下代码检查字符串是否为空: 空串是一个java对象,有自己的串长度(0)和内容(空)。 null 不过,String变量还可以存放一个特殊的值,名为null,这表示目前没有任何对象与该变量关联。要检查一个字符串是否为null,要使用以下条件: 有时要检查一 阅读全文
posted @ 2018-11-19 19:31 阿玛尼迪迪 阅读(2627) 评论(0) 推荐(0) 编辑
摘要:一、多线程put后get为null 源码定位 分析:线程1将src[j] = null;即将table[j] = null;因为代码第二行定义了Entry[] src = table;即src和table是对同一对象的引用。 这时切换到线程2,线程2此时若正在调用get(key)方法: 若get(k 阅读全文
posted @ 2018-11-12 20:10 阿玛尼迪迪 阅读(1908) 评论(0) 推荐(0) 编辑
摘要:JDK5中添加了新的concurrent包,相对同步容器而言,并发容器通过一些机制改进了并发性能。因为同步容器将所有对容器状态的访问都串行化了,这样保证了线程的安全性,所以这种方法的代价就是严重降低了并发性,当多个线程竞争容器时,吞吐量严重降低。因此Java5.0开始针对多线程并发访问设计,提供了并 阅读全文
posted @ 2018-11-12 15:53 阿玛尼迪迪 阅读(501) 评论(0) 推荐(0) 编辑
摘要:问题的症状 从前我们的Java代码因为一些原因使用了HashMap这个东西,但是当时的程序是单线程的,一切都没有问题。后来,我们的程序性能有问题,所以需要变成多线程的,于是,变成多线程后到了线上,发现程序经常占了100%的CPU,查看堆栈,你会发现程序都Hang在了HashMap.get()这个方法 阅读全文
posted @ 2018-11-11 16:18 阿玛尼迪迪 阅读(670) 评论(0) 推荐(0) 编辑
摘要:ArrayList 优点:ArrayList是实现了基于动态数组的数据结构,因为地址连续,一旦数据存储好了,查询操作效率会比较高(在内存里是连着放的)。 缺点:因为地址连续,当要插入和删除时,Arraylist要移动数据,所以插入和删除操作效率比较低。 LinkedList 优点:LinkedLis 阅读全文
posted @ 2018-11-07 15:19 阿玛尼迪迪 阅读(1371) 评论(0) 推荐(0) 编辑
摘要:哈希表这个数据结构想必大多数人都不陌生,而且在很多地方都会利用到hash表来提高查找效率。在Java的Object类中有一个方法: 根据这个方法的声明可知,该方法返回一个int类型的数值,并且是本地方法,因此在Object类中并没有给出具体的实现。 为何Object类需要这样一个方法?它有什么作用呢 阅读全文
posted @ 2018-11-06 17:05 阿玛尼迪迪 阅读(227) 评论(0) 推荐(0) 编辑
摘要:哈希表(hash table)也叫散列表,是一种非常重要的数据结构,应用场景极其丰富,许多缓存技术(比如memcached)的核心其实就是在内存中维护一张大的哈希表,而HashMap的实现原理也常常出现在各类的面试题中,重要性可见一斑。本文会对java集合框架中的对应实现HashMap的实现原理进行 阅读全文
posted @ 2018-11-04 12:34 阿玛尼迪迪 阅读(188) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示