java
hkNaruto
这个作者很懒,什么都没留下…
展开
-
RocketMQ mqadmin java springboot python 调用笔记
java python rocketmq 互通例子原创 2023-08-28 09:56:07 · 725 阅读 · 0 评论 -
openjdk 安装包下载地址
源码官网下载地址微软提供的包。原创 2023-08-24 14:37:36 · 796 阅读 · 0 评论 -
openjdk 1.7 aarch64 arm64版本下载
可以直接在arm64 centos:7 docker镜像中直接安装。原创 2023-07-11 16:48:54 · 2306 阅读 · 0 评论 -
Java 内存模型JMM 多线程变量可见性问题验证程序及volatile关键字作用验证程序
说明t1线程每个循环都会休眠1毫秒,是CPU空闲,t2线程修改n=1,待t1线程唤醒后,可以得到最新的数据。此时并没有使用volatile修饰变量n,但这是一种低效且不安全的方法。结果分析volatile强制变量n线程之前可见,t2设置n=1后,t1立刻退出了循环。扩展测试1.采用Thread.sleep让t1休眠一小段时间。测试程序2采用volatile修饰变量n,即。测试程序1两个线程对同一个变量的可见性问题。线程t1观测到的n=0,一直处于死循环状态。...原创 2022-07-20 16:35:10 · 251 阅读 · 0 评论 -
Java 验证不采用volatile关键字 指令重排对程序的影响demo程序
Java 验证不采用volatile关键字 指令重排对程序的影响demo程序 可以看到,在149,775毫秒后,出现了getObj()返回空问题。原创 2022-07-18 17:00:35 · 234 阅读 · 0 评论 -
arthas openjdk8 instrument library is missing in target VM
错误# java -jar arthas-boot.jar [INFO] arthas-boot version: 3.5.6[INFO] Found existing java process, please choose one and input the serial number of the process, eg : 1. Then hit ENTER.* [1]: 24236 demo-0.0.1-SNAPSHOT.jar[INFO] arthas home: /root[I原创 2022-03-08 11:37:35 · 1689 阅读 · 0 评论 -
alibaba arthas profiler 分析spring boot java web CPU使用情况
测试程序void presscpu(int count){ Random r = new Random(); for(int i = 0;i< count;i++){ Double a = r.nextDouble() / i+1; Double b = r.nextDouble() /i+2; Double c = a /b + a * b; } } @Re原创 2022-03-08 11:11:01 · 541 阅读 · 0 评论 -
JSR-133:JavaTM内存模型与线程规范
http://ifeve.com/wp-content/uploads/2014/03/JSR133%E4%B8%AD%E6%96%87%E7%89%881.pdf转载 2021-08-17 16:06:17 · 145 阅读 · 0 评论 -
修改.jar 故障 没有主清单属性 It has been compressed and nested jar files must be stored without compression
jar -cvfm0 ~/xx-patch.jar META-INF/MANIFEST.MF .1. 没有主清单属性-m 包含指定清单文件中的清单信息2.Unable to open nested entry 'BOOT-INF/lib/brave-instrumentation-http-5.4.3.jar'. It has been compressed and nested jar files must be stored without compression. Pleas...原创 2021-07-16 15:25:24 · 550 阅读 · 0 评论 -
SpringBoot 2.3.4.RELEASE actuator curl动态设置日志等级 生产环境零时打开DEBUG日志 logging level
pom.xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupI原创 2021-03-12 16:45:49 · 726 阅读 · 0 评论 -
CryptoJS C/C++ openssl Java AES_256_ecb 加密解密互通
CryptoJS<script type="text/javascript" src="crypto-js.js"></script><script type="text/javascript"> // 加密 var ciphertext = CryptoJS.AES.encrypt(CryptoJS.enc.Utf8.parse('123456'), CryptoJS.enc.Utf8.parse('123456789012345原创 2021-03-01 16:26:50 · 1637 阅读 · 2 评论 -
Spring Boot 外部化配置 参数 变量 优先级 覆盖配置参数
前言本文介绍SpringBoot常用外部化配置方法,其中优先级数值越高,优先级越大,会覆盖优先级底的配置配置文件方式(优先级3)boostrap.yml内指定spring.cloud.nacos.config.server-addr参数参考如下:spring: application: name: service-a cloud: nacos: config: server-addr: 127.0.0.1:8848 .原创 2020-12-23 14:15:43 · 7764 阅读 · 0 评论 -
Java实现冒泡排序及快速排序
源码package com.example.demo.util;import java.util.Random;import lombok.extern.slf4j.Slf4j;/** * @author yeqiang * @since 9/23/20 4:35 PM */@Slf4jpublic class SortUtil { static int counter = 0; static void fastSort(int[] array, int l,原创 2020-09-24 15:19:07 · 202 阅读 · 0 评论 -
CentOS jvm 查看当前java进程的启动参数
启动一个java$ java -Xmx1G -jar jenkins.war获得进程[yeqiang@localhost ~]$ jps -lv | grep jenk51152 jenkins.war -Xmx1G查看启动参数[yeqiang@localhost ~]$ jcmd 51152 VM.flags51152:-XX:CICompilerCount=3 -XX:InitialHeapSize=526385152 -XX:MaxHeapSize=107374182原创 2020-07-24 13:40:46 · 1701 阅读 · 0 评论 -
openjdk java -XX:MaxRAMFraction docker容器内自动调整内存限制-Xmx
利用openjdk -XX:MaxRAMFraction参数,不同参数值结果如下[yeqiang@localhost testproj]$ docker run -m 1G -it --rm adoptopenjdk/openjdk8 java -XX:MaxRAMFraction=1 -XshowSettings:vm -versionVM settings: Max. Heap Size (Estimated): 989.88M Ergonomics Machine Clas原创 2020-07-22 16:17:25 · 3196 阅读 · 0 评论 -
openjdk java 内存参数
-Xmaxjitcodesize=size Specifies the maximum code cache size (in bytes) for JIT-compiled code. Append the letter k or K to indicate kilobytes, m or M to indicate megabytes, g or G to indicate gigabytes. The default maximum code cac...原创 2020-07-22 13:31:49 · 1432 阅读 · 0 评论 -
Linux Bash脚本打印出JVM进程中CPU消耗最高的线程信息
脚本内容printTop1JvmThread.sh#!/bin/bashtop -Hbp $1 -n 1 | grep PID -A1 | grep -v PID | awk '{print $1}' | xargs -i printf %x {} > /tmp/__tmp_thread_id__ && jstack $1 | grep `cat /tmp/__tmp_thread_id__` -B5测试1. 编写测试程序package com...原创 2020-05-11 16:51:41 · 789 阅读 · 0 评论 -
使用 免费可商用的中文字体 解决CentOS Linux下Java生成图片水印中文乱码问题
安装开源可商用的google-noto字体[root@dev ~]# yum install google-noto-cjk-fontsLoaded plugins: fastestmirrorLoading mirror speeds from cached hostfileepel/x86_64/metalink ...原创 2019-11-29 15:52:45 · 1714 阅读 · 0 评论 -
Fedora31源码编译openjdk-jdk 14-23
openjdk github项目地址https://github.com/unofficial-openjdk/openjdk安装编译器、基础库sudo yum install gcc autoconf libXtst-devel libXt-devel libXrender-devel libXrandr-devel libXi-devel cups-devel alsa-l...原创 2019-11-28 16:58:14 · 592 阅读 · 0 评论 -
logback.xml配置,显示类名、方法名、行号,支持超链接直达到行、内容着色
<?xml version="1.0" encoding="UTF-8"?><configuration scan="true" scanPeriod="60 seconds" debug="false"> <!-- http://logback.qos.ch/manual/layouts.html %p:输出优先级,即DEBU...原创 2019-11-27 11:42:04 · 9089 阅读 · 0 评论 -
jdk 工具 jmap jcmd dump内存,jvisualvm 内存分析,手动触发GC
$ jps4866 Bootstrap5944 Jps5773 Main得到tomcat进程id 4866$ jmap -dump:format=b,file=d.hprof 4866Dumping heap to /usr/local/tomcat/d.hprof ...Heap dump file createddump内存信息jvisualvm 加载 d....原创 2019-07-30 09:23:55 · 3299 阅读 · 0 评论 -
Tomcat关闭日志输出
一般在部署Tomcat后,运行久了,catalina.out文件会越来越大,对系统的稳定造成了一定的影响。可通过修改conf/logging.properties日志配置文件来屏蔽掉这部分的日志信息。那么Tomcat怎么关闭日志输出?下面跟着学习啦小编一起来了解一下吧。Tomcat怎么关闭日志输出1、直接修改catalina.sh文件的输出语句在文件中找到以下内容:[java] view plai...转载 2018-04-15 21:41:53 · 7020 阅读 · 2 评论 -
IP工具库:ip v4地址字符串转长整型ip2long、长整形转ip v4地址字符串long2IP;ip v6地址字符串与大整数互转
package com.example.webapp2.utils;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import javax.servlet.http.HttpServletRequest;import java.math.BigInteger;import java.net.Inet4Address;...原创 2019-08-12 15:33:42 · 562 阅读 · 0 评论 -
apache maven 配置私有仓库nexus settings.xml配置
<?xml version="1.0" encoding="UTF-8"?><!--Licensed to the Apache Software Foundation (ASF) under oneor more contributor license agreements. See the NOTICE filedistributed with this wor...原创 2019-08-20 13:54:46 · 2610 阅读 · 0 评论 -
(十六)SpringBoot之使用 Caching- - EhCache
一、案例 1.1 引入maven依赖<!-- caching --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-cache...转载 2019-07-26 14:58:21 · 263 阅读 · 0 评论 -
MyBatis 一、二级缓存和自定义缓存
MyBatis 一、二级缓存和自定义缓存目录导航1、一级缓存2、二级缓存3、自定义缓存1、一级缓存 MyBatis 默认开启了一级缓存,一级缓存是在SqlSession 层面进行缓存的。即,同一个SqlSession ,多次调用同一个Mapper和同一个方法的同一个参数,只会进行一次数据库查询,然后把数据缓存到缓冲中,以后直接先从缓存中取出数据,不会直接去查数据库。 但是不同的SqlSessi...转载 2018-04-16 19:11:28 · 294 阅读 · 0 评论 -
Spring中报"Could not resolve placeholder"的解决方案
除去properites文件路径错误、拼写错误外,出现"Could not resolve placeholder"很有可能是使用了多个PropertyPlaceholderConfigurer或者多个<context:property-placeholder>的原因。 比如我有一个dao.xml读取dbConnect.properties,还有一个dfs.xml读取dfsMana...转载 2018-04-16 19:08:38 · 1254 阅读 · 0 评论 -
nanoTime vs currentTimeMillis 比较
System.nanoTime与System.currentTimeMillis比较首先:currentTimeMillis返回的是系统当前时间和1970-01-01之前间隔时间的毫秒数,如果系统时间固定则方法返回值也是一定的(这么说是为了强调和nanoTime的区别),精确度是毫秒级别的nanoTime的返回值本身则没有什么意义,因为它基于的时间点是随机的,甚至可能是一个未来的时间,所以返回值可...转载 2018-04-16 15:27:22 · 417 阅读 · 0 评论 -
ThreadLocalTest
package com.hknaruto;/** * Created by yeqiang on 3/27/18. */public class ThreadLocalTest { private static ThreadLocal<String> value = new ThreadLocal<>(); public static Stri...原创 2018-03-27 15:02:34 · 217 阅读 · 0 评论 -
JUnit测试私有方法(protected方法类同)
注意到,我们在之前被测试的方法都是共有的...其实就算是protected修饰的方法我们也可以通过在同一个包下面建测试类来测试的.但是,现 在我们有一个需求,就是要测试私有的方法....按照我们之前的办法,创建被测试类的对象显然已经不能实现了.因为对象不能调用类里面私有的方法...还 有一种解决办法,就是先将这个方法改成public,测试结束以后再改回private .但是,有一点必须记住.绝对不...转载 2018-03-22 10:15:59 · 6771 阅读 · 2 评论 -
框架开发之Java注解的妙用
PS:如果你还不会使用注解,你肯定不好意思对别人说你学过Spring,你学过Mybatis,因为它们用了大量的注解。可见注解在开发领域已经使用的非常广泛了。配图.jpg注解的好处:1.能够读懂别人写的代码,特别是框架相关的代码。2.本来可能需要很多配置文件,需要很多逻辑才能实现的内容,就可以使用一个或者多个注解来替代,这样就使得编程更加简洁,代码更加清晰。3.(重点)刮目相看。(但是怎么样才能让别...转载 2018-03-04 22:03:49 · 296 阅读 · 0 评论 -
什么才是真正的 RESTful 架构
What?Wikipedia: 表征性状态传输(英文:Representational State Transfer,简称REST)是Roy Fielding博士于2000年在他的博士论文中提出来的一种软件架构风格。Roy Fielding是HTTP协议(1.0版和1.1版)的主要设计者,事实上HTTP 1.1规范正是基于REST架构风格的指导原理来设计的。需要注意的是,REST是一种设计风格而不...转载 2018-02-08 10:35:18 · 278 阅读 · 0 评论 -
Java基本类型int与类类型Integer性能差别
package com.hknaruto;import java.util.Random;/** * Created by yeqiang on 4/24/18. */public class IntegerPerformanceTest { public static void main(String[] args) { long start, end; ...原创 2018-04-24 13:53:35 · 1921 阅读 · 1 评论 -
java整形常量相乘溢出问题及解决办法
public void main() { Object i = 1525767992 * 1000; Object l = 1525767992 * 1000l; System.out.println(i.getClass() + ":" + i); System.out.println(l.getClass() + ":" + l)...原创 2018-05-08 16:34:05 · 1945 阅读 · 0 评论 -
Linux java jvm 启动默认内存最大值-Xmx调整为物理内存的80%脚本
java -XX:+HeapDumpOnOutOfMemoryError -XX:+PrintGC -XX:+PrintGCDetails -XX:+PrintHeapAtGC -XX:+PrintGCTimeStamps -XX:-PrintCommandLineFlags -Xmx`free -m | grep Mem\: | awk '{print $2}' | xargs -i expr...原创 2018-12-24 14:11:37 · 6295 阅读 · 0 评论 -
解决SpringBoot HttpServletRequest getInputStream 不能读取出POST过来的参数问题
原代码@SpringBootApplicationpublic class HelloworldApplication { public static void main(String[] args) { SpringApplication.run(HelloworldApplication.class, args); }}添加@EnableWebMvc 注解...原创 2019-07-26 10:33:24 · 3669 阅读 · 0 评论 -
Memory footprint of the JVM
The JVM can be a complex beast. Thankfully, much of that complexity is under the hood, and we as application developers and deployers often don’t have to worry about it too much. With the rise of cont...转载 2019-08-02 16:58:20 · 1164 阅读 · 1 评论 -
java 8 内存分析,工具ps, jstat, jcmd,pmap
查看jvm进程id[yeqiang@localhost ~]$ jps8353 Launcher13301 Jps8581 Main7528 RemoteMavenServer8363 App4301 Main查看操作系统内存占用[yeqiang@localhost ~]$ ps aux | egrep "MEM|8363"USER PID %CPU %...原创 2019-08-02 16:42:48 · 1058 阅读 · 0 评论 -
Google Cloud Run java程序获取客户端真实ip地址工具类
package com.example.helloworld.utils;import javax.servlet.http.HttpServletRequest;/** * Created by yeqiang on 8/2/19. */public class HttpUtils { private static final String[] HEADERS_TO_TR...原创 2019-08-02 16:12:14 · 314 阅读 · 0 评论 -
spring boot 中使用@Autowired注入服务 服务为空没有注入成功
第一次参与spring boot框架的项目。在controller类中使用@Autowired注解注入服务,使用postman请求controller接口时,报控制针异常,打开debug调试发现,注入的服务失败,为null.在网上找了下原因,说是spring boot配置扫描路径时没有扫描到注入服务,查看了下@ComponentScan注解配置的扫描路径,没有问题。而且项目中别人的Contro...转载 2019-07-24 14:45:43 · 1571 阅读 · 0 评论