- 博客(252)
- 资源 (22)
- 收藏
- 关注
原创 Juc并发编程之CompletableFuture多任务并行
业务背景,在项目开发中,在一个方法中需要同时查询四个不同的远程接口,这个接口可以并行请求,但需要同时拿到四个接口返回的结果才能继续执行业务。很显然这种情况通过串行调用,肯定可以实现,但是这样会造成阻塞时间长,性能低。例如现在有四个方法及其调用时间:
2023-09-01 16:24:08 387
原创 jstat命令详解
jstat命令使用类加载统计:编译统计垃圾回收统计堆内存统计新生代垃圾回收统计新生代内存统计老年代垃圾回收统计老年代内存统计元数据空间统计总结垃圾回收统计JVM编译方法统计jstat命令可以查看堆内存各部分的使用量,以及加载类的数量。命令的格式如下:jstat [-命令选项] [vmid] [间隔时间/毫秒] [查询次数]注意:使用的jdk版本是jdk8.类加载统计:C:\Users\Administrator>jstat -class 2060Loaded Bytes Unload
2020-11-11 22:06:02 7151 1
原创 JAVA回调函数 接口类型参数
package com.jd.ls.job.destroy;public interface ComputeCallBack {public void onComputeEnd();}package com.jd.ls.job.destroy;public class TestCallBack {public void compute(int n, ComputeCallBack ca...
2019-04-09 15:23:22 1010
原创 REDIS (13) 缓存的穿透,雪崩和热点key
穿透穿透:频繁查询一个不存在的数据,由于缓存不命中,每次都要查询持久层。从而失去缓存的意义。解决办法:①用一个bitmap和n个hash函数做布隆过滤器过滤没有在缓存的键。 ②持久层查询不到就缓存空结果,有效时间为数分钟。雪崩雪崩:缓存大量失效的时候,引发大量查询数据库。解决办法:①用锁/分布式锁或者队列串行访问 ②缓
2018-02-26 17:28:31 415
原创 java.lang.ClassFormatError javax/persistence/PersistenceException 错误解决办法
ERROR 2018-02-24 15:30:31,470 org.springframework.beans.factory.support.DefaultListableBeanFactory:581 - Destroy method on bean with name 'mongo' threw an exceptionjava.lang.ClassFormatError: Absent
2018-02-24 16:02:32 8323 1
哈希表、Java中HashMap
哈希算法,是一类算法;哈希表(Hash Table)是一种数据结构;哈希函数,是支撑哈希表的一类函数;Map是映射、地图的意思,在Java中Map表示一种把K映射到V的数据类型;HashMap是Java中用哈希数据结构实现的Map;HashMap如何实现数组索引的查找?主要这两个函数1.static final int hash...
2018-01-22 14:28:00 351
SQL索引一步到位
SQL索引在数据库优化中占有一个非常大的比例,一个好的索引的设计,可以让你的效率提高几十甚至几百倍,在这里将带你一步步揭开他的神秘面纱。 1.1什么是索引? SQL索引有两种,聚集索引和非聚集索引,索引主要目的是提高了SQLServer系统的性能,加快数据的查询速度与减少系统的响应时间下面举两个简单的例子:图书馆的例子:一个图书馆那么多书,怎么管理呢?建立一个字母开头的目录,例如:a开...
2018-01-17 09:33:00 238
解决hash冲突的三个方法
在Java编程语言中,最基本的结构就是两种,一种是数组,一种是模拟指针(引用),所有的数据结构都可以用这两个基本结构构造,HashMap也一样。当程序试图将多个 key-value 放入 HashMap 中时,以如下代码片段为例:HashMap<String,Object> m=new HashMap<String,Object>(); m.put("a...
2018-01-17 09:31:00 280
原创 从G1设计到堆空间调整
引言:如果你在使用Java8,或者计划使用Java9,有很大可能是要么在评估G1垃圾收集器,要么已经在使用它。本文将从G1设计开始向您介绍系统介绍G1垃圾收集器如何工作,助您更加系统的学习了解G1。 本文选自《Java性能调优指南》。G1设计 G1将Java堆分成多个分区。分区的大小可以依据堆的尺寸而改变,但必须是2的幂,同时最小为1MB,最大为32MB。由此得出可能的分区尺寸是
2018-01-10 10:19:46 429
从G1设计到堆空间调整
引言:如果你在使用Java8,或者计划使用Java9,有很大可能是要么在评估G1垃圾收集器,要么已经在使用它。本文将从G1设计开始向您介绍系统介绍G1垃圾收集器如何工作,助您更加系统的学习了解G1。 本文选自《Java性能调优指南》。G1设计 G1将Java堆分成多个分区。分区的大小可以依据堆的尺寸而改变,但必须是2的幂,同时最小为1MB,最大为32MB。由此得出可能的分...
2018-01-10 10:19:00 496
原创 JVM 三个代,JAVA8 持久代去哪了?
年轻代(Young Generation)、年老代(Old Generation)和持久代(Permanent Generation)。其中持久代主要存放的是Java类的类信息,与垃圾收集要收集的Java对象关系 不大。年轻代和年老代的划分是对垃 圾收集影响比较大的。 年轻代: 所有新生成的对象首先都是放在年轻代的。年轻代的目标就是尽可能快速的收集掉那些生 命周
2018-01-10 09:17:30 5460
JVM 三个代,JAVA8 持久代去哪了?
年轻代(Young Generation)、年老代(Old Generation)和持久代(Permanent Generation)。其中持久代主要存放的是Java类的类信息,与垃圾收集要收集的Java对象关系 不大。年轻代和年老代的划分是对垃 圾收集影响比较大的。 年轻代: 所有新生成的对象首先都是放在年轻代的。年轻代的目标就是尽可能快速的收集掉那些生 命周期短的对象...
2018-01-10 09:17:00 612 1
原创 JAVA8 新特性
前言: Java 8 已经发布很久了,很多报道表明Java 8 是一次重大的版本升级。在Java Code Geeks上已经有很多介绍Java 8新特性的文章,例如Playing with Java 8 – Lambdas and Concurrency、Java 8 Date Time API Tutorial : LocalDateTime和Abstract Class Versus Inte
2018-01-08 12:25:57 374
JAVA8 新特性
前言: Java 8 已经发布很久了,很多报道表明Java 8 是一次重大的版本升级。在Java Code Geeks上已经有很多介绍Java 8新特性的文章,例如Playing with Java 8 – Lambdas and Concurrency、Java 8 Date Time API Tutorial : LocalDateTime和Abstract Class Versus Int...
2018-01-08 12:25:00 211
原创 时间复杂度和空间复杂度详解
算法的时间复杂度和空间复杂度合称为算法的复杂度。1.时间复杂度(1)时间频度 一个算法执行所耗费的时间,从理论上是不能算出来的,必须上机运行测试才能知道。但我们不可能也没有必要对每个算法都上机测试,只需知道哪个算法花费的时间多,哪个算法花费的时间少就可以了。并且一个算法花费的时间与算法中语句的执行次数成正比例,哪个算法中语句执行次数多,它花费时间就多。一个算法中的语句执行次数称为语句频度或
2017-12-28 11:53:50 470
时间复杂度和空间复杂度详解
算法的时间复杂度和空间复杂度合称为算法的复杂度。1.时间复杂度(1)时间频度一个算法执行所耗费的时间,从理论上是不能算出来的,必须上机运行测试才能知道。但我们不可能也没有必要对每个算法都上机测试,只需知道哪个算法花费的时间多,哪个算法花费的时间少就可以了。并且一个算法花费的时间与算法中语句的执行次数成正比例,哪个算法中语句执行次数多,它花费时间就多。一个算法中的语句执行次数称为语句频度或...
2017-12-28 11:53:00 316
原创 浅谈Java虚拟机
Java JVM我们知道JVM有五大区块, Method Area(方法区)、VMStack(java堆)、VM Heap(java栈)、Program counter Register( 程序计数器)、Native Method Area (本地方法栈)如图-1
2017-12-28 10:40:51 520
浅谈Java虚拟机
JVM 组成我们知道JVM有五大区块, Method Area(方法区)、VMStack(java堆)、VM Heap(java栈)、Program counter Register( 程序计数器)、Native Method Area (本地方法栈)如图-1 JVM区块图 图-1 JVM区块字典区块方法区Java堆...
2017-12-28 10:40:00 165
原创 浅谈java数据结构
数据结构分类:线性结构和非线性结构问题一:什么是线性和非线性;我个人的理解是:数据结构中线性结构指的是数据元素之间存在着“一对一”的线性关系的数据结构;线性结构包括:数组,链表,队列,栈;非线性结构包括:树,图,表;详解:一.线性结构1.数组特点:我们都知道数组中的元素在内存中连续存储的,可以根据是下标快速访问元素,因此,查询速度很快,然而插入和删除时,需要对元
2017-12-28 08:43:17 388
浅谈java数据结构
数据结构分类:线性结构和非线性结构问题一:什么是线性和非线性;我个人的理解是:数据结构中线性结构指的是数据元素之间存在着“一对一”的线性关系的数据结构;线性结构包括:数组,链表,队列,栈;非线性结构包括:树,图,表;详解:一.线性结构1.数组特点:我们都知道数组中的元素在内存中连续存储的,可以根据是下标快速访问元素,因此,查询速度很快,然而插入和删除时,需要对元...
2017-12-28 08:43:00 136
原创 一起学习thymeleaf模板引擎
thymeleaf模板引擎:英 [taim li:f] 美 [taɪm lif] 还有人叫 塞姆理符 拼音读法:saimu leifu 简单说, Thymeleaf 是一个跟 Velocity、FreeMarker 类似的模板引擎,它可以完全替代 JSP 。相较与其他的模板引擎,它有如下三个极吸引人的特点: 1.Thymeleaf 在有网络和无网络的环境下皆可运行,即它可以让美工在浏
2017-12-06 11:47:38 2387
一起学习thymeleaf模板引擎
thymeleaf模板引擎:英 [taim li:f] 美 [taɪm lif] 还有人叫塞姆理符 拼音读法:saimu leifu简单说, Thymeleaf 是一个跟 Velocity、FreeMarker 类似的模板引擎,它可以完全替代 JSP 。相较与其他的模板引擎,它有如下三个极吸引人的特点: 1.Thymeleaf 在有网络和无网络的环境下皆可运行,即它可以让美工在浏览器查...
2017-12-06 11:47:00 371
原创 区间值比较算法
/** * @author 孟令杰 * @time 2017年9月28 */package com.system.utils;import java.math.BigDecimal;public class CarConsumScoreUtils { private Integer purchaseScore;//购车费用评分 private Integer upkeepSco
2017-11-13 09:23:00 4109
区间值比较算法
一、配置类CarConsumScoreConfig.javapackage com.system.utils;public class CarConsumScoreConfig { private Integer purchaseScore;//购车费用评分 private Integer upkeepScore;//保养评分 private Integer valueRatio...
2017-11-13 09:23:00 1210
原创 JAVA利用HttpClient进行HTTPS接口调用
https 协议 在 http 基础上做了一次算法加密,但并不是完全安全的。我们可以通过躲避证书,绕过加密算法来获取数据。一、jar 包版本准确定位:httpcore-4.2.4.jar 和 httpclient-4.2.5.jar二、代码:1.为了避免需要证书,所以用一个类继承DefaultHttpClient类,忽略校验过程。package com.chexun
2017-10-31 09:46:08 4934
JAVA利用HttpClient进行HTTPS接口调用
https 协议 在 http 基础上做了一次算法加密,但并不是完全安全的。我们可以通过躲避证书,绕过加密算法来获取数据。一、jar 包版本准确定位:httpcore-4.2.4.jar 和 httpclient-4.2.5.jar二、代码:1.为了避免需要证书,所以用一个类继承DefaultHttpClient类,忽略校验过程。package com.chexun.core.u...
2017-10-31 09:46:00 848
原创 Eclipse远程调试Tomcat方法
Linux中配置tomcat在catalina.sh中添加如下CATALINA_OPTS="-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5888"(不要换行,要在同一行)Eclipse debug 下点击Debug Configurac...
2017-10-25 13:47:42 381
Eclipse远程调试Tomcat方法
Linux中配置tomcat在catalina.sh中添加如下CATALINA_OPTS="-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5888"(不要换行,要在同一行)Eclipse debug 下点击Debug Conf...
2017-10-25 13:47:00 117
转载 velocity学习笔记
转载自:http://wiki.hotoo.me/Velocity-Notes.htmlVelocity Notes变量名$name为空时打印变量本身。$!name为空时打印空字符串(不打印任何内容)。${name}类似 $name,为空时原样打印。但可以将变量和连续的字符串分隔,例如:${name}space。$!{name}类似 $!name,为空时打印空字符串,但
2017-09-30 10:07:11 487
velocity学习笔记
转载自:http://wiki.hotoo.me/Velocity-Notes.htmlVelocity Notes变量名$name为空时打印变量本身。$!name为空时打印空字符串(不打印任何内容)。${name}类似$name,为空时原样打印。但可以将变量和连续的字符串分隔,例如:${name}space。$!{name}类似$!name,为空时打...
2017-09-30 10:07:00 120
原创 静态方法加锁,和非静态方法加锁区别
今天看了到有意思的题:在静态方法上加锁 和 非静态方法加锁 有什么区别,从而再次引出锁机制的一些理解。先看方法: // 这是一个很简单的类,里面共享静态变量 num,然后一个静态 和 非静态方法,都加上锁// 我们假设有两个线程同时操作这两个方法,那么数据能互斥吗?Java代码public class Walk { public static int num
2017-08-17 17:56:24 564
静态方法加锁,和非静态方法加锁区别
今天看了到有意思的题:在静态方法上加锁 和 非静态方法加锁 有什么区别,从而再次引出锁机制的一些理解。先看方法:// 这是一个很简单的类,里面共享静态变量 num,然后一个静态 和 非静态方法,都加上锁// 我们假设有两个线程同时操作这两个方法,那么数据能互斥吗?Java代码public class Walk { public static int num = ...
2017-08-17 17:56:00 612 1
原创 MongoDB 基本用法
一、查询openId 字段是否存在db.getCollection('common_reviews').find({openId:{ $exists: true }})
2017-08-17 17:32:51 297
MongoDB 基本用法
一、查询openId 字段是否存在db.getCollection('common_reviews').find({openId:{ $exists: true }})db.getCollection('video_Temp').find({"carSeriesBind":{"$in":[1942,104042]}}).count()
2017-08-17 17:32:00 128
原创 检查线程是否关闭
//抓取XXXX 车型任务 public void executeModel() { long startTime = System.currentTimeMillis(); final int nThreads = 12; ExecutorService executor = Executors.newFixedThreadPool(nThreads); List list =
2017-07-20 18:17:48 562
检查线程是否关闭
//抓取XXXX 车型任务 public void executeModel() { long startTime = System.currentTimeMillis(); final int nThreads = 12; ExecutorService executor = Executors.newFixedThreadPool(nThreads); List<Car...
2017-07-20 18:17:00 225
原创 jdbc PreparedStatement ps 对象的execute()方法 无法执行,无反应
原因是行被锁住了。执行下面方法 查询被锁对象1.下面的语句用来查询哪些对象被锁:select b.username,b.sid,b.serial#,logon_timefrom v$locked_object a,v$session bwhere a.session_id = b.sid order by b.logon_time2.下面的语句用来杀死一个进程:执行
2017-07-20 18:03:30 2590
jdbc PreparedStatement ps 对象的execute()方法 无法执行,无反应
原因是行被锁住了。执行下面方法 查询被锁对象1.下面的语句用来查询哪些对象被锁:select b.username,b.sid,b.serial#,logon_timefrom v$locked_object a,v$session bwhere a.session_id = b.sid order by b.logon_time2.下面的语句用来杀死一个进程:执行 alter...
2017-07-20 18:03:00 806
原创 java 利用反射机制,获取实体所有属性和方法,并对属性赋值
一个普通的实体Person:private int id;private String name;private Date createdTime;...//其它字段// get set方法...............现在需要把通过webService传过来的实体Person里面的所有字段的null值,换成""实现思路:1.获取实体的所有字段,遍历2.获取字段类型3.
2017-07-18 10:12:19 475
java 利用反射机制,获取实体所有属性和方法,并对属性赋值
一个普通的实体Person:private int id;private String name;private Date createdTime;...//其它字段// get set方法...............现在需要把通过webService传过来的实体Person里面的所有字段的null值,换成""实现思路:1.获取实体的所有字段,遍历2.获取字段类型3....
2017-07-18 10:12:00 192
JAVA核心知识点全集
2022-03-10
RocketMQ_原理简介
2016-05-17
power designer 12.5及破解补丁
2010-05-20
struts-1.3.8-all.zip struts jar包下载
2010-03-03
通过java操作excel表格的工具类库
2009-11-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人