![](https://img-blog.csdnimg.cn/20190918140158853.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java
文章平均质量分 71
Java相关的一些知识
既看方向也看行动
这个作者很懒,什么都没留下…
展开
-
ThreadLocal的研究
ThreadLocal是什么?线程本地/局部变量,可以缓存数据到线程上,使数据在线程其他任何地方进行使用。如下:ThreadLocal tl = new ThreadLocal();tl.set("name=shenshaoqin");String val = tl.get(); // val = "name=shenshaoqin";ThreadLocal的原理?ThreadLocal的原理其实特别简单,考虑一下,如果不用ThreadLocal,要怎么用Java实现类似的功能?其实就是原创 2021-10-20 16:10:05 · 121 阅读 · 0 评论 -
布隆过滤器
布隆过滤器(Bloom Filter)是什么?我的理解是,一种可以在缓存等系统中,可以通过简单快速的操作初步判断元素是否在系统的方法。(以算力换时间)通俗讲:比如说,我现在有三个值x、y、z,通过某种规则编辑映射为1、2、3数字值;那么另一个值过来的时候,我用这个规则,把他也编成一个值,如果这个值不在1、2、3里面,那么这个值 【肯定不在】 这里面,如果这个值在1、2、3里,那么,这个值 【有较大的可能性】 在我现有的x、y、z,其实也是函数y=f(x)的思想, y相同,x不一定相同,y不同,x一定不同原创 2021-06-27 17:15:53 · 166 阅读 · 0 评论 -
关于maven插件的一点事(三)实践
需求需求:一个web项目,需要对其中某些jar包以及web代码进行加密,为了节省资源以及方便起见,不影响本地开发,只对用于测试和部署的war进行操作。已知:加密程序是jar程序(但是还调用了 dll和so),只能加密jar/war包里的代码,加密时要设置jar/war原始依赖(包括servlet.jar),原操作是手工解war里的jar出来单个加密,再放回war包中。作为一个程序员,肯定是不能...原创 2020-04-15 23:40:13 · 210 阅读 · 0 评论 -
关于maven插件的一点事(二)插件
配置除了一些执行参数,完成插件目标和生命周期绑定之外,插件还有一些自己的参数需要配置。可以通过命令行或者在pom中配置进来。命令行配置命令行配置是通过Java自带的-D参数来进行配置的,-D 传递参数也比较常见,如 springboot运行时传递端口参数 java -Dserver.servlet.port=8800 -jar springbootdemo.jar 等。Maven常见通过命...原创 2020-03-08 14:49:11 · 296 阅读 · 0 评论 -
关于maven插件的一点事(一)生命周期
生命周期提到maven插件, 就不得不理解maven的生命周期. 因为maven的生命周期是抽象的(一致统一的构建标准),各个阶段都是靠插件来完成的. maven有三套生命周期, clean生命周期, default生命周期(构建), site生命周期. 每个生命周期又包含多个阶段(phase). 不同生命周期是相互独立的.clean生命周期clean生命周期的目的是清理项目.包含 pr...原创 2020-03-08 11:15:33 · 201 阅读 · 0 评论 -
redis主从配置
配置主redis:无须额外配置。一般会把protected-mode 设为 no, 假设ip为 192.168.0.2从redis:增加如下配置。假设 ip为 192.168.0.3slaveof 192.168.0.2 6379 # 主redis的地址#masterauth xxxxxx # 主redis的密码,如果有设置的话#requirepass xxx...原创 2019-04-04 18:01:09 · 119 阅读 · 0 评论 -
List相关类源码解析之LinkedList
类图一, 要分析 LinkedList, 我们最好先了解一些背景知识.1, LinkedList 和ArrayList类似, 是 List的一个实现. 因此, 我们可以大概知道. LinkedList实现的功能和ArrayList 是类似的, 底层的结构不同2, 链表的实现必须要有类似指针的对象, 指向下一个对象, 通过进入一个get方法, 可知. get首先获取的是一个 Node对象,...原创 2019-04-04 19:37:10 · 178 阅读 · 0 评论 -
List相关类源码解析之从Vector学习装饰模式
关于Vector, Vector源码的话,和ArrayList基本差不多, 因此没必要再讲一次。实际上, 我基本没用过Vector。 只是在看ArrayList的时候大概浏览了一下Vector源码。这里要说的是 Vector的由来, 加深对装饰模式的理解.思考一下,在没有 current包和Vector之前。我们要如何实现List的线程安全? 那时候也没有锁如ReentrantLock的,...原创 2019-04-04 20:47:48 · 175 阅读 · 0 评论 -
HashMap源码解析
先看一道题HashMap,put100次数据,key值不重复,但是监控发现key的hash冲突了2次,那么现在的Entry[]全部长度和非空长度分别是多少?a.100,98b.100,100c.128,100d.128,98如果不知道这道题问题什么,怎么做。那么也许该了解一下HashMap,下面就说一下HashMap。什么是hash ?简单理解,可以当作是一种数学函数,输入x ...原创 2019-04-04 21:21:47 · 247 阅读 · 0 评论 -
java正则表达式使用
正则表达式是什么: 正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串干什么:正则主要用于 字符串中 为方便 字符串操作 ,很多地方不使用正则表达式也能达到目的,但是可能麻烦很多。怎么用:在java中的标准使用如下://编译正则表达式,这样子可以重用模式。Pattern p = Pattern.compile("a*b");// 用模式检查字符串Matcher m...原创 2019-03-27 11:41:45 · 12667 阅读 · 4 评论 -
集合Set解析
SetSet体现的是数学上的集合的概念,集合内没有相同的元素,这也是与List主要的区别。另一方面,由于java的Map的key就是没有重复的,所以很多情况下,Set的内部实现就是其相应的Map,把Map的key作为Set,value存为null或Object,例如HashSet内部是HashMap, TreeSet内部也是TreeMap。HashSetprivate transien...原创 2019-04-05 10:04:48 · 273 阅读 · 0 评论 -
CopyOnWrite类解析
CopyOnWrite顾名思义,写时复制, 即做Write更新的操作时,进行复制。那么为什么要这样子做呢? 接下来我们以CopyOnWriteArrayList的源码来做分析。CopyOnWriteArrayListCopyOnWriteArrayList可以看成是ArrayList的线程安全版本,所以很多方面与ArrayList相同,我们略过一些相同的方面,先来看其主要属性 ...原创 2019-04-05 10:26:45 · 299 阅读 · 0 评论 -
关于Tomcat的session共享引起的思考
起因由于在部署项目的时候发现,每次部署都要往tomcat的lib加 `jedis.jar,redis-session.jar,commons-pool.jar,而且只能使用tomcat7x的版本来部署。于是想了解一下怎么回事,了解一下tomcat和redis-session的源码。关于session管理器tomcat的session通过session管理器产生。内置的session管理器类图...原创 2019-04-27 15:50:57 · 651 阅读 · 0 评论 -
JAVA获取MYSQL索引数据
最近工作上有个需求,要比较索引,因此要获取数据库的原数据。按照正常方式获取 java.util.sql.DatabaseMetaData.getIndexInfo获取到结果集ResultSet,但是有一个需要的信息–创建索引时的length却获取不到,即如下, alter table table_name add index index_name(column_name(length))。我要获取...原创 2019-05-09 15:08:30 · 1919 阅读 · 0 评论 -
关于JAVA代码性能优化一点记录
写在前面性能优化是一个包含很广有深度的知识,相对于自己浅显有限的经验实在有点难度。这里只是记录自己工作中一点常见的问题。正文性能说明:代码执行的通常主要瓶颈在第三方上(即其它的地方执行速度),例如磁盘IO 和 网络 IO,由于网络IO,取决于网络条件,更是有很大不确定性如延迟,所以通常如果优化代码速度,首要考虑的就是这一方面。常见例子:在 循环里 里调用数据库查询或更改,这个是最常见的,因...原创 2019-07-02 16:01:24 · 734 阅读 · 0 评论 -
JAVA代码proguard混淆
一,通用设置#输出log-verbose#略过warning,不输出warning(有warning时无法继续)-ignorewarnings#不输出warning,这里可以限定某些类不要warning-dontwarn #不校验.校验可以提高java虚拟机的加载效率(java6)-dontpreverify#不混淆#-dontobfuscate#需要混淆的目录 #-obf...原创 2019-08-12 11:14:05 · 2061 阅读 · 0 评论 -
List相关类源码解析之ArrayList
List家族主要的类结构如下:其中List 接口继承 Iterable 为标记其迭代能力, 其子类都应该实现迭代器的功能.我们平常主要使用的List实现为. ArrayList (array实现), LinkedList(链表实现), CopyOnWriteList (线程安全). Vector也是线程安全, 但由于其线程安全方式过于简单, 直接使用悲观锁synchronize来实现...原创 2019-01-26 11:57:47 · 179 阅读 · 0 评论