![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
weixin_41627757
这个作者很懒,什么都没留下…
展开
-
HashMap的扩容机制、ConcurrentHashMap的原理
HashMap的扩容机制、ConcurrentHashMap的原理(n - 1) & hash : 相当于hash % n;public V put(K key, V value) { return putVal(hash(key), key, value, false, true);} // (key == null) ? 0 : (h = key.hashCode()) ^ (h >>> 16); 将高16位 向又移参与运算为的是使结果更加分散;原创 2020-10-11 19:50:36 · 500 阅读 · 0 评论 -
局部变量、成员变量
原创 2020-04-07 22:23:35 · 66 阅读 · 0 评论 -
类的初始化,类的实例化
有main方法的类先进行类初始化;类初始化 :静态变量、静态代码块;谁在先,先执行谁;先父类后子类;类的初始化只会执行一次;子类的实例初始化:实例变量、非静态方法;谁在先,先执行谁;子类在执行初始化的时候,子类重载l父类的test() 方法,所以父类的test() 方法前面会有this指向,所以会执行子类的test()方法;类的实例化会执行多次;...原创 2020-04-07 22:19:28 · 105 阅读 · 0 评论 -
单点登录
码云单点登录项目 xxl:登录任何一个项目,如果没有进行登录就要跳转到登录服务器,后面的redirect_url 是登录成功后需要callback的地址;再接着去登录服务器,如果没有登录就到登录页,填写登录信息后把redirect_url 放在后面;登录成功后将cookie放在redis中,然后跳到redirect_url页面,然后在页面存放cookie;跳转页后面也带上cooki...原创 2020-04-07 22:15:50 · 165 阅读 · 0 评论 -
Annotation注解
四个元注解@Documented 注解是否包含在包内@Target 标注的地方@Retention 什么时候使用@Inherited 是否被子类继承1.)@Retention – 定义该注解的生命周期 ● RetentionPolicy.SOURCE : 在编译阶段丢弃。这些注解在编译结束之后就不再有任何意义,所以它们不...原创 2020-03-28 14:16:25 · 87 阅读 · 0 评论 -
Java泛型
为啥要有泛型在集合中存储对象并在使用前进行类型转换是多么的不方便。泛型防止了那种情况的发生。它提供了编译期的类型安全,确保你只能把正确类型的对象放入集合中,避免了在运行时出现ClassCastException1.类型擦除泛型是通过类型擦除来实现的,编译器在编译时擦除了所有类型相关的信息,所以在运行时不存在任何类型相关的信息。2.什么是泛型中的限定通配符和非限定通配符 ?限定通...原创 2020-03-28 13:32:45 · 67 阅读 · 0 评论 -
类加载机制
== 和equals== : 它的作用是判断两个对象的地址是不是相等。即,判断两个对象是不是同一个对象。(基本数据类型==比较的是值,引用数据类型==比较的是内存地址)equals() : 它的作用也是判断两个对象是否相等。但它一般有两种使用情况:情况1:类没有覆盖 equals() 方法。则通过 equals() 比较该类的两个对象时,等价于通过“==”比较这两个对象。情况2:类覆盖了...原创 2020-03-14 12:32:24 · 74 阅读 · 0 评论 -
Synchonized, Lock
synchonized 是不可以被中断的;lock 是可以被中断的,tryLock( long time)方法;synchonized 是通过获取monitor的控制权monitorEnter ,monitorExit 是一次锁的控制流程;synchonized 即使锁内出现了异常,也会自动释放锁;AtomicInteger :CAS( compare and swap)CAS 和...原创 2020-03-14 12:32:01 · 119 阅读 · 0 评论 -
并发、多线程
1.线程的状态创建之后是new状态、start() 之后是ready状态、获得cpu之后是running状态,jvm把ready、running统称为runable状态;当执行wait()之后是WAITING状态、sleezp(long)wait(long) 可以设置超时时间,超时后变进入RUNNABLE状态;当线程调用同步方法没有获取到锁的情况下,进入block状态、线程执行完run方...原创 2020-03-14 12:31:15 · 69 阅读 · 0 评论 -
JAVA异常图
Thrown 可以抛出去的;分为Error 和ExceptionError为错误,严整的问题,程序无法解决;Exception 分为运行时异常和非运行时异常;自定义的都是运行时异常...原创 2020-03-14 12:30:22 · 319 阅读 · 0 评论 -
JAVA 基础
Java 序列化中如果有些字段不想进行序列化,怎么办?对于不想进行序列化的变量,使用 transient 关键字修饰。transient 关键字的作用是:阻止实例中那些用此关键字修饰的的变量序列化;当对象被反序列化时,被 transient 修饰的变量值不会被持久化和恢复。transient 只能修饰变量,不能修饰类和方法。35 Java 中 IO 流Java 中 IO 流分为几种?按照...原创 2020-03-14 12:27:49 · 104 阅读 · 0 评论 -
SpringBoot
可以看出大概可以把 @SpringBootApplication 看作是 @Configuration、@EnableAutoConfiguration、@ComponentScan 注解的集合。根据 SpringBoot官网,这三个注解的作用分别是:@EnableAutoConfiguration:启用 SpringBoot 的自动配置机制@ComponentScan: 扫描被@Compo...原创 2020-03-11 22:15:06 · 82 阅读 · 0 评论 -
冒泡算法
private static void sort(int[] array) { for (int i = 0; i < array.length - 1; i++) { for (int j = i + 1; j < array.length; j++) { if (array[i] > array[j])...原创 2020-01-17 13:24:52 · 55 阅读 · 0 评论 -
SpringBoot在静态方法中使用注入Bean
第一种:第二种:转载 2020-01-16 16:16:55 · 2014 阅读 · 0 评论 -
Spring计时器StopWatch使用
原创 2020-01-16 13:37:09 · 109 阅读 · 0 评论 -
mysql事务
特性:原子性、一致性、隔离性、持久性;分类1、扁平事务<使用最频繁的事务,要么都成功提交,要么都失败回滚>2、带有扁平点的扁平事务<允许事务回滚到同一个事务中比较早的一个状态>3、链事务<回滚到最近的一个保存点,在所有的事务都提交之后才会释放锁,并且下一个事务的开始需要上一个事务来进行通知>4、嵌套事务<树结构,只有当父级事务提交之后子级事务才...原创 2020-01-14 13:42:47 · 61 阅读 · 0 评论 -
mysql索引
类型:1,Normal:普通的索引;允许一个索引值后面关联多个行值;2,UNIQUE:唯一索引;允许一个索引值后面只能有一个行值;之前对列添加唯一约束其实就是为这列添加了一个unique索引;当我们为一个表添加一个主键的时候,其实就是为这个表主键列(设置了非空约束),并为主键列添加了一个唯一索引;3,Fulltext:全文检索,mysql的全文检索只能用myisam引擎,并且性能较...原创 2020-01-14 10:50:30 · 87 阅读 · 0 评论 -
表结构对性能的影响
1。适当的冗余(数据库三大范式)(范式就是属性不可分割,二范式就是要有主键,三范式就是要消除传递依赖,方便理解,可以看做是“消除冗余);2.大表拆小表(属性值不超过20个,数据不超过1000万, 有大数据的列单独拆成小表)3. 常用属性分离为小表...原创 2020-01-14 09:25:58 · 306 阅读 · 0 评论 -
Spring中同一个service调用方法不回滚的解决方法
在java配置类上添加注解@EnableAspectJAutoProxy(exposeProxy = true)方式暴漏代理对象,然后在service中通过代理对象AopContext.currentProxy()去调用方法。@Servicepublic class HelloWorldServiceImpl implements HelloWorldService { @Autow...原创 2020-01-13 14:44:54 · 1341 阅读 · 1 评论 -
比较arraylist 和linkedList的效率(数据小于100000 linkedList插入快)
ArrayDeque的应用场景是什么?在很多场景下可以用来代替LinkedList,可以用做队列或者栈原创 2020-01-09 17:19:57 · 520 阅读 · 0 评论 -
EasyExcel
import com.alibaba.excel.EasyExcelFactory;import com.alibaba.excel.ExcelWriter;import com.alibaba.excel.context.AnalysisContext;import com.alibaba.excel.event.AnalysisEventListener;import com.alib...原创 2020-01-03 17:27:09 · 249 阅读 · 0 评论 -
参数校验样例
原创 2020-01-03 09:55:04 · 136 阅读 · 0 评论 -
异步接口调用
http的异步调用package com.example.asyncmethod;import com.fasterxml.jackson.annotation.JsonIgnoreProperties;@JsonIgnoreProperties(ignoreUnknown=true)public class User { private String name; priva...原创 2020-01-02 15:48:41 · 1160 阅读 · 1 评论 -
Spring获取ApplicationContext ,以及Bean
Spring中获取Bean 的方式:(根据方法名称获取Bean)Spring在代码中获取bean的几种方式最实用的方法是: import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; import org.springframework....原创 2020-01-02 13:39:51 · 701 阅读 · 0 评论 -
设计模式
工厂模式普通工厂模式--- 发送邮件和短信- 接口public interface Sender{ public void Send();}- 实现类public class MailSender implements Sender{ @Override public void Send(){ System.out.println("MailSender Metho...转载 2019-12-30 17:04:43 · 55 阅读 · 0 评论 -
项目启动报错
java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed。mysql8.0 在重启之后会报错,解决办法:URL 拼接allowPublicKeyRetrieval=true原创 2019-12-30 15:29:54 · 148 阅读 · 0 评论 -
Feign动态设置Header
来源Feign调用接口:/** * @author Liangzhifeng * date: 2018/9/13 */public interface UserInfoFeignClient { /** * 根据token获取用户信息 * @param token * @return */ @RequestMapping(val...转载 2019-12-25 14:21:54 · 2900 阅读 · 1 评论