随笔分类 -  JAVA

多线程同步的三大神器
摘要:本文出自 "代码大湿" "代码大湿" 实现多个线程同步一般有三种方式(CountDownLatch,CyclicBarrier,Semaphore) 1:CountDownLatch一般用于一个线程等待其他多个线程的同步。其countDown方法将计数器减1。await方法在计数器不为0的时候都是阻 阅读全文
posted @ 2016-08-30 16:45 生活旅者 阅读(682) 评论(0) 推荐(0) 编辑
轻松突击ThreadLocal
摘要:本文出自 "代码大湿" "代码大湿" ThreadLocal是用来保存线程的本地变量,可以保证每个线程都有一个自己的变量(包括static变量)。 "本文所有代码请点击我" 1 看个实际场景。 我们要设计一个序列号生成器,每个线程之间对序列号的获取是是隔离的。初始我们可能会这样设计。使用一个stat 阅读全文
posted @ 2016-08-28 16:44 生活旅者 阅读(385) 评论(0) 推荐(0) 编辑
轻松搞定技术面系列 1——基础篇
摘要:本文出自 "代码大湿" "代码大湿" 有段时间没有更新新文章了,接下来想把文章的更新速度放慢点,主要是想写出更高质量的文章,最近收录了多年面试的经典题目,包括答案,本系列会持续更新。 1 线程和进程的区别 1 资源占用:进程是系统资源分配的基本单位,进程拥有自己独立的内存空间,所属同一进程的各个线程 阅读全文
posted @ 2016-08-17 18:43 生活旅者 阅读(925) 评论(2) 推荐(1) 编辑
Java集合排序(看完秒懂)
摘要:比如将一个 排序,则有两种方式: 1:Student实现Comparable接口: 2:给排序方法传递一个Comparator参数: 请看下面的举例: Student类: 执行结果: 默认排序 T F 18 H胡歌 28 Z周润发 50 M梅兰芳 100 倒序排序 M梅兰芳 100 Z周润发 50 阅读全文
posted @ 2016-07-05 21:11 生活旅者 阅读(18123) 评论(0) 推荐(1) 编辑
Java——观察者模式实例
摘要:观察者模式(订阅/发布模式) 作者: "代码大湿" "代码大湿" Java中观察者模式中主要是Observerable类(被观察者),和Observer接口(观察者)。下面是个简单的demo //被观察者 //观察者 //main方法 结果 更多好文关注; "代码大湿" "代码大湿" 阅读全文
posted @ 2016-06-02 21:49 生活旅者 阅读(1324) 评论(0) 推荐(0) 编辑
Java——泛型(最易懂的方式讲解泛型)
摘要:来自: "代码大湿" "代码大湿" 写在前面: 只要认真看过,基本能很熟悉泛型的特性。泛型是JDK1.5之后出现的,比如JDK1.5之前的ArrayList,会出现2个问题 1:向ArrayList当中添加对象,添加String和Date都可以,但我们的本意是添加String,编译器不会检查错误,会 阅读全文
posted @ 2016-06-02 21:24 生活旅者 阅读(1121) 评论(2) 推荐(1) 编辑
Java8新特性 1——利用流和Lambda表达式操作集合
摘要:Java8中可以用简洁的代码来操作集合,比如List,Map,他们的实现ArrayList。以此来实现Java8的充分利用CPU的目标。 流和Lambda表达式都是Java8中的新特性。流可以实现对集合的遍历,过滤,聚合,求和以及求平均值等操作。文章力求好懂的基础上写得简洁,达到看完就能用的效果。 阅读全文
posted @ 2016-05-31 22:20 生活旅者 阅读(983) 评论(1) 推荐(1) 编辑
JAVA——利用wait和notify实现生产者和消费者
摘要:经典的消费者和生产者的的实现: 注意事项: 1:在循环里面用wait(),因为当线程获得了锁,但是有可能还没有满足其他条件: 2:公用的缓冲池要用锁机制: 执行结果是: 阅读全文
posted @ 2016-05-23 22:31 生活旅者 阅读(2946) 评论(0) 推荐(0) 编辑
JAVA——装箱和拆箱
摘要:Java 将某些基本数据类型自动转换为包装类型的过程称为装箱,相反自动将包装类型转换为基本数据类型的过程称为拆箱。 Integer integer_1=1; //装箱 int i=integer_1; //拆箱 装箱会调用 Integer.valueOf(int) 函数: 拆箱会调用 Integer 阅读全文
posted @ 2016-05-22 23:00 生活旅者 阅读(1558) 评论(0) 推荐(0) 编辑