Java
文章平均质量分 56
Haiyoung
seeing much, suffering much and studying much.
展开
-
Guava Cache工具类及部分参数解析
Guava Cache最近用到guava的内存缓存,网上找了一些资料,总结了一下,写了个创建缓存的工具类只涉及到部分参数,更多可以查看引用资料或者其它文档package com.oyo.bizefficiency.workhours.utils;import com.google.common.cache.CacheBuilder;import com.google.common.ca...原创 2019-11-25 17:24:57 · 971 阅读 · 0 评论 -
SpringBoot应用 Automatic Restart以及静态资源 livereload 设置
SpringBoot应用 Automatic Restart以及静态资源 livereload 设置20.2 Automatic RestartApplications that use spring-boot-devtools automatically restart whenever files on the classpath change. This can be a usefu翻译 2017-11-21 18:43:41 · 1589 阅读 · 0 评论 -
org.junit.contrib.java.lang.system.SystemOutRule
使用Junit-4.12时测试时用到 org.junit.contrib.java.lang.system.StandardOutputStreamLog;提示找不到这个包;原因是Junit-4.12中没有这个包。可以使用System Rules的一个Junit规则 org.junit.contrib.java.lang.system.SystemOutRule,该规则能够基于控制台的输出编写原创 2016-11-28 22:39:37 · 3953 阅读 · 0 评论 -
The Tomcat server configuration at \Servers\Tomcat v6.0 Server at localhost-config is missing.
最近在Eclipse上启动一个web项目时总是出现The Tomcat server configuration at \Servers\Tomcat v6.0 Server at localhost-config is missing.这样的问题;因为之前服务器一直能够正常启动,最近只是在安装IDEA时改动过workspace;通过如下方法解决此问题。1)关闭Eclipse;2)删除原创 2017-01-04 10:06:38 · 2012 阅读 · 0 评论 -
在eclipse和netbeans下如何向main函数传参
最近在学习java;今天遇到一个讲I/o的示例中用到main函数中的参数args;一直不知道没有搞清楚参数是怎么传进去的;经过网上搜索资料以及反复验证,将总结的方法介绍如下:首先:我们可以在终端上以命令行的模式来编译运行我们的模式我用到的实验程序如下:package io;import java.util.regex.*;import java.io.*;import jav原创 2015-08-20 21:33:40 · 1162 阅读 · 0 评论 -
十分钟快速了解Java守护线程
Java守护线程 在Java中有两类线程:用户线程 (User Thread)、守护线程 (Daemon Thread)。用户线程和守护线程并没有什么不同;唯一的不同之处就在于虚拟机是否离开:如果用户线程已经全部退出运行了,只剩下守护线程存在了,虚拟机也就退出了。因为没有了被守护者,守护线程也就没有工作可做了,也就没有继续运行程序的必要了。 守护线程一般在后原创 2016-12-22 20:27:42 · 709 阅读 · 0 评论 -
Spring @Transactional工作原理
使用Spring @Transactional使用Spring @Transactional,上面的代码就简化为:@Transactional publicvoid businessLogic() { ... use entity manager inside a transaction ... }代码更加简洁,可读性更好,也是目前Spring中事务处理的推荐方式。通过使用@Transactional,事务传播等很多重要方面可以自动处理。这种情况下如果busine转载 2016-12-03 12:52:36 · 746 阅读 · 0 评论 -
JDK1.8 使用平衡树处理HashMap的高频hash冲突问题
Handle Frequent HashMap Collisions withBalanced Trees使用平衡树处理HashMap的高频hash冲突问题SummaryImprove the performanceof java.util.HashMap under high hash-collision conditions by usingbalanced trees rathe翻译 2016-10-08 19:20:40 · 2301 阅读 · 2 评论 -
initializationError(org.junit.runner.manipulation.Filter), No tests found matching型异常
package soundsystem;import static org.junit.Assert.*;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.beans.factory.annotation.Autowired;import org.springframewo原创 2016-11-27 13:38:09 · 8059 阅读 · 7 评论 -
Java堆和栈的区别(JVM运行时数据区域)
程序计数器:可以看做当前线程运行所执行的字节码的行号指示器,在虚拟机的概念模型中,字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令。由于JVM多线程是通过线程轮流切换并分配处理器执行时间的方式来实现的,在任何一个确定的时刻,一个处理器只会执行一个线程中的指令。为了使线程切换后能够恢复到正确的位置,程序计数器必须是线程私有的,独立存储且各线程之原创 2016-10-19 19:57:08 · 2298 阅读 · 0 评论 -
两个线程交替执行,一个打印1-52;一个打印A-Z;打印顺序为12A34B56C.....5152Z
package mutiThread;public class alternatelyExecute { private static Object LOCK = new Object(); private static boolean flag = false; static Thread thread01 = new Thread() { int num01 = 1; i原创 2016-10-16 19:34:22 · 2309 阅读 · 0 评论 -
JDK1.8 十大新特性详解
转自:http://www.jb51.net/article/48304.htm本教程将Java8的新特新逐一列出,并将使用简单的代码示例来指导你如何使用默认接口方法,lambda表达式,方法引用以及多重Annotation,之后你将会学到最新的API上的改进,比如流,函数式接口,Map以及全新的日期API“Java is still not dead—and转载 2016-09-28 19:44:36 · 86808 阅读 · 5 评论 -
双重检查加锁,实现单例模式
/**volatile关键词确保:当uniqueInstance变量被初始化为Singleton实例时,*多个线程正确的处理uniqueInstance变量(对于volatile修饰的变量,*jvm虚拟机只是保证从主内存加载到线程工作内存的值是最新的,volatile并不能*保证原子操作)**synchronized(Singleton.class)借助同步块,与volatile配合实原创 2016-09-16 23:54:39 · 1471 阅读 · 0 评论 -
java.base/jdk.internal.loader.ClassLoaders$AppClassLoader cannot be cast to java.base/java.net.URLCl
在设置项目的热部署时,需要添加对 spring-boot-devtools 的依赖,因为没有给到版本号,maven默认添加的是 v 1.5.8 版本。当时安装JDK时,看到最新的 jdk-1.9, 就顺手安装了最新版本的JDK. 但是添加依赖之后,项目启动失败,报如下异常:Exception in thread "main" java.lang.ClassCastException: java原创 2017-11-22 22:10:31 · 32337 阅读 · 11 评论 -
SpringBoot web项目配置文件
学习springboot时使用的一些配置。application.ymlspring: profiles: active: dev #数据库配置 datasource: driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://127.0.0.1:3306/yourDatabaseName?us原创 2018-01-07 15:42:45 · 4642 阅读 · 0 评论 -
java 读取mongo数据库数据并直接下载,省略中间文件
插入测试数据:package com.haiyoung.biz;import org.bson.Document;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.data.mongodb.core.MongoTemplate;import org.spring...原创 2018-04-01 15:55:11 · 614 阅读 · 0 评论 -
阿里巴巴Java开发手册中的DO、DTO、BO、AO、VO、POJO定义
分层领域模型规约:DO( Data Object):与数据库表结构一一对应,通过DAO层向上传输数据源对象。DTO( Data Transfer Object):数据传输对象,Service或Manager向外传输的对象。BO( Business Object):业务对象。 由Service层输出的封装业务逻辑的对象。AO( Application Object):应用对象。 在Web层...转载 2019-07-26 17:11:17 · 2624 阅读 · 0 评论 -
计算两个日期之间的时间间隔,排除周日
/*** 计算两个日期之间的时间间隔,去掉周日** @param beginDate* @param endDate* @return*/public static int daysBetweenTwoDatesWithoutSunday(Date beginDate, Date endDate) { int daysCount = getDaysNumBetweenTwoD...原创 2019-07-10 12:59:50 · 1801 阅读 · 0 评论 -
对BeanCopier拷贝对象中List类型属性的思考
背景最近开发接口过程中,发现在使用BeanCopier拷贝对象的时候,当对象中嵌套自定义对象类型属性的时候,如果对象名称一致,但是对象类型不一致的时候,拷贝的时候,该属性是会被忽略的,但是当对象中嵌套List集合类型,集合中的类型是不同的对象类型,使用BeanCopier拷贝之后,返回给前台的数据是正确的,感觉不太懂其中的原理,就测试了下。测试过程新建几个对象@Data@NoArgs...原创 2019-03-22 20:49:58 · 7419 阅读 · 0 评论 -
java8 实现map以value值排序
import java.util.Collections;import java.util.HashMap;import java.util.Map;import java.util.stream.Collector;import java.util.stream.Collectors;import java.util.LinkedHashMap;public class MapS...原创 2018-09-13 20:20:58 · 7660 阅读 · 0 评论 -
Java 动态代理JDK实现与CGLIB实现
Java 动态代理JDK实现与CGLIB实现 设计模式之代理模式 代理模式类图类图解析java 静态代理 静态代理定义静态代理的优缺点静态代理demojava 动态代理 动态代理定义动态代理的类图类图解析动态代理的优缺点动态代理democglib cglib是什么?cglib入口类EnhancerEnhancer类图解析cglib实现动态代理类图cgli...原创 2018-07-22 22:57:36 · 333 阅读 · 0 评论 -
java8 中 map新增的 default 方法 示例
1,getOrDefault只要 map.keySet() 中含有该 key, 就会返回对应的 value, 即使 value == null default V getOrDefault(Object key, V defaultValue) { V v; return (((v = get(key)) != null) || containsKey(key...原创 2018-07-14 18:06:02 · 3769 阅读 · 0 评论 -
Java 8 Stream.distinct() 列表去重示例
Java 8 Stream.distinct() 示例 在这篇文章里,我们将提供Java8 Stream distinct()示例。 distinct()返回由该流的不同元素组成的流。distinct()是Stream接口的方法。distinct()使用hashCode()和equals()方法来获取不同的元素。因此,我们的类必须实现hashCode()和equals()方法。如果dist...翻译 2018-07-05 23:11:56 · 277280 阅读 · 43 评论 -
java8中,java.util.Date, java.sql.Date, java.time.LocalDate 的转换异常及处理
java8中,java.util.Date, java.sql.Date, java.time.LocalDate 的转换异常及处理/** *PreparedStatement绑定日期参数的时候,如果传入的是 java.util.Date,则会抛出如下异常* Caused by: java.lang.ClassCastException: java.util.Date cannot ...原创 2018-07-04 20:40:07 · 9281 阅读 · 0 评论 -
Docker+Nginx+tomcat模拟tomcat集群负载均衡
启动docker服务,拉取tomcat,nginx镜像本文是基于 win10 环境进行集成,至于怎么在win10环境上体验docker,可自行百度,本文不在阐述。安装好docker服务之后,启动docker服务,运行如下命令,拉取tomcat,nginx镜像:docker pull hub.c.163.com/library/tomcat:latestdocker pull h...原创 2018-05-05 21:57:59 · 2290 阅读 · 0 评论 -
antlr.MismatchedTokenException: expecting CLOSE, found 'null'
antlr.MismatchedTokenException: expecting CLOSE, found 'null'Caused by: org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected token: null near line 1, column 335[from actor a where a.latestV...原创 2018-04-24 23:06:03 · 5634 阅读 · 0 评论 -
错误:类型List不带有参数;java中import导入问题
两个例子出现错误,第一个可能是因为我们使用包导入,在不同的包路径下面会有相同的类名,导致冲突;所以一般情况下我们要多使用单点导入,这样可以在提高编译速度的同时,避免类名冲突;第二个例子是因为我们将主类的名字命名为ArrayList,这与java.util包中的ArrayList相冲突;会优先使用自定义的这个ArrayList。只要我们显示的声明类的归属就可以避免这个问题。原创 2015-09-15 21:41:50 · 12241 阅读 · 0 评论 -
华为机试题:数据分类处理
题目描述信息社会,有海量的数据需要分析处理,比如公安局分析身份证号码、QQ用户、手机号码、银行帐号等信息及活动记录。 采集输入大数据和分类规则,通过大数据分类处理程序,将大数据分类输出。输入描述:一组输入整数序列I和一组规则整数序列R,I和R序列的第一个整数为序列的个数(个数不包含第一个整数);整数范围为0~0xFFFFFFFF,序列个数不限输原创 2016-07-04 22:41:43 · 1282 阅读 · 0 评论 -
二叉树的创建及遍历
在计算机科学中,二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树常被用于实现二叉查找树和二叉堆。二叉树的每个结点至多只有二棵子树(不存在度大于2的结点),二叉树的子树有左右之分,次序不能颠倒。二叉树的第i层至多有2^{i-1}个结点;深度为k的二叉树至多有2^k-1个结点;对任何一棵二叉树T,如果原创 2015-11-21 22:38:01 · 812 阅读 · 0 评论 -
FileInputStream与FileOutputStream类
参考http://blog.csdn.net/gyflyx/article/details/6439719FileInputStream和FileOutputStream类分别用来创建磁盘文件的输入流和输出流对象,通过它们的构造函数来指定文件路径和文件名。创建FileInputStream实例对象时,指定的文件应当是存在和可读的。创建FileOutputStream实例对象时,如果指定的文转载 2015-10-12 16:48:05 · 655 阅读 · 0 评论 -
java 读取键盘输入到txt文件,统计每个单词出现的次数并输出
package javatest;import java.io.BufferedReader;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.FileReader;import java.io.IOException;imp原创 2015-10-09 22:05:30 · 3601 阅读 · 0 评论 -
java 统计数组中各元素出现的次数
package javatest;import java.util.HashMap;import java.util.Iterator;import java.util.Map;import java.util.Map.Entry;import java.util.Set;public class NumOfEle { public static void main(St原创 2015-10-09 21:21:28 · 25449 阅读 · 1 评论 -
Java中的泛型方法
泛型是什么意思在这就不多说了,而Java中泛型类的定义也比较简单,例如:public class Test{}。这样就定义了一个泛型类Test,在实例化该类时,必须指明泛型T的具体类型,例如:Test t = new Test();,指明泛型T的类型为Object。 但是Java中的泛型方法就比较复杂了。 泛型类,是在实例化类的时候指明泛型的具体类型;泛型方法,是在转载 2015-10-24 13:46:12 · 479 阅读 · 0 评论 -
Set的不同实现方式(一)
Set不保存重复的元素,如果你试图将相同对象的多个实例添加到Set中,那么它就会阻止这种重复现象。Set中最常被使用的是 测试归属性,你可以很容易的询问某个对象是否在某个Set中。正因如此,查找就成了Set中最重要的操作,因此你通常都会选择 一个HashSet的实现,它专门对快速查找进行了优化。package setDemo;import java.util.HashS原创 2015-10-17 17:00:33 · 1218 阅读 · 0 评论 -
Linux系统下java连接MySQL数据库,MySQL安装
JDBCJDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。JDBC库中所包含的API通常用来: 连接到数据库 创建SQL或MySQL语句 在数据库中执行SQL或MySQL查询 查看和修改记录 连接到原创 2015-09-12 14:25:58 · 4355 阅读 · 0 评论 -
定制自己的java工具类
在java语言学习的过程中,我们可以创建自己的工具库来减少或消除重复的程序代码。比如说我们可以用我们自己构建的类Print来代替System.out.print()以减少输入负担。首先创建一个项目*******.util;然后在项目下新建一个名为org.print的包;在包内新建Print类。package org.print;import java.io.*;原创 2015-08-14 15:12:50 · 2980 阅读 · 2 评论 -
“==”与equals()的区别
“==”与equals()的区别;“==”比较的是对象的引用;equals()比较的是对象的内容;一般我们在使用equals()方法的时候,需要重写equals()方法。public class Dog { String name, says; Dog(String name, String says) { this.name = name; this.s原创 2015-08-16 20:33:55 · 382 阅读 · 0 评论 -
java对象赋值操作
对基本数据类型的赋值时很简单的。但是为对象赋值时,却有一点不一样;对一个对象进行操作的时候,我们真正操作的是对对象的引用。所以当将一个对象赋值给另一个对象,实际上是将对象的引用从一个地方赋值到另一个地方。当我么将一个对象赋值给另一个对象后,我们修改其中的一个对象,另一个对象也随之改变。class Tank{int m;}public class HelloWord { public st原创 2015-08-16 15:14:20 · 3813 阅读 · 1 评论 -
JAVA生成给定范围内的不重复的随机数的几种方法
在java中的Math类中存在一个random()方法,该方法默认生成0.0到1.0之间的double型随机数;经过稍微处理,就可以产生我们需要的随机数以及随机字符。除了Math类中的random()方法之外,java.util.Random类也可以用来生成随机数;下面分别举例(用不同的方法生成双色球号码)说明:1>Math.random()方法生成随机数:package原创 2015-08-29 09:59:50 · 23849 阅读 · 0 评论 -
PAT1001. 害死人不偿命的(3n+1)猜想 java;python实现
卡拉兹(Callatz)猜想:对任何一个自然数n,如果它是偶数,那么把它砍掉一半;如果它是奇数,那么把(3n+1)砍掉一半。这样一直反复砍下去,最后一定在某一步得到n=1。卡拉兹在1950年的世界数学家大会上公布了这个猜想,传说当时耶鲁大学师生齐动员,拼命想证明这个貌似很傻很天真的命题,结果闹得学生们无心学业,一心只证(3n+1),以至于有人说这是一个阴谋,卡拉兹是在蓄意延缓美国数学界教学原创 2016-01-27 20:08:14 · 2700 阅读 · 0 评论