身为JAVA工作者必须了解的实战知识(四)
一、同步容器类
1. 同步容器类的问题
线程容器类都是线程安全的,但是当在其上进行符合操作则需要而外加锁保护其安全性。
常见符合操作包含:
. 迭代
. 跳转(根据指定顺序找到当前元素的下一个元素)
. 条件运算
迭代问题可以查看之前的文章
《Java ConcurrentModificationException 异常分析与解决方案》
集合类型非线程安全线程安全
ListArrayListCopyOnWriteArrayList
SetSortedSetConcurrentSkipListSet
MapHashMap、SortedMapConcurrentHashMap、ConcurrentSkipListMap、
ConcurrentHashMap
CopyOnWriteArrayList
队列 - BlockingQueue
以下内容摘录自《温绍锦 - Java并发程序设计教程-》
[java]view plaincopy
// 第一种方式
Thread thread =newThread("interrupt test") {
publicvoidrun() {
for(;;) {
doXXX();
if(Thread.interrupted()) {
break;
}
}
}
};
thread.start();
// 第二种方式
Thread thread =newThread("interrupt test") {
publicvoidrun() {
for(;;) {
try{
doXXX();
}catch(InterruptedException e) {
break;
}catch(Exception e) {
// handle Exception
}
}
}
};
thread.start();
// 第三种方式
publicvoidfoo()throwsInterruptedException {
if(Thread.interrupted()) {
thrownewInterruptedException();
}
}
程序应该对线程中断作出恰当的响应。
1. 闭锁 CountDownLatch
2. FutureTask
3. 信号量
4. 栅栏(Barrier)
以上就是我推荐给Java开发者们的一面试经典知识。但是这些知识里面并没有太多Java全栈、Java晋阶、JAVA架构之类的题,不是我不推荐,而是希望大家更多的从基本功做起,打好基础,太多复杂的内容一会儿也说不明白。
好了同学们,我能介绍的也都全部介绍完给你们了,如果下获得更多JAVA教学资源,可以选择来我们这里共同交流,群:240448376,很多大神在这里切磋学习,不懂可以直接问,晚上还有大牛免费直播教学。
注:加群要求
1、具有一定工作经验的,面对目前流行的技术不知从何下手,需要突破技术瓶颈的可以加,有些应届生和实习生也可以加。
2、在公司待久了,过得很安逸,但跳槽时面试碰壁。需要在短时间内进修、跳槽拿高薪的可以加。
3、如果没有工作经验,但基础非常扎实,对java工作机制,常用设计思想,常用java开发框架掌握熟练的,可以加。
4、觉得自己很牛B,一般需求都能搞定。但是所学的知识点没有系统化,很难在技术领域继续突破的可以加。
5.阿里Java高级大牛直播讲解知识点,分享知识,多年工作经验的梳理和总结,带着大家全面、科学地建立自己的技术体系和技术认知!
PS:现在主要讲解的内容是(反射原理、枚举原理与应用、注解原理、常用设计模式、正规表达式高级应用、JAVA操作Office原理详解、JAVA图像处理技术,等多个知识点的详解和实战)
6.小号或者小白之类加群一律不给过,谢谢。
最后,每一位读到这里的网友,感谢你们能耐心地看完。觉得对你有帮助可以给个喜欢!希望在成为一名更优秀的Java程序员的道路上,我们可以一起学习、一起进步