- 浏览: 451410 次
- 性别:
- 来自: 北京
博客专栏
-
Java函数式编程
浏览量:41620
最新评论
-
niqingyang:
看到lambda表达式后,感觉Java不再优雅了,还是喜欢面向 ...
Java函数式编程(一) -
tomqyp:
太过危言耸听了,抛开那少比较底层的语言,高级语言中反到是不少都 ...
动态语言已死? -
windshome:
设计这样JVM的人和在真正产品实现里写这样代码的人都是疯子。前 ...
JVM的自愈能力 -
yixiandave:
有多少人把JAVA8用在生产环境了?
JVM的自愈能力 -
ljbupc:
这个好像是1.8版jvm的新特性;1.7以下的不行(JVM-H ...
JVM的自愈能力
文章列表
有时候事情多得我喘不过气来的时候,我会出现一种异常反应,好像找点别的事做,就能远离烦恼了。通常我会写些自己能完成的独立的小程序。
有一天早上,我正在写的书,工作中的事情,还有要为Strang Loop准备的分享,这 ...
什么是JDBC,在什么时候会用到它?
JDBC的全称是Java DataBase Connection,也就是Java数据库连接,我们可以用它来操作关系型数据库。JDBC接口及相关类在java.sql包和javax.sql包里。我们可以用它来连接数据库,执行SQL查询,存储过程, ...
Java会将源代码中的字符串常量存储到常量池中。也就是说,当你这么写的时候:
String a = "I am a string";
String b = "I am a string";
变量a和变量b是同一个值。这不只是说它俩的值是一样的,而是说就是同一个字 ...
本系列文章译自Venkat Subramaniam的Functional Programming in Java
第二章:集合的使用
我们经常会用到各种集合,数字的,字符串的还有对象的。它们无处不在,哪怕操作集合的代码要能稍微优化一点,都能让代码清晰很多。在这章中,我们探索下如何使用lambda表达式来操作集合。我们用它来遍历集合,把集合转化成新的集合,从集合中删除元素,把集合进行合并。
遍历列表
遍历列表是最基本的一个集合操作,这么多年来,它的操作也发生了一些变化。我们使用一个遍历名字的小例子,从最古老的版本介绍到现在最优雅的版本。
用下面的代码我们很容易创建一个不可变的名字的列表 ...
更多文章请移步:Java译站
如果你用过反射并且执行过 getDeclaredMethods方法的话,你可能会感到很惊讶。你会发现很多源代码里没有的方法。或许你也看过到这些方法的一些修饰符,并且发现里面有的方法是volatile的。顺便说一句 ...
许多事件都可能会导致JVM暂停所有的应用线程。这类暂停又被称为"stop-the-world"(STW)暂停。触发STW暂停最常见的原因就是垃圾回收了(github中的一个例子](https://github.com/gvsmirnov/java-perv/blob/master/labs-8/src/main/java/ru/gvsmirnov/perv/labs/safepoints/FullGc.java)),但不同的JIT活动([例子](https://github.com/gvsmirnov/java-perv/blob/master/labs-8/src/main ...
Fork/Join框架在不同配置下的表现如何?
正如即将上映的星球大战那样,Java 8的并行流也是毁誉参半。并行流(Parallel Stream)的语法糖就像预告片里的新型光剑一样令人兴奋不已。现在Java中实现并发编程存在多种方式,我们希望了解这么做所带来的性能提升及风险是什么。从经过260多次测试之后拿到的数据来看,还是增加了不少新的见解的,这里我们想和大家分享一下。
ExecutorService vs. Fork/Join框架 vs. 并行流
在很久很久以前,在一个遥远的星球上。。好吧,其实我只是想说,在10年前,Java的并发还只能通过第三方库来实现。然后Java ...
*Java线程有哪些不太为人所知的技巧与用法?**
萝卜白菜各有所爱。像我就喜欢Java。学无止境,这也是我喜欢它的一个原因。日常工作中你所用到的工具,通常都有些你从来没有了解过的东西,比方说某个方法或者是一些有趣的用法。比如说线程。没错,就是线程。或者确切说是Thread这个类。当我们在构建高可扩展性系统的时候,通常会面临各种各样的并发编程的问题,不过我们现在所要讲的可能会略有不同。
从本文中你将会看到线程提供的一些不太常用的方法及技术。不管你是初学者还是高级用户或者是Java专家,希望都能看一下哪些是你已经知道的,而哪些是刚了解的。如果你认为关于线程还有什么值得分享给大家的,希 ...
本文将会对常用的几个压缩算法的性能作一下比较。结果表明,某些算法在极端苛刻的CPU限制下仍能正常工作。
文中进行比较的算有:
JDK GZIP ——这是一个压缩比高的慢速算法,压缩后的数据适合长期使用。JDK中的java.util.zip ...
真相总会不期而遇。它们总是不经意间降临,譬如当我读到这条微博的时候:
这是关于Facebook的Flow的一个很不错的讨论 – http://t.co/5KTKakDB0w
— David J. Pearce (@whileydave) November 23, 2014
David是Whiley编程语言](http://whiley.org/)的作者,这门语言内建了许多静态类型检查的特性,它比较小众,但粉丝还不少。它的一个很有意的特性就是流敏感(flow sensitive)类型(有时也被称为流类型),当它与联合(union)类型配合使用的时候会比较有用。下面是从它的[使用向导中 ...
在IT行业,碰到问题的第一个反应通常是——“你重启过没”——而这样做可能会适得其反,本文要讲述的就是这样的一个场景。
接下来要介绍的这个应用,它不仅不需要重启,而且毫不夸张地说,它能够自我治愈:刚开始运行 ...
我经常发现有人会使用双括号这个反模式来进行编程(也被称为双括号初始化](http://stackoverflow.com/q/1958636/521799))。[Stack Overflow上刚刚又有一个:
Map source = new HashMap(){{
put("firstName", "John");
put("lastName& ...
ExecutorService](https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html)这个接口从Java 5开始就已经存在了。这得追溯到2004年了。这里小小地提醒一下,官方已经不再支持Java 5, Java 6了,Java 7[在半年后也将停止支持。我之所以会提起ExecutorService这么旧的一个接口是因为,大多数Java程序员并没有搞清楚它的工作原理。关于它可以介绍的有很多,这里我只想分享它的一些较少为人所知的特性以及实践技巧。本文主要是面向初级程序员的,并没有过于 ...
一个朋友在跟我一块吃午饭的时候问了我一个问题:现代编程语言的发展历程是什么样的,它是如何发展到现在这样的?他觉得我应该能答得上来,但其实我只能说个大概。
我跟他提了下机器语言,以及人们为了简化它所做的 ...
在完善我们的测试台以便提高Plumbr](https://plumbr.eu/gc)排查GC故障能力的时候,我编写了[一个小小的测试用例,我觉得应该会有不少人对它感兴趣。我的目标是测试JVM在不同的伊甸区(Eden), 存活区(Survivor)以及年老代空间的分配情况下的自适应能力。
这个测试用例就是在批量地生成对象。每秒会批量生成一批,每批大概是500KB的大小。这些对象的生命周期是5秒钟,之后它们的引用会被删除掉,然后就可以进行垃圾回收了。
本次测试是运行在Mac OS X的Oracle Hotspot 7 JVM上的,使用的是ParallelGC策略,堆的大小是30M。知道了运行的 ...