
java
想要养只布偶的西瑞
这个作者很懒,什么都没留下…
展开
-
紧急情况下, 数据库cpu100%, 需要kill最慢的sql进程
USE information_schema;SELECT * FROM PROCESSLIST WHERE info IS NOT NULL order by time desc结束: killKill pid;紧急情况下, 数据库cpu100%, 需要kill最慢的sql进程原创 2022-03-25 09:47:22 · 920 阅读 · 0 评论 -
httpclient post表单提交+去除ssl认证
import com.csoft.api.constants.PublicConstant;import fastjson.JSONArray;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import javax.net.ssl.HttpsURLConnection;import javax.net.ssl.SSLContext;import javax.net.ssl.TrustManager;import javax...原创 2021-10-19 15:41:40 · 644 阅读 · 0 评论 -
java8解决空指针问题
//优雅解决空指针 HashMap<String, String> map = new HashMap<>(); map.put("1",null); map.put("2","99"); String s1 = map.get("1"); System.out.println(s1); String s = Optional.ofNullable(map.get("1")).orElse原创 2021-09-30 15:44:21 · 271 阅读 · 1 评论 -
注解失效aaaa
没有注解的a方法调用有注解的b方法,b方法的注解会失效可以使用@AutowiredApplicationContext applicationContext;applicationContext.getBean(TwoScheduled.class).test1();使用applicationContext获取到当前类的bean然后调用有注解的方法...原创 2021-09-24 11:56:54 · 90 阅读 · 0 评论 -
获取当前实际的后5天 跨月
/** * @param date string 转日期 * @return */ public static Date transBackDate(String date) { Date parse = new Date(); try { if (date=="" || date.equals("0") || date.equals(null) || date.equals("null")){原创 2021-08-27 11:17:03 · 117 阅读 · 0 评论 -
2021-08-24
配置文件中加入#Prometheus springboot监控配置management: endpoints: web: exposure: include: '*' metrics: export: prometheus: enabled: true tags: application: ${spring.application.name} # 暴露的数据中添加application labelp原创 2021-08-24 11:02:39 · 77 阅读 · 0 评论 -
sql比较两张表,获取与不一样的数据
select * from excel_data a where not exists(select * from base_user b where a.account_number=b.username)原创 2021-07-08 13:58:43 · 6687 阅读 · 0 评论 -
项目启动同时会调用指定方法
/**项目启动就会调用run方法*/@Componentpublic class ReadExcelTesk implements CommandLineRunner {@Autowiredprivate ExcelDataMapper excelDataMapper;@Overridepublic void run(String… args) throws Exception {//start();}public void start() throws InterruptedEx原创 2021-06-28 16:39:59 · 121 阅读 · 0 评论 -
递归解析复杂嵌套jison
/*** @param i 递归json* @param paramInfo* @param stringBuilder*/private static void recursion(int i ,ParamInfo paramInfo,StringBuilder stringBuilder) {if (paramInfo == null){return;}for (int j = 0; j < i; j++) {stringBuilder.appen原创 2021-05-28 16:45:25 · 148 阅读 · 0 评论 -
读取2G的大json文件后存入数据库
package load.service.impl;import java.io.*;import java.util.ArrayList;import java.util.List;import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.TypeReference;import load.domain.JsonBean;import load.mapper.HzHhmdFgwMapper;import load.servi原创 2021-04-27 18:37:08 · 392 阅读 · 0 评论 -
静态方法中调用service接口中的方法
@Componentpublic class JobTrigger { private static Logger logger = LoggerFactory.getLogger(JobTrigger.class); @Autowired private JobInfoMapper jobInfoMapper; public static JobTrigger jobTrigger; @PostConstruct //初始化 public void i原创 2021-03-17 10:04:19 · 424 阅读 · 0 评论 -
mysql 动态连接数据源创建表
1、@Controller@RequestMapping("api/table")@Api(tags = "创建表")public class CreateTableControlelr { //private static final Logger LOGGER = LoggerFactory.getLogger(CreateTableControlelr.class); @Autowired private SysMysqlCreateTableManager sys原创 2021-03-09 14:40:09 · 354 阅读 · 0 评论 -
springboot解决跨域问题
https://www.cnblogs.com/orangebooks/p/12091367.html原创 2021-02-24 12:01:30 · 93 阅读 · 0 评论 -
String parameter is not present 问题记录
前端没有遵循接口规范,接口要求的是直接传参数 id=1,前端传的参数是个对象{id=1}。让前端改参数或者把方法public R<Boolean> delete(@RequestParam Integer id) {改成public R<Boolean> delete(@RequestBody RemoveVo removeVo) {}-------------@Datapublic class RemoveVo { private Integer id;}原创 2021-02-23 17:12:25 · 1708 阅读 · 0 评论 -
kafka学习笔记
为什么学习Kafka最近开始学习Kafka,至于为什么公司要用Kafka,处于懵懂的状态。老大说过公司的200多个应用服务,每个服务每天等访问量都很大,听说其中一个应用会达到百万/天的QPS,而Kafka的优势就是高吞吐,使用Kafka可以很好的满足场景。后面会开发一个监控系统,对应用的访问指标进行监控、告警等。什么是Kafka根据维基百科的定义,消息引擎系统是一组规范。企业利用这组规范在不同系统之间传递语义准确的消息,实现松耦合的异步式数据传递。也就是系统 A 发送消息给消息引擎系统,系统 B 从消原创 2021-02-10 10:13:55 · 237 阅读 · 0 评论 -
一个简单的kafka写入elasticSearch的 demo
listenerpackage com.csoft.kafkademo.kafkademo.kafka.listener;import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.TypeReference;import com.csoft.kafkademo.kafkademo.entity.Kafka1Message;import org.apache.http.HttpHost;import org.apache.kafk原创 2021-02-08 17:04:13 · 399 阅读 · 0 评论 -
kafka template操作kafka
依赖 <dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka-streams</artifactId> </dependency> <dependency> <groupId>org.springframework.kafka<原创 2021-02-08 15:56:20 · 14985 阅读 · 4 评论 -
elasticSearch 修改数据3种java Api
RestHighLevelClient client = new RestHighLevelClient( RestClient.builder( new HttpHost("10.1.10.00", 9500, "http"))); BulkRequest request = new BulkRequest(); request.add(new UpdateRequest("hz_qyhznr_sx原创 2021-01-18 18:55:12 · 526 阅读 · 0 评论 -
HBase 单机部署
HBase 单机1、拉取镜像docker pull harisekhon/hbase:1.32、运行docker run -d -h hbaseTag -p 2181:2181 -p 8080:8080 -p 8085:8085 -p 9090:9090 -p 9095:9095 -p 16000:16000 -p 16010:16010 -p 16201:16201 -p 16301:16301 -p 16020:16020 -p 16030:16303 --name hbase1.3 hari原创 2021-01-06 12:39:00 · 511 阅读 · 0 评论 -
面试题4
http请求特别慢怎么回事答:vmstat、nmon、top检查网络:首先排查网络,ping服务器延迟是否过大检查服务器内存:看内存是否不够了检查cpu负载:命令查看cpu检查I/O:排除系统自身的性能问题抓取进程堆栈信息:jStack抓取堆栈信息Redis用过吗?一般用在什么场景下的?然后如何提高redis命中率答:排行榜、热点数据、主要是需要频繁调取的数据,为了减轻数据库压力计数器、分布式锁,像我之前做过的购物车,就是用redis做的sleep和wait方法有什么区别?答:s原创 2020-07-29 23:53:40 · 203 阅读 · 0 评论 -
面试整理3
/** 线程池的核心参数有哪些,执行流程是什么?、* corePoolSize 核心线程数* MaxPoolSize 最大线程数* threadFactory 线程工厂* KeepAliveTime 线程存活时间* workQueue 队列* policy 拒绝策略** 当线程池接收到任务,会新建线程,知道当前线程数等于核心线程数,这时候,新来的任务都会放在队列中等待处理* 队列满了后,会新建线程直到当前线程数等于最大线程数,这时如果在来请求,就会执行拒绝策略* 如果线程空闲下来,并原创 2020-07-28 21:07:06 · 138 阅读 · 0 评论 -
面试题整理
string和Stringbuffer、StringBulider的区别String的底层是一个被final修饰的char数组,可以理解为一个常量,线程安全StringBulider和StringBuffer都继承自abstartStringBulider,底层是没有被final修饰的char数组,性能方面,单线程下少量数据使用String,大量数据使用Stringbulider。因为Stringbuffer的方法都被synchronized修饰,线程安全性能较差,多线程下大量数据使用Stringbu原创 2020-07-07 21:11:26 · 217 阅读 · 0 评论 -
面试整理2
1、Stringbulider和Stringbuffer的区别?都继承子AbsturtStringbulider,但是Stringbulider的方法没有被syn修饰,StringBuffer的方法被syn修饰了所以前者不是线程安全的,后者是线程安全的,在性能方面,前者单线程情况下性能更好2、什么是线程安全当多个线程访问同一个对象的时候,不需要进行额外的同步或者管理调度,并且调用这个对象的结果是正确的3、如何保证线程安全4、什么是锁?死锁两个代码块互相需要彼此的锁5、syn的实现原理是什么?原创 2020-07-07 21:10:59 · 144 阅读 · 1 评论 -
java的内存区域(读书笔记)
困了,明天写原创 2020-06-02 22:55:30 · 101 阅读 · 0 评论 -
垃圾回收算法 (读书笔记)
垃圾回收算法标记-清除算法最基础的垃圾回收算法‘标记-清除算法’,如同名字一样,算法分为‘标记’和‘清除’两个阶段;首先标记出所有需要回收的对象,在标记完成后统一回收所有被标记的对象,缺点1:效率不高2:标记清除后会产生大量不连续的内存碎片,导致之后在程序运行过程中需要分配较大的对象时,无法找到连续的足够内存不得不提前触发垃圾回收动作。复制算法它将可用内存的容量划分为大小相等的两块,每次只使用其中的一块。当这一块内存用完了,就将还存活的对象复制到另一块上边,然后在把使用过的内存空间一次清原创 2020-06-02 22:46:00 · 148 阅读 · 0 评论 -
如何判断对象已死?(读书笔记)
1、如何判断对象已死1、引用记数法给对象添加一个引用计数器,每当有一个对象引用时,计数器值就加一;当引用失效时,计数器指就减一;任何时刻计数器为零的对象就是不可能在被使用的。2、可达性分析这个算法的基本思路就是通过一系列的称为GCRoot的对象作为起始点,从这些节点开始向下搜索,搜索所走过的路经称为引用链,(reference Chain)当一个对象到GCRoot没有任何引用链相连接时,则证明这个对象是不可使用的。在java语言中,可以作为GCRoot的对象包含以下几种:虚拟机栈中引用的对象原创 2020-06-02 22:14:03 · 198 阅读 · 0 评论 -
RocketMQ 安装、部署文档 -Linux版
最近想自学RocketMq,官方文档也不友好,只能自己想办法,在网上找了一堆教程,一个完整的都没有。找了一堆文档,整理下。1、JDK的安装1、在/usr/local目录下创建jdk文件夹mkdir jdk2、上传jdk包rz jdk.自己的版本.tar.gz #如果没有rz命令 yum install lrzsz3、查看当前Linux系统是否已经安装jdkrpm -qa ...原创 2020-04-27 22:45:16 · 479 阅读 · 0 评论 -
MYSQL面试整理
SQL优化1、使用合适的存储引擎a)当做大小查询操作时,使用mylsam 因为这个引擎对修改很不友好,只做一个update都把这整个字段锁住,而之后的进程就算时读的操作也要等update结束后执行当做写的操作时使用innodb引擎,支持行锁,对写的操作执行非常快并且支持很多高级操作,如事务2、当只查询一条数据时,使用limit 1 这样就不会在查询出结果后继续向下查询有没有符合条件的结...原创 2020-03-01 12:22:12 · 186 阅读 · 0 评论 -
JVM面试整理
JVMJVM模型是包含 堆、栈、方法区、虚拟机栈、程序计数器其中线程共享的是堆和方法区,其余都是线程私有的方法区主要存储一些变量一类的堆主要存储一些对象,对象在死亡后被回收,判定对象是否死亡的方法有一种叫做可达性分析的方法可达性分析:就是说所有对象都是属于GCRoot树下的子节点,从GcRoot到达对象是有一条引用链的,如果这个引用链无法到达这个对象,就证明这个对象可以被回收发生GC的...原创 2020-03-01 12:21:29 · 171 阅读 · 0 评论 -
jvm垃圾回收器
一、串行:垃圾回收器(sgc)1、 串行垃圾回收在进行垃圾回收时,他会持有所有应用程序的线程,冻结所有应用程序线程,使 ,用单个垃圾回收线程来进行垃圾回收串行垃圾回收器时为单线程环境而设计的,如果你的程序不需要多线程,启动串行垃圾回收2、串行收集器时最古老的,最稳定以及效率最高的收集器,可能会产生较长的停顿,只使用一个线程去回收。新生代,老年代使用串行回收;新生代复制算法、老年代标记-压缩;...原创 2020-02-28 12:47:05 · 175 阅读 · 0 评论 -
JVM补充1
GC 经常发生的区域是堆区,堆区还可以细分为新生代、老年代,新生代还分为一个 Eden 区和两个 Survivor 区。对象优先在 Eden 中分配,当 Eden 中没有足够空间时,虚拟机将发生一次 Minor GC,因为 Java 大多数对象都是朝生夕灭,所以 Minor GC 非常频繁,而且速度也很快;Full GC,发生在老年代的 GC,当老年代没有足够的空间时即发生 Full GC...原创 2020-02-28 12:42:52 · 98 阅读 · 0 评论 -
JVM补充
Java运行时数据区域?1. 方法区,堆,本地方法栈,虚拟机栈,程序计数器1. 线程私有的:程序计数器、虚拟机栈、本地方法栈2. 线程共享的:堆、方法区、直接内存程序计数器1. 程序计数器时一块较小的内存空间,可以看作是当前线程锁执行的字节码的行号指示器。字节码解释器工作时通过改变这个计数器的值来选区下一条需要执行的字节码指令,分支,循环,跳转,异常处理,线程恢复等功能都需要依赖这个计...原创 2020-02-28 12:40:38 · 109 阅读 · 0 评论 -
简单认识JVM
1、什么是jvm?Jvm是一种计算机设备的规范,包括堆、方法区、本地方法栈、虚拟机栈、程序计数器2、Jre和jdk和jvm的区别?Jre是运行环境,jdk是开发工具,jvm是一个可以让java语言跨平台的虚构的操作系统3、Jvm原理1、 JVMshijava的核心和基础,在编译器和os平台之间的虚拟处理器。他是一种利用软件方法实现的抽象的计算机基于下层的操作系统和硬件平台,可以在上面执行...原创 2020-02-28 12:39:28 · 88 阅读 · 0 评论 -
简单认识Redis
1、Redis是什么Redis是一个非关系型数据库,可以在某些场合对关系型数据库进行一个很好的补充2、Redis的存储结构有哪些?1、String:这个其实没啥好说的,最常规的set/get操作,value可以是String也可以是数字。一般做一些复杂的计数功能的缓存2、List::List的数据结构底层不是数组而是链表,可以做简单的消息队列的功能。另外还有一个就是,可以利用lrange命...原创 2020-02-28 12:30:00 · 116 阅读 · 0 评论 -
ERR invalid expire time in SETEX
Caused by: redis.clients.jedis.exceptions.JedisDataException: ERR invalid expire time in SETEX解决方法:错误语句:getStringRedisTemplate().opsForValue().set(sessionId,“z值”, -1L, TimeUnit.SECONDS);其中到期时间不能小...转载 2020-01-03 11:41:12 · 5807 阅读 · 0 评论 -
java 8 操作list
java 8 操作listhttps://blog.youkuaiyun.com/gsls200808/article/details/86501905转载 2019-12-09 23:32:35 · 110 阅读 · 0 评论 -
购物车的一些思路
问题一:你们的购物车是怎么做的(用户未登录的时候购物车数据存放到哪里了,登录时又存放到哪里了)Redis里session不能用,session是有生命周期的,浏览器一关就没有了cookie容量太小了(4kb),没办法存放太多的数据,解决方案,添加多了提示购物车已满mysql和redis性能比较差往Redis里放是key-value形式key可以是sessionId或者UUID,存放到浏览器的c...原创 2019-01-13 11:59:54 · 264 阅读 · 1 评论 -
StringBulider
public static void main(String[] args) { //StringBulider和string本质一样,都是数组 //只不过前者可以改变,后者不可以改变 StringBuilder sb = new StringBuilder("你好"); System.out.println(sb); ...原创 2018-09-16 22:17:56 · 244 阅读 · 0 评论 -
小白的java基础--------数组、集合
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I...原创 2018-09-11 22:18:17 · 131 阅读 · 0 评论