- 博客(46)
- 问答 (2)
- 收藏
- 关注
原创 Fail-Fast 和 Fail-Safe的解析
Fail-Fast集合(如ArrayList、HashMap)内部维护一个修改计数器(moudCount)该计数器用来记录集合的修改次数,迭代期间通过对比预期修改次数与实际修改次数expectedMoshdCount和modCount是否一致来判断是否存在并发操作,从而实现快速失败。Fail-Safe 是一种机制,当在遍历集合的过程中集合被修改,不会抛出异常,而是继续使用原来的集合副本进行遍历。Fail-Safe 集合(如。)在遍历时使用集合的。
2025-02-22 14:04:39
400
原创 tomcat (SCI)ServletContainerInitializer 的加载原理
在ContextConfig当中有一个processServletContainerInitializers方法,当中会取loda META-INF/services/ 目录下所有的javax.servlet.ServletContainerInitializer实现,存入initializerClassMap 当中。根据上图可以发现所用来的扫描的pojo来源于 initializers 这个属性,向上追溯确定了该属性的数据来源于ContextConfig的 initializerClassMap 属性。
2023-11-21 11:35:31
681
原创 如何使用OpenSSL生成私钥与证书
上述命令将生成一个名为 "csr.csr" 的证书签名请求文件,其中包含了与私钥相对应的公钥以及其他证书请求相关的信息。如果需要获得由受信任的证书颁发机构(CA)签名的证书,需要将证书签名请求文件(CSR)提交给 CA,并按照他们的指示进行后续操作。2. 使用包管理器安装 OpenSSL:Red Hat Linux 使用的包管理器是 `yum`,通过该工具可以方便地安装软件包。上述命令将使用私钥对证书签名请求进行签名,并生成一个名为 "certificate.crt" 的自签名证书文件。
2023-06-28 10:07:25
3011
原创 在使用增强for循环的时候对遍历的集合进下remove操作报错java.util.ConcurrentModificationException
集合循环删除报错解决
2022-04-18 17:36:05
1264
原创 Redis学习
Redis配置bind 注解掉允许其他主机访问关闭保护模式tcp连接Memcache发布和订阅发布者订阅者6379端口String list set zset hash单线程+多路IO复用默认16个数据库默认0号库原子性:原子操作,操作不会打断,得益于他是单线程不会出现多线程抢占并发问题常用命令设置取值stringset设置,get取值mset设置多值,mget取多值append在数据后面追加值Strlen获取值的
2022-04-06 11:59:14
432
原创 SpringCloud访问其他模块,找不到bean
这里用的cloud实现是eureka,先创建了一个公共方法接口,然后继承同时映射上我需要的服务名,之后启动的时候在调用这个bean的时候一直报错,说没办法找到这个bean或者是没有定义,尝试手动或者注解都没有用,猜测应该不是bean的问题,可能是没有找到服务之类的后面在启动类上加个注解解决...
2022-04-05 15:42:26
1233
原创 常见的代理模式
单例模式单例模式注意事项和细节说明什么是单例模式? 将构造函数私有化 单例模式保证了,系统内存中该类只存在一个对象,节省了系统资源,对于一些需要频繁创建销毁的对象,使用单例模式可以提高系统的性能。 当想实例化一个单例类的时候,必须要使用相应的获取对象的方法,而不是使用new 单例模式使用场景: 需要频繁的创建和销毁的对象,创建对象好事过多或耗费资源过度(即:重量级对象),但又需要经常用到的对象,比如工具类,平凡访问数据库或文件的对象(比如数据源,session工厂等) 在JD
2022-03-29 08:04:49
1922
原创 常用设计原则
设计原则开闭原则对拓展开放,对修改关闭 用抽象构建框架,用实现拓展细节 优点:提高软件系统的可复用性和可维护性 自我总结输出:什么是开闭原则?有什么优点? 什么是开闭原则? 对拓展开放,对修改关闭,开闭原则体现在各种设计模式当中。 比如在实际的操作环境中经常会出现,需要新增某个功能,这个时候怎么操作呢? 如果修改原来的对象代码就有可能导致原来依赖这个模块的另外一个模块出bug,所以不能修改原有的代码,这就是开闭原则的对修改关闭。 那我们要怎么新增功能呢?我们可以继承这个
2022-03-29 06:58:13
167
原创 java四则运算暴力破解
import java.util.*;import javax.script.*;public class Main{ public static void main(String[] args) throws ScriptException { Scanner scan = new Scanner(System.in); String input = scan.nextLine(); input = input.replace("...
2022-03-20 08:21:08
419
原创 Java的位运算符
----------- 位运算符都是使用二进制计算的1. & :如果对应位都是1,则为1,反之为0;2. | :如果对应位都是0,则为0,反之为1;3. ^ : 如果对应位数相同,则为0,反之为1;4. ~ : 按位取反;5. << : 按位左移运算符。左操作数按位左移右操作数指定的位数。6. >> : 按位右移运算符。左操作数按位右移右操作数指定的位数。7. >>> : 按位右移补零操作符。左操作数的值按右操作数指定的位数右移,移动得到的
2022-03-18 14:44:37
2575
转载 MySQL学习笔记
基本操作/* Windows服务 */-- 启动MySQL net start mysql-- 创建Windows服务 sc create mysql binPath= mysqld_bin_path(注意:等号与值之间有空格)/* 连接与断开服务器 */mysql -h 地址 -P 端口 -u 用户名 -p 密码SHOW PROCESSLIST -- 显示哪些线程正在运行SHOW VARIABLES -- 显示系统变量信息#数据库操作/* 数据库操
2022-03-06 09:36:30
169
原创 npm install 出错
1.看有没有安装pythen,系统配置里面有没有配置,有可能3.x以上的pythen不兼容,需要重新下载2.x版本的,参考这篇Win 10安装Python及环境变量配置_LYJ_viviani的博客-优快云博客_python安装教程win102.下载完报错缺少组件:npm install –global –production windows-build-tools(全局安装windows构建工具)3.使用淘宝镜像npm install -g cnpm --registry=htt..
2022-02-18 15:35:53
1206
1
原创 Linux(Centos8)部署DubboAdmin2.6
1.安装JDK我的一篇博客介绍了我安装的过程和遇见的坑: Linux 安装1.8JDK2.配置启动zookeeper我的一篇博客介绍了我安装配置zookeeper :Linux配置zookeeper3.下载打包dubboadmin1.下载这个是我的dubbo-admin包 2.6版本的链接:百度网盘提取码 1234这个是我打好的jar包:百度网盘提取码 1234这个是git上面的项目:我自己是从这里下载的这个是github上面的项目:折腾了我很久,乱七八糟的错误,最后..
2022-02-02 11:16:59
2830
原创 Linux(Centos8)部署zookeeper
1.下载两个链接,一个官网一个我的,我的配置好了下载下来可以直接用官网链接:Apache ZooKeeper我的zookeeper网盘链接:https://pan.baidu.com/s/1PEjmf9sNa3yn0-h-D5OS9w提取码:1234官网下载的zookeeper记得修改下面这个文件配置,把zoo_sample.cfg文件名字修改成zoo.cfg2.上传到Linux,启动默认端口是2181,就是上面那张图片的clientPort=2181.cmd是win..
2022-02-02 10:38:00
257
原创 JDK1.8新增特性
hashMap 扩容到2的32次方转红黑树Arrays.sort()对集合排序在集合大小大于32的时候启用归并排序stream().filter() 一个用来过滤集合对象的小玩意
2021-12-29 15:13:46
448
原创 war包反编译(附带软件)
半个月前给现场发了一个测试包,今天突然告诉我提交代码,然后去项目里面找不到代码了,一度以为自己找错项目了,后面发现代码不见了,肯能是点了还原,外面零下几度,我瞬间浑身燥热,还好找到了之前给现场的war包 对war包进行了反编译,获取到原先的代码 先把war包后缀改成zip解压,然后用jd-gui打开文件里面随便一个class文件就可以全部反编译成java代码,软件放网盘里了链接:https://pan.baidu.com/s/1DoGCtpLCDNzP...
2021-12-28 16:25:32
2626
2
原创 程序启动的时候加载任务
init方法继承servlet接口的话必须要实现几个方法@Override public void init(ServletConfig config) throws ServletException { } @Override public ServletConfig getServletConfig() { return null; } @Override public void service(ServletRequest req, ServletResponse r
2021-12-24 11:25:30
188
原创 问题总述记录
记录一下一些平时遇见或者发现的问题,同时寻找解决方法1.如何解决多进程访问同一个静态资源,导致的线程不安全问题2.为什么多线程会导致HashMap会导致链表环绕问题,(JDK8貌似在达到阙值转换成红黑树会解决该问题)3.红黑树的结构和实现4.HashMap红黑树的存储方式5.如何设计一个跳表的数据结构快速查询对象的集合...
2021-12-23 19:19:53
451
原创 oracle查询表主键索引结构
-- 查找表的所有索引(包括索引名,类型,构成列)select t.*,i.index_typefrom user_ind_columns t,user_indexes iwhere t.index_name = i.index_name and t.table_name = i.table_name and t.table_name ='表名';-- 查找表的主键 ( 包括名称,构成列 )select cu.*from user_cons_columns .
2021-12-21 21:07:09
669
原创 Stream流排序
记一种排序用法Arrays.sort(list, new Comparator<WSOrderProcessItem>() { public int compare(WSOrderProcessItem a1, WSOrderProcessItem a2) { return a1.seq - a2.seq; }
2021-12-20 09:21:13
138
原创 idea连接数据库,对数据库操作后,可以查询出操作完的数据,但是数据库却没受到影响
描述下问题:使用的数据源是Oracle idea连接数据库之后,插入数据,然后我只想select可以查到这条数据,但是程序运行的时候这条数据却没生效。问题原因:idea执行完修改性数据之后,会保存到事务里面然后进行锁表,必须要你提交事务,恶心的是这玩意一时还真注意不到,我后面感觉可能是我误操作导致锁表然后就去查询了一下,发现果然被锁表了,后面猜可能是事务问题,刚好看见上面那个小按钮。知道的人感觉没什么,第一次遇见的人的确被坑得难受然后顺便记录下:--查看被锁的表sel...
2021-12-17 16:14:49
1366
原创 端口被占用, 多个端口状态为TIME_WAIT
报错抛出的异常:java.io.IOException: Cannot bind to URL [rmi://127.0.0.1:1090/jmxconnector]: javax.naming.CommunicationException [Root exception is java.rmi.ConnectIOException: Exception creating connection to: 127.0.0.1; nested exception is:java.net.SocketE..
2021-12-03 17:55:15
18056
原创 Oracle和MySql的布尔类型
Oracle: Oracle是没有内置布尔类型的,但是Oracle官方提供了两种方法:第一种种是Char(1),第二种是Number(1),如果存储内容为0的话就为false,如果存储的内容为1的话就为true。特定布尔类型情况下,使用Char(1)是比Number(1)更好的选择,但是Char(1)使用的存储空间比Number(1)少,但是要注意使用Char(1)的时候不能让这个字段为空,否则会降低查询效率Mysql:(参考处) MySql也没有内置的布尔类型,但是...
2021-12-01 15:12:15
4030
原创 浅拷贝和深拷贝
所有对象都放在堆里面,我们使用的无非是栈里面对堆中对象的引用,所以牵一发而动全身(或许可以作为,跳表查询的缓存?) @Test public void test() { TestOneDao testOneDao = new TestOneDao(1,"张三"); List<TestOneDao> list = new LinkedList<>(); Map<Integer, TestOneDao> map =
2021-09-29 10:34:01
306
2
原创 记笔试算法题
之前有一次笔试,题目是: 有一串字符串 求出当中最大的数字: 如: “asd446sd2146asd" 求出当中最大数字——6。看到这题的我想法就是用ASCLL吗但是一下子不晓得用什么方法转型(主要是当时脑子懵懵,后面笔试完反应过来怎么做了)。直接 把String转byte类型数组就可以了,自然会转换成ASCLL吗,最后比较然后—48就行了 String s = "sdasd546sdas0"; ...
2021-09-28 13:57:00
418
1
原创 关于List链表的想法(跳表实现,现在还写不出(没时间),记录一下,用来以后完善)
想法:这是一条普通的链表这是我的一个优化想法分析:1. 链表的优势和劣势:插入和删除非常方便,查找起来可能需要全部遍历一遍,最差的查找时间为O(n)2. 怎么去解决这个查询的劣势?—— 使用多条链表辅助跳跃查找3.应该设置多少条辅助链表?—— 设置一个阙值x,比如我上面的图片,两个节点之间间隔的节点就是1那么阙值x就是1 关于辅助链表 1.我认为应该提供一个方法,方法的参数就是x,如果调用这个方法的话,该对象就会根据x生成所有辅助链...
2021-09-24 18:21:41
143
空空如也
负载均衡,多线程操作,JVM对象资源问题
2021-12-07
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