会员
周边
众包
新闻
博问
闪存
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
CarpenterLee
技术只是工具,重要的是人才!
博客园
首页
新随笔
管理
随笔 - 28 文章 - 0 评论 - 238 阅读 -
89万
[置顶]
Java Lambda表达式初探
摘要: Java 8已经发行两年多,但很多人仍然在使用JDK7。对企业来说,技术上谨慎未必是坏事,但对个人学习而言,不去学习新技术就很可能被技术抛弃。Java 8一个重要的变更是引入Lambda表达式(lambda expression)。不要怕,具体到语言层面上Lambda表达式不过是一种新的语法而已,有了它,Java将开启函数式编程的大门。
阅读全文
posted @ 2016-10-09 10:09 CarpenterLee
阅读(8266)
评论(21)
推荐(16)
编辑
[置顶]
《深入理解Java集合框架》系列文章
摘要: Introduction 关于 C++标准模板库(Standard Template Library, STL) 的书籍和资料有很多,关于 Java集合框架(Java Collections Framework, JCF) 的资料却很少,甚至很难找到一本专门介绍它的书籍,这给Java学习者们带来不小
阅读全文
posted @ 2016-05-31 15:23 CarpenterLee
阅读(24762)
评论(11)
推荐(17)
编辑
2018年8月30日
Java线程池详解
摘要: 构造一个线程池为什么需要几个参数?如果避免线程池出现OOM?`Runnable`和`Callable`的区别是什么?本文将对这些问题一一解答,同时还将给出使用线程池的常见场景和代码片段。`Executors`为我们提供了构造线程池的便捷方法,对于服务器程序我们应该杜绝使用这些便捷方法,而是直接使用线程池`ThreadPoolExecutor`的构造方法,避免无界队列可能导致的OOM以及线程个数限制不当导致的线程数耗尽等问题。`ExecutorCompletionService`提供了等待所有任务执行结束的有效方式,如果要设置等待的超时时间,则可以通过`CountDownLatch`完成。
阅读全文
posted @ 2018-08-30 08:32 CarpenterLee
阅读(117621)
评论(11)
推荐(51)
编辑
2018年1月8日
Java Proxy和CGLIB动态代理原理
摘要: 动态代理在Java中有着广泛的应用,比如Spring AOP,Hibernate数据查询、测试框架的后端mock、RPC,Java注解对象获取等。静态代理的代理关系在编译时就确定了,而动态代理的代理关系是在编译期确定的。今天我们来探讨Java中两种常见的动态代理方式:JDK原生动态代理和CGLIB动态代理。
阅读全文
posted @ 2018-01-08 09:08 CarpenterLee
阅读(38187)
评论(10)
推荐(32)
编辑
2017年12月22日
Nginx限速模块初探
摘要: Nginx限速模块分为哪几种?按请求速率限速的burst和nodelay参数是什么意思?漏桶算法和令牌桶算法究竟有什么不同?本文将带你一探究竟。我们会通过一些简单的示例展示Nginx限速模块是如何工作的,然后结合代码讲解其背后的算法和原理。
阅读全文
posted @ 2017-12-22 09:42 CarpenterLee
阅读(12637)
评论(1)
推荐(7)
编辑
2017年12月16日
200行Java代码搞定计算器程序
摘要: 能够图形化展示表达式语法树,不但能够计算加减乘除,还能够匹配小括号~。从朴素的界面配色到简单易懂错误提示,无不体现了“用户体验”至上的设计理念;代码异常处理全面合理、滴水不漏,代码缩进优雅大方,变量命名直观易懂;再结合长度适中简单明了的注释,程序整体给人一种清新脱俗之感。背后不难看出作者对学习的热爱以及对设计的苛求,工匠精神可见一斑,真可谓是大学数据结构学以致用的典范!
阅读全文
posted @ 2017-12-16 09:58 CarpenterLee
阅读(5192)
评论(2)
推荐(0)
编辑
2017年11月25日
深入理解Java内置锁和显式锁
摘要: 多线程编程中,当代码需要同步时我们会用到锁。Java为我们提供了内置锁(`synchronized`)和显式锁(`ReentrantLock`)两种同步方式。显式锁是JDK1.5引入的,这两种锁有什么异同呢?是仅仅增加了一种选择还是另有其因?本文为您一探究竟。内置锁能够解决大部分需要同步的场景,只有在需要额外灵活性是才需要考虑显式锁,比如可定时、可中断、多等待队列等特性。显式锁虽然灵活,但是需要显式的申请和释放,并且释放一定要放到finally块中,否则可能会因为异常导致锁永远无法释放!这是显式锁最明显的缺点。
阅读全文
posted @ 2017-11-25 20:52 CarpenterLee
阅读(7294)
评论(0)
推荐(4)
编辑
2017年9月2日
使用linux perf工具生成java程序火焰图
摘要: Java FlameGraph(火焰图)能够非常直观的展示java程序的性能分析结果,方便发现程序热点和进一步调优。本文将展示如何使用linux perf工具生成java程序的火焰图。
阅读全文
posted @ 2017-09-02 17:59 CarpenterLee
阅读(12453)
评论(0)
推荐(0)
编辑
2017年4月18日
《深入理解Java函数式编程》系列文章
摘要: 本系列文将帮助你理解Java函数式编程的用法、原理。Java 8已经发行两年多,但很多人仍然在使用JDK7。对企业来说,技术上谨慎未必是坏事,但对个人学习而言,不去学习新技术就很可能被技术抛弃。Java 8一个重要的变更是引入函数式编程和Lambda表达式(lambda expression),这听起来似乎很牛,有种我虽然不知道Lambda表达式是什么,但我仍然觉得很厉害的感觉。
阅读全文
posted @ 2017-04-18 18:53 CarpenterLee
阅读(18591)
评论(7)
推荐(6)
编辑
2017年4月11日
Java原子变量
摘要: 实现全局自增id最简单有效的方式是什么? 包定义了一些常见类型的原子变量。这些原子变量为我们提供了一种操作单一变量无锁( lock free )的线程安全( thread safe )方式。实际上该包下面的类为我们提供了类似 变量的特性,同时还提供了诸如 的功能。不使用锁实现线程安全听起来似乎很不可
阅读全文
posted @ 2017-04-11 19:22 CarpenterLee
阅读(4955)
评论(0)
推荐(2)
编辑
2017年4月7日
Java Stream API性能测试
摘要: 实验的结果可以总结如下: 对于简单操作,比如最简单的遍历,Stream串行API性能明显差于显示迭代,但并行的Stream API能够发挥多核特性。 对于复杂操作,Stream串行API性能可以和手动实现的效果匹敌,在并行执行时Stream API效果远超手动实现。 所以,如果出于性能考虑,1. 对于简单操作推荐使用外部迭代手动实现,2. 对于复杂操作,推荐使用Stream API, 3. 在多核情况下,推荐使用并行Stream API来发挥多核优势,4.单核情况下不建议使用并行Stream API。
阅读全文
posted @ 2017-04-07 08:12 CarpenterLee
阅读(9445)
评论(2)
推荐(10)
编辑
2017年3月28日
深入理解Java Stream流水线
摘要: 前面我们已经学会 "如何使用Stream API" ,用起来真的很爽,但简洁的方法下面似乎隐藏着无尽的秘密,如此强大的API是如何实现的呢?Pipeline是怎么执行的,每次方法调用都会导致一次迭代吗?自动并行又是怎么做到的,线程个数是多少?本节我们学习Stream流水线的原理,这是Stream实现
阅读全文
posted @ 2017-03-28 22:08 CarpenterLee
阅读(39170)
评论(23)
推荐(31)
编辑
下一页
--更多内容欢迎访问--
博主github主页
昵称:
CarpenterLee
园龄:
8年10个月
粉丝:
655
关注:
3
+加关注
<
2025年3月
>
日
一
二
三
四
五
六
23
24
25
26
27
28
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
最新随笔
1.Java线程池详解
2.Java Proxy和CGLIB动态代理原理
3.Nginx限速模块初探
4.200行Java代码搞定计算器程序
5.深入理解Java内置锁和显式锁
6.使用linux perf工具生成java程序火焰图
7.《深入理解Java函数式编程》系列文章
8.Java原子变量
9.Java Stream API性能测试
10.深入理解Java Stream流水线
随笔分类
深入理解Java函数式编程(8)
深入理解Java集合框架(11)
阅读排行榜
1. 史上最清晰的红黑树讲解(上)(161131)
2. Java线程池详解(117621)
3. Java Stream API进阶篇(83216)
4. 深入理解Java PriorityQueue(78679)
5. C语言编译过程详解(76876)
最新评论
1. Re:Nginx限速模块初探
感谢大佬分享。
--yangxinpei2015
2. Re:Lambda表达式和Java集合框架
比外面的深刻且易懂
--陪勒布朗度过漫长岁月
3. Re:《深入理解Java函数式编程》系列文章
@湖u stream原理是流水线处理,适合数据量大的集合 简单的list使用for循环会更快...
--陪勒布朗度过漫长岁月
4. Re:深入理解Java Stream流水线
手下我的膝盖
--陪勒布朗度过漫长岁月
5. Re:Java线程池详解
写的比之前看的入门视频通透多了...
--松鼠太可爱了
点击右上角即可分享