收藏本站

stream 示例

//分组,返回mapping
Collectors.groupingBy(AccountPayRecord::getMode, HashMap::new,
                                Collectors.mapping(AccountPayRecord::getTotalFee, Collectors.reducing(new Money(), (d1, d2) -> d1.add(d2)))));


//排序,拼接
installmentIdList.stream().map(id -> installmentMap.get(i...

阅读全文>>

java 内部类总结

Nested Classes定义

在java语言规范里面,嵌套类(Nested Classes)定义是:

A nested class is any class whose declaration occurs within the body of another class or interface. A top level class is a class that is not a nested class. 

说的简单一点,就是定义在类里面的类。一般把定义内部类的外围类称为包装类(enclosing class)或者外部类

 

嵌...

阅读全文>>

java 泛型实现原理及使用详解

    自java 1.5 起,我们可以在java中使用泛型了。关于为什么要使用泛型,可能是很多新手迷茫的地方。用一个Object 类代替不就好了。光说也记不住,练吧,如:


//未使用泛型时

 	public static void test(){
		List l = new ArrayList();
		l.add(Integer.valueOf(1));
		Integer b = (Integer) l.get(0);
		System.out.println(b);
	}

//使用泛型后	
	public static void t...

阅读全文>>

java web开发 include与jsp:include总结

java web 开发中特别是前端,经常为了代码的重用性而将页面拆分成小页面。这时就需要用到嵌套将各小页面整合成符合需求的大页面。现在也有些开源框架如sitemesh 专门帮你构建页面。但jsp 原生的导入方式我们还是需要熟悉。在jsp中常用的导入方式有两种形式,分别是

<%@ include file=” ”%> 指令元素
<jsp:include page=” ” flush=”true”/> 行为元素,标签形式

具体它们将在何处用?如何用及它们有什么区别?这应该是很多人看到它都会想到的问题。这里简单总结一下:

<%@ include fi...

阅读全文>>

java 自动装箱、拆箱深入理解

    java 自动装箱作为java 5 提供给程序员的一颗语法糖,确实给java 编程带来很大方便。但不要因为自动装箱好用就滥用,因为其毕竟只是语法糖,本质是在通过调用各包装类的valueOf 方法来实现,所以对性能要求较高的地方,更要慎用。很多专家,包括有效编程 作者也建议,我们在能用基本类型的地方尽量用基本类型,不要用包装类因为其容易引起自动装箱。

    下面先来做一个测试:

	public static void main(String[] args) {
		Integer a = 1;
		Inte...

阅读全文>>

转载 java 枚举enum 的使用

java枚举的使用与分析

public enum EnumTest {

     FRANK("The given name of me"),
     LIU("The family name of me");
     private String context;
   &n...

阅读全文>>

java 创建单例模式的几种方式及注意事项

    单例模式是java 设计中常用创建模式,特别适合于一些可以共用,及特别占用资源的类的创建。

    创建单例模式类方式常被分为懒汉式和饿汉式。下面简单列出各种方式代码并简单分析。

   

懒汉式一

/**
 * 单例模式测试
 * @author tjx
 */
public class SingleTest {
	//这是饿汉式,类一加载就创建改类对象创建好。
	//这种方式优点:简单,快捷,不需要考虑同步
	//缺点:如果该类的创建是比较...

阅读全文>>

深入理解java String

    字符串是最常用的数据类型,甚至比基本类型还用的多。正因如此,java 也对String 做了一些特殊处理,使得我们在编程时使用String 和 使用自动装箱的基本数据类型包装类很相似。

如:

     包装类: Integer a = 1;    a =a+1;

     String:   String a ="abc";  a=a+"d";

但不要因此就认为String...

阅读全文>>

使用mat 分析tomcat 内存溢出(OutOfMemoryError: Java heap space)

由于没有进行压力测试,网站运行过程中,随着数据量增大,tomcat 报OutOfMemoryError,Java堆溢出了,这表明程序有严重的问题。我们需要找造成OutOfMemoryError原因。一般有两种情况:
1、内存泄露,对象已经死了,无法通过垃圾收集器进行自动回收,通过找出泄露的代码位置和原因,才好确定解决方案;
2、内存溢出,内存中的对象都还必须存活着,这说明Java堆分配空间不足,检查堆设置大小(-Xmx与-Xms),检查代码是否存在对象生命周期太长、持有状态时间过长的情况。甚至优化代码减少临时变量的产生。
以上是处理Java堆问题的思路,具体是怎么进行分析,这里介绍的是使用Ecl...

阅读全文>>

收藏 java 学习资源

java内存详解:

http://kenwublog.com/explain-java-memory-model-in-detail

java 6 sychronized 新特性:

http://www.infoq.com/cn/articles/java-se-16-synchronized

阅读全文>>