Java
明天争取
听一首好歌,写一段代码,阅生活百态。
展开
-
【解决方案】idea开启断言
基于JDK的断言语句的,要想使断言语句生效,需要在JVM参数中增加-ea(enable assertion)参数。原创 2021-01-16 15:46:07 · 274 阅读 · 0 评论 -
【解决方案】BigDecimal.setScale() 无效 不起作用
最近在使用BigDecimal进行四舍五入时,发现setScale()方法设置的精度值并没有起作用,代码如下:错误代码double d = 7.199999999999999;BigDecimal decimal = new BigDecimal(String.valueOf(d));decimal.setScale(2, BigDecimal.ROUND_HALF_UP);System.out.println(decimal.scale());System.out.println(decim转载 2020-10-30 10:50:14 · 4265 阅读 · 0 评论 -
【解决方案】大数据JSON流解析
背景最近在做一个需求,需要每月从一个别的数据系统同步一次数据过来。数据量大概90W条左右,数据接口只提供了一个JSON接口,接口返回报文为JSON,并且没有任何分页。这个数据量如果直接使用普通方式解析的话,肯定内存溢出。解决思路我们要保证内存溢出,那么就不能把得的数据全部存放在内存然后处理。通常我们在处理一些大的数据文件时也会有同样的情况,我们可能会在读取文件的流中一行一行的对数据进行处理,处理完的数据丢弃,将会被垃圾回收,这样一个很大的文件也可以保证正常处理。那么对于接口,实际响应报文也是一个转载 2020-07-11 23:10:58 · 1773 阅读 · 0 评论 -
【解决方案】JIRA和Confluence更改JVM内存大小解决访问打开缓慢问题
原因:根据主机物理内存不同,默认的java虚拟机内存也会不同(一个较低值),有时候不够用,可以修改默认设置,改善内存不足导致的问题。操作步骤:JIRA 1.打开至相应目录: cd /opt/atlassian/atlassian-jira-6.3.6-standalone/bin/ //这里是我的安装路径 ls //找到下图中的设置环境变量的"setenv.s...转载 2020-01-08 15:53:08 · 450 阅读 · 0 评论 -
【解决方案】JPA打印SQL参数
#打印sqlspring.jpa.show-sql=true#打印sql参数logging.level.org.hibernate.type.descriptor.sql.BasicBinder=trace转载 2020-01-03 10:06:43 · 1400 阅读 · 0 评论 -
【解决方案】解决maven打包打不进lib下的第三方jar包问题
maven项目有时候找不到第三方jar包的依赖坐标,这时就需要在项目下建立一个文件夹,将第三方jar包放在此处,在maven打包时将文件夹下的jar包打包进去在pom.xml中添加如下插件,并指明jar包路径<plugin> <artifactId>maven-compiler-plugin</artifactId> <con...转载 2019-11-27 10:55:06 · 1736 阅读 · 0 评论 -
【解决方案】配置文件中"&"符号报错,无法识别
问题描述:在配置文件中直接引入"&"符号,配置文件在检测时会有红色波浪线显示提醒其不符合语法解决方法:以"&"替换"&"符号其它符号转换扩展:小于号<大于号> &&单引号'双引号"...原创 2019-11-27 10:42:28 · 1408 阅读 · 1 评论 -
多线程下生产者与消费者浅析
多线程下生产者与消费者浅析代码导读: package com.nuc.zp.Thread_20180531;import java.util.stream.Stream;/** * auther: ZP * time: 2018/6/4 15:54 */public class ProduceAndConsumber2 { private final Objec...原创 2018-06-15 10:55:30 · 302 阅读 · 0 评论 -
SpringBoot启动原理浅析
SpringBoot启动原理浅析 1、程序入口 @SpringBootApplicationpublic class Springboot02Application { public static void main(String[] args) { SpringApplication.run(Springboot02Application.class, args); ...原创 2018-06-28 15:52:25 · 1353 阅读 · 0 评论 -
httpclient向HTTPS发送数据建立SSL连接时的错误
httpclient向HTTPS发送数据建立SSL连接时的异常异常信息如下:javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderExc...原创 2019-05-22 12:14:27 · 1233 阅读 · 0 评论 -
httpclient向HTTPS发送数据建立SSL连接时的错误(续)
本文接转上篇,httpclient向HTTPS发送数据建立SSL连接时的错误,该文中代码使用了http过时的API,虽然总体上没什么影响,但是对于有代码洁癖的人来说,每次编译显示过时的消息,总是让人抓狂,所以本文对代码进行了更新,希望可以帮助到各位小伙伴。创建httpClient核心类:package com.nuc.zp.domain;import org.a...原创 2019-06-11 14:11:54 · 939 阅读 · 0 评论 -
jsp页面动态显示本地时间
jsp页面动态显示本地时间<script language="javascript"> //检查是不是两位数字,不足补全function check(str){ str=str.toString(); if(str.length<2){ str='0'+ str; } return str;}function realS...原创 2018-04-13 17:21:31 · 820 阅读 · 0 评论 -
请求Requst中获取访问请求的客户端IP
请求Requst中获取访问请求的客户端IP在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的。但是在通过了Apache,Squid,nginx等反向代理软件就不能获取到客户端的真实IP地址了。如果使用了反向代理软件,将http://192.168.1.110:2046/ 的URL反向代理为 http://wwwjbbenupl...原创 2018-03-25 14:38:36 · 254 阅读 · 0 评论 -
网页调用QQ聊天
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no"> QQ Test PC版 移动版 其中腾讯将代码分为:移动端 mqqw转载 2017-12-09 15:56:26 · 1005 阅读 · 0 评论 -
js实现轮播图
js实现轮播图js轮播body{overflow-x:hidden; }div{margin: 0 auto;}.lunboImg{position: relative;width: 1200px;border: 1px solid red;height: 500px;}img{position: relative;}ul{position: absol原创 2017-08-23 19:26:46 · 406 阅读 · 0 评论 -
jQuery实现二级联动
js实现二级联动 Insert title here var arr=[["北京","海淀","朝阳"],["山西","太原","大同","吕梁"],["山东","济南","青岛"]]; $(function(){ $("#select1").change(function()原创 2017-08-24 20:22:37 · 568 阅读 · 0 评论 -
ssh整合的一点心得
ssh整合之道(struts2+spring4+hibernate)一、任务分工1.struts2负责处理请求,转发2.spring4负责装配对象3.hibernate负责生成更新数据表,以及和数据库打交道的Hql语句二、执行流程运行流程:给一个请求,会先去struts2.xml文件中寻找对应的Action,其对应的类由spring负责解析,其act原创 2017-08-04 09:42:19 · 596 阅读 · 0 评论 -
Java的动态代理
Java的动态代理1.什么是动态代理? (1)代理模式 代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类 预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。代理类与委托类之间通常会存在关联 关系,一个代理类的对象与一个委托类的原创 2017-07-20 11:34:33 · 358 阅读 · 0 评论 -
发送HTTP请求返回301和从HttpResponse中获取Cookie解决方案
1、发送HTTP请求,如何从HttpResponse中获取Cookie?2、发送HTTP请求返回301重定向响应吗,如何发起二次post请求,获得最终的响应?解决方案如下:private static String getCookieFromResponse(@NonNull HttpResponse response) { Header[] responseHead...原创 2019-05-22 12:24:19 · 9604 阅读 · 0 评论 -
深入理解Java内存模型(一)
一、并发编程模型的分类。线程之间如何进行通信及线程之间如何同步?线程:指并发执行的活动实体,即线程对象。通信:指线程之间以何种机制来交换信息,即沟通方式。(1)线程之间的通信机制有两种:共享内存。在共享内存的并发模型里,线程之间共享程序的公共状态,通过读-写内存中的公共状态来进行通信。(隐式)消息传递。在消息传递的并发模型里,线程之间没有公共状态,线程之间必须通过明确的发...原创 2019-06-06 09:34:04 · 283 阅读 · 0 评论 -
深入理解Java内存模型(五)
与前面介绍的锁和volatile相比较,对final域的读和写更像是普通的变量访问。对于final域,编译器和处理器要遵守两个重排序规则:在构造函数内对一个final域的写入,与随后把这个被构造对象的引用赋值给一个引用变量,这两个操作之间不能重排序。初次读一个包含final域的对象的引用,与随后初次读这个final域,这两个操作之间不能重排序。下面,我们通过一些示例性的代码来分别说...原创 2019-06-13 13:46:33 · 143 阅读 · 0 评论 -
【Java核心】详解Java中断机制
一、引言 我们知道,通过线程的start方法启动一个线程后,线程开始执行run方法,run方法运行结束后线程退出,那为什么还需要结束一个线程呢?有多种情况,比如说: 很多线程的运行模式是死循环,比如在生产者/消费者模式中,消费者主体就是一个死循环,它不停的从队列中接受任务,执行任务,在停止程序时,我们需要一种”优雅”的方法以关闭该线程。 在一些图形用户界面程序中,线...原创 2019-09-14 14:35:01 · 276 阅读 · 0 评论 -
【Java核心】Java泛型(Generic Type)
一、写在前面。 错误可分为两种:编译时错误与运行时错误。编译时错误在编译时可以发现并排除,而运行时错误具有很大的不确定性,在程序运行时才能发现,造成的后果可能是灾难性的。 泛型的引入使得一部分错误可以提前到编译时期发现,极大地增强了代码的健壮性。但是我们知道 java 泛型在运行的时候是会进行泛型擦除的,那我们要怎样得到在编译时期泛型的信息呢?Java 为我们提供了...原创 2019-09-01 13:22:14 · 4736 阅读 · 0 评论 -
break和continue
break和continue原创 2017-01-19 10:06:59 · 314 阅读 · 0 评论 -
JAVA猜数游戏
JAVA猜数游戏效果截图: 实现代码:package com.zp.demo1;/** * Test.java * @author zp * @version 1.0 * 2017-06 */public class Test { /** ...原创 2017-06-25 10:11:31 · 673 阅读 · 0 评论 -
一个实用的日期工具类
package com.nuc.zp.utils;import java.util.Calendar;import java.util.Date;import java.util.TimeZone;public class DateUtils { /** * 得到目标周的某一天 * * @param index (0-6分别表示周一...原创 2019-06-26 14:49:19 · 195 阅读 · 0 评论 -
Centos7自定义系统服务
本文以一个Java的jar包服务,演示如何自定义一个系统服务。一、编写服务脚本以nursed服务为例:进入 /usr/lib/systemd/system, 新建nursed.service文件,写入如下内容。[Unit]#服务描述Description=Nursed Service#设置在某个服务启动后启动:这里为指mysql服务启动后再启动本服务After=...原创 2019-06-21 19:49:12 · 2607 阅读 · 0 评论 -
深入理解Java内存模型(四)
一、锁的释放-获取建立的happens before关系锁是java并发编程中最重要的同步机制。锁除了让临界区互斥执行外,还可以让释放锁的线程向获取同一个锁的线程发送消息。下面是锁释放-获取的示例代码:class MonitorExample { int a = 0; public synchronized void writer() { //1 a++; ...原创 2019-06-12 09:05:44 · 1126 阅读 · 0 评论 -
Spring boot2连接MySQL出现异常:The last packet successfully received from the server was x milliseconds ago
一、错误日志2018-10-11 04:00:15,642 ERROR traceId:0 com.alibaba.druid.pool.DruidDataSource:1600 - discard connection -- Exception: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communication...原创 2019-06-17 14:17:01 · 5612 阅读 · 0 评论 -
深入理解Java内存模型(三)
一、volatile的特性当我们声明共享变量为volatile后,对这个变量的读/写将会很特别。理解volatile特性的一个好方法是:把对volatile变量的单个读/写,看成是使用同一个锁对这些单个读/写操作做了同步。下面我们通过具体的示例来说明,请看下面的示例代码:class VolatileFeaturesExample { //使用volatile声明64位的long型变量...原创 2019-06-11 19:12:42 · 215 阅读 · 0 评论 -
SpringBoot2.0整合jpa报错:error creating bean with name 'entityManagerFactory'
一、报错信息:org.springframework.beans.factory.BeanCreationNotAllowedException: Error creating bean with name 'entityManagerFactory': Singleton bean creation not allowed while singletons of this factory...原创 2019-06-16 19:42:25 · 7623 阅读 · 0 评论 -
深入理解Java内存模型(二)
一、数据竞争与顺序一致性保证当程序未正确同步时,就会存在数据竞争。java内存模型规范对数据竞争的定义如下:在一个线程中写一个变量,在另一个线程读同一个变量,而且写和读没有通过同步来排序。当代码中包含数据竞争时,程序的执行往往产生违反直觉的结果(前一章的示例正是如此)。如果一个多线程程序能正确同步,这个程序将是一个没有数据竞争的程序。JMM对正确同步的多线程程序的内存一致性做了如下...原创 2019-06-10 16:20:54 · 151 阅读 · 0 评论 -
为什么不能从静态的方法里面调用非静态方法,或变量?
为什么不能从静态的方法里面调用非静态方法,或变量?总结: 静态方法不能调用非静态的属性和方法,非静态方法可以调用静态的方法和属性,也可以调用非静态的方法和属性.分析: 程序最终都将在内存中执行,变量只有在内存中占有一席之地时才能被访问。类的静态成员(变量和方法)属于类本身,在类加载的时候就会分配内存,可以通过类名直转载 2017-07-05 17:26:10 · 556 阅读 · 0 评论 -
多重继承关系的初始化顺序
多重继承关系的初始化顺序父类属性---》父类构造方法---》子类属性---》子类构造方法 说明:创建对象时,子类构造方法会自动调用父类的构造方法,若子类有有参构造,则不会自动调用父类无参构造。此时子类必须有一个无参构造,否则使用无参构造函数创建对象时会报错。如果父类属性未初始化,父类属性不会调用,会直接走父类构造方法中的内容。然后继续子原创 2017-06-26 21:12:51 · 2993 阅读 · 0 评论 -
response.getWriter().write()与out.print()的区别
response.getWriter().write()与out.print()的区别1、首先介绍write()和print()方法的区别: (1)、write():仅支持输出字符类型数据,字符、字符数组、字符串等 (2)、print():可以将各种类型(包括Object)的数据通过默认编码转换成bytes字节形式,这些字节都通过write(int c)转载 2017-05-14 09:32:30 · 388 阅读 · 0 评论 -
map中containsKey与get方法区别
map中containsKey与get方法区别 Map集合允许值对象为null,并且没有个数限制,所以当get()方法的返回值为null时,可能有两种情况,一种是在集合中没有该键对象,另一种是该键对象没有映射任何值对象,即值对象为null。因此,在Map集合中不应该利用get()方法来判断是否存在某个键,而应该利用containsKey()方法来判断,例如下面的例子。转载 2017-05-14 09:26:39 · 1611 阅读 · 0 评论 -
Hibernate缓存机制
Hibernate缓存机制 缓存的作用主要用来提高性能,可以简单的理解成一个Map;使用缓存涉及到三个操作:把数据放入缓存、从缓存中获取数据、删除缓存中的无效数据。一级缓存,Session级共享。save,update,saveOrUpdate,load,get,list,iterate,lock这些方法都会将对象放在一级缓存中,一级缓存不能控原创 2017-03-25 13:30:10 · 451 阅读 · 0 评论 -
Hibernate懒加载
Hibernate懒加载 懒加载(Load On Demand)是一种独特而又强大的数据获取方法 ,是指程序推迟访问数据库,这样做可以保证有时候不必要的访问数据库,因为访问一次数据库是比较耗时的。■ 懒加载几种情况(方式)首先我们要明确一点 Domain Object 是非final的,才能实现懒加载。解决懒加载的方法:1. 明确原创 2017-03-25 13:19:08 · 385 阅读 · 0 评论 -
SLF4J: The requested version 1.5.8 by your slf4j binding is not compatible with [1.6] SLF4J: See htt
SLF4J: The requested version 1.5.8 by your slf4j binding is not compatible with [1.6]SLF4J: See http://www.slf4j.org/codes.html#version_mismatch for further details.解决办法:使slf4j-api-1.5.2.j原创 2017-03-15 17:02:05 · 7344 阅读 · 0 评论 -
运行时报错,HCANN000001: Hibernate Commons Annotations {4.0.2.Final} 等
三月 15, 2017 4:42:33 下午 org.hibernate.annotations.common.Version INFO: HCANN000001: Hibernate Commons Annotations {4.0.1.Final}三月 15, 2017 4:42:34 下午 org.hibernate.Version logVersionINFO: HHH0004原创 2017-03-15 16:57:39 · 9544 阅读 · 2 评论