Java

Java Lock ReentrantLock ReentrantReadWriteLock

 Lock与Synchronized的区别:  1)Lock是一个接口,而synchronized是Java中的关键字,synchronized是内置的语言实现;  2)synchronized在发生异常时,会自动释放线程占有的锁,因此不会导致死锁现象发生;而Lock在发生异常时,如果没有主动通过u...

Java foreach

foreach循环也叫增强型的for循环,或者叫foreach循环。foreach循环是JDK5.0的新特性(其他新特性比如泛型、自动装箱等)。importjava.util.Arrays;publicclassMain{publicstaticvoidmain(String[]args){intarr[]=newin...
代码星球·2020-08-09

Java CopyOnWriteArrayList

Copy-On-Write简称COW,是一种用于程序设计中的优化策略。其基本思路是,从一开始大家都在共享同一个内容,当某个人想要修改这个内容的时候,才会真正把内容Copy出去形成一个新的内容然后再改,这是一种延时懒惰策略。从JDK1.5开始Java并发包里提供了两个使用CopyOnWrite机制实现的并发容器,它们是C...
代码星球·2020-08-09

Java8 新特性default

在JDK1.8的Iterator接口中packagejava.util;importjava.util.function.Consumer;publicinterfaceIterator<E>{booleanhasNext();Enext();defaultvoidremove(){thrownewUnsu...

Java Map操作

Map:键必须是唯一同步方法:Mapm=Collections.synchronizedMap(newTreeMap(...));Hashtable:基于散列表的实现  允许空键空值  线程安全HashMap:基于散列表的实现  允许空键空值  线程不安全  (与Hashtable基本一致)TreeMap:基于红黑树数...
代码星球·2020-08-09

Java List操作

 一、List:、有顺序以线性方式存储,可以存放重复对象线程安全方法:List list = Collections.synchronizedList(new LinkedList(...));LinkedList:双向链表实现存储  索引数据慢插入数度较快  线程不安...
代码星球·2020-08-09

Java Set操作

Set:无顺序,不包含重复的元素HashSet:为快速查找设计的Set。存入HashSet的对象必须定义hashCode()。 TreeSet:保存次序的Set,底层为树结构。使用它可以从Set中提取有序的序列。 LinkedHashSet:具有HashSet的查询速度,且内部使用链表维护元素的顺序...
代码星球·2020-08-09

Java集合 List,Set,Map

 一、List:、有顺序以线性方式存储,可以存放重复对象线程安全方法:List list = Collections.synchronizedList(new LinkedList(...));LinkedList:双向链表实现存储  索引数据慢插入数度较快  线程不安...
代码星球·2020-08-09

Java final,static 关键字

final关键字:这是无法改变的”或者“终态的”含义,它可以修饰非抽象类、非抽象类成员方法和变量。final类不能被继承,没有子类,final类中的方法默认是final的。final方法不能被子类的方法覆盖,但可以被继承。final成员变量表示常量,只能被赋值一次,赋值后值不再改变。...
代码星球·2020-08-09

Java ConcurrentHashMap

 通过分析Hashtable就知道,synchronized是针对整张Hash表的,即每次锁住整张表让线程独占,ConcurrentHashMap允许多个修改操作并发进行,其关键在于使用了锁分离技术。它使用了多个锁来控制对hash表的不同部分进行的修改。ConcurrentHashMap内部使用段(Segme...
代码星球·2020-08-09

Java Synchronized的用法

synchronized是Java中的关键字,是一种同步锁。它修饰的对象有以下几种: 1.修饰一个代码块,被修饰的代码块称为同步语句块,其作用的范围是大括号{}括起来的代码,作用的对象是调用这个代码块的对象; 2.修饰一个方法,被修饰的方法称为同步方法,其作用的范围是整个方法,作用的对象是调用这个方...
代码星球·2020-08-09

Java HashMap Demo

代码:importjava.util.HashMap;importjava.util.Iterator;importjava.util.Set;importjava.util.Map.Entry;publicclassMain{publicstaticvoidmain(String[]args){HashMap<...
代码星球·2020-08-09

Java hashCode

Java中的集合(Collection)有两类,一类是List,再有一类是Set。你知道它们的区别吗?前者集合内的元素是有序的,元素可以重复;后者元素无序,但元素不可重复。那么这里就有一个比较严重的问题了:要想保证元素不重复,可两个元素是否重复应该依据什么来判断呢?这就是Object.equals方法了。但是,如果每增...
代码星球·2020-08-09

SpringMVC 拦截器

拦截器接口-HandlerInterceptor自定义的拦截器,需要继承HandlerInterceptor接口,并且实现HandlerInterceptor中提供的三个方法:1.preHandle方法会在请求处理前被调用。这个方法返回boolean值,如果返回true则继续往下执行,如果返回false则中断。2.po...
代码星球·2020-08-09

Spring Boot 5 SpringSecurity身份验证

对于没有访问权限的用户需要转到登录表单页面。要实现访问控制的方法多种多样,可以通过Aop、拦截器实现,也可以通过框架实现(如:ApacheShiro、SpringSecurity)。pom.xml添加依赖<dependency><groupId>org.springframework.boot&...