Posted
on 2022-1-4, 15:19,
by
tmser,
under .
//分组,返回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...
阅读全文>>
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 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 开发中特别是前端,经常为了代码的重用性而将页面拆分成小页面。这时就需要用到嵌套将各小页面整合成符合需求的大页面。现在也有些开源框架如sitemesh 专门帮你构建页面。但jsp 原生的导入方式我们还是需要熟悉。在jsp中常用的导入方式有两种形式,分别是
<%@ include file=” ”%> 指令元素
<jsp:include page=” ” flush=”true”/> 行为元素,标签形式
具体它们将在何处用?如何用及它们有什么区别?这应该是很多人看到它都会想到的问题。这里简单总结一下:
<%@ include fi...
阅读全文>>
java 自动装箱作为java 5 提供给程序员的一颗语法糖,确实给java 编程带来很大方便。但不要因为自动装箱好用就滥用,因为其毕竟只是语法糖,本质是在通过调用各包装类的valueOf 方法来实现,所以对性能要求较高的地方,更要慎用。很多专家,包括有效编程 作者也建议,我们在能用基本类型的地方尽量用基本类型,不要用包装类因为其容易引起自动装箱。
下面先来做一个测试:
public static void main(String[] args) {
Integer a = 1;
Inte...
阅读全文>>
java枚举的使用与分析
public enum EnumTest {
FRANK("The given name of me"),
LIU("The family name of me");
private String context;
&n...
阅读全文>>
单例模式是java 设计中常用创建模式,特别适合于一些可以共用,及特别占用资源的类的创建。
创建单例模式类方式常被分为懒汉式和饿汉式。下面简单列出各种方式代码并简单分析。
懒汉式一
/**
* 单例模式测试
* @author tjx
*/
public class SingleTest {
//这是饿汉式,类一加载就创建改类对象创建好。
//这种方式优点:简单,快捷,不需要考虑同步
//缺点:如果该类的创建是比较...
阅读全文>>
字符串是最常用的数据类型,甚至比基本类型还用的多。正因如此,java 也对String 做了一些特殊处理,使得我们在编程时使用String 和 使用自动装箱的基本数据类型包装类很相似。
如:
包装类: Integer a = 1; a =a+1;
String: String a ="abc"; a=a+"d";
但不要因此就认为String...
阅读全文>>
由于没有进行压力测试,网站运行过程中,随着数据量增大,tomcat 报OutOfMemoryError,Java堆溢出了,这表明程序有严重的问题。我们需要找造成OutOfMemoryError原因。一般有两种情况:
1、内存泄露,对象已经死了,无法通过垃圾收集器进行自动回收,通过找出泄露的代码位置和原因,才好确定解决方案;
2、内存溢出,内存中的对象都还必须存活着,这说明Java堆分配空间不足,检查堆设置大小(-Xmx与-Xms),检查代码是否存在对象生命周期太长、持有状态时间过长的情况。甚至优化代码减少临时变量的产生。
以上是处理Java堆问题的思路,具体是怎么进行分析,这里介绍的是使用Ecl...
阅读全文>>
java内存详解:
http://kenwublog.com/explain-java-memory-model-in-detail
java 6 sychronized 新特性:
http://www.infoq.com/cn/articles/java-se-16-synchronized
阅读全文>>