TAG: java

如何在 OpenShift 上运行 Apache Tomcat 8

Redhat公司推出了OpenShift服务。开发者可以在OpenShift上面尝试新的框架,编程语言或者服务器。当我在学习WebSockets的时候了解到目前Apache Tomcat 8已经支持JSR356规 范。JSR356是Java下WebSockets的标准API规范。尽管Apache Tomcat 7 也支持WebSockets,但是它用的是它自己的专有API。所以我想尝试一下基于JSR356标准支持WebSockets的Apahce Tomcat 8。我决定把它安装在OpenShift上而不是在我本地的开发机上。在这篇文章中,我将会一步一步的展示如何在OpenShift上运行Apche Tomcat 8。

最后更新时间: 共 19 次浏览 Tags: java openshift tomcat

在 Eclipse 下使用gradle 构建系统

构建系统时候常常要用到 Ant, Maven 等工具,对于初学者来说,它们还是过于复杂,上手还是需要时间的。本文将向读者介绍一种全新的构建项目的方式 gradle,它简单、上手快,能大大节省项目的时间和成本。

最后更新时间: 共 53 次浏览 Tags: java gradle

如何使用Velocity模板引擎

本文主要介绍了 Velocity 模板引擎的一些使用场景、语法语句规则等内容,并用具体实例展示了使用 Velocity 模板引擎如何快速生成 Java 代码,可以使读者对 Velocity 模板引擎有一个快速的认识与了解。

最后更新时间: 共 46 次浏览 Tags: java velocity

Java 7新特性:Try-with-resources

我们大多数情况都用相同的一些步骤与外部资源交互。比如:我们创建一个对象、使用这个对象连接资源、使用资源、最后关闭连接。然而,尽管大多数程序员都很熟悉如何打开和链接外部资源,但是一个反复出现的令人尴尬的问题就是:在关闭资源和连接这个问题上大家做的都不尽如人意。可悲的是,很多已开发的Java企业应用创建了使用外部资源,但没有关闭它们,比如:JDBC或文件对象,结果是这些实际上已不使用的资源对象无法被垃圾回收,同时外部资源会被持续消耗掉。另外,还会消耗JVM的内存分配和时钟周期,你将会看到这些无效的资源管理如何降低系统新能和难于调试的。

最后更新时间: 共 10 次浏览 Tags: java

Java中的静态绑定和动态绑定

一个Java程序的执行要经过编译和执行(解释)这两个步骤,同时Java又是面向对象的编程语言。当子类和父类存在同一个方法,子类重写了父类的方法,程序在运行时调用方法是调用父类的方法还是子类的重写方法呢,这应该是我们在初学Java时遇到的问题。

最后更新时间: 共 15 次浏览 Tags: java

Java 程序员写 SQL 时易犯的另外 10 个错误

Java 程序员编写 SQL 时容易出现的错误远远不止之前一篇Java 程序员写 SQL 时易犯的 10 个错误那些,因此在这篇文章中我将列举另外 10 个 Java 程序员编写 SQL 时容易出现的有趣的错误。

最后更新时间: 共 38 次浏览 Tags: java database

提升 Java 锁的性能

这个月前我们在 Plumbr 介绍了 locked thread detection ,我们收到了很多问题,比如:“嘿嘿,太好了,现在我终于知道什么导致了性能问题,但是,我该解决呢?我们正在努力编写我们产品的解决方案文档,不过在这篇文章我将分享一些通用技术,你可以单独应用于锁检测工具。这些方法包括使用分拆锁、并发数据结构来保护数据减少锁定范围而不是使用代码。

最后更新时间: 共 41 次浏览 Tags: java

Java 程序员写 SQL 时易犯的 10 个错误

Java 开发人员会混合面向对象思维和命令行思维,这与他们的工作经验和能力相关。不过,当 Java 开发人员编写 SQL 时,一切都变了。SQL 是声明式语言,它没有任何面向对象和命令行的编程思想。使用 SQL 可以非常容易的编写传。在SQL中要写个查询语句是很简单的。但在Java里类似的语句却不容易,因为程序员不仅要反复考虑编程范式,而且也要考虑算法的问题。

最后更新时间: 共 48 次浏览 Tags: java database

Java命名:可怕的DefaultAbstractHelperImpl

这篇文章最早是发表在jooq.org上,作为聚焦于jOOQ上所有关于Java、SQL以及软件开发的系列的一部分。 前段时间,我们发布了这款被我们称作Spring API Bingo的趣味游戏。这是对Spring构造类名时展现出的创造性极尽赞美。

最后更新时间: 共 25 次浏览 Tags: java

Java 你还不清楚的十个方面

