- 博客(54)
- 资源 (13)
- 收藏
- 关注
原创 AtomicReference自旋加CAS保证对象引用原子性
AtomicReference类提供了对象引用的非阻塞原子性读写操作,并且提供了其他一些高级的用法,对象的引用其实是一个4字节的数字,代表着在JVM堆内存中的引用地址,对一个4字节数字的读取操作和写入操作本身就是原子性的。
2024-01-06 15:52:46
467
原创 多线程分批处理数据
在工作中经常会遇到一个业务操作要处理成千上万的数据,耗时非常严重,性能严重不达标,这个时候就会想到采用多线程来执行业务来提高执行效率,在改背景下本人下了一个d可以直接套用业务的demo,在此记录,以备随时用到来copy代码。下面代码为调用代码,调用逻辑为定义了一批data英雄分批次开启多线程进入战场大乱斗,最后各个英雄的耗时及战绩。再创建一个构建线程池的工具类,代码如下,线程池参数可以根据自己需要做成可配置。然后创建一个用于执行批量计算的工具类,如下。首先定义个执行业务任务的接口。
2023-12-23 15:58:45
849
原创 Spring Aop
在Spring Boot应用程序中使用@Aspect注解来定义切面类,注意使用@Component注解,一开始我没有追加,运行起来不生效。通过注解实现,定义注解,实现切面类,内部通过一个Pointcut来指定在带有我们上面自定义注解类AopLog注解的所有方法上进行拦截。改切面类作用于我自己写的controller中的function。springboot项目 pom.xml追加。
2023-05-08 11:14:17
139
原创 nginx相关
简介nginx是一个高性能的HTTP和反向代理服务器,特点占用内存少,并发能力强反向代理客户端对代理无感知,因为客户端不需要任何配置就可以访问,只需要将请求发送给反向代理服务器,由反向代理服务器去选择目标服务器获取数据,再返回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器的ip地址,隐藏了真实的服务器地址。负载均衡单个服务器解决不了,我们增加服务器数量,然后将请求分发到各个服务器上,将原先请求集中到一个服务器上的情况改为分发到多个服务器上,将负载分发到不同
2022-07-19 10:45:01
141
原创 NCC优化相关
计息查询效率问题先通过JProfiler监听发现计息在查询放款单聚合vo数据的时候非常耗时然后通过录spr发现最放款单的一次查询需要查询放款单以及放款单版本,主表的200多个字段,以及7个子表的所有字段一次查询执行8个sql,这是就知道瓶颈在哪里了,然后就是要考虑怎们优化。通过查看BaseDAO提供的方法,发现retrieveByClause(Class className, String condition, String[] fields)方法,是可以指定查询字段的。.
2021-10-20 10:47:42
689
原创 volatile、原子性、原子变量、CAS
volatile 内存可见性 多个线程操作共享数据时,可以保存内存中的数据可见* 相较于synchronized是一种较为轻量级的同步策略* 注意:* 1.volatile不具备互斥性* 2.volatile不能保证原子性* jvm会给每一个线程分配独立的内存package thread;/** * volatile 内存可见性 多个线程操作共享数据时,可以保存内存中的数据可见 * 相较于synchronized是一种较为轻量级的同...
2021-10-20 10:00:34
125
原创 2021-10-15
* volatile 内存可见性 多个线程操作共享数据时,可以保存内存中的数据可见* 相较于synchronized是一种较为轻量级的同步策略* 注意:* 1.volatile不具备互斥性* 2.volatile不能保证原子性* jvm会给每一个线程分配独立的内存package thread;/** * volatile 内存可见性 多个线程操作共享数据时,可以保存内存中的数据可见 * 相较于synchronized是一种较为轻量级的同...
2021-10-15 15:45:17
118
原创 重复注解与类型注解
创建注解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
163
原创 js代码----禁止浏览器弹出alert
在项目中会遇到浏览器alert出来一下信息,比如chrome浏览器就会弹出an error occurred,非常讨厌,怎么解决呢?可以重写alert function stopError(){ javascript:alert=function(s){console.log(s)}; }...
2021-10-13 14:49:14
1820
原创 JAVA新时间
传统时间格式化的现成安全问题package 新特性;import java.text.DateFormat;import java.text.ParseException;import java.text.SimpleDateFormat;import java.time.LocalDate;import java.time.format.DateTimeFormatter;import java.util.ArrayList;import java.util.Date;import
2021-10-13 14:48:27
144
原创 接口中的默认方法与静态方法
类优先原则: 若一个接口定义了一个默认方法 而另一个父类或接口中又定义了一个同名方法时选择父类中的方法,如果一个父类提供了具体实现,那么接口中具有同名和参数的默认方法会被忽略接口冲突:如果一个父接口提供一个默认方法,而另一个接口也提供了具有同名和参数方法(不管方法是不是默认方法)那么实现类必须选择指定覆盖接口方法package 新特性;/** * 类优先原则 若一个接口定义了一个默认方法 而另一个父类或接口中又定义了一个同名方法时 * 选择父类中的方法,如果一个父类提供了具体实现,那
2021-09-10 15:23:40
228
原创 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
180
原创 java8 特性
速度更快 代码更少Lambda 强大的Stream API 便于并发 最大化减少空指针Optinaloracle-sun Hotspotoracle JRocketIBM j9 jvmtaobao taobao jvm 永久去 PremGen 没有了 PremGenSize MaxPremGenSize MetaSpace 元空间 使用物理内存 MetaspaceSize MaxMetaspaceSize
2021-09-07 11:02:55
441
原创 react小计--持续更新
绑定属性注意:其他属性和之前写法是一样的class要换成classNamefor要换成htmlForstyle绑定样式<div style={{"color":"red","fontSize":"40px"}}></div>绑定图片--远程图片src="远程图片地址"import image from '../images/1.jpg';<image src = {image} />//或者用es6语法<image src = {.
2021-07-01 11:05:31
135
原创 过滤器模式
过滤器模式(Filter Pattern)或标准模式(Criteria Pattern)是一种设计模式,这种模式允许开发人员使用不同的标准来过滤一组对象,通过逻辑运算以解耦的方式把它们连接起来。这种类型的设计模式属于结构型模式,它结合多个标准来获得单一标准。我们将创建一个SpicySlices对象、Criteria接口和实现了该接口的实体类,来过滤SpicySlices对象的列表。NameCriteria类中使用Criteria对象,基于各种标准和它们的结合来过滤SpicySlices对象的...
2021-05-19 14:45:25
108
原创 netty长连接
MyServerpackage com.wq.nettylongconnection;import io.netty.bootstrap.ServerBootstrap;import io.netty.channel.ChannelFuture;import io.netty.channel.EventLoopGroup;import io.netty.channel.nio.N...
2019-07-12 18:03:24
413
原创 netty心跳
MyServerpackage com.wq.nettyheart;import io.netty.bootstrap.ServerBootstrap;import io.netty.channel.ChannelFuture;import io.netty.channel.EventLoopGroup;import io.netty.channel.nio.NioEventLo...
2019-07-12 17:59:54
155
原创 netty聊天多客户端访问服务端
MyChatServerpackage com.wq.nettychat;import io.netty.bootstrap.ServerBootstrap;import io.netty.channel.ChannelFuture;import io.netty.channel.EventLoopGroup;import io.netty.channel.nio.NioEven...
2019-07-12 17:57:11
1062
原创 netty服务端http
nettyserverpackage com.wq.netty;import io.netty.bootstrap.ServerBootstrap;import io.netty.channel.ChannelFuture;import io.netty.channel.EventLoopGroup;import io.netty.channel.nio.NioEventLoopG...
2019-07-12 17:53:59
387
原创 字符集编码解析
package com.wq.nio;import java.io.File;import java.io.IOException;import java.io.RandomAccessFile;import java.nio.ByteBuffer;import java.nio.CharBuffer;import java.nio.MappedByteBuffer;import...
2019-07-12 17:31:59
280
原创 java NIO网络客户端编写
服务端:package com.wq.nio;import java.net.InetSocketAddress;import java.net.ServerSocket;import java.nio.ByteBuffer;import java.nio.channels.SelectionKey;import java.nio.channels.Selector;impor...
2019-07-12 14:48:26
341
原创 Nio编程selector监听多个端口获取请求信息
Select监听端口,然后获取请求数据package com.wq.nio;import java.net.InetSocketAddress;import java.net.ServerSocket;import java.nio.ByteBuffer;import java.nio.channels.SelectionKey;import java.nio.channels....
2019-07-12 09:57:34
1154
原创 java装饰模式
装饰模式是在不改变原来具体实现接口类的前提下,增加了一些实现。package com.wq.decorator;/** * 抽象构建角色的具体实现 */public class ConcreteComponent implements Component { @Override public void doSomething() { System.o...
2019-07-09 16:49:49
242
原创 Netty中Protobuf多协议消息支撑
先定义.proto文件,其中定义一个枚举DateType标识不同的消息类别,然后oneof定义Mymessage中的dataBody只能是Person、Dog、Cat中的一种。然后使用protobuf编译器编译,编译命令:protoc --java_out=src/main/java src/protobuf/Person.protosyntax = "proto2";package c...
2019-07-09 14:33:42
585
原创 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
3653
1
原创 浏览器指定将某元素全屏js方法
浏览器将指定元素全屏/** *解决火狐浏览器不能全屏的方法 */ function fullScreenff(){ var mb = myBrowser(); if(mb == "IE" || mb == "Edge"){ alert("如果要使用此功能,请使用火狐或谷歌浏览器。"); return; } var thisIfra...
2019-06-20 15:02:45
1390
原创 静态html导出
java导出html静态页面,包含页面中引用的css、jsjs代码如下/** * */ /** * 导出html report function */ function printHtml(){ var json = getJson(); var encodejson = encodeURIComponent(enco...
2019-06-20 13:41:29
2029
原创 无头浏览器生成图片
调用无头浏览器根据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
1084
原创 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
1678
原创 js代码----禁止浏览器弹出alert
在项目中会遇到浏览器弹出alert,非常讨厌,这个时候我们可以重写alert(),代码如下,这样就变成console输出了。javascript:alert=function(s){console.log(s)};
2019-03-21 17:04:42
2778
原创 Gson基本操作,JsonObject,JsonArray,String,JavaBean,List互转
1.String、JsonObject、JavaBean 互相转换User user = new Gson().fromJson(jsonObject, User.class);User user = new Gson().fromJson(string, User.class);String string = new Gson().toJson(user);JsonObject ...
2019-01-18 09:32:00
150
原创 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
1405
原创 java监听者模式
原理:当范围对象的状态发生变化的时候,服务器自动调用监听器对象中的方法。Java的时间监听机制涉及到三个组件:事件源、事件监听器、事件对象当事件源上发生操作时,它会调用事件监听器的一个方法,并且调用这个方法时,会传递事件对象过来事件监听器是由开发人员编写,开发人员在事件监听器中,通过事件对象可以拿到事件源,从而对事件源上的操作进行处理下面以按钮点击时间来写代码实现监听按钮被点击。...
2018-12-07 14:44:19
1207
原创 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
1618
原创 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
921
原创 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
698
原创 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
6377
原创 linux命令
查看内存总数------------------ cat /proc/meminfo | grep MemTotal查看CPU型号----------------- cat /proc/cpuinfo | grep 'model name' |uniq查看操作系统----------------- lsb_release -a (适用于所有的linuxuname -a...
2018-08-09 15:04:50
361
JavaUtilsProject-master.zip最新版
2019-06-14
JavaUtilsProject-master.zip
2019-06-05
Java ECharts jar包
2018-06-06
阿里和谷歌的json的jar包
2017-11-15
将网页指定区域的html下载,同时将js,css也下载。并将页面的路径改为下载后的路径
2017-11-10
itext-2.0.8.jar
2017-11-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人