
java
王小强-
这个作者很懒,什么都没留下…
展开
-
如何解决Redis缓存雪崩、缓存穿透、缓存并发等5大难题
如何解决Redis缓存雪崩、缓存穿透、缓存并发原创 2022-04-06 15:52:54 · 1166 阅读 · 0 评论 -
NCC优化相关
计息查询效率问题先通过JProfiler监听发现计息在查询放款单聚合vo数据的时候非常耗时然后通过录spr发现最放款单的一次查询需要查询放款单以及放款单版本,主表的200多个字段,以及7个子表的所有字段一次查询执行8个sql,这是就知道瓶颈在哪里了,然后就是要考虑怎们优化。通过查看BaseDAO提供的方法,发现retrieveByClause(Class className, String condition, String[] fields)方法,是可以指定查询字段的。.原创 2021-10-20 10:47:42 · 697 阅读 · 0 评论 -
volatile、原子性、原子变量、CAS
volatile 内存可见性 多个线程操作共享数据时,可以保存内存中的数据可见* 相较于synchronized是一种较为轻量级的同步策略* 注意:* 1.volatile不具备互斥性* 2.volatile不能保证原子性* jvm会给每一个线程分配独立的内存package thread;/** * volatile 内存可见性 多个线程操作共享数据时,可以保存内存中的数据可见 * 相较于synchronized是一种较为轻量级的同...原创 2021-10-20 10:00:34 · 126 阅读 · 0 评论 -
2021-10-15
* volatile 内存可见性 多个线程操作共享数据时,可以保存内存中的数据可见* 相较于synchronized是一种较为轻量级的同步策略* 注意:* 1.volatile不具备互斥性* 2.volatile不能保证原子性* jvm会给每一个线程分配独立的内存package thread;/** * volatile 内存可见性 多个线程操作共享数据时,可以保存内存中的数据可见 * 相较于synchronized是一种较为轻量级的同...原创 2021-10-15 15:45:17 · 124 阅读 · 0 评论 -
重复注解与类型注解
创建注解MyAnnotion@Repeatable(MyAnnotations.class)注解可以重复package 新特性;import java.lang.annotation.ElementType;import java.lang.annotation.Repeatable;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.a..原创 2021-10-13 15:20:13 · 164 阅读 · 0 评论 -
接口中的默认方法与静态方法
类优先原则: 若一个接口定义了一个默认方法 而另一个父类或接口中又定义了一个同名方法时选择父类中的方法,如果一个父类提供了具体实现,那么接口中具有同名和参数的默认方法会被忽略接口冲突:如果一个父接口提供一个默认方法,而另一个接口也提供了具有同名和参数方法(不管方法是不是默认方法)那么实现类必须选择指定覆盖接口方法package 新特性;/** * 类优先原则 若一个接口定义了一个默认方法 而另一个父类或接口中又定义了一个同名方法时 * 选择父类中的方法,如果一个父类提供了具体实现,那原创 2021-09-10 15:23:40 · 229 阅读 · 0 评论 -
Optional类的使用
java8提出了一个Optional类,尽量避免java.lang.NullPointerExceptionpackage 新特性;import java.util.Optional;import org.junit.Test;import 新特性.Employee.Status;/** * Optional容器类的常用方法 * Optional.of(T t) 创建一个Optional实例 * Optional.empty() 创建一个空的Optional实例 *..原创 2021-09-10 14:46:54 · 184 阅读 · 0 评论 -
java8 特性
速度更快 代码更少Lambda 强大的Stream API 便于并发 最大化减少空指针Optinaloracle-sun Hotspotoracle JRocketIBM j9 jvmtaobao taobao jvm 永久去 PremGen 没有了 PremGenSize MaxPremGenSize MetaSpace 元空间 使用物理内存 MetaspaceSize MaxMetaspaceSize原创 2021-09-07 11:02:55 · 446 阅读 · 0 评论 -
protobuf java使用
需要安装protobuf的编译器,然后定义一个protobuf文件syntax = "proto2";package com.wq.protobuf;option optimize_for = SPEED;option java_package = "com.wq.protobuf";option java_outer_classname = "DataInfo";messag...原创 2019-07-09 10:09:59 · 3673 阅读 · 1 评论 -
浏览器指定将某元素全屏js方法
浏览器将指定元素全屏/** *解决火狐浏览器不能全屏的方法 */ function fullScreenff(){ var mb = myBrowser(); if(mb == "IE" || mb == "Edge"){ alert("如果要使用此功能,请使用火狐或谷歌浏览器。"); return; } var thisIfra...原创 2019-06-20 15:02:45 · 1395 阅读 · 0 评论 -
静态html导出
java导出html静态页面,包含页面中引用的css、jsjs代码如下/** * */ /** * 导出html report function */ function printHtml(){ var json = getJson(); var encodejson = encodeURIComponent(enco...原创 2019-06-20 13:41:29 · 2035 阅读 · 0 评论 -
java redis 5种类型的操作demo
package com.esafenet.ta.da.auditreport.utils;import java.util.HashMap;import java.util.Iterator;import java.util.List;import java.util.Map;import java.util.Set;import com.esafenet.ta.util.MD5...原创 2018-07-18 11:15:40 · 662 阅读 · 0 评论 -
java解析读取Bson数据
2需要引入bson-3.8.1.jar 使用BasicBSONDecoder类中的readObject进行读取数据。代码如下图所示。package com.wq.ta.da.util;import java.io.BufferedInputStream;import java.io.File;import java.io.FileInputStream;import java.io...原创 2018-08-22 10:40:15 · 6386 阅读 · 0 评论 -
java递归将文件夹下的所有文件打zip包
java递归将文件夹下的所有文件打zip包package com.wq.com.zipFile;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.util.zip.ZipEntry;import java.util.zip.ZipOutput...原创 2018-08-30 10:55:20 · 701 阅读 · 0 评论 -
spring+JAX-RS实现Restfull接口 demo
JAX-RS是JAVA EE6 引入的一个新技术。 JAX-RS即Java API for RESTful Web Services,是一个Java 编程语言的应用程序接口,支持按照表述性状态转移(REST)架构风格创建Web服务。JAX-RS使用了Java SE5引入的Java注解来简化Web服务的客户端和服务端的开发和部署。JAX-RS提供了一些注解将一个资源类,一个POJO...原创 2018-09-28 11:13:01 · 928 阅读 · 0 评论 -
java通过 JNA调用 so
需要再linux系统中ldd so文件------ 列出动态库依赖关系,看看glibc版本是否一致。下面是java代码,其中c++的char*对应java中的byte[]。c++的方法返回值可以从中获取。另外java中用IntByReference对应c++中的int*。https://www.jb51.net/os/RedHat/538539.html看一下你那里的glibc的版本...原创 2018-11-08 15:22:57 · 1628 阅读 · 0 评论 -
java监听者模式
原理:当范围对象的状态发生变化的时候,服务器自动调用监听器对象中的方法。Java的时间监听机制涉及到三个组件:事件源、事件监听器、事件对象当事件源上发生操作时,它会调用事件监听器的一个方法,并且调用这个方法时,会传递事件对象过来事件监听器是由开发人员编写,开发人员在事件监听器中,通过事件对象可以拿到事件源,从而对事件源上的操作进行处理下面以按钮点击时间来写代码实现监听按钮被点击。...原创 2018-12-07 14:44:19 · 1211 阅读 · 0 评论 -
XML读、写,根据key值修改xml
本文代码依赖dom4j-1.6.1.jar在修改xml过程中遇见utf-8第一次被修改之后,再次修改提示错误--org.dom4j.DocumentException: 2 字节的 UTF-8 序列的字节 2 无效。 Nested exception: 2 字节的 UTF-8 序列的字节 2 无效。在晚上找资料说需要将xml改成GBK,结果试了一下果然没有问题,但是项目需要使用utf-8所...原创 2018-12-25 14:23:37 · 1409 阅读 · 0 评论 -
js代码----禁止浏览器弹出alert
在项目中会遇到浏览器弹出alert,非常讨厌,这个时候我们可以重写alert(),代码如下,这样就变成console输出了。javascript:alert=function(s){console.log(s)};原创 2019-03-21 17:04:42 · 2785 阅读 · 0 评论 -
js请求服务器下载文档(doc、wps、txt等到本地)
js请求代码downloadTemplate('./auditreport/exportWPS.do?filename='+encodeURIComponent(returnInfo[2]), 'filename', 'test');/** * 用于下载导入模板时的影藏form表单的提交,采用post方式提交 * @param actio...原创 2019-06-19 11:43:01 · 1687 阅读 · 0 评论 -
无头浏览器生成图片
调用无头浏览器根据option生成echart的图片,主要用于系统后台任务生辰报表(PDF、word)格式import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.lang.reflec...原创 2019-06-20 11:27:28 · 1094 阅读 · 0 评论 -
Collections.sort()排序 重写Comparator()按照JsonElement
List<JsonElement> list = new ArrayList<JsonElement> (); for (int i = 0; i < array.size(); i++) { JsonElement jsonElement = array.get(i); list.add(jsonEl...原创 2018-07-17 20:17:17 · 640 阅读 · 0 评论