摘要: JDK集合源码之ArrayList解析(附带面试题举例) 1、ArrayList继承体系 ArrayList又称动态数组,底层是基于数组实现的List,与数组的区别在于,其具备动态扩展的能力。从继承体系图中可以看出。 ArrayList: public class ArrayList<E> exte 阅读全文
posted @ 2021-09-20 21:16 轻风格走一走 阅读(246) 评论(0) 推荐(0) 编辑
摘要: 任何编程语言中,其实都有浅拷贝和深拷贝的概念,java中也不例外。在对一个现有的对象进行拷贝操作的时候,是有浅拷贝和深拷贝之分的,他们在实际使用中,区别很大,如果对其进行混淆,可能会引发一些难以排查的问题。 本文就在java中的浅拷贝和深拷贝做一个详细的解说。 什么是浅拷贝和深拷贝? 首先需要明白, 阅读全文
posted @ 2021-09-09 14:12 轻风格走一走 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 设计模式 -- 单例模式 前言: 在面试的时候面试官会怎么在单例模式中提问呢?我们又该如何回答呢?可能在面试的时候会碰到这些问题: 为什么说饿汉式单例天生就是线程安全的呢? 传统的懒汉式单例为什么是非线程安全的? 怎么修改传统的懒汉式单例,使其线程变得安全? 双重检查模式、volatile关键字在单 阅读全文
posted @ 2021-08-18 17:38 轻风格走一走 阅读(59) 评论(0) 推荐(0) 编辑
摘要: i只需要执行一条指令,并不能保证多个线程i,操作同一个i变量,可以得到正确的结果。因为还有寄存器的因素,多个CPU对应多个寄存器。每次要先把i从内存中复制到寄存器,然后++,然后再把i复制到内存中,这需要至少步。从这个意义上讲,说i++是原子操作的并不对。 如此,假设两个线程的执行步骤如下: 1、线 阅读全文
posted @ 2021-07-24 09:25 轻风格走一走 阅读(785) 评论(0) 推荐(0) 编辑
摘要: B树、B+树详解 B树 前言 首先,为什么要总结B树、B+树的知识呢?最近在学习数据库索引调优相关知识,数据库系统普遍采用B树、B+树作为索引结构,例如 MYSQL的InnoDB引擎使用的就是B+树,理解不透彻B树,则无法理解数据库的索引机制,接下俩将用最简洁直白的内容来了解B树、B+树的数据结构。 阅读全文
posted @ 2021-07-19 12:47 轻风格走一走 阅读(547) 评论(0) 推荐(0) 编辑
摘要: java并发编程中的重排序问题 重排序 在多核处理器的环境下,编写的顺序结构,这种操作执行的顺序可能是没有保障的: 编译器、处理器可能会改变两个操作的先后顺序 这种一个处理器上执行的多个操作,在其他处理器来看它的顺序与目标代码指定的顺序可能是不一样的,这种现象称为重排序。 重排序是对内存访问有序操作 阅读全文
posted @ 2021-07-17 21:00 轻风格走一走 阅读(361) 评论(0) 推荐(0) 编辑
摘要: AVL树之java实现 AVL树的介绍: 一、判断二叉排序树是否平衡 AVL树是高度平衡的二叉树,他的特点是:AVL树种任何节点的两个子树的高度差最大差别为1 二叉排序树平衡的充分必要条件是器每个节点的左右子树高度差的绝对值小于1.叶子节点的高度为1,其父节点的高度为2,依次增加,直到root节点, 阅读全文
posted @ 2021-07-15 17:04 轻风格走一走 阅读(355) 评论(1) 推荐(0) 编辑
摘要: 1、pageEncoding="UTF-8"的作用是设置jsp编译成Servlet时使用的编码 2、contentType="text/html;charset=UTF-8"的作用是指定服务器响应给浏览器的编码 jsp页面要经过两次的编码,第一阶段会用pageEncoding,第二阶段会用utf8- 阅读全文
posted @ 2021-06-14 22:04 轻风格走一走 阅读(1017) 评论(0) 推荐(0) 编辑
摘要: 几种常用数据库连接池的使用 一、应用程序直接获取数据库连接的缺点 用户每次请求都需要向数据库获得链接,而数据库创建链接通常需要消耗相对较大的资源,创建时间也比较长。假设网站一天10w访问量,数据库服务器就需要创建10w次连接,极大的浪费数据库资源,并且极易造成数据库服务器内存溢出,拓机。这里以jav 阅读全文
posted @ 2021-05-25 20:47 轻风格走一走 阅读(1315) 评论(0) 推荐(0) 编辑
摘要: String类、static关键字、Arrays类、Math类 1.字符串不变:字符串的值在创建后不能被更改(注意 是值不能被更改 因为值是存放在常量池中的 字符串改变 改变的是指向 只是指针从一个值指向了另外一个值) String s1="abc"; s1+="d"; System.out.pri 阅读全文
posted @ 2021-03-16 19:48 轻风格走一走 阅读(77) 评论(0) 推荐(0) 编辑