分类 Java 中的文章

java8新特性使用

Stream api2 Collect to Map 1 2 3 Map<String, String> result = effectList.stream().collect( Collectors.toMap(BusiDisposalProveEffectInfo::getDeclareId, BusiDisposalProveEffectInfo::getRegAttachmentId)); Collect to List or Set 1 List<String> idList = resultList.stream().map(BusiDisposalProveListVO::getId).collect(Collectors.toList()); Filter 1 2 3 4 Set<String> idSet = resultList.stream() .filter(e -> StringUtils.equals(e.getStatus(), DeclareStatusEnum.SUCCESS.getCode())) .map(BusiDisposalProveListVO::getId) .collect(Collectors.toSet()); Consumer 1 2 3 4 5 6 7 8 // 相加并将结果回调回去 public void f1(int a,int b,Consumer<Integer> callback){ callback.accept(a+b); } // 调用并打印 f1(1,2,result -> { System.out.println(result); })……

阅读全文

Java本地方法调用

引子 Class.forName("com.msql.jdbc.Driver"); 我们在加载mysql的jdbc驱动时,会主动加载对应的驱动类,然后使用DriverManager来获取连接操作数据库。 跟进forName的实现会发现是调用的native方法来实现的,也就是JNI……

阅读全文

从何而来之Java NIO

缘起 最近在看《Java NIO》这本书,书中详细讲解了jdk1.4内提供的关于实现nio的API。因为阅读后,发现对于NIO还是学习的不够深入,之前也仅仅是学习了Java的文件IO和Socket编程,再……

阅读全文

Java临时文件删除时注意的坑

前言 最近在生产环境上发现了临时目录堆积吃掉大量磁盘的问题,最终原因是代码有Bug,异常后未执行delete file的代码或者执行了,但是删除失败。 解决思路 将删除文件的代码放到finally块中。 确保删……

阅读全文

java之future异步并发体验

废话不多说,直接上代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 package org.mango.demo; import cn.hutool.http.HttpUtil; import com.google.common.collect.Lists; import com.google.common.util.concurrent.ListenableFuture; import com.google.common.util.concurrent.ListeningExecutorService; import com.google.common.util.concurrent.MoreExecutors; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.concurrent.Callable; import java.util.concurrent.Executors; import java.util.stream.Collectors; public……

阅读全文

java之forkjoin体验

废话不多说,直接上代码! 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 package org.mango.forkjoin; import cn.hutool.http.HttpUtil; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.concurrent.RecursiveTask; public class ServiceTask extends RecursiveTask<String> { private String url; public ServiceTask(String url){ this.url = url; } @Override protected String compute() { String result……

阅读全文

java之深入jvm之路

1.仔细看一看java 1.1.java发展历史 1995年5月23 Oak语言更名为Java 1996年1月23 JDK 1.0发布 1997年2月19日JDK 1.1发布 技术代表:JDBC,JAR文件格式,JavaB……

阅读全文

java日志门面

1.slf4j是什么 slf4j全称为Simple Logging Facade for Java ,即java简单日志门面,渐渐地替换调了apache common logging。 The Simple Logging Facade for Java (SLF4J) serves as a simple facade or abstraction for various logging frameworks (e.g. java.util.logging, logback, log4j) allowing the end user to plug in the desired logging framework at deployment time. 理……

阅读全文

Java性能注意点

参考:http://www.importnew.com/16181.html 1.stringBuilder.append 比 + 号的性能要优。 2.要避免使用正则表达式。 3.避免使用iterator迭代器来循环。尽量使用基本循环和增强for循环。 4……

阅读全文