
java
Wesson96
这个作者很懒,什么都没留下…
展开
-
macbook中springboot的jmeter压测示例
springboot项目maven打包、jemeter压测、jvisualvm监控原创 2022-11-17 23:53:44 · 1705 阅读 · 0 评论 -
Gson的@JsonAdater注解的几种方式
Gson;JsonAdapter注解;TypeAdapter;TypeAdapterFactory;原创 2022-06-11 14:10:56 · 1912 阅读 · 1 评论 -
Java通过反射的方式进行热部署Demo
maven;推荐系统后排序的规则热部署;jar;原创 2022-06-06 11:19:26 · 910 阅读 · 0 评论 -
HashMap的putVal函数注释
简单说一下HashMap的putVal函数,对于put函数,最终也会调用putVal函数final V putVal(int hash, K key, V value, boolean onlyIfAbsent, boolean evict) { Node<K,V>[] tab; Node<K,V> p; int n, i; // 1.若table为null或长度为0,首先会通过resize进行初始化; if ((tab = t原创 2022-05-31 00:57:10 · 912 阅读 · 0 评论 -
HW(OD)岗面试题
把题目中的稀世珍品 换成 股票的概念就很好理解了,你若知道明天会涨,哪今天买入,明天卖出。明天的时候,你若知道后天会涨,则明天也买入,后台卖出…依次类推,必然获得最大收益/** * HW二面 面试官 出的题目 */public class MainTest { // 假设你是一名古董商人,近期市场上出现了一件稀世珍品, /** * * 一只股票,你能预知它今后N天每一天的市场价格(给定一个数组,下标为第i天,值为第i天价格), * 你希望通过买卖来赚取利原创 2022-05-29 11:53:27 · 1021 阅读 · 0 评论 -
java字节码分析(jclasslib)-synchronized原理
通过jclasslib分析java字节码-synchronized代码块字节码杂项异常表行号表操作数栈下面将对下面代码进行字节码分析package com.ydfind.test;public class Monitor { private void test() { synchronized (this) { int a = 1; } }}字节码字节码及注释如下: 0 aload_0 // 将this压原创 2022-05-19 00:19:23 · 1073 阅读 · 0 评论 -
spring boot项目从零开始-(3)集成Swagger
spring boot项目从零开始-集成Swagger原创 2020-01-15 16:14:46 · 255 阅读 · 0 评论 -
spring boot项目从零开始-(2)支持不同环境配置
spring boot项目从零开始-集成环境变量简述环境最终工程目录步骤pom.xmlapplication.ymlapplication-dev.yml等测试ConfigController.java结果简述环境Idea最终工程目录步骤pom.xml <profiles> <profile> <id>ju...原创 2020-01-15 18:58:30 · 283 阅读 · 0 评论 -
spring boot项目从零开始-(1)集成log4j2
spring boot项目从零开始-集成log4j2简述环境最终工程目录简述环境Idea最终工程目录原创 2020-01-15 16:16:57 · 306 阅读 · 0 评论 -
spring boot项目从零开始-(8)集成jedis访问redis集群
spring boot项目从零开始-集成jedis访问redis集群简述前提步骤文件pom.xmlapplication.ymlRedisConfigMainApp验证其它redis访问示例简述前提已安装redis 6.2.5,安装参考:https://editor.youkuaiyun.com/md/?articleId=119191741步骤文件pom.xml<parent> <artifactId>spring-boot-dependencies</ar原创 2021-07-29 18:05:45 · 565 阅读 · 0 评论 -
JSON反序列化字符串为多重泛型
TypeToken typeToken = new TypeToken<XxxResponse<PageResult<Xxx>>>() {};new Gson().fromJson(json, typeToken);原创 2022-01-29 16:35:22 · 405 阅读 · 0 评论 -
RestTemplate.exchange返回类型ParameterizedTypeReference<T>中T为多重泛型
RestTemplate.exchange返回类型ParameterizedTypeReference中T为复杂类型ParameterizedType pageType = new ParameterizedTypeImpl(new Type[](Xxx.class}, PageResult.class.getDeclaringClass(), PageResult.class);ParameterizedType responseType = new ParameterizedTypeImpl(new原创 2022-01-29 16:31:53 · 3566 阅读 · 0 评论 -
Java常用注解收集
Java常用注解收集controlleridea的插件lombokSwagger文档controller@RestConstroller// MediaType在spring-web的jar下,proceduces可以用下面几个中一个 @RequestMapping(value = "/api/v1/xxx", produces = MediaType....原创 2019-12-20 11:07:17 · 295 阅读 · 1 评论 -
动态代理JDK和CGLib剖析
动态代理的详细介绍原创 2021-12-31 11:14:07 · 150 阅读 · 0 评论 -
SPI技术的简单例子
3个项目接口项目spi-providerProvider.javapackage org.example.spi;public interface Provider { void find();}实现类项目spi-clientpom.xml <dependencies> <dependency> <groupId>org.example</groupId>原创 2021-11-02 16:45:17 · 442 阅读 · 0 评论 -
Unable to open socket file: target process not responding or HotSpot VM not loaded
jinfo -flag SurvivorRatio 18651会报18651:Unable to open socket file: target process not responding or HotSpot VM not loaded或者18651:well-known file is not secure改下下面调用sudo -u [user] /usr/local/java/bin/jinfo -flag SurvivorRatio 18651则结果为-XX:SurvivorRat原创 2021-10-27 16:07:37 · 379 阅读 · 0 评论 -
jstat显示s0和s1的空间很小,eden很大
配置了-Xmn256m, jstat -gc 18651结果如下:S0CS1C…EC…15361536259072新生代加起来是256m没错,但survivor区比较少jinfo -flag SurvivorRatio 18651显示值是8!!!原因:jinfo -flag UseAdaptiveSizePolicy 18651为-XX:+UseAdaptiveSizePolicy, 即默认开启,这时候,S0\S1\Eden的比值会被自动优化...原创 2021-10-27 16:06:28 · 562 阅读 · 0 评论 -
jstat命令pid not found
执行命令/usr/local/jdk1.8.0_121/bin/jstat 52684 250 20报错52684 not found但ps -ef | grep java是可以看到进程的原因:java进程默认把jvm perfdata写入/tmp/hsperfdata_{user}/xxx.pid中,但我的程序修改了pid的目录(原来/tmp改到别的地方)解决:将程序的pid复制一份到/tmp/hsperfdata_{user}/目录下,再执行便可以了。也可以改回/tmp...原创 2021-10-27 14:14:05 · 2961 阅读 · 0 评论 -
new HashMap<String, String>(){{}}理解
代码示例:package org.example;import java.util.HashMap;import java.util.Map;public class MyJavaTest { public static void main(String[] args) { Map<String, String> map = new HashMap<String, String>(){{ put("string", "stri原创 2021-09-29 17:53:29 · 2296 阅读 · 0 评论 -
算法篇-蓄水池算法
蓄水池算法:解决随机采样问题,每个元素被采样的概率相等leetcode题目:https://leetcode-cn.com/problems/linked-list-random-node/submissions/代码:class Solution { // 蓄水池算法,随机从n个元素里取k个 // 1.前k个元素入数组int[k] // 2.后面第i个(i >= k), k/(i + 1)概率替换 int[k]中一个-----------i从0开始 // 3.遍原创 2021-09-16 11:28:05 · 853 阅读 · 0 评论 -
idea更新git报错master has no tracked branch
解决:git pull origin master --allow-unrelated-historiesgit branch --track master origin/master或git branch --set-upstream-to master origin/master原创 2021-09-14 12:25:28 · 9426 阅读 · 4 评论 -
报错Please initialize the log4j system properly.
pom.xml<dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.7.7</version> </dependency> <dependency>原创 2021-09-14 10:55:09 · 980 阅读 · 0 评论 -
java实现html的文本提取-Demo
java实现html的文本提取-Demopackage com.ydfind.util;import com.alibaba.druid.util.StringUtils;import org.jsoup.Jsoup;import org.jsoup.helper.StringUtil;import org.jsoup.nodes.Element;import org.jsoup.nodes.Node;import org.jsoup.nodes.TextNode;import org.j原创 2021-09-10 13:51:29 · 1137 阅读 · 0 评论 -
Springboot集成univocity-parsers下载csv文件
说明springboot下载csv参考:https://blog.youkuaiyun.com/sndayYU/article/details/119410446下面工程以上面的为基础代码pom.xml和entity、mapper定义<!-- csv工具 --> <dependency> <groupId>com.univocity</groupId> <artifactId>univo原创 2021-09-02 16:26:01 · 529 阅读 · 0 评论 -
springboot的事务工具类
package com.ydfind.util.service;import org.springframework.stereotype.Component;import org.springframework.transaction.annotation.Transactional;import java.util.function.Supplier;@Componentpublic class TransactionService { @Transactional(rollba原创 2021-08-30 15:34:36 · 701 阅读 · 0 评论 -
线上问题-kafka生产者发送消息总是失败
问题解决过程线上一个界面发现老是没有数据,排查下来时生产者没有成功发送消息所致,报错如下:org.springframework.kafka.core.KafkaProducerException: Failed to send; nested exception is org.apache.kafka.common.errors.TimeoutException: Failed to update metadata after 0 ms. 我们发现配置里有一个很奇怪的参数 config.p原创 2021-08-26 18:23:35 · 12018 阅读 · 0 评论 -
【线上】记一次kafka排查过程
问题上线后发现,经常有个页面显示的信息有缺失,研究代码发现只有收不到kafka消息时,才会这样排查消费端等待30s,原则上时间上是比较充足的,后面确认kafka的服务器确实没有收到相关消息,这下子直接把问题指向了生产者了生产者加上回调,发现发送报错了:org.apache.kafka.common.errors.TimeoutException: Failed to update meta after 0ms分析线上生产者参数如下:configs.put("max.block.ms", 0);原创 2021-08-23 17:58:52 · 292 阅读 · 0 评论 -
KafkaTemplate生产者回调
例子如下: @Autowired KafkaTemplate<String, String> kafkaTemplate; public void testKafkaTemplate () { ListenableFuture<SendResult<String, String>> future = kafkaTemplate.send("topic", "{\"key\": \"value\"}"); Complet原创 2021-08-23 16:01:18 · 3373 阅读 · 4 评论 -
KafkaConsumer实现精确的latest(结尾)开始消费
需求调用某个接口,返回结果包含traceId,然后跟进该traceId去kafka查找debug日志。分析因为拿到traceId的时候,对方其实已经把debug信息发送到kafka了,所以我再在拿到traceId,再去kafka查找就要设置auto.offset.reset=earliest, 这就会导致我多查询很多的无效数据。假如我在调用接口前,先订阅该topic,使用默认auto_offset_reset为latest,在拿到traceId再poll(),结果怎么样呢?不行,因为在poll时发现原创 2021-08-23 14:47:13 · 4556 阅读 · 0 评论 -
sql server的驱动sendStringParameter默认值导致mybatis foreach查询很慢-线上问题详细分析
sql server的驱动sendStringParameter默认值导致mybatis foreach查询很慢-线上问题详细分析问题说明源码说明sendStringParametersAsUnicode参数默认值源码sendStringParametersAsUnicode怎么起作用的问题重新数据准备代码执行问题说明出问题的sql,大概这样:@Select("<script>select id, ..., from table_name where id in " +原创 2021-08-17 15:50:08 · 1341 阅读 · 0 评论 -
springboot+redis集群实现分布式锁
springboot+redis集群实现分布式锁前提代码测试前提springboot+jedis访问redis集群,参考:https://blog.youkuaiyun.com/sndayYU/article/details/119217214代码package org.example;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.data.redis.core.Redis原创 2021-08-16 19:33:01 · 306 阅读 · 0 评论 -
java中for和while的字节码实现
for循环------自动带StackMapTablefor (int i = 0; i < 100; i++) { String a = "a";}对于字节码// 把0放入i,再加载到栈顶 0 iconst_0 1 istore_1 2 iload_1 3 bipush 100 // 栈2 < 100 --> 跳到17 5 if_icmpge 17 (+12) 8 ldc #2 <a>10 astore_2// i++11 iinc 1 by原创 2021-08-15 23:21:40 · 320 阅读 · 0 评论 -
JVM逃逸分析之栈上内存分配-例子试验
JVM逃逸分析之栈上内存分配说明使用代码试验1 jstat -gc分析试验2 jmap -histo分析试验3 默认参数说明1.例子在jdk1.8下示例栈上分配内存的例子;2.切记一定要run,不能在debug模式下运行!!!使用代码package org.example;public class StackAllocationTest { public static void main(String[] args) throws InterruptedException {原创 2021-08-15 12:46:27 · 208 阅读 · 0 评论 -
运行jar报错:Invalid or corrupt jarfile
原因:jar文件错误具体过程:将jar从一台服务器,复制到另外一台服务器;因为目标服务器磁盘满了导致传输的jar不完整,清理一些磁盘空间,再上传jar就可以了原创 2021-07-09 15:57:40 · 4767 阅读 · 0 评论 -
springboot接入smart-doc的问题
public interface MyConstants {String UID = “auth-uid”;}public Response controller1(@RequestHeader(value = MyConstants.UID) String userId) {…}最终生成的文档:HeaderTypeMyConstants.UID为什么不能把接口里面的值识别出来呢????...原创 2021-05-18 14:36:43 · 435 阅读 · 2 评论 -
java中lambda表达式和直接生成的效率比较
具体看leetcode中一道题:https://leetcode-cn.com/problems/permutations/submissions/生成不重复数组的所有排列,代码如下:class Solution { public List<List<Integer>> permute(int[] nums) { int[] arr = new int[nums.length]; boolean[] flags = new boolean原创 2021-05-08 11:35:52 · 368 阅读 · 0 评论 -
leetcode-题解-盛最多水的容器(数学 证明 双指针法)
题目:https://leetcode-cn.com/problems/container-with-most-water/给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/container-with原创 2021-04-30 10:24:53 · 275 阅读 · 0 评论 -
flink连接kafka函数getAllPartitionsForTopics报错NullPointerException
具体报错如下java.lang.NullPointerException at org.apache.flink.streaming.connectors.kafka.internal.KafkaPartitionDiscoverer.getAllPartitionsForTopics(KafkaPartitionDiscoverer.java:77) at org.apache.flink.streaming.connectors.kafka.internals.AbstractPartitionD原创 2021-04-29 16:44:30 · 985 阅读 · 0 评论 -
flink在本地idea调试出现webUI
flink在本地idea调试出现webUI添加maven依赖:<dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-runtime-web_2.11<artifactId> <version>1.8.0<version></dependency>关键代码:import org.apache.flink.configu原创 2021-04-21 10:08:52 · 672 阅读 · 0 评论 -
flink项目写入redis时报错RedisCommandInterruptedException: Command interrupted
flink项目写入redis时报错RedisCommandInterruptedException: Command interrupted具体报错如下:原创 2021-04-20 15:46:03 · 5946 阅读 · 0 评论