你是从一开始就使用 Java 编程吗?是否还记得,当时有人称 Java 为 "Oak"?是否 OO 设计思想仍然是一个热门话题的时候?是否还记得 C++ 的拥护者认为Java一点机会都没有的日子?还记得 Applets 吗?我敢打赌,下面介绍的内容有一半你是不了解的,让我们来看看这些内容吧。

最后更新时间: 共 66 次浏览 Tags: java

为你的 JVM 增加一些熵

是否可以产生强大的随机数,依赖于你系统的熵。有些人声称,这可以通过公平的骰子得到保证。有些人声称,这可以通过掷筛子的方式得到保证。另一些人则认为,可以通过修改 OpenJDK 的 java.math.Random.nextInt() 方法来实现:

最后更新时间: 共 39 次浏览 Tags: java

快速了解Scala技术栈

我无可救药地成为了Scala的超级粉丝。在我使用Scala开发项目以及编写框架后,它就仿佛凝聚成为一个巨大的黑洞,吸引力使我不得不飞向它,以至于开始背离Java。固然Java 8为Java阵营增添了一丝亮色,却是望眼欲穿,千呼万唤始出来。而Scala程序员,却早就在享受lambda、高阶函数、trait、隐式转换等带来的福利了。

最后更新时间: 共 44 次浏览 Tags: java scala

MapReduce实战--倒排索引

倒排索引(Inverted index),也常被称为反向索引、置入档案或反向档案,是一种索引方法,被用来存储在全文搜索下某个单词在一个文档或者一组文档中的存储位置的映射。它是文档检索系统中最常用的数据结构。

最后更新时间: 共 41 次浏览 Tags: java

Java堆外内存的使用

堆外内存其实并无特别之处。线程栈,应用程序代码,NIO缓存用的都是堆外内存。事实上在C或者C++中,你只能使用未托管内存,因为它们默认是没有托管堆(managed heap)的。在Java中使用托管内存或者“堆”内存是这门语言的一个特性。注意:Java并非唯一这么做的语言。

最后更新时间: 共 50 次浏览 Tags: java

Spring实战:为测试方法重置自增列

当我们为往数据库中保存信息的方法写集成测试的时候,我们必须验证是否保存了正确的信息。如果程序使用了Spring框架,我们可以使用Spring Test DbUnit 和 DbUnit。然而,验证主键列的值是否正确仍然非常困难。因为主键一般是用自增列自动生成的。这篇博文首先说明关于自动生成列的问题,然后提出解决办法。

最后更新时间: 共 43 次浏览 Tags: java spring

JVM运行时的数据区

理解JVM运行时的数据区是Java编程中的进阶部分。我们在开发中都遇到过一个很头疼的 问题就是OutOfMemoryError(内存溢出错误),但是如果我们了解JVM的内部实现和其运行时的数据区的工作机制,那么前面的问题就会迎刃而 解。在这片文章中,我们将简单了解JVM中有哪些运行时数据区以及这些数据区的工作机制。

最后更新时间: 共 51 次浏览 Tags: java

LinkedIn Feed: 更少的 JVM 垃圾收集更快的速度

在 LinkedIn,一个称作 feed-mixer server 的中间服务为我们的旗舰产品的所有平台( iOS、Android 以及桌面)客户提供服务。在这篇文章中,我们将分享我们在减少 SPR 内存使用过程中的一些经验和总结(顺便说一下,最终 feed-mix 的内存使用减少了 75%,服务延迟减少了 25%)

最后更新时间: 共 24 次浏览 Tags: java

一个Java对象到底占多大内存?

最近在读《深入理解Java虚拟机》,对Java对象的内存布局有了进一步的认识,于是脑子里自然而然就有一个很普通的问题,就是一个Java对象到底占用多大内存?

最后更新时间: 共 23 次浏览 Tags: java

Java 反射机制分析指南

一般而言,说到动态言,都是指在程序运行时允许改变程序结构或者变量类型,从这个观点看,JAVA和C++一样,都不是动态语言。 但JAVA它却有着一个非常突出的动态相关机制:反射。通过反射,Java可以于运行时加载、探知和使用编译期间完全求和的类、生成其对象实体,调用其方法或者对属性设值。所以Java算是一个半动态的语言吧。

最后更新时间: 共 15 次浏览 Tags: java

对比 Java 字符串的 String.length() 和 String.getBytes().length

Java 中,String.length() 返回字符串中包含的字符个数,而 String.getBytes().length 根据字符串编码方式返回其字节个数,默认情况下,字符串编码是系统属性 file.encoding,当然,你也可以手动定义编码名,比如:UTF-8,CP1252。大多数情况下,String.length() 的返回值和 String.getBytes().length 的返回值相同,不过在某些情况下是不同的。

最后更新时间: 共 12 次浏览 Tags: java