java
lukezhang-123
博客好强大!注意保护视力!
展开
-
jdbcTemplate在controller提交事务
jdbcTemplate在controller执行updatejdbcTemplate.update() 可以在general_log看到如下日志2021-10-30T10:37:07.479175Z 50 Query SET autocommit=02021-10-30T10:37:07.479286Z 50 Query insert into message(content) values ("asdkfja")2021-10-30T10:37:07.480042Z 50 Qu原创 2021-10-30 18:53:48 · 1673 阅读 · 0 评论 -
利用idea的fernflower或者java-decompiler反编译jar包或者class文件
先找到idea安装目录的反编译工具jar,名称从fernflower改名为java-decompiler,其实还是相同统计# MacOS/Applications/IntelliJ IDEA.app/Contents/plugins/java-decompiler/lib/java-decompiler.jar# win"%ProgramFiles%\JetBrains\IntelliJ IDEA 2018.3\plugins\java-decompiler\lib\java-decompiler.原创 2021-09-03 14:11:29 · 4362 阅读 · 0 评论 -
sourceforge的rtftemplate使用
新建java的maven空项目pom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://原创 2021-08-22 16:28:38 · 292 阅读 · 0 评论 -
jsp知识点汇总
JSP九大内置对象,request、response、session、application、out、pageContext、config、page和exception核心标签 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>格式化标签 <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>导入其他文件jsp或者html .原创 2021-07-06 16:15:56 · 104 阅读 · 0 评论 -
struts2 经验记录
调试值栈ValueStack<s:debug></s:debug>el表达式取值栈中的数据:${user.username }${user.userage }利用ognl表达式取值栈中的值:<s:property value="user.username"/><s:property value="#attr.str.length"/><br>attr是struts2添加到值栈的上下文取的一个Map(org.apache.struts2原创 2021-06-23 12:43:50 · 88 阅读 · 0 评论 -
java的与或异或运算的好处,补码计算
public class Test { public static void main(String[] args) { int[] repeatInt = {1, 2, 4, 1, 4}; int tmp = 0; for(int one:repeatInt){ tmp ^= one; } System.out.println("异或运算,抵消相同数字,找到不重复数字:" + tmp)..原创 2021-01-03 13:33:04 · 289 阅读 · 0 评论 -
java 算法题
import java.util.*;public class Main { public static void main(String[] args) {// while (true){// Scanner in=new Scanner(System.in);// Object data = in.next();// System.out.println(data);// if原创 2020-08-09 12:21:28 · 240 阅读 · 0 评论 -
java 多线程模板
import javax.xml.bind.DatatypeConverter;import java.security.MessageDigest;import java.security.NoSuchAlgorithmException;import java.util.ArrayList;import java.util.List;import java.util.Objects;...原创 2020-03-30 13:57:26 · 344 阅读 · 0 评论 -
java 利用反射使list根据任意对象某个属性排序
public class CommonTest { public static void main(String[] args) { User one = new User(); one.setAge(1); User two = new User(); two.setAge(3); User three =...原创 2020-03-11 18:02:39 · 553 阅读 · 0 评论 -
springboot2的gradle分离lib依赖jar瘦身打包
plugins { id 'org.springframework.boot' version '2.2.1.RELEASE' id 'io.spring.dependency-management' version '1.0.9.RELEASE' id 'java'}group 'com.ddddd'version '1.0'sourceCompatibilit...原创 2020-03-05 11:04:56 · 1464 阅读 · 1 评论 -
springboot2的gradle项目模板
记录使用springboot2的gradle,方便以后快速搭项目使用idea创建gradle的java项目后//settings.gradlepluginManagement { repositories { maven { url 'https://maven.aliyun.com/repository/jcenter' } maven { url ...原创 2020-03-05 11:00:41 · 924 阅读 · 0 评论 -
springboot加载使用证书的ssl然后HttpClient请求
import org.apache.http.HttpEntity;import org.apache.http.HttpResponse;import org.apache.http.client.HttpClient;import org.apache.http.client.config.RequestConfig;import org.apache.http.client.meth...原创 2020-03-04 18:57:36 · 1306 阅读 · 0 评论 -
windows上gradle的springboot里zxing报错android:jar must specify an absolute path but is ${env.ANDROID_HOME
这个gradle判断错了存在ANDROID_HOME变量加载了pom C:\Users\win\.gradle\caches\modules-2\files-2.1\com.google.zxing\zxing-parent\3.3.2\4ad323c509da2eff69fe7f02ef0f4e5910509206\zxing-parent-3.3.2.pom里面的<systemPat...原创 2020-03-04 16:41:18 · 4284 阅读 · 2 评论 -
java可读取ansi与utf8的csv文件工具类
import lombok.extern.slf4j.Slf4j;import java.io.FileOutputStream;import java.io.IOException;import java.io.UnsupportedEncodingException;import java.nio.charset.Charset;import java.nio.charset.St...原创 2020-02-28 11:38:47 · 847 阅读 · 0 评论 -
java ansi文件转utf8字符
windows上新建的txt, 用记事本编辑后保存就是ansi格式,也是gbk,java读取后乱码,下面是程序中转utf8try { Path filePath = Paths.get(fileName); Files.lines(filePath, Charset.forName("Cp1252")).forEach(s->{ try { ...原创 2020-02-28 10:29:38 · 3229 阅读 · 1 评论 -
java8一行代码获取昨天时间字符串
import java.time.Instant;import java.time.ZoneId;import java.time.format.DateTimeFormatter;import java.time.temporal.ChronoUnit; String date = DateTimeFormatter.ofPattern("yyyy-MM-dd") ...原创 2020-02-13 19:37:57 · 3608 阅读 · 0 评论 -
java使用httpclient下载需要post参数json的文件
//pom.xml <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.2.1.RELEASE&l...原创 2020-02-12 20:08:06 · 468 阅读 · 0 评论 -
springboot与hadoop-hdfs导致slf4j:Class path contains multiple SLF4J bindings
SLF4J: Class path contains multiple SLF4J bindings.SLF4J: Found binding in [jar:file:/C:/Users/mjoys/.m2/repository/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar!/org/slf4j/impl/Stat...原创 2020-01-14 10:19:07 · 624 阅读 · 0 评论 -
windows下intellij idea开发中通过jstack与jvisualvm找到线程阻塞
用ida打开运行项目中一个【测试用例】,发现日志停在一个地方不对,多次重试一直是输出相同日志后没有后续日志,所以断定应该是pull代码后,代码修改,什么地方阻塞了线程idea启动项目打开cmd,jps找到进程JUnitStarter ,这是测试用例的进程jstack -l 12988 > jstack.outvscode打开jstack.out,看到最下面有这就是测试用例主进程...原创 2019-12-31 17:35:35 · 3441 阅读 · 0 评论 -
java的COW(Copy-On-Write)适合读多写少场景
并发容器Copy-On-Write,写时复制的容器读不加锁直接读写时加锁,把旧容器内容,放到新容器,把元素加到新容器上,再修改引用Object[] newElements = Arrays.copyOf(elements, len + 1);setArray(newElements);读多写少时使用...原创 2019-12-21 16:00:48 · 655 阅读 · 0 评论 -
JUL(java.util.logging)java原生官方日志 使用与配置--解决jul不输出显示日志问题
JUL(java.util.logging)是java自带的默认日志,很多项目在没有配置日志(slf4j或者log4j)时会默认使用jul作为最后的日志实现Java Logging Technology–java日志简介java默认log配置文件C:\Program Files\Java\jre1.8.0_221\lib\logging.properties这样在maven项目中快速使用ju...原创 2019-12-17 11:43:33 · 3100 阅读 · 2 评论 -
JVM性能调优实践总结
How to Properly Plan JVM Performance Tuning调优:使用尽可能少的资源(内存,多核cpu等等)完成需求的目标(程序稳定运行),【调优目的】,找出系统不能稳定运行的瓶颈(bottleneck),优化【调优过程】jvm调优需要的知识:了解jvm运行时的内存管理过程,gc过程熟悉jvm监控工具(jvisualvm图像监控,jstack打印线程调用栈(找到...原创 2019-12-03 11:38:22 · 147 阅读 · 0 评论 -
java中jdk工具和其他工具
jvisualvm图形化监控工具,可以安装Visual GC插件查看代内存使用,进程,等等jstack -l pid是thread dump,可打印出当前进程的所有线程调用栈,里面的nid是linux的lwp(light weight process轻进程,就是线程),top后按H显示所有lwp线程,lwp转16进制就是nid,printf "%x\n" lwpjps运行的所有java...原创 2019-12-03 10:43:50 · 150 阅读 · 0 评论 -
java gc底层原理、相关算法与多种gc收集器选择
Java Garbage Collection Basics–oracle–jvm1.7Garbage Collectors OverviewGC Algorithms先从总体上,对jvm的gc有个总览,java的内存回收属于分代回收机制(Generational Garbage Collection)从上面图可以清楚的看出jvm的gc就是对java的【整个堆内存heap】的【分代】...原创 2019-12-02 20:04:09 · 205 阅读 · 0 评论 -
springboot开启jmx使用jvisualvm的Visual GC插件监控java程序的gc,windows与linux
在windows,打开C:\Program Files\Java\jdk1.8.0_221\bin\jvisualvm.exe菜单工具--插件--可下载找到Visual GC安装登陆linux服务器vim /tmp/tools.policy 新建,复制下面的内容grant codebase "file:${java.home}/../lib/tools.jar" { perm...原创 2019-12-02 17:38:25 · 1035 阅读 · 0 评论 -
java导出excel文件名乱码处理
try { fileName = URLEncoder.encode(fileName, "UTF-8"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } response.setHeader("Content-disposition", "attachment;filename="+...原创 2019-11-08 16:38:49 · 5228 阅读 · 5 评论 -
jackson的ObjectMapper忽略大小写与驼峰命名
@Autowired private ObjectMapper mapper; mapper.configure(MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES, true); // deprecated mapper.setPropertyNamingStrategy(PropertyNamingStrateg...原创 2019-11-01 09:48:53 · 10425 阅读 · 3 评论 -
面向对象的java,一切对象的起源Object
java.lang.Object 源码分析java世界一切对象的祖先,任何一个类的祖先都是Object(虽然没有多继承,但是任何类都默认继承Object,有他的方法),new YourClass默认继承自Object Object的源码很简单 一、注册native方法,架起操作系统的java世界的桥梁private static native void registerNatives(); s原创 2017-12-11 23:25:05 · 13499 阅读 · 0 评论 -
java接口interface理解,接口作用
java 接口interface1. 固定统一调用的方法(想想适配器模式)public void somefunc(HttpServletRequest resq){ //调用时传来实现该接口的类就行//里面直接调用接口方法2. 标记作用,作为一个类的标记, 里面空方法(Cloneable,Serializable)1)没有继承Cloneable,直接调用obj.clone()抛异常原创 2017-12-17 20:35:22 · 13591 阅读 · 0 评论 -
java核心基础--jdk源码分析学习--HashSet
java.util.HashSet1. 内部由HashMap实现, add时对象放入HashMap的key里,value填充PRESENT(一个静态空对象)public HashSet() { map = new HashMap<>();//new时构造一个HashMap}public boolean add(E e) { return map.put(e, PRESENT)==原创 2017-12-16 17:26:36 · 13325 阅读 · 0 评论 -
java核心基础--jdk源码分析学习--Hashtable
java.util.Hashtable1. 内部由内部类Entry存储单节点数据,单向链表(hash冲突时往后放)。table为Entry数组,hash后决定Entry存在table[?]private static class Entry<K,V> implements Map.Entry<K,V> {Entry<K,V> next;2. Hashtable初始默认容量11,可容纳11 * 0.原创 2017-12-16 18:27:05 · 13381 阅读 · 0 评论 -
java核心基础--jdk源码分析学习--LinkedList
java.util.LinkedList1. 内部由内部类Node存储单节点数据,双向循环链表private jdk源码原创 2017-12-13 09:34:30 · 13431 阅读 · 0 评论 -
java核心基础--jdk源码分析学习--TreeMap
java.util.TreeMap1. TreeMap默认按key升序(从小到大),也可以倒序new TreeMap();//默认按key升序new TreeMap(Collections.reverseOrder());//按key倒序排序原创 2017-12-17 17:25:45 · 13405 阅读 · 0 评论 -
java核心基础--jdk源码分析学习--ArrayList
java.util.ArrayList1. 内部由elementData对象数组存储数据transient Object[] elementData; 2. 初始大小10private static final int DEFAULT_CAPACITY = 10;3. add()时调用ensureCapacityInternal(size + 1);确保容量足够和扩容扩容,初始10,每次增加原创 2017-12-13 09:23:25 · 13407 阅读 · 0 评论 -
java核心基础--jdk源码分析学习--Integer
java.lang.Integer1. final类public final class Integerjdk源码分析 jdk核心内幕原创 2017-12-13 08:55:39 · 13493 阅读 · 0 评论 -
java核心基础--jdk源码分析学习--String
java.lang.String1. String类是【final】 jdk源码分析原创 2017-12-13 08:37:59 · 13547 阅读 · 0 评论 -
java核心基础--jdk源码分析学习--基本数据类型
java基本数据类型。四类八种—重点是【记住占几位】逻辑类型 boolean (占几位不一定)文本类型 char(16-bit)(unicode)整数类型 byte(8-bit)、short(16-bit)、int(32-bit)、long(64-bit)浮点类型 float(32-bit IEEE754)、double(64-bit IEEE754)官方文档:https://docs原创 2017-12-05 17:02:27 · 14689 阅读 · 0 评论 -
java常见注解Annotation--开发工作学习中经常见到的注解---欢迎补充
java注解基础可以看:java注解源码–注解基础知识java注解虽然方便了减少配置,但是【无法调试】,【破坏封装】,【增加了学习负担】工作中经常看到各种注解,如果不了解他的作用,也就无法掌握核心代码的功能以及运行流程,比如springcloud的注解,微服务系列的注解eureka,ribbon,feign,还有可能是公司内部使用的注解@Override 【类包】java.lang.原创 2017-12-29 11:26:47 · 13711 阅读 · 0 评论 -
java模拟cmd启动springboot
idae启动springboot项目会带有很长的参数,超过了cmd的长度限制,所有可以使用java语言来模拟cmd启动springboot,不受cmd字符长度限制,也可以自己定义一次启动多个springbootcommand-line string limitationpublic class Test { public static void main(String[] a原创 2018-01-11 12:00:39 · 15094 阅读 · 1 评论 -
不同jar包相同同名类--Classloader.getResource--slf4j原理
以下是代码实验public class Test { public static void main(String[] args) throws Exception{ //当前Test类所在目录(包)的a.txt System.out.println(Test.class.getResource("a.txt")); //当前项目的根目录的a.txt原创 2017-12-27 14:43:22 · 16192 阅读 · 0 评论