- 博客(28)
- 收藏
- 关注
原创 listpack如何遍历?如何解决ziplist连锁更新问题?(五)
listpack如何遍历?,如何解决ziplist连锁更新问题?(五)
2022-08-28 13:00:00 1239 1
原创 mysql中count(1) ?,还是count(*) ?关于count的那些事
关于count()的那些事不同的执行引擎MyISAM 引擎把一个表的总行数存在了磁盘上,因此执行 count() 的时候会直接返回这个数,效率很高;InnoDB 它执行 count() 的时候,需要把数据一行一行地从引擎里面读出来,然后累积计数。那为什么 InnoDB 不跟 MyISAM 一样,也把数字存起来呢?这是因为即使是在同一个时刻的多个查询,由于多版本并发控制(MVCC)的原因,InnoDB 表“应该返回多少行”也是不确定的。并且一般业务中查询可能是有条件。比如:t表一共10000条数
2021-12-03 16:40:03 235 1
原创 基本数据类型int,包装类Integer,字符串String的相互转化--》NumberFormatException异常
int,Integer,String转化Int —> Integer1.自动装箱int a = 1;Integer t = a;2.通过构造器int a = 1;Integer t = new Integer(a);Integer —> int1.自动拆箱Integer a = 1;int t = a;2.调用包装类对象的方法:xxxValue()Integer a = 1;int t = a.intValue();Integer —> St
2021-11-29 09:00:00 155
原创 并发Lock聊聊AQS,AbstractQueuedSynchronize
简单聊聊AQS,AbstractQueuedSynchronize你们知道并发的baba的谁吗?生前不识Doug Lea,并发学了也枉然!Java并发编程核心在于java.concurrent.util这个包,围绕着许多并发处理工具,其中,绕不开AbstractQueuedSynchronize。AQS特性我们需要重点关注下面几个点1.AQS内部维护state,表示资源的可用状态private volatile int state;state三种访问方式getState()set
2021-11-23 21:32:09 350
原创 一篇就够,synchronized原理详解
synchronized详解在多线程同时访问一个共享变量时,volatile是一个轻量级的解决方案,但是volatile只能修饰一个变量并且不保证原子性。在Java中还提供了两种方式实现同步互斥访问:synchronized和Lock其实这些本质上就是加锁,加锁目的:序列化访问临界资源,即同一时刻只能有一个线程访问临界资源(同步互斥访问) 不过有一点需要区别的是:当多个线程执行一个方法时,该方法内部的局部变量并不是临界资源,因为这些局部变量是在每个线程的 私有栈中,因此不具有共享性,不会导致线程安全
2021-11-19 09:00:00 12389
原创 Foreach小坑,只遍历一半?Iterator
foreach原理和注意小坑,Iterator1.foreach的原理先看一段代码 public static void main(String[] args) { ArrayList<Object> list = new ArrayList<>(); list.add("1"); list.add("2"); for (Object o : list) { System.out.p
2021-11-18 13:41:28 425
原创 面向对象?这样说
对象和类,变量1.面向过程和面向对象从语言上来说:对于C语言,是面向过程的对于C++和Java,时面向对象的那么什么是面向过程,面向对象的呢?比如做饭,面向过程:首先淘米,再洗米,再放进电饭煲,再加热面向对象:要有米,要有电饭煲米可以淘,可以洗,电饭煲可以加热,米可以作为属性传给电饭煲面向过程是流程化的解决方案,一步一步去干什么;面向对象是以对象为中心,抽象出需求的对象,再给对象描绘属性和行为。通俗的说,面向对象就是这个事件有哪些概念,我要设计哪些类来表示这些概念,类要
2021-11-17 16:43:11 173
原创 Java基本数据类型及转换
Java数据类型1.八种基本数据类型Java提供了八种基本数据类型:四种整数型:byte,short,int,long两种浮点型:float,double一种字符类型:char一种布尔型:boolean数据类型默认值byte0short0int0long0Lfloat0.0fdouble0.0dchar‘u0000’booleanfalse2.自动转换除了boolean类型其他7种基本数据类型都可以转换。
2021-11-17 14:52:27 446
原创 关于ArrayList和LinkedList区别,你可能忽略的RandomAccess接口
关于ArrayList和LinkedList RandomAccess接口1.ArrayList和Linkedlist面试常问ArrayList和LinkedList有什么区别,ArrayList底层是基于动态数组实现,LinkedList是基于双向链表实现对于数组,我们知道随机访问速度快,因为可以通过索引也就是下标,或者说是指针。当然数组的缺点也很明显,在插入和删除时,数组的元素可能要移位。链表插入和删除都很快,只是指针的指向改变,但是查找就要一个个遍历了,这也是它的缺点。以上其实最
2021-11-16 21:34:23 271
原创 不能不了解的JMM & Volatile
JMM & Volatile前面说了在没有JMM下,多线程情况时会有一些问题,那么JMM是怎么解决这些问题的呢?没有看JMM的可以看一下前面的文章,这是链接:Java内存模型volatile的可见性一般情况下,对于共享变量的操作都是加锁实现,Java中提供了Volatile关键字确保其他线程能看到共享变量的改变,使得变量的保持一致性的。Volatile做了两件事情:将当前处理器缓存行的数据写回到系统内存一个处理器的缓存回写到内存会导致其他处理器的缓存无效在高速缓存架构下,处理器
2021-11-11 14:59:57 866
原创 聊聊Java内存模型
Java内存模型1.什么是Java内存模型在聊Java内存模型时,首先要搞清楚什么是Java内存模型?所谓内存模型是规范或规则,这个规则定义了线程对各种变量的访问方式。这种变量针对的是堆里面的共享变量,例如实例对象,数组等。CPU在摩尔定律下,速度在每18个月就翻一倍,然而内存和硬盘速度远远不及,为了解决这些问题,就诞生了CPU多级缓存架构。但对于这些变量的操作,在Java中所说的每次操作后都会对主内存的数据拷贝到工作内存,形成变量副本。由于工作内存是线程私有的,那么对于一个线程操作共享变量来说,其他
2021-11-10 15:23:16 873
原创 面试题3:数组中重复的数字
剑指offer面试题3:数组中重复的数字题目描述:在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中第一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。数组排序把输入数组作排序处理,在重头扫描。采用排序,时间复杂度O(nlogn)。哈希表利用Hashset,表中不能存相同数据的特征。表中如果没有就
2021-01-16 16:16:09 57
原创 更换镜像不行?解决:Cannot resolve plugin org.apache.maven.plugins:maven-clean-plugin:2.5
解决:Cannot resolve plugin org.apache.maven.plugins:maven-clean-plugin:2.5发现更换镜像也无法解决后:在pom.xml文件里加上插件例如我加上:<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> .
2020-07-27 17:51:00 295
原创 servlet设置了utf-8还出现乱码情况
加上这两行resp.setCharacterEncoding(“utf-8”);resp.setHeader(“Content-Type”,“text/html;charset=utf-8”);注意一定要加在开头写在后面没作用
2020-07-17 11:53:25 708 1
转载 史上最全IO流,看这个就够
史上最全IO流,看这个就够https://www.cnblogs.com/yichunguo/p/11775270.html
2020-07-13 16:10:59 154
原创 this和super对比
this和super对比 1、super是一个关键字,全部小写。 2、super和this对比着学习。 this: this能出现在实例方法和构造方法中。 this的语法是:“this.”、“this()” this不能使用在静态方法中。 this. 大部分情况下是可以省略的。 this.什么时候不能省略呢? 在区分局部变量和实例变量的时候不能省略。 public void setName(String name){ this.n
2020-07-07 15:49:30 274 2
原创 java 语言特性
第一天 java 笔记1. java语言的特性1.1 简单性在java语言中真正操作内存的是:JVM(java 虚拟机)所有的java程序都是在java虚拟机中运行而java虚拟机执行过程中再去操作内存对于C或者C++来说,程序员都是可以直接通过指针操作内存的java语言屏蔽了指针概率,不能直接操作指针,或者说不能直接操作内存。优点:不容易导致内存泄露缺点:效率问题,驾驶感比较差比如飞机航行,C是飞机驾驶员,java是乘客java语言底层是C++,所有JVM是C++写好的虚
2020-07-03 19:25:54 191
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人