java
文章平均质量分 72
神秘嘉宾吴彦祖
这个作者很懒,什么都没留下…
展开
-
ElasticSearch和solr的差别
Elasticsearch是一个实时分布式搜索和分析引擎。它让你以前所未有的速度处理大数据成为可能。它用于全文搜索、结构化搜索、分析以及将这三者混合使用:原创 2022-08-19 16:11:43 · 238 阅读 · 0 评论 -
单例模式的几种实现方式
一般情况下,可以优先考虑使用第3种双重校验锁方式或者第6种枚举方式。其次可以使用第4种饿汉方式,不建议使用第1种和第2种懒汉方式。在明确实现lazy loading时,可以使用第5种静态内部类方式。原创 2022-08-19 16:10:00 · 224 阅读 · 0 评论 -
java判断两个毫秒数如何区分是不是一天(最简单的办法)
判断两个毫秒数是不是同一天;我的方法不需要和网上其他的教程一样先判断年分,判断月份,判断天,太繁琐。如果为东八区(北京)的时间:计算公式超级简单,直接套用:(某时间毫秒数+1000*3600*8)/(1000*3600*24)也就是除以毫秒,除以3600,除以24取整数就是天数了,判断这两个整数是不是一样就可以判断是否为同一天。注意:公式中加上了1000*3600*8,这是重点,因为北京时间是1970年的1月一号的早上八点开始的,这里如果不加上八点的话,那么取整比对日期就不准确了。如原创 2021-09-13 11:03:38 · 513 阅读 · 0 评论 -
原子操作类AtomicInteger通俗易懂的例子
AtomicInteger是一个提供原子操作的Integer类,通过线程安全的方式操作加减。十分适合高并发情况下的使用为什么需要AtomicInteger原子操作类?对于Java中的运算操作,例如自增或自减,若没有进行额外的同步操作,在多线程环境下就是线程不安全的。num++解析为num=num+1,明显,这个操作不具备原子性,多线程并发共享这个变量时必然会出现问题。测试代码如下:public class AtomicIntegerTest { private static fin原创 2020-11-09 15:50:37 · 276 阅读 · 0 评论 -
Java之泛型<T> T与T的区别和用法
来源链接:https://www.cnblogs.com/jpfss/p/9929108.html<T> T表示返回值是一个泛型,传递啥,就返回啥类型的数据,而单独的T就是表示限制你传递的参数类型,这个案例中,通过一个泛型的返回方式,获取每一个集合中的第一个数据, 通过返回值<T> T和T的两种方法实现<T> T用法这个<T> T表示的是返回值T是泛型,T是一个占位符,用来告诉编译器,这个东西先给我留着,等我编译的时候,告诉你。...原创 2020-11-09 11:58:28 · 822 阅读 · 0 评论 -
Java泛型详解:<T>和Class<T>的使用。泛型类,泛型方法的详细使用实例
来源链接:https://www.cnblogs.com/jpfss/p/9928747.html自己记录一下,方便查找原创 2020-11-09 11:56:56 · 106 阅读 · 0 评论 -
Java 堆内存泄漏分析的一个例子
Java 程序开发者,多多少少都遇到过 Java 堆内存溢出的错误,错误发生时可以在日志文件中看到java.lang.OutOfMemoryError: Java heap space字样。不像NullPointerException等其他异常,抛出OutOfMemoryError的代码往往并不是罪魁祸首,只是想申请内存时发现内存已经被其他人占光了而已。这个特点导致开发者较难找到导致OutOfMemoryError的根本原因。许多人喜欢靠前后版本代码比较,甚至根据一些蛛丝马迹来推测问题点,但...原创 2020-11-06 15:18:16 · 2984 阅读 · 2 评论 -
上传文件超出 Tomcat 配置的最大大小,客户端在一些情况下收不到返回信息,报错 (failed)ERR_CONNECTION_RESET
遇到的问题及现象项目提出一个变更:上传文件超出 Tomcat 配置的最大大小后,优化客户端报错信息 ,问题改起来不难,但在改的过程中却发现另外一个问题(本文档探索的问题),当超出最大大小后客户端在一些情况下收不到返回信息,所以报错(failed)ERR_CONNECTION_RESET当时配置文件配置为: spring.servlet.multipart.max-file-size = 10KB spring.servlet.multipart.max-request-size = 10KB.原创 2020-11-06 15:13:24 · 828 阅读 · 0 评论 -
jdk1.7新特性: 自动关闭IO流
jdk1.7版本起,可以自动关闭IO流如:获取一个文件内容,以前通常是这样写: /** * 获取文件内容 * @param file 文件 * @return 内容 */ public String getText(File file){ FileInputStream fis = null; try { fis = new FileInputStream(file);原创 2020-10-12 14:41:27 · 412 阅读 · 0 评论 -
使用String类 的 concat()拼接字符串失败
String 的 concat() 方法注释为:Concatenates the specified string to the end of this string.If the length of the argument string is 0, then this String object is returned. Otherwise, a String object is returned that represents a character sequence that is the原创 2020-09-02 14:04:53 · 1716 阅读 · 2 评论 -
@Autowired一个有多个实现类的接口
@Autowired一个接口的时候不少人都会有疑惑,如果public class B implements A;public class C implements A;@Autowiredprivate A a;此时a调用方法是调用B的方法还是C的方法呢?实测如此操作会导致启动报错了org.springframework.beans.factory.BeanCreationException,而原因是注入的时候发现有2个匹配的bean,(这个注解的首先是通过byType的方式注入Bean)原创 2020-08-25 09:48:11 · 1520 阅读 · 0 评论 -
SpringBoot过滤器OncePerRequestFilter
springboot中javax.servlet.Filter原生接口的实现;而Spring的OncePerRequestFilter类实际上是一个实现了Filter接口的抽象类。spring对Filter进行了一些封装处理。OncePerRequestFilter,顾名思义,它能够确保在一次请求中只通过一次filter,而不需要重复的执行。大家常识上都认为,一次请求本来就只filter一次,为什么还要由此特别限定呢,往往我们的常识和实际的实现并不真的一样,经过一番资料的查阅,此方法是...原创 2020-06-29 15:02:07 · 1351 阅读 · 0 评论 -
java获取当前数据库连接,获取当前数据库connection对象
@Autowired DataSource dataSource; Connection connection = DataSourceUtils.getConnection(dataSource);原创 2020-05-26 10:09:21 · 4253 阅读 · 0 评论 -
java 反射获取父类属性方法
/** * 获取属性 * @param clazz * @param fieldName * @return */ public static Field getDeclaredField(Class clazz, String fieldName) { if (Strings.isNullOrEmpty(fieldName)) { return null; } whi...原创 2020-05-25 15:10:54 · 1163 阅读 · 0 评论 -
Spring使用@Autowired注入静态对象的方式
问题缘由:有些工具类中的静态方法需要依赖别的对象实例(该实例已在spring容器中)因为静态方法里面的变量必然要使用静态成员变量,此时如果直接使用@Autowired:@Componentpublic class TestClass { @Autowired private static AutowiredTypeComponent component; // 调用静态组件的方法 public static void testMethod() {原创 2020-05-21 15:19:19 · 1946 阅读 · 1 评论 -
Command line is too long. Shorten command line for SpringBootMainApplication or also for Application
原创 2020-05-08 14:37:38 · 192 阅读 · 0 评论 -
java 各种循环中 return/break/continue 的作用
开篇即总结1. 首先普通for循环和增强for循环是一样的:return表示结束当前方法(包括所有循环)break表示结束当前循环,不影响循环后面代码执行continue结束此次循环,继续下一次循环2. foreach循环使用lambda语法情况下return: 表示结束此次循环break:语法会直接报错:Break outside switch or loop...原创 2020-05-08 14:33:32 · 8366 阅读 · 0 评论 -
java.lang.OutOfMemoryError There is insufficient memory for the Java Runtime Environment to continue
jvm内存满了,如果之前一直没有出现过该问题,且启动的项目数没有增加,那么可能为开发软件或者jvm出现问题,可以重启软件或者电脑试一下,这只是暂时的解决方案,如果重启还有该问题解决方案:1.应用服务器提示错误的解决: 1.可能物理内存不足 2. 把启动参数内存值设置足够大。如何设置jvm https://blog.csdn.net/yilongch...原创 2020-04-30 17:19:53 · 267 阅读 · 0 评论 -
IDEA设置JVM可分配内存大小和其他参数
有时我们会遇到java.lang.OutOfMemoryError 的问题,可能会需要设置jvm运行参数作用-Dproperty=Value该参数通常用于设置系统级全局变量值,如配置文件路径,保证该属性在程序中任何地方都可访问。当然,也可以通过在程序中使用System.setProperty进行设置。注意:1、如果...原创 2020-04-30 17:19:37 · 6352 阅读 · 0 评论 -
Root WebApplicationContext: initialization completed in 11622 ms
程序启动卡在 Root WebApplicationContext: initialization completed in 11622 ms废话不多说,,可能是debug断点太多,去掉一些断点试试原创 2020-03-20 11:05:39 · 511 阅读 · 0 评论 -
java代码 if条件太多 的优化方式之一 断流法
先看下面的两层if条件if(a != null && !a.isEmpty()){ if (a.size() >= 1) { //doSomeThing } else { return; }} else{ return;}其实else可以直接省掉if(a != null && !a.isEmp...原创 2020-01-19 13:53:54 · 4235 阅读 · 0 评论 -
git 多个commit 合并为一个commit
合并多个还未push的commit、合并未push的和已经push的commit、合并已经push的commit都可以做到1. 选择要合并几个commit,2代表要合并已经提交的上两次commitgit rebase -i HEAD~22. 会进入这样的页面,输入i进入编辑模式,选择将需要隐藏的commit前面pick改为 s(等同于squash),改好后 esc 冒号wq 保存退出...原创 2020-01-19 11:39:05 · 724 阅读 · 0 评论 -
jasperreport导出excel后全部为 text单元格 数字也无法求和
用户在报表模板中可以直接配置 net.sf.jasperreports.export.xls.detect.cell.type属性(即导出 excel时是否检测单元格格式),但是位置比较隐蔽,下图便是配的的位置:( xls格式和 xlsx格式均配置该属性)如果不想一个个报表进行配置,而想所有的报表全部配置此配置,则可以在java代码中设置config写死:exp...原创 2020-01-14 10:39:35 · 832 阅读 · 0 评论 -
JAVA中使用增强for循环删除list中某元素报错空指针
一开始代码如下,执行后在for循环那一行报错空指针,但是上方已经判断了list不为null,不为空private List<InstallRow> list;if (list!= null && !list.isEmpty()) { for(InstallRow installRow : list) { if(installRow...原创 2020-01-13 14:09:20 · 4084 阅读 · 0 评论 -
关于单例模式下@autowired会出现的问题
单例模式下,如果使用@autowired导入某个实例,最后执行时可能会自动注入失败,自动注入的实例为null;这可能是因为单例的构造方法是private,所以spring在启动过程中自动注入时失败;...原创 2020-01-08 17:26:03 · 3782 阅读 · 0 评论 -
java单例模式的一种线程安全写法
public class MysqlDuplicateKeyException implements DuplicateKeyException { //构造方法设为私有 private MysqlDuplicateKeyException() { } public static MysqlDuplicateKeyException getInstance()...原创 2020-01-08 17:12:44 · 157 阅读 · 0 评论 -
java.io.NotSerializableException异常的解决方案
先说解决方法再说原因解决方法:报错信息会指示出问题的是哪个实体类,在该实体类的后面加上一句 “implements Serializable”,例如import java.io.Serializable; public class User implements Serializable{ }如果加了“implements Serializable”之后还是报错,你会发现报...原创 2019-12-30 18:05:08 · 17217 阅读 · 3 评论 -
SpringBoot 配置文件中配置的中文,程序读取出来是乱码
配置文件中是正常显示的中文,但是spring读取到的确是乱码。我总共有两种解决办法,第一:先复制或者备份一下你的配置文件的所有字符,打开设置将transparent native-to-ascii conversion选中,然后返回将之前的配置文件重新粘贴一遍(一定要将中文重新打一遍)如图:Transparent native-to-ascii conversion的意思是:...原创 2019-09-11 13:39:58 · 2664 阅读 · 0 评论 -
mysql运行报The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time z
mysql运行报The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zone的解决方法 话不多说,从错误即可知道是时区的错误,因此只要将时区设置为你当前系统时区即可, 因此使用root用户登录mysql,按照如下图所示操作即可。 set globa...原创 2019-08-16 13:21:50 · 106 阅读 · 0 评论 -
MessageFormat构造方法因为pattern中有英文单引号导致后面的变量识别为字符串
在使用MessageFormat进行国际化时发现pattern如果是例如:Don't support get file which path:{0}这样包含单引号时,后面的{0}无法正常显示百度后无果。。。最后通过阅读MessageFormat的源代码和注释找到了解决方案applyPattern方法会将读到的第一个英文单引号当做字符串的开始,也就是当成了转义字符,然后如果后...原创 2019-06-26 17:38:35 · 432 阅读 · 2 评论 -
git 提交后中文字符会乱码。
最近发生那了一件怪事,当然菜鸡经常碰见怪事本来一个.properties文件在idea里面commit的时候看了一下diff,没发现异常,但是提交到gitlab上发现.properties的所有中文字符都变成了 \xxxx 的ascii的编码。然后我在idea的show history中查看和上一版本的差异,发现这些中文字符没问题??!!然后就是一顿的百度,bing最后...原创 2019-06-19 15:51:18 · 16193 阅读 · 1 评论 -
IDEA项目里Maven 的Plugins出现红线,Plugins缺失
解决办法:1.删除本地中央仓库所有以lastUpdated结尾的文件2.重新点击reimport上面这些也是看的网上大部分的解决办法,但是我reimport之后,右下角process几秒钟就结束了,看起来仿佛没有去下载。。。。。!然后翻遍了网上的此类问题的方法没有找到生效的,,,好吧,这种事情似乎经常发生,,,,找了很久,研究了很久,最后在idea里面直接给某个源代...原创 2019-06-14 14:43:01 · 1940 阅读 · 0 评论 -
IDEA 部分java类文件图标不是c而是左下角有红色J标识,导致文件没有错误提示
IDEA java类文件左下角出现红色的J标识,如图:解决方法:1.如果是部分java文件出现这种情况,File>>project structure>>Modules在java路径上标识Sources.右键java文件夹 点击Sources选项2.全部都变成j文件File–Power Save Mode 选项去掉左边的勾选或...原创 2019-04-23 11:46:58 · 11504 阅读 · 2 评论