`
deepinmind
  • 浏览: 450756 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
1dc14e59-7bdf-33ab-841a-02d087aed982
Java函数式编程
浏览量:41549
社区版块
存档分类
最新评论
文章列表
本系列文章译自Venkat Subramaniam的Functional Programming in Java 列表的转化 将集合转化成一个新的集合就和遍历它一样简单。假设我们要将列表中的名字转化成全大写的。我们看下都有哪些实现方式。 Java中的字符串是不可变的,所以 ...
听到ThreadSafe这个东西我的第一反应就是, ”天啊,又出了一个静态代码分析工具”。在内部开发中引入了像PMD或者FindBugs这类的工具,又花了不少时间优化成零警告后,我感觉已经不再需要其它的工具了。不过我真的错了。 ThreadSafe这个工具跟别的代码分析工具一样,但有一点不同,它更专注于Java开发中一个非常重要的领域——并发。Contemplate的小伙伴们太给力了,他们注意到了需要有这么个工具,能快速定位到代码中可能存在的并发,多线程相关的问题。 这个工具有两种使用方法——Eclipse插件或者Sonar插件。我用了下它的Eclipse插件去分析了inspectIT的源码 ...
本系列文章译自Venkat Subramaniam的Functional Programming in Java 第四节:进化而非革命 我们用不着转向别的语言,就能享受函数式编程带来的好处;需要改变的只是使用Java的一些方式。C++,Java,C#这些语言都支持命令式和面向对象的 ...
我读到一篇相当相当有趣的关于Erlang VM内存管理策略的文章。它是Jesper Wilhelmsson写的一篇论文,我觉得有必要讨论一下Erlang和Oracle的Java虚拟机在内存管理方面的不同之处。 对于从没听说过Erlang的人来说,有必要简单的介绍一下,它是一门函数式语言,并且使用异步消息传递作为它并发的基石。消息传递使用的是拷贝的机制,并且在不同的Erlang虚拟机中传播,甚至是在不同的机器上(不过这个对程序员来说是透明的)。 Erlang和Java都通过虚拟机将底层硬件抽象成了一个可移植的平台。两门语言都采用了独立于机器的字节码。两者的运行时系统都通过垃圾回收来将程序员从内 ...
本系列文章译自Venkat Subramaniam的Functional Programming in Java 未完待续,后续文章请继续关注deepinmind。 译者注:本篇会有点无聊,希望你不要睡着了。 第一章 你好,lambda表达式! 第二节:函数式编程的最大收获 函数式风格的代 ...
本系列文章译自Venkat Subramaniam的<a href="http://pragprog.com/book/vsjava8/functional-programming-in-java" target="_blank"><em>Functional Programming in Java</em></a> 第一章 你好,lambda表达式! 第一节 Java的编码风格正面临着翻天覆地的变化。 我们每天的工作将会变成更简单方便,更富表现力。Java这种新的编程方式早在数十年前就已经出现在别 ...
在Java 8里面,java.util.Random经过改进后增加了一个实用的功能,可以返回一个随机数的流。 比如,如果要生成[0, 1)之间的随机浮点数的无限流: Random random = new Random(); DoubleStream doubleStream = random.doubles(); 或者要生成[0, 100)间的整数的无限流: Random random = new Random(); IntStream intStream = random.ints(0, 100); 那么一个无限的随机流有什么用呢?下面我会列举出几个场景。不过需要注意的是这是个 ...
每当你打开的Linux虚拟主机的时候,通常是为了完成工作。但是,一台普通的Linux主机上,有成千上万的开发者开发的软件,你能保证他们都是这么正经的? Linux的软件有加一些有趣的彩蛋的传统。本文主要是介绍一些有趣的命令和选项,让你的生活更多彩一些。这些并非全是彩蛋,不过我相信你多少会喜欢它们的。 文本编辑器 vim和Douglas Adams 熟悉Douglas Adams(也就是The Hitchhiker's Guide to the Galaxy一书的作者)的人,vim编辑器有个帮忙选项会让你赞不绝口。 如果你还没装vim。在Ubuntu/Debian,你可以这样: sudo ...
前面有些废话就不翻译了,直接切入正题吧~ 结构型模式: 适配器模式: 用来把一个接口转化成另一个接口。 java.util.Arrays#asList() javax.swing.JTable(TableModel) java.io.InputStreamReader(InputStream) java.io.OutputStreamWriter(OutputStream) javax.xml.bind.annotation.adapters.XmlAdapter#marshal() javax.xml.bind.annotation.adapters.XmlAdapter#unmars ...
    sun.misc.Unsafe为你大开Java的方便之门,你可以用它做很多Java不允许的事情,在一些非常特殊的场景下它还是非常有用的。99%的时候,你都应该避免使用它,然而在有些非常罕见的情况下,只有它能解决问题。 本文讲述了它在 ...
更多文章请移步:Java译站 我们经常会在工作中用到反射,要么直接使用,要么通过一些框架。在Java和Scala编程里,如果想要和我们的代码进行跟踪交互,却又希望对代码透明,最主流的一个方式就是反射。不过我们用到的反射 ...
更多文章请移步:Java译站 当堆栈跟踪信息里面出现OutOfMemoryError的时候,你应该很清楚发生了什么。应用程序由于没有足够的内存空间所以挂了。一般知道这个就也够了,但是对于构建和维护应用程序的人来说,要想弄清楚具 ...
Global site tag (gtag.js) - Google Analytics