Java笔记
文章平均质量分 74
chris_hhao
这个作者很懒,什么都没留下…
展开
-
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 · 874 阅读 · 0 评论 -
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 · 1544 阅读 · 0 评论 -
@Cacheable注解缓存方法内部调用
因为Spring Cache是基于切面的(基于AOP的动态代理实现的:即都在方法调用前后去获取方法的名称、参数、返回值,然后根据方法名称、参数生成缓存的key(自定义的key例外),进行缓存),所以内部方法调用不会调用切面,导致缓存不生效*方法一:暴露Aop代理到ThreadLocal支持,在类之前加@EnableAspectJAutoProxy(exposeProxy = true)调用的...原创 2020-03-24 19:48:38 · 1967 阅读 · 0 评论 -
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 · 396 阅读 · 0 评论 -
记录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 · 562 阅读 · 0 评论 -
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 · 211 阅读 · 0 评论 -
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 · 25561 阅读 · 4 评论 -
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 · 166 阅读 · 0 评论 -
springboot tmp目录生成机制
默认创建的临时目录/tmp/tomcat.9118391718003914329.8086/... (work/Tomcat/localhost/ROOT)8086是端口对于Multipart(form-data)的方式处理请求时,默认就是在tomcat-docbase目录下创建临时文件的。自定义配置临时目录## tomcat.*********.端口这个目录是tomcat...原创 2019-04-01 15:38:48 · 6300 阅读 · 0 评论 -
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 · 326 阅读 · 0 评论 -
本地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 · 849 阅读 · 0 评论 -
nio通讯过程
初步了解nio,但是一直很难理解。网上看到一篇博文,感觉讲的非常好。nio通讯过程情景模拟>1.学校(ServerSocketChannel)>2.学校教务处(Selector)>3.老师(ServerSocket)>4.学生(SocketChannel)>5.员工号/学生号(SelectionKey)学校相当于我们的网络应用程序,一旦开学...转载 2018-08-10 17:08:07 · 262 阅读 · 0 评论 -
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 · 111 阅读 · 0 评论 -
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 阅读 · 0 评论