j2se
琅琊山二当家
这个作者很懒,什么都没留下…
展开
-
utc时间转毫秒
utc时间转换毫秒原创 2022-11-20 14:14:56 · 8311 阅读 · 1 评论 -
java map遍历使用并行流
// 新方法 map使用并行流 //使用entrySet 的key的list 然后当成list遍历projectGitMap.entrySet().parallelStream().forEach(entry->{ List<Integer> list = projectGitMap.get(entry.getKey()); //entry.getKey() = name list.parallelStream().forEach(projectId -...原创 2021-03-18 19:39:02 · 2118 阅读 · 0 评论 -
java.lang.UnsupportedOperationException解决方法
做开发一定要注重细节。在项目中对List进行操作时报错java.lang.UnsupportedOperationException,后来发现操作的List是由数组转换而成的,通过看源码发现问题,并写测试程序如下。代码块: public class ListTest { public static void main(String[] args) { S...转载 2020-03-25 20:15:38 · 632 阅读 · 0 评论 -
Lambda表达式排序,出现空指针异常
问题描述:对象集合中,根据对象的某个属性进行升降排序时,未考虑对应属性的null值,导致出现空指针异常。解决方法:Comparator.nullsFirst和Comparator.nullsLastList<User> nList = list.stream().sorted( Comparator.comparing(User::getCode, Comparator....转载 2020-03-04 11:12:38 · 1984 阅读 · 0 评论 -
Java Lambda表达式forEach无法跳出循环的解决思路
如果你使用过forEach方法来遍历集合,你会发现在lambda表达式中的return并不会终止循环,这是由于lambda的底层实现导致的,看下面的例子:public static void main(String[] args) { List<String> list = Lists.newArrayList(); list.add("a"); list.add("...转载 2019-12-31 15:41:35 · 2667 阅读 · 0 评论 -
java collection addAll 操作需要非空判断
List<String> result ; Set<String> setResult = new HashSet<>(); days.stream().forEach(t->{ Set<String> set =(Set<String> ) redisTemplat...原创 2019-12-13 15:40:39 · 1513 阅读 · 0 评论 -
搞定 Joda-Time 常用操作
1 开始使用https://github.com/JodaOrg/joda-time compile 'joda-time:joda-time:2.9.9'2 时间实例 // 年,月,日,时,分,秒,毫秒 DateTime dateTime1 = new DateTime(2017,6, 16, 0, 0, 0, 333); //...转载 2019-11-28 17:29:03 · 546 阅读 · 0 评论 -
阿里巴巴Java开发手册
Table of ContentsPreface1. Programming SpecificationNaming ConventionsConstant ConventionsFormatting StyleOOP RulesCollectionConcurrencyFlow Control StatementsCode CommentsOther2. Exceptio...转载 2019-11-05 19:22:24 · 3091 阅读 · 1 评论 -
java接口不能声明为synchronized
[java] view plain copy /** * 任务完成 * @param task */ public synchronized void onTaskFinished(DownloadTask task); 写单线程下载模块时遇到这样一个问题,对集合的并发操作出现异常。一想到并发,就想到加锁,那么就在接口上面加个同转载 2016-04-13 12:00:32 · 1509 阅读 · 0 评论 -
关于Class.getResource和ClassLoader.getResource的路径问题
Java中取资源时,经常用到Class.getResource和ClassLoader.getResource,这里来看看他们在取资源文件时候的路径问题。Class.getResource(String path)path不以’/'开头时,默认是从此类所在的包下取资源;path 以’/'开头时,则是从ClassPath根下获取;什么意思呢?看下面这段代码的输出结果就转载 2016-04-27 12:42:52 · 353 阅读 · 0 评论 -
java中的BigDecimal和String的相互转换
/*由数字字符串构造BigDecimal的方法 *设置BigDecimal的小数位数的方法 */ import java.math.BigDecimal; //数字字符串 String StrBd="1048576.1024"; //构造以字符串内容为值的BigDecimal类型的变量bd BigDecimal bd=new BigDecimal转载 2016-04-14 18:16:36 · 1754 阅读 · 0 评论 -
StringUtils工具类用法
/*1.字符串以prefix开始*/StringUtils.startsWith("sssdf","");//结果是:trueStringUtils.startsWith("sssdf","");//结果是:trueStringUtils.startsWith("sssdf","s");//结果是:trueStringUtils.startsWith("sssdf","ss");//结果是转载 2016-05-24 18:37:58 · 3754 阅读 · 1 评论 -
JAVA随机数之多种方法从给定范围内随机N个不重复数
一、JAVA中生成随机数的方式 1、在j2se中使用Math.random()令系统随机选取一个0~1之间的double类型小数,将其乘以一个数,比如25,就能得到一个0~25范围内的随机数,这个在j2me中没有; Java代码 int randomNumber = (int) Math.round(Math.random()*(max-min)+min); ...转载 2016-05-12 13:32:45 · 8558 阅读 · 2 评论 -
java使double保留两位小数的多方法 java保留两位小数
:import java.text.DecimalFormat; DecimalFormat df = new DecimalFormat("######0.00"); double d1 = 3.23456 double d2 = 0.0;double d3 = 2.0;df.format(d1); df.format(d2)转载 2016-05-12 13:34:26 · 909 阅读 · 0 评论 -
java中如何将字符数组转换成字符串,以逗号分割
String[] ary = {"abc", "123", "45"}; 想要得到 String str="abc,123,45";方法1、需要引入Apache Commons组件中的个commons-lang.jar包: String str1=StringUtils.join(ary, ",");方法2、格式化 String str2 = ...转载 2016-04-18 15:13:29 · 13672 阅读 · 1 评论 -
java future 和 callable的一个例子
package test;import java.util.Random;import java.util.concurrent.Callable;import java.util.concurrent.ExecutionException;import java.util.concurrent.ExecutorService;import java.util.concurrent.原创 2016-05-28 22:18:56 · 886 阅读 · 0 评论 -
Java出现No enclosing instance of type E is accessible
最近在看Java,在编译写书上一个例子时,由于书上的代码只有一部分,于是就自己补了一个内部类。结果编译时出现:No enclosing instance of type E is accessible. Must qualify the allocation with an enclosing instance of type E(e.g. x.new A() where x is an i转载 2016-05-16 20:32:44 · 583 阅读 · 0 评论 -
java之架构基础-动态代理&cglib
本文核心主要参数动态代理和cglib;在以前的文章中,有提及到动态代理,它要解决的就是,当我们的某些代码前面或后面都需要一些处理的时候,如写日志、事务控制、做agent、自动化代码跟踪等,此时会给你带来无限的方便,这是JVM级别的提供的一种代理机制,不过在这种机制下调用方法在JVM7出来前还没有invokeDynamic的时候,调用的效率是很低的,此时方法调用都是通过method的invo转载 2016-05-18 20:08:54 · 417 阅读 · 1 评论 -
Java Guava中的函数式编程讲解
如果我要新建一个java的项目,那么有两个类库是必备的,一个是junit,另一个是Guava 。选择junit,因为我喜欢TDD,喜欢自动化测试。而是用 Guava ,是因为我喜欢简洁的API。 Guava 提供了很多的实用工具函数来弥补java标准库的不足,另外Guava 还引入了函数式编程的概念,在一定程度上缓解了java在JDK1.8之前没有lambda的缺陷,使使用java书写简洁易读的函转载 2016-05-18 20:09:58 · 789 阅读 · 0 评论 -
Exception和继承自Exception的RuntimeException区别
Java compiler要求所有的Exception 要么被catch,要么被throw,除非这是一个RuntimeExeption (e instanceof RuntimeException)。也就是说,通常的Exception一定要被处理,也即我们所说的 checked exception,而RuntimeException不强制要求处理,(当然你自己要处理也可以),所以我们称为unche转载 2016-05-31 21:48:45 · 3598 阅读 · 1 评论 -
java8之Lambda表达式 1:简介
Lambda表达式简介在Java里面用的很多的是匿名内部类,具体如下:interface Message{ public void print(String str);}public class TestDemo { public static void main(String[] args) { Message msg=new Message()转载 2016-05-09 20:12:31 · 697 阅读 · 0 评论 -
java8之Lambda表达式 2:内建函数式接口
一个新的包:Java.util.function,在这个包里面针对于用户有可能做的函数式接口做了一个公共定义。在java.util.function包中最为核心的有四个接口:功能型接口:Function消费型接口:Consumer供给型接口:Supplier断言形接口:Predicate1. 功能型接口@FunctionalInterfacepublic interface转载 2016-05-09 20:13:22 · 664 阅读 · 0 评论 -
java8之Lambda表达式 3:数据流
类集自从JDK1.2开始引入以后,一开始给予我们的特征是动态对象数组,后来有了泛型(JDK1.5),让类集操作更加的安全,再后来到JDK1.8时代,类集又变为了重要的批量数据处理的容器,而这个容器的操作实现就是利用数据流完成的。 所以JDK1.8提供了专门的数据流工具包:Java.util.stream。而在这个包里面最需要关注的是Stream接口,此接口是BaseStream的子接口。转载 2016-05-09 20:14:21 · 1005 阅读 · 0 评论 -
java8之Lambda表达式 4:MapReduce开发案例
通过Lambda中的Stream接口实现MapReduce工具,简单理解就类似于sql之中的分组统计工具,只不过MapReduce是一种可以针对每个数据处理+集合的最终统计操作。具体内容集合不管怎么改变,它一定是一个动态数组,所以整个MapReduce操作都围绕着对象完成。 范例:定义一个购物车类,在集合类里面会保存有多个Car类的对象public class Car {转载 2016-05-09 20:15:03 · 3393 阅读 · 0 评论 -
JAVA打包war的几种方法
针对非maven项目1.首先是工具比如Eclipse很方便了。 2.用winrar之类的工具,把web-info目录,及跟它同级的所有目录及文件,打包成 zip文件就行了,然后把扩展名改成war! 3 Jar命令: 假定有一个Web应用:C:/myHome myHome/WEB-INF/…… myHome/files/…… myHome/image转载 2016-06-07 16:25:45 · 1295 阅读 · 0 评论 -
TreeSet去重字符串
public class TreeSetTest { public static void main(String[] args) { TreeSet tr = new TreeSet(); String[] s = { "11", "22", "22", "33", "33", "33" }; System.out.print("====处理前======="); for (原创 2016-05-20 17:17:29 · 1289 阅读 · 2 评论 -
ClassLoader的一个应用场景
public final class Property { private static final Properties READER = new Properties(); private static final String PROPERTY_FILENAME = "var.properties"; private static final Logger LOGGER = Logge原创 2016-06-02 18:21:20 · 815 阅读 · 0 评论 -
java关键字Transient
java关键字Transient 转自http://horst.sun.blog.163.com/blog/static/348849612007614494492/ 翻译自http://www.devx.com/tips/Tip/13726。 Java的serialization提供了一种持久化对象实例的机制。当持久化对象时,可能有一个特殊的对象数转载 2016-06-08 17:35:15 · 336 阅读 · 0 评论 -
ToStringBuilder和ToStringStyle(覆盖每个实体的 toString 方法)
这样如果系统内存小的话会暴内存(前提系统实体比较多)。 由于打印的时候包含包名,感觉太长了,使用ToStringStyle.SHORT_PREFIX_STYLE 截掉包名 import java.lang.reflect.Field;import org.apache.commons.lang.builder.Reflecti转载 2016-06-04 22:12:03 · 1586 阅读 · 0 评论 -
Java Enum
Java Enum 基本原理1. 关于 Java Enum学过 C/C++ 等语言的人,应该都对 Enum 类型略知一二。 Enum 一般用来表示一组相同类型的常量。如性别、日期、月份、颜色等。对这些属性用常量的好处是显而易见的,不仅可以保证单例,且比较时候可以用 ”==” 来替换 equals 。是一种好的习惯。 JDK1.5 之前没有 Enum 这个类型,那时候一般用接口常量来转载 2016-06-27 17:55:55 · 376 阅读 · 0 评论 -
eclipse调试查看属性值的小技巧
普通的直接查看watch 就可以了 如果要看一个其他表达式的值比如下图 查看getCellValue(row.getCell(iCol + 1)) 的值 直接watch就可以 如果要查看getCellValue(row.getCell(i1)) 的值 点击1处 add new expression 在增加一栏3 处 输入getCellValue(row.getCell(i1)) ...原创 2016-06-12 16:50:18 · 9886 阅读 · 7 评论 -
java基础学习总结——super关键字
一、super关键字 在JAVA类中使用super来引用父类的成分,用this来引用当前对象,如果一个类从另外一个类继承,我们new这个子类的实例对象的时候,这个子类对象里面会有一个父类对象。怎么去引用里面的父类对象呢?使用super来引用,this指的是当前对象的引用,super是当前对象里面的父对象的引用。1.1.super关键字测试 1 packag转载 2016-06-28 18:16:58 · 342 阅读 · 0 评论 -
漫谈递归:递归的效率问题
递归在解决某些问题的时候使得我们思考的方式得以简化,代码也更加精炼,容易阅读。那么既然递归有这么多的优点,我们是不是什么问题都要用递归来解决呢?难道递归就没有缺点吗?今天我们就来讨论一下递归的不足之处。谈到递归就不得不面对它的效率问题。为什么递归是低效的还是拿斐波那契(Fibonacci)数列来做例子。在很多教科书或文章中涉及到递归或计算复杂性的地方都会将计算斐波那契数列的程序作为转载 2016-06-13 11:47:43 · 1673 阅读 · 0 评论 -
线上遇到插入重复数据(重复提交)
今天发现日志 有人登陆不上系统个人信息发现有重复记录 数据库插入的秒数都一样当时服务器比较卡 日志如下2016.05.19 17:51:15 com.mchange.v2.c3p0.impl.NewPooledConnection - [c3p0] A PooledConnection that has already signalled a Connectio原创 2016-05-19 21:38:46 · 5176 阅读 · 0 评论 -
String.toCharArray 方法
toCharArray()的用法:将字符串对象中的字符转换为一个字符数组例如:String myString="abcd";char myChar[]=myString.toCharArray();System.out.println("myChar[1]="+myChar[1]);输出结果:myChar[1]=b原创 2016-06-23 21:08:19 · 1982 阅读 · 0 评论 -
guava试水一篇
@Controller@RequestMapping("/")@SuppressWarnings("unchecked")public class NavController extends GenericController { @Autowired private RevitNewEntityService revitNewEntityService ; LoadingCa原创 2016-07-20 18:53:00 · 693 阅读 · 0 评论 -
Guava Cache使用笔记
我刚开始使用时还以为Guava Cache跟HashMap一样,get(null)返回null。 实际上Guava整体设计思想就是拒绝null的,很多地方都会执行com.google.common.base.Preconditions.checkNotNull的检查。 2.Guava Cache的load方法不能返回null,否则抛异常 Guava Cache的get方法先在本地缓存中取,...转载 2016-07-20 18:47:32 · 13785 阅读 · 1 评论 -
Java不定长度参数
在调用某个方法时,若是方法的参数个数事先无法确定该如何处理?例如System.out.printf()方法中并没有办法事先决定要给的参数个数,像是:?123System.out.printf("%d",10);System.out.printf("%d %d", 10, 20);System.out.pri转载 2016-08-04 16:04:25 · 657 阅读 · 0 评论 -
java开发守护进程
其实就是想开发个Windows下系统服务一样的程序。而查了好久资料,没找到java如何开发linux的守护进程。用C语言开发感觉太麻烦了,何况还要嵌入业务。使用Servlet的话也行,但是需要额外安装tomcat。经过一天实验,终于发现,原来这么简单!先来段简单代码,每隔5秒更新job.log文件。用来测试一下。 import转载 2016-08-16 17:50:25 · 902 阅读 · 0 评论 -
16进制几个字符是一个字节
问16进制 6e69 占用几个字节 16进制中,两个字符是一个字节,一个字符的话,是一个字节。 例如:A是一个字节,AA是一个字节,AAA是两个字节,AAAA是两个字节。 不过,16进制能够出现的字符(不区分大小写)是:1,2,3,4,5,6,7,8,9,0,A,B,C,D,E,F 6e69 占用 两个字节 ch.pipeline().addLast...原创 2016-07-29 15:49:16 · 27304 阅读 · 0 评论