
java
文章平均质量分 69
林与夕
这个作者很懒,什么都没留下…
展开
-
2020-12-28
Jmeter压力测试系列(四) - 模拟对Openfire服务器 https://www.meiwen.com.cn/subject/owzmzxtx.htmlJmeter压力测试系列(四) - 模拟对Openfire服务器进行消息轰炸https://www.jianshu.com/p/3a96afdbd7af原创 2020-12-28 10:36:43 · 235 阅读 · 0 评论 -
centos7搭建单机RocketMQ-4.3.2环境,console
单机RocketMQ-4.3.2rocketmq-all-4.3.2-bin-release下载地址:http://rocketmq.apache.org/dowloading/releases/参考资料:https://www.cnblogs.com/YCcc/p/10863004.html安装在192.168.1.133上配置RocketMQ环境变量vi /etc/profileexport ROCKETMQ_HOME=/usr/local/bigdata/rocketmq/原创 2020-10-29 14:20:58 · 546 阅读 · 0 评论 -
Docker
目录Docker安装设置ustc镜像Docker启动和停止命令镜像相关命令查看&创建并交互式容器创建并启动守护式容器停止&拷贝&目录挂载&ip&删除MySql容器部署Tomcat容器部署Nginx容器部署Redis容器部署Docker Compose迁移&备份使用Dockerfile创建镜像Docker安装yum包更新到最新yum update安装需要的软件包 yum-util提供yum-原创 2020-10-22 21:25:46 · 562 阅读 · 0 评论 -
idea新建java文件时报错:Unable to parse template “Class“ Error message: Index 0 out of bounds for length 0
这是我的template原创 2020-10-13 11:06:22 · 1260 阅读 · 5 评论 -
Java获取指定包名下的所有类的全类名的解决方案
package com.linln.component.msg.redis.util;import cn.hutool.core.collection.CollUtil;import cn.hutool.json.JSONArray;import cn.hutool.json.JSONObject;import cn.hutool.json.JSONUtil;import org.springframework.beans.factory.annotation.Autowired;impor.原创 2020-09-21 09:11:46 · 1791 阅读 · 0 评论 -
spring自定义ReaderEventListener
作用:监听spring读取配置文件spring提供了EmptyReaderEventListener默认实现,但是重写方法中并没有任何业务代码public class MyEmptyReaderEventListener implements ReaderEventListener { @Override public void defaultsRegistered(DefaultsDefinition defaultsDefinition) { System.o原创 2020-09-14 12:28:28 · 645 阅读 · 0 评论 -
spring读取配置文件时增强
package spring;import cn.hutool.core.util.ArrayUtil;import org.springframework.beans.BeansException;import org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader;import org.springframework.beans.factory.xml.XmlBeanDefinitionRead...原创 2020-09-14 11:09:04 · 240 阅读 · 0 评论 -
spring设置profile
三个配置文件 application.xml applicaiton-dev.xml applicaiton-pro.xmlapplication.xml<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"原创 2020-09-14 10:54:08 · 214 阅读 · 0 评论 -
判断对象是否可以被回收的算法
引用计数算法Reference Counting:给对象添加一个引用计数器,每当被引用一次的时候计数器值+1,当引用失效时计数器值-1,任何时刻计数器为0的对象就是不可能再被使用的。存在问题:解决不了对象之间相互循环引用的问题public class ReferenceCountingGC {public Object instance;public static void main(String[] args) throws InterruptedException {...原创 2020-09-08 09:41:54 · 254 阅读 · 0 评论 -
jvm运行时数据区
参考资料:https://www.cnblogs.com/newAndHui/p/11168791.htmlhttps://www.iteye.com/blog/wangwengcn-1622195程序计数器Program Counter Register:一块较小的内存空间,可以看做是当前线程所执行的字节码的行号指示器线程私有。字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支循环跳转异常处理线程回复等基础功能都依赖计数器来完成。由于jvm的多线程是通过线程轮流切.原创 2020-09-08 09:40:51 · 199 阅读 · 0 评论 -
JVM双亲委派机制
public Class<?> loadClass(String name) throws ClassNotFoundException {return loadClass(name, false);}protected Class<?> loadClass(String name, boolean resolve)throws ClassNotFoundException{synchronized (getClassLoadingLock(name)) {...原创 2020-09-08 09:39:30 · 122 阅读 · 0 评论 -
JVM的Client和Server模式
C:\Users\xxx>java -versionjava version "1.8.0_231"Java(TM) SE Runtime Environment (build 1.8.0_231-b11)Java HotSpot(TM) 64-Bit Server VM (build 25.231-b11, mixed mode)-Server模式启动时,速度较慢,但是一旦运行起来后,性能将会有很大的提升...原创 2020-09-08 09:38:51 · 280 阅读 · 0 评论 -
JAVA类加载机制,1.9之前
全盘负责:当一个类加载器加载某个Class时,该Class所依赖和引用的其它Class也将由该类加载器负责载入,除非显式的使用另外一个类加载器来载入。双亲委派:当一个类加载器收到了类加载请求,会先看看自己的缓存中是否已经加载了该类,如果加载了就直接返回,否则它会把这个请求委派给父类加载器parent去完成,依次递归,因此所有的加载请求最终都被传送到顶层的启动类加载器中。只有在父类加载器无法加载该类时子类才尝试从自己类的路径中加载该类。(注意:类加载器中的父子关系并不是类继承上的父子关系,而是类加载器实例原创 2020-09-08 09:38:09 · 162 阅读 · 0 评论 -
JAVA类加载器
类加载器:“通过一个类的全限定名来获取描述此类的二进制字节流”这个动作放到java虚拟机外部去实现,以便让应用程序自己决定如何去获取所需要的类。实现这个动作的代码模块成为“类加载器”启动类加载器:负责加载lib下的类库,或被Xbootclasspath参数所制定的路径中的。类加载前,创建由c++实现的引导类加载器实例,所有启动类加载器无法被java程序直接引用。System.out.println(String.class.getClassLoader());会返回null 扩展类加载器:负责加...原创 2020-09-08 09:37:34 · 125 阅读 · 0 评论 -
JAVA类加载过程
参考资料:https://www.jianshu.com/p/8cab58ac37e3将java文件编译成.class二进制字节码文件,类加载指的是将class文件读入内存,并为之创建一个java.lang.Class对象,即程序中使用任何类时,系统都会为之建立一个java.lang.Class对象,系统中所有的类都是java.lang.Class的实例其中类加载过程包含了五个阶段:加载Loading:从磁盘上找到字节码文件加载到内存中,在内存中实例化一个java.lang.Class类的对象存原创 2020-09-08 09:36:42 · 273 阅读 · 0 评论 -
jvisualvm插件无法下载问题
原创 2020-08-17 22:33:42 · 625 阅读 · 0 评论 -
马老师的tcp/ip直播课知识记录
OSI七层模型:应用层:准备某种协议的数据,在发送前,通过内核完成和别人的连接表示层会话层传输控制层网络层数据链路层物理层TCP/IP协议:应用层:准备某种协议的数据,在发送前,通过内核完成和别人的连接传输控制层:TCP(面向连接的、可靠的的传输协议)、UDP网络层:数据包怎么走,,找到路由吓一跳,点:ip、route ipv4(点分字节) ipaddr: netmask子网掩码...原创 2020-08-11 22:17:35 · 154 阅读 · 0 评论 -
数据一致性
我们公司有2套系统,一套系统使用mongodb,一套系统使用mysql,如何保证他们的数据一致性,比如两个库里都有user表,现在要修改user的基本资料原创 2020-08-11 18:07:42 · 150 阅读 · 1 评论 -
java aqs中什么情况下会调用cancelAcquire方法
//阻塞当前线程,等待被唤醒,final boolean acquireQueued(final Node node, int arg) {boolean failed = true;//true代表成功获取锁try {boolean interrupted = false; //线程在等待过程中是否被中断for (;;) {final Node p = node.predecessor();//为什么在执行...原创 2020-08-09 22:00:37 · 2592 阅读 · 15 评论 -
一层一层实现高并发扣库存的问题
package jedis;import redis.clients.jedis.Jedis;import redis.clients.jedis.params.SetParams;import java.security.Key;import java.util.UUID;/** * @author mawt * @description * @date 2020/8/7 */public class TestJedis { private static Jedis .原创 2020-08-07 18:11:30 · 297 阅读 · 0 评论 -
防止表单重复提交的4种方法
转载:https://www.cnblogs.com/huanghuizhou/p/9153837.html原创 2020-08-07 14:33:49 · 149 阅读 · 0 评论 -
redissionClient报错问题
08-04 17:38 ERROR - o.r.client.handler.CommandDecoder Unable to decode data. channel: [id: 0xf7e21491, L:/192.168.1.145:65196 - R:192.168.1.99/192.168.1.99:6379], reply: ReplayingDecoderByteBuf(ridx=654, widx=654), command: (LINDEX), params: [task-categ.原创 2020-08-04 17:39:54 · 10781 阅读 · 0 评论 -
java编译和反编译
JAVA编译:java文件转class文件JAVA反编译:将class字节码文件转成java文件JAVA常用的反编译工具:javap:jdk自带的一个工具,可以对代码反编译,也可以查看java编译器生成的字节码jad:http://www.javadecompilers.com/jad下载地址https://blog.youkuaiyun.com/xuwb123xuwb/article/details/80528511使用地址javac SwitchMain.javajad -sjava S原创 2020-08-01 08:28:42 · 169 阅读 · 0 评论 -
ThreadLocal:线程内通信
参考资料:https://www.cnblogs.com/micrari/p/6790229.html参考资料:https://blog.youkuaiyun.com/anlian523/article/details/105523826它不是用来解决多线程环境下的共享变量问题,而是用来提供线程内部的共享变量,在多线程环境下,可以保证各个线程之间的变量互相隔离、相互独立。ThreadLocal是Java里一种特殊的变量。每个线程都有一个ThreadLocal就是每个线程都拥有了自己独立的一个变量,竞争条件被原创 2020-07-31 16:32:42 · 559 阅读 · 0 评论 -
上下文切换
即使是单核处理器也能支持多线程执行代码,CPU通过分配给每个线程CPU时间片来实现这个机制。时间片是CPU分配给各线程的时间,因为时间非常短,所以CPU通过不停的切换线程执行,让我们感觉多个线程是同时执行的,时间片一般都是几十ms。CPU通过时间片分配算法来循环执行任务,当前任务执行一个时间片后会切换到下一个任务。但是,在切换前会保存上一个任务的状态,以便下回切换到这个任务时,可以再加载这个任务的状态。所有任务从保存到再加载的过程就是一次上下文切换。上下文切换回影响多线程执行的效率。...原创 2020-07-31 16:31:24 · 167 阅读 · 0 评论 -
初识sun.msic.Unsafe类:CAS操作的核心类
java不能直接访问操作系统底层,而是通过native本地方法来访问。Unsafe类提供了硬件级别的原子操作juc并发包,即java.util.concurrent包,是JDK的核心工具包,是JDK1.5之后,由 Doug Lea实现并引入。整个java.util.concurrent包,按照功能可以大致划分如下:juc-locks 锁框架juc-atomic 原子类框架juc-sync 同步器框架juc-collections 集合框架juc-executors 执行器框架p原创 2020-07-31 16:30:07 · 249 阅读 · 0 评论 -
CAS存在的问题和解决方案
CAS虽然很高效的解决了原子操作问题,但是CAS仍然存在三大问题:1.ABA问题:因为CAS需要在操作值的时候检查下值有没有发生变化,如果没有发生变化则更新,但是如果一个值原来是A,变成了B,又变成了A,那么使用CAS进行检查时会发现它的值没有发生变化,但是实际上却变化了。ABA问题的解决思路就是使用版本号。在变量前面追加上版本号,每次变量更新的时候把版本号加一,那么A-B-A 就会变成1A-2B-3A2.循环时间开销大:自旋CAS如果长时间不成功,会给CPU带来非常大的执行开销(时刻a的内存值和时原创 2020-07-31 16:29:12 · 2921 阅读 · 0 评论 -
Integer.numberOfLeadingZeros
// 首先在jvm中一个int类型的数据占4个字节,共32位,其实就相当于一个长度为32的数组。// 那我们要计算高位连续0的个数,就是从左边第一个位开始累加0的个数,直到遇到一个非零值。public static int numberOfLeadingZeros(int i) { if (i == 0) return 32; int n = 1; // 下面的代码就是定位从左边开始第一个非零值的位置,在定位过程中顺便累加从左边开始0的个数 // 将i无.原创 2020-07-31 16:27:43 · 652 阅读 · 0 评论 -
JS数组对象相关方法
prototypetoString将数组转成字符串,逗号分隔filter创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素array.filter(function(currentValue,index,arr), thisValue);注意: filter() 不会对空数组进行检测。注意: filter() 不会改变原始数组参数二thisValue: 可选。对象作为该执行回调时使用,传递给函数,用作 "this" 的值。如果省略了 thisValue..原创 2020-07-31 16:25:46 · 171 阅读 · 0 评论 -
海盗分金
5个海盗抢得100枚金币,他们按抽签的顺序依次提方案:首先由1号提出分配方案,然后5人表决,投票要超过半数同意方案才被通过,否则他将被扔入大海喂鲨鱼,依此类推。演绎推理编辑假设5个海盗抢到了100枚金币,每一颗都一样的大小和价值。他们决定这么分:抽签决定自己的号码(1,2,3,4,5) 首先,由1号提出分配方案,然后大家5人进行表决,当半数以上的人同意时(包括半数),按照他的提案进行分配,否则将被扔入大海喂鲨鱼。 如果1号死后,再由2号提出分配方案,然后大家4人进行表决,当且仅当半超原创 2020-07-31 16:23:55 · 505 阅读 · 0 评论 -
JSONP跨域问题
参考资料:https://segmentfault.com/a/1190000011145364Access to XMLHttpRequest at 'https://www.layui.com/demo/table/user/?page=5&limit=10' from origin 'file://' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requ原创 2020-07-31 16:22:42 · 346 阅读 · 0 评论 -
CDN缓存和浏览器缓存
CDN的全称是Content Delivery Network,即内容分发网络,旨在解决网络延迟。CDN是构建在网络之上内容分发网络,依靠在各地部署的缓存服务器,通过中心平台的负载均衡/内容分发/调度等功能模块,使用户可以就近获取所需要的内容,从而达到降低网络用塞,提高系统访问速度的技术。CDN的关键技术是内容存储和分发技术。浏览器缓存:当我们请求一个网页的时候,服务器会向浏览器返回大量数据,但是这些数据需要全部缓存吗?浏览器又是如何区分哪些数据需要进行缓存,哪些是需要实时跟源站获取的?浏览器的缓存策略原创 2020-07-31 16:21:07 · 330 阅读 · 0 评论 -
QPS、TPS
QPS:每秒查询率Query Per Second:一台服务器每秒能够响应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准,它代表的是服务器的机器的性能最大吞吐能力。http_load、apache ab、webbenchTPS:每秒处理的事务数Transactions Per Second:一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数,最终利用这些信息作出的评估分。Qp原创 2020-07-31 16:20:17 · 573 阅读 · 0 评论 -
基于jdk1.8 TreeMap详解红黑树插入原理
package arraylist;import java.util.Map;/** * @author mawt * @description * @date 2020/7/28 */public class TreeMap<K, V> { private static final boolean RED = false; private static final boolean BLACK = true; private transient Ent.原创 2020-07-29 09:36:17 · 247 阅读 · 0 评论 -
java4种对象引用级别
参考文档:https://www.cnblogs.com/gudi/p/6403953.html参考文档:https://www.cnblogs.com/skywang12345/p/3154474.html从JDK1.2版本开始,把对象的引用分为四种级别,从而使程序能更加灵活的控制对象的生命周期。细分的准则是体现在被GC回收的优先级上,这四种级别由高到低依次为:强引用 > 软引用 > 弱引用 > 虚引用强引用StrongReference:如果一个对象具有强...原创 2020-06-28 16:48:08 · 601 阅读 · 0 评论 -
springboot项目配置虚拟路径问题
1.如果使用springboot内置的tomcat时@Configurationpublic class WebTomcatVirtualPathConfig implements WebMvcConfigurer { @Value("${tomcat.virtual.path}") private String resourceHandler; @Value("${basePath}") private String resourceLocations;原创 2020-05-12 13:18:50 · 2053 阅读 · 0 评论 -
解决chrome浏览器跨域问题
新建文件夹C:\MyChromeDevUserData右键chrome浏览器图标,打开属性,选择快捷方式中的目标项"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --disable-web-security --user-data-dir=C:\MyChromeDevUserData原创 2020-05-12 13:10:34 · 574 阅读 · 0 评论 -
jdk8 hashmap纯源码分析
package arraylist;import java.util.Map;import java.util.Objects;import java.util.Set;/** * 一般将数组中的每一个元素称作桶(segment),桶中连的链表或者红黑树中的每一个元素成为bin * <p> * 底层实现:数组 + 单向链表 + 红黑树 * <p> * 红黑树定义和性质 * 红黑树是一种含有红黑结点并能自平衡的二叉查找树。它必须满足下面性质: * <p.原创 2020-05-11 19:37:46 · 190 阅读 · 0 评论 -
jdk1.8 java.util.Vector源码分析:
jdk1.8 java.util.Vector源码分析: 底层数据结构是数组,查询快,增删慢 线程安全synchronized,效率低 底层数组的扩容规则:当前容量 + 增量public class Vector<E>{ protected Object[] elementData; //底层使用数组来存储元素 protected int ...原创 2020-04-14 20:04:23 · 196 阅读 · 0 评论 -
jdk1.8 java.util.LinkedList源码分析
jdk1.8 java.util.LinkedList源码分析:public class LinkedList<E> extends AbstractSequentialList<E> implements List<E>, Deque<E>, Cloneable{ transient int size = 0; //底层维护...原创 2020-04-14 19:46:39 · 136 阅读 · 0 评论