- 博客(4)
- 收藏
- 关注
原创 Java实现LRU,手写双向链表
else if(size==capacity){ //不存在结点,分类讨论 1.容量已满。if(map.containsKey(key)){ //存在结点,将结点放置在队尾。else{ //2.容量未满,直接添加即可。//下面是移除头结点。int size=0;//双向链表实现,如何使得时间为O(1)?直接取下结点,在头尾插入。//将结点插入到队尾。
2023-04-10 12:47:53
214
1
原创 Java类加载时的初始化和实例的初始化
类加载时的初始化和实例的初始化过程比较容易混淆,类加载时的初始化过程是JVM对Java代码进行编译之后,对于静态代码块(用static修饰,{ }的代码块)和静态变量(static修饰的变量)的初始化语句做了执行,而类实例的初始化代码是在创建类的实例的时候一次性执行的代码块,在实例的整个生命周期之内只执行一次。这里的static修饰的代码块,在程序进行main方法之前就会执行,所以先输出了"A?",在创建类B的实例时,首先会创建A的实例,所以输出顺序为"A"、"B"。
2023-04-09 15:42:57
140
原创 Mysql explain命令学习
type字段表示这条sql语句的执行效率等级,一共有8个等级,如何理解记忆这个等级呢,实际上,可以根据不同type所返回的record(记录)数来把这8个等级分为三档,我把它们分为single record、serveral recoreds和more records。在进行mysql语句调优的过程中,一般是会通过慢查询日志来查看查询速度较慢的sql语句,定位到这些sql语句之后,通过explain命令来查看sql语句的执行策略,explain命令可以显示一条sql语句的执行策略。
2023-04-09 15:33:47
340
1
转载 JAVA简单任务队列实现
Runnable task=()-> System.out.println("当前任务ID为"+atomicInteger.incrementAndGet()+",执行的线程名为"使用JAVA实现了一个简单的任务队列,该任务队列包含核心线程数、任务队列两个参数。//多线程的情况下为了保证数据的原子性,使用了原子类。在初始化线程池时,就直接生成线程到核心线程数,并且执行线程。执行的线程不断地尝试获取任务队列中的任务执行。
2023-04-02 15:00:32
559
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人