本周算法:有向无环图的最短路径
介绍 我们已经知道了如何通过Dijkstra算法在非负权图中找到最短路径。即使图中有负权边,我们也知道通过Bellman-Ford算法找到一个从给定的源点到其它所有节点的最短路径。现在我们将看到一个在线性时间内运行得更快的算法,它可以在有向无环图中找到从一个给定的源点到其它所有可达顶点的最短路径,又名有向无环图(DAG)。...
View Article160亿美元的收购,你怎么看? 从开发一个J2ME应用说起
Facebook以160亿美元的不菲价格收购了WhatsApp,最终还是发生了,这条新闻震惊了每个在硅谷的企业家。世界各地都共同惊呼“可是,WhatsApp和iMessage / Facebook Messenger / Hangouts相比到底有何不同?” 对于这个疑惑,我的答案就是:J2ME...
View ArticleJVM最简生存指南
最近更新 : 2014年1月9日 为什么要写这个指南 持续更新 目标人群 基础 Java语言,Java环境,Java虚拟机 多语言平台 JVM字节码 跨平台 JVM部署和版本 版本 版本类型 升级版本 Java的安装 应用程序输出又叫Artifacts JAR文件 WAR文件 运行Java应用 Classpath 构建工具 Ant Maven Gradle IntelliJ IDEA的构建 框架和库...
View Article工厂方法设计模式的最佳实践
在前面设计模式的例子中我们已经尝试了工厂模式,今天仍然经常会用到它。在这篇文章中我们将会学习到更加高级并且非常有吸引力的解决方案,这就是工厂方法设计模式。 定义: 工厂方法模式展示了一种创建对象的方法,它代替了对象来创建子类。工厂方法模式以一种特殊抽象层的方式解决了工厂模式中的类似问题。 可以使用new关键字实例化对象,例如对象A创建了另一个对象B: ClassB objB = new...
View Article无IDE时编译和运行Java
最近 Java subreddit 出现了一篇”在没有IDE的情况下编译Java包” 的帖子,这个帖子抛出了这么一个问题,“是否存在一个命令可以编译一组处于同一文件夹下独立包内的java文件的方法(这称之为bin),同时怎样运行新的类文件呢?” 它的提出者 kylolink解释说,“当我开始依赖Eclipse来编写代码时就开始担心没有Eclipse时自己该怎么写代码了。”...
View ArticleJava 8:CompletableFuture终极指南
Java 8来了,是时候学一下新的东西了。Java 7和Java 6只不过是稍作修改的版本,而Java 8将会发生重大的改进。或许是Java 8太大了吧?今天我会给你彻底地解释JDK 8中的新的抽象 – CompletableFuture。众所周知,Java 8不到一年就会发布,因此这篇文章是基于JDK 8 build 88 with lambda...
View Article使用Spring跟踪应用异常(5)—用Spring进行调度
看来我终于快要结束关于使用Spring追踪错误系列的博客了,对于那些没有读过该系列任何博客的人而言,我正在写一个简单但是非常有用的文章,它是使用Spring应用在日志文件中扫描异常并产生报告的。在该系列博客开始前有一些初始要求: 搜索某个目录及其子目录(可能)可以找到某一特定类型的文件。 如果找到一个文件然后检查它的日期:要找它的错误吗? 如果一个文件被检查出来很新那么就验证它来寻找异常。...
View ArticleSpring/Hibernate应用性能调优
对于大多数典型的Spring/Hibernate 企业应用来说,应用程序的性能几乎完全取决于它的持久层的性能。 这篇文章将会对如何确认在“数据库约束”的应用前,使用7种“快速见效”的技巧来帮助我们提升应用性能。 如何确认一个应用受到“数据库约束” 为了验证一个应用程序是否受到“数据库约束”,首先在一些开发环境中做一些普遍的行为,即使用VisualVM来监控。...
View ArticleJava 7/8中字符集的编解码
我们来看看在Java 7/8中字符集编码和解码的性能。先看看下面两个String方法在不同字符集下的性能: /* String to byte[] */ public byte[] getBytes(Charset charset); /* byte[] to String */ public String(byte bytes[], Charset charset); 我把“Develop...
View Article大型HashMap评估:JDK、FastUtil、Goldman Sachs、HPPC、Koloboke与Trove
这篇文章对常见HashMap实现进行了性能评估。以JDK HashMap为基线,涵盖了5个知名的函数。用原始类型、对象分别作为key和Value组合进行测试,并给出测试报告。 介绍 这篇文章将会介绍以JDK中HashMap作为标准的五种知名库的hash map实现,并逐一测试: 原始数据类型到原始数据类型的映射 原始数据类型到对象的映射 对象到原始数据类型的映射...
View Article
More Pages to Explore .....