自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 资源 (3)
  • 收藏
  • 关注

原创 Proxy.newProxyInstance实现动态代理

@CallerSensitive public static Object newProxyInstance(ClassLoader var0, Class<?>[] var1, InvocationHandler var2) throws IllegalArgumentException { // 判断InvocationHandler是否为空,动态代理方法在执行时,会调用var2里面的invoke方法去执行 Objects.requireNon...

2020-06-04 14:56:06 859

原创 map.value.toArray(new String[0])

map.value.toArray(new String[0])会返回你一个list长度的String 类型的数组需要一个T[] a,new String[0]相当于开辟了一个长度为0的String[],并且指定了泛型。这样函数的调用是将list转换了一个String的数组。这里的用new String[0]只是为了指定函数的形参数,最终返回的String[]的长度是由你的list存储内容的长度决定了。new String[0]就是起一个模板的作用,指定了返回数组的类型,0是为了节省空间,因为它只是

2020-06-01 09:32:24 1532

原创 代码里面写sql,为什么不推荐使用*

sql为什么不推荐使用*1:避免查询不需要查询的数据,因为它会进行全表扫描,不能有效利用索引,增大了数据库服务器的负担,以及它与应用程序客户端之间的网络IO开销。不需要的字段会增加数据传输的时间,即使mysql服务器和客户端是在同一台机器上,使用的协议还是tcp,通信也需要额外的时间。2:以后表结构发生变化。代码如果没有注意的话,会报错。...

2020-05-28 19:00:25 1363

原创 @Cacheable注解缓存方法内部调用

因为Spring Cache是基于切面的(基于AOP的动态代理实现的:即都在方法调用前后去获取方法的名称、参数、返回值,然后根据方法名称、参数生成缓存的key(自定义的key例外),进行缓存),所以内部方法调用不会调用切面,导致缓存不生效*方法一:暴露Aop代理到ThreadLocal支持,在类之前加@EnableAspectJAutoProxy(exposeProxy = true)调用的...

2020-03-24 19:48:38 1948

原创 JAVA主线程结束和子线程结束之间的关系

JAVA主线程结束和子线程结束之间的关系main线程是一个非守护线程,不能设置成守护线程main线程是由java虚拟机在启动额时候创建的。mian方法开始执行的时候,主线程已经创建好并运行了。public static void main(String[] args) { System.out.println("parent is begin"); Thread.cu...

2020-03-11 00:28:18 393

原创 记录hibernate.hbm2ddl.auto作用

springboot+jpa:spring.jpa.hibernate.ddl-auto=updatespring+hibernate:hibernate.hbm2ddl.auto=updateHibernate Reference Documentation 3.3.1解释如下:Automatically validate or export schema DDL to the ...

2020-03-10 12:15:07 552

原创 JDK 8 - computeIfAbsent,computeIfPresent,compute

computeIfAbsent(K key, Function<? super K, ? extends V> mappingFunction) 如果map里面不存在key,则执行mappingFunctioncomputeIfPresent(K key, BiFunction<? super K, ? super V, ? extends V...

2020-03-10 10:23:08 210

原创 JAVA char转int

char类型的数据转换成int类型的数字。本能反应是这么写的。public static void main(String[] args) { char c = '1'; // 本能反应是这么写的。 int i = c;// 或者这么写 int i1 = (int)c; System.out....

2020-03-10 00:50:09 25179 4

原创 mac安装redis

进入 https://redis.io/download 官网下载稳定版本解压:tar zxvf redis-5.0.7.tar.gz移动:mv redis-5.0.7 /usr/local/注:如果命令移动出现权限错误,那么换成图形化操作,手动将解压文件拖入local中编译:sudo make test安装:sudo make install出现Hint: I...

2019-12-10 17:23:10 166

原创 整理排序算法(七):快速排序

/** * 快速排序: * 找两个哨兵,一个从头i,一个从尾j * 设置一个基准tmp * i和j与tmp比较, * 如果i<tmp,i++ * 如果i>tmp,i和j交换位置 * 再比较的话就变成 * 如果j>tmp,j-- * 如果j<tmp,i和j交换位置又变成之前的状...

2019-12-05 15:00:24 106

原创 整理排序算法(六):归并排序

/** * 归并排序: * 把数组分成两部分。每两部分再分成两部分排序,递归。 * 一直分成每部分只有一个元素。 * 再合并。就变成整体有序了。 * * * 时间复杂度:O(nlogn) * 空间复杂度:O(N),归并排序需要一个与原数组相同长度的数组做辅助来排序 * 稳定性:归并排序是稳定的排序算...

2019-12-04 18:28:15 321

原创 整理排序算法(五):堆排序

/** * 堆排序(大顶堆) * 将记录看成一个顺序存储的二叉树 * 先构建大顶堆,所有节点都比他的儿子大或者等于。 * 第一步:从最后一个非叶子节点开始比较,一直到根。 * 构建大顶堆成功。 * 第二步:根与最后的叶子节点交换位置 * 第三步:除去刚才的叶子节点,再次构建大顶堆, * ...

2019-12-04 14:30:34 115

原创 整理排序算法(四):希尔排序

/** * 希尔排序: * 每次都将元素分成一些小组,在小组内进行排序。 * 小组根据元素数量划分。 * 小组跨度一般是元素数量的一半。 * 此后每次跨度都除以二。 * 一直到最后,小组跨度变成1。 * 这样就变成插入排序了。 * <p> * 希尔排序的复杂度和增量序列是相关的 ...

2019-12-03 16:25:47 103

原创 整理排序算法(三):插入排序

/** * 插入排序: * 将一个记录插入已经排好序的新序列 * * 1,当初始序列为正序时,只需要外循环n-1次,每次进行一次比较,无需移动元素。 * 此时比较次数(C _{min})和移动次数(M_{min})达到最小值。 * C _{min}=n-1 * M_{min}=0 * 此时时间复杂度为O(n)...

2019-12-03 10:28:22 88

原创 整理排序算法(二):简单选择排序

/** * 简单选择排序: * 记录下未排序最小的元素,把它放在已排序最后一个位置(当前未排序的第一个位置) * * 算法性能: * 对于长度为N的序列,选择排序每一趟选择最小元素,都要比较未排序元素的大小, * 所以比较总次数为:(N-1)+(N-2)+……+2+1=N(N-1)/2; * 每次选出最小元素进行交换都...

2019-12-02 17:39:12 137

原创 整理排序算法(一):冒泡排序

/** * 冒泡排序: * 比较相邻两个值,如果第一个比第二个大,就交换位置。 * 全部比较一次,一直到剩下最后一个 * 这样每次都会把剩下最大的一个值找出来,放在最后一个位置上 * * * 最好的时间复杂度 * 若数组的顺序是正序的,一趟扫描即可完成排序。所需的关键字比较次数C和记录移动的次数M都是最小的值...

2019-12-02 16:38:32 120

原创 JAVA8 常用操作

记录一下自己用的JAVA8的一些操作1.list里面元素类型转换String 类型的listlist.stream().map(e -> Integer.valueOf(e)).collect(Collectors.toList());2.根据list分组转成mapMap<String, List<Object>> crossingSaturat...

2019-11-28 15:12:29 162

原创 记录一下扩展jmx脚本

目的脚本的功能就是自动解析我们提交的测试工程,然后转换成支持多个并发、单接口压测和混合压测两种场景。用的是jmeter测试工具,配置了一些测试的参数。 会生成一个jmx文件。文件格式和xml差不多。但是有些不同。步骤先阅读jmx文件。分析jmx文件格式。思考怎么扩展,实现写一个接口的测试可以扩展成多个并发,单接口,混合压测。熟悉shell脚本,主要运用了sed命令。...

2019-11-18 16:53:12 502

原创 sql优化

sql优化1:构造表结构的时候就开始考虑每一个字段的长度,类型2:查询的时候超过1000不要用in3:不要查询没有用的字段4:建立索引5:行数超过500w或者容量超过2G,分库分表6:精致超过三个join7:少用like8:尽量吧一些复制的逻辑操作放在代码层完成9:可以使用explain查看查询效率10:尽量避免全表查询...

2019-10-16 16:16:26 96

原创 springboot tmp目录生成机制

默认创建的临时目录/tmp/tomcat.9118391718003914329.8086/... (work/Tomcat/localhost/ROOT)8086是端口对于Multipart(form-data)的方式处理请求时,默认就是在tomcat-docbase目录下创建临时文件的。自定义配置临时目录## tomcat.*********.端口这个目录是tomcat...

2019-04-01 15:38:48 6274

原创 idea zookeeper源码

http://ant.apache.org/bindownload.cgi在这里下载ant,配置好环境变量export ANT_HOME=/Applications/apache-ant-1.10.3export PATH=$ANT_HOME/bin:$PATHsource .bash_profilehttps://github.com/apache/zookeeper...

2019-03-25 17:54:37 322

原创 本地idea连接服务器debug

服务器连接idea启动命令java -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8081 -jar XXX.jaridea需要的配置新建remote工程将红框复制到spring boot里面的vm options里面。...

2019-01-24 16:42:47 847

转载 nio通讯过程

初步了解nio,但是一直很难理解。网上看到一篇博文,感觉讲的非常好。nio通讯过程情景模拟&gt;1.学校(ServerSocketChannel)&gt;2.学校教务处(Selector)&gt;3.老师(ServerSocket)&gt;4.学生(SocketChannel)&gt;5.员工号/学生号(SelectionKey)学校相当于我们的网络应用程序,一旦开学...

2018-08-10 17:08:07 261

转载 SQL 语句 explain 分析(转载于https://www.cnblogs.com/laowenBlog/p/6825499.html)

分析索引的效率:&gt; EXPLAIN sql;EXPLAIN 分析的结果的表头如下:id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra具体说明如下:----------------------------------idid列数字...

2018-07-12 11:08:16 174

原创 redis中 keys * 对性能的影响 以及 mysql中like 对性能的影响

redis*,该通配符标识任意长度的字符keys的模糊匹配功能很方便,也很强大,但是生产环境中要慎用,开发中使用keys的模糊匹配发现redis的cpu使用率非常高,keys会引发redis锁。like查询使用不到索引,会扫描全表...

2018-07-11 16:24:54 2771

原创 sql执行顺序

mysql的select执行顺序form---&gt;on---&gt;join---&gt;where---&gt;group by---&gt;having---&gt;select---&gt;distinct---&gt;order by---&gt;limit每次操作都会产生一张虚拟的表,这个虚拟表作为下一个执行步骤的输入。form:对其左边的表和右边的表计算笛卡尔积,产生虚拟表VT1o...

2018-07-11 15:31:25 109

原创 Hashmap笔记

今天在提交代码的时候。提交了一行HashMap&lt;String, Object&gt; pageMap = new HashMap&lt;&gt;(3);特傻逼的代码。被老大指出太业余。虽然自己也知道hashmap的容量要设置成2的幂次,但是实际使用起来却没有丝毫的注意。说明还是对Hashmap的理解不够透彻,故决定整理一下Hashmap的笔记。Hashmap具有数组和链表的优点。使用hash...

2018-07-09 10:59:42 340 1

原创 hashcode和equals

每一个对象一般都有k-v。key可以计算出hashcode,value是这个对象。对象根据hashcode存储在不同的存储空间中,同一个hashcode的存储空间里面可能放多个对象。equals比较的是这个对象是否相同,hashcode()返回的是int,是这个对象的存储地址。如果重写了equals(Object obj),那么一定要重写hashcode();equals(Object obj)返...

2018-07-05 17:16:56 108

原创 mysql 存储emoji表情

经过网上各种查找加上自身的测试实验,得知三种可行的方法。mysql的utf8编码的一个字符最多3个字节,但是一个emoji表情为4个字节,所以utf8不支持存储emoji表情。但是utf8的超集utf8mb4一个字符最多能有4字节,所以能支持emoji表情的存储。一:修改mysql配置文件(Linux是my.cnf;windows是my.ini)         [client]default-c...

2018-06-20 15:40:44 320

macsecurecrt.zip

mac securecrt 破解

2019-05-13

反编译工具

反编译工具,支持批量反编译,反编译jar 反编译工具,支持批量反编译,反编译jar 反编译工具,支持批量反编译,反编译jar

2018-06-28

jdk1.8 64位

jdk1.8 64位下载jdk1.8 64位下载jdk1.8 64位下载jdk1.8 64位下载jdk1.8 64位下载jdk1.8 64位下载jdk1.8 64位下载jdk1.8 64位下载jdk1.8 64位下载jdk1.8 64位下载jdk1.8 64位下载jdk1.8 64位下载jdk1.8 64位下载jdk1.8 64位下载jdk1.8 64位下载jdk1.8 64位下载jdk1.8 64位下载jdk1.8 64位下载jdk1.8 64位下载jdk1.8 64位下载jdk1.8 64位下载jdk1.8 64位下载

2018-05-10

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除