JAVA基础
奋斗的蜗牛666
a young man with dreams.
展开
-
JVM指令
JVM常用命令原创 2022-06-21 16:56:42 · 153 阅读 · 0 评论 -
ArrayList底层jdk源码之modCount、expectedModCount解读
在AbstractList中,有一个全局变量madCount,记录了结构性改变的次数。结构性改变指的是那些修改了列表大小的操作,在迭代过程中可能会造成错误的结果。modCount交由迭代器(Iterator)和列表迭代器(ListIterator)使用,当进行next()、remove()、previous()、set()、add()等操作时,如果madCount的值意外改变,那么迭代器或者列表迭代器就会抛出ConcurrentModificationException异常。modCount和exp原创 2022-05-20 14:22:06 · 917 阅读 · 0 评论 -
Java字节码(Java bytecode)
参考文章:Java字节码(Java bytecode)_yarnecn的博客-CSDN博客_java字节码一文看懂Java字节码原创 2022-05-16 18:45:41 · 208 阅读 · 0 评论 -
父类引用指向子类对象
package hw.基础学习.继承;public class ExtendsTest { public static void main(String[] args) { System.out.println("--------父类引用指向子类对象-----------"); Father instance = new Son(); instance.printValue(); instance.printValue2(.原创 2022-04-25 20:09:20 · 6340 阅读 · 0 评论 -
java 上界和下界,Java 泛型之上界下界通配符
Java泛型之上界下界通配符Java教程是为JDK 8编写的。本页描述的示例和实践没有利用后续版本中引入的改进。通配符和子类型如 泛型,继承和子类型中所述,泛型类或接口仅仅因为它们的类型之间存在关系而无关。但是,您可以使用通配符在泛型类或接口之间创建关系。给定以下两个常规(非泛型)类:class A { /* ... */ }class B extends A { /* ... */ }编写以下代码是合理的:B b = new B();A a = b;此示例显示常规.原创 2022-04-25 19:12:54 · 2164 阅读 · 0 评论 -
spring @async
1.自定义线程池-两种方式import lombok.extern.slf4j.Slf4j;import org.springframework.aop.interceptor.AsyncUncaughtExceptionHandler;import org.springframework.context.annotation.Configuration;import org.springframework.scheduling.annotation.AsyncConfigurer;imp..原创 2022-03-24 15:45:31 · 120 阅读 · 1 评论 -
Java-五种线程池,四种拒绝策略,三种阻塞队列-转
Java-五种线程池,四种拒绝策略,三种阻塞队列三种阻塞队列: BlockingQueue<Runnable> workQueue = null; workQueue = new ArrayBlockingQueue<>(5);//基于数组的先进先出队列,有界 workQueue = new LinkedBlockingQueue<>();//基于链表的先进先出队列,无界 workQueue = new SynchronousQueue...原创 2022-03-02 11:29:05 · 139 阅读 · 0 评论 -
map按key或者value排序
public static void main(String[] args) { // TreeMap 按key 升序 Map<Integer, String> map1 = new TreeMap<>(); map1.put(3, "asdasd"); map1.put(1, "qweasd"); map1.put(2, "asd"); map1.forEach((key, valu..原创 2022-02-16 16:43:38 · 164 阅读 · 0 评论 -
线程安全的List
获取线程安全的List我们可以通过Vector、Collections.synchronizedList()方法和CopyOnWriteArrayList三种方式读多写少的情况下,推荐使用CopyOnWriteArrayList方式读少写多的情况下,推荐使用Collections.synchronizedList()的方式三种线程安全的List_橙不甜橘不酸的博客-CSDN博客_线程安全的list...原创 2022-02-10 16:29:53 · 12222 阅读 · 0 评论 -
事务的失效
事务方法失效@Transactional 加于private方法, 无效@Transactional 加于未加入接口的public方法, 再通过普通接口方法调用, 无效@Transactional 加于未加入接口的public方法, 再通过它类调用, 有效@Transactional 加于接口方法, 无论下面调用的是private或public方法, 都有效@Transactional 加于接口方法后, 被本类普通接口方法直接调用, 无效@Transactional 加于接口方法原创 2022-02-08 15:41:11 · 528 阅读 · 0 评论 -
String split 总结
1、如果用“.”作为分隔的话,必须是如下写法:String.split("\\."),这样才能正确的分隔开,不能用String.split(".");2、如果用“|”作为分隔的话,必须是如下写法:String.split("\\|"),这样才能正确的分隔开,不能用String.split("|");“.”和“|”都是转义字符,必须得加"\\";3、如果在一个字符串中有多个分隔符,可以用“|”作为连字符,比如:“a=1 and b =2 or c=3”,把三个都分隔出来,可以用String.spl原创 2022-01-14 16:20:39 · 117 阅读 · 0 评论