自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 自己总结的计算机网络常见面试题

自己的笔记,自己才看的懂,很多图片我都没有说明,见谅TCP/IP参考模型说说TCP的三次握手IP协议是无连接协议,他不会占用两个正在通信计算机的通信线路,这样IP就降低了对网络线路的需求,每条线可以同时满足不同计算机之间的通信需要。通过IP消息会被分割成较小的比较独立的包,并通过因特网在计算机之前传送,IP负责将每个包路由至他的目的地。IP协议没有做任何事情来确认数据包是否按顺序发送,...

2020-03-12 17:23:24 3509 1

原创 小总结:ArrayList 和LinkedList的面试题

ArrayList 无参数构造器构造,现在 add 一个值进去,此时数组的大小是多少,下一次扩容前最大可用大小是多少?此处数组的大小是 1,下一次扩容前最大可用大小是 10,因为 ArrayList 第一次扩容时,是有默认值的,默认值是 10,在第一次 add 一个值进去时,数组的可用大小被扩容到 10 了。如果我连续往 Arraylist 里面新增值,增加到第 11 个的时候,数组的大小是多...

2020-03-30 20:48:37 1067 2

原创 深入Java集合LinkedList

现在由大恶人付有杰来从增删改查几个角度轻度解析LinkedList的源码1.整体架构LinkedList 底层数据结构是一个双向链表(),整体结构如下图所示:链表中的每个节点都可以向前或者向后追溯,我们有几个概念如下:链表每个节点我们叫做 Node,Node 有 prev 属性,代表前一个节点的位置,next 属性,代表后一个节点的位置;first 是双向链表的头节点,它的前一个节...

2020-03-30 20:33:46 331

原创 深入Java集合ArrayList的源码解析

现在由大恶人付有杰来从增删改查几个角度轻度解析ArrayList的源码首先ArrayList的底层数据结构非常简单,就是一个数组。从源码第115行我们可以得出信息,他的默认数组长度是10。/** * Default initial capacity. */ private static final int DEFAULT_CAPACITY = 10;那么...

2020-03-30 19:30:57 551 1

原创 复习之路之JAVA多线程基础面试题

我自己总结的,我觉得很全了,本篇章针对多线程基础,不包括JUC有几种实现线程的方法?从不同的角度看有不同的答案,通常来说,可以分为两类,继承和实现的两种方式。准确的讲,实现线程只有一种方式,那就是构造Thread类,但是在Thread类里面,他的run方法有两种情况。第一种,实现一个runnable接口,重写他的run方法,然后再把这个实例传给Thread类,再让Thread类执行这个...

2020-03-18 11:39:20 1199

原创 复习之路之JAVA基础知识概括

摘抄自公开的笔记,一部分做自我补充。1. 面向对象和面向过程的区别面向过程 : 面向过程性能比面向对象高。 因为类调用时需要实例化,开销比较大,比较消耗资源,所以当性能是最重要的考量因素的时候,比如单片机、嵌入式开发、Linux/Unix 等一般采用面向过程开发。但是,面向过程没有面向对象易维护、易复用、易扩展。面向对象 :面向对象易维护、易复用、易扩展。 因为面向对象有封装、继承、多态性...

2020-03-17 17:11:20 253

原创 MySQL笔记(10)MySQL优化器选错索引

不知道你有没有碰到过这种情况,一条本来可以执行得很快的语句,却由于 MySQL 选错了索引,而导致执行速度变得很慢?我们先建一个简单的表,表里有 a、b 两个字段,并分别建上索引:CREATE TABLE `t` (`id` int(11) NOT NULL,`a` int(11) DEFAULT NULL,`b` int(11) DEFAULT NULL,PRIMARY KEY (`...

2020-03-14 22:37:22 336

原创 MySQL笔记(9)普通索引和唯一索引

文章来源:极客时间MySQL实战45讲 评论区更精彩,有能力去支持哈假设你在维护一个市民系统,每个人都有一个唯一的身份证号,而且业务代码已经保证了不会写入两个重复的身份证号。如果市民系统需要按照身份证号查姓名,就会执行类似这样的 SQL 语句:select name from CUser where id_card = 'xxxxxxxyyyyyyzzzzz';所以,你一定会考虑在 i...

2020-03-14 10:55:38 556 2

原创 MySQL笔记(8)多事务的隔离性

在事务隔离:为什么你改了我还看不见?和你讲事务隔离级别的时候提到过,如果是可重复读隔离级别,事务 T 启动的时候会创建一个视图 read-view,之后事务 T 执行期间,即使有其他事务修改了数据,这个事务看到的仍然跟在启动时看到的一样。也就是说,一个在可重复读隔离级别下执行的事务,好像与世无争,不受外界影响。但是,怎么减少行锁对性能的影响?,和你分享行锁的时候又提到,一个事务如果要更新一行,而...

2020-03-14 10:26:18 356

原创 MySQL笔记(4)深入浅出索引(上)

一句话简单来说,索引的出现其实就是为了提高数据查询的效率,就像书的目录一样。一本 500页的书,如果你想快速找到其中的某一个知识点,在不借助目录的情况下,那我估计你可得找一会儿。同样,对于数据库的表而言,索引其实就是它的“目录”。索引的常见模型索引的出现是为了提高查询效率,但是实现索引的方式却有很多种,所以这里也就引入了索引模型的概念。可以用于提高读写效率的数据结构很多,这里我先给你介绍三种常...

2020-03-14 09:33:33 413

原创 MySQL笔记(7)怎么减少行锁对性能的影响?

顾名思义,行锁就是针对数据表中行记录的锁。这很好理解,比如事务 A 更新了一行,而这时候事务 B 也要更新同一行,则必须等事务 A 的操作完成后才能进行更新。当然,数据库中还有一些没那么一目了然的概念和设计,这些概念如果理解和使用不当,容易导致程序出现非预期行为,比如两阶段锁。从两阶段锁说起你举个例子。在下面的操作序列中,事务 B 的 update 语句执行时会是什么现象呢?假设字段 id ...

2020-03-14 09:32:07 409

原创 MySQL笔记(6)全局锁和表锁

数据库锁设计的初衷是处理并发问题。作为多用户共享的资源,当出现并发访问的时候,数据库需要合理地控制资源的访问规则。而锁就是用来实现这些访问规则的重要数据结构。根据加锁的范围,MySQL 里面的锁大致可以分成全局锁、表级锁和行锁三类。全局锁全局锁就是对整个数据库实例加锁。MySQL 提供了一个加全局读锁的方法,命令是Flush tables with read lock (FTWRL)。当...

2020-03-14 09:07:41 325

转载 MySQL笔记(5)深入浅出索引(下)

在下面这个表 T 中,如果我执行 select * from T where k between 3 and 5,需要执行几次树的搜索操作,会扫描多少行?mysql> create table T (ID int primary key,k int NOT NULL DEFAULT 0, s varchar(16) NOT NULL DEFAULT '',index k(k))...

2020-03-13 23:26:10 326

原创 MySQL笔记(3)事务隔离:为什么你改了我还看不见?

我将会以 InnoDB 为例,剖析 MySQL 在事务支持方面的特定实现,并基于原理给出相应的实践建议,希望这些案例能加深你对 MySQL 事务原理的理解。隔离性与隔离级别提到事务,你肯定会想到 ACID(Atomicity、Consistency、Isolation、Durability,即原子性、一致性、隔离性、持久性),今天我们就来说说其中 I,也就是“隔离性”。当数据库上有多个...

2020-03-13 21:48:21 1537

转载 MySQL笔记(1)一条SQL查询语句是如何执行的?

因为自我感觉基础不太好,所以暂时回头进攻基础知识。我们经常说,看一个事儿千万不要直接陷入细节里,你应该先鸟瞰其全貌,这样能够帮助你从高维度理解问题。同样,对于MySQL 的学习也是这样。平时我们使用数据库,看到的通常都是一个整体。比如,你有个最简单的表,表里只有一个 ID 字段,在执行下面这个查询语句时:select * from T where ID = 10;我们看到的只是输入一条...

2020-03-13 20:27:24 485

原创 MySQL笔记(2)日志系统:一条SQL更新语句是如何执行的?

rt

2020-03-13 20:26:03 301 1

原创 JavaIO之NIO,BIO的复制文件的简单比较(3)

本文展示BIO,NIO复制文件的不同写法,和一丢丢的效率对比。在演示NIO之前 ,先简单说一下 NIO在BIO中,根据方向的不同,分为输入流,输出流,而在NIO中,就没有这个概念了,NIO中,提出了Channel的概念,一个通道是可以读也可以写的。channel通过和Buffer的交互,可以往buffer写数据也可以读数据,这是怎么实现的呢?首先,Buffer是一个数组,有三个重要的指针...

2020-03-09 22:12:55 393

原创 javaBIO之实现一个聊天室(2)

上篇简单实现了回音壁,但是这也太不够意思了,如果可以多人发言那就稍微有点意思了。这里先来说说java BIO 编程模型。BIO也就是我们经常说的java IO,在这种传统的模式下,如果要实现服务端服务,1.首先他要等待客户端连接吧?执行serverSocket.accept();会一直阻塞在这句话这里,直到有客户端连接才会做其他的事情。2.那么如何做到服务多个客户端呢?我们采用新开一个...

2020-03-09 21:43:06 274

原创 javaBIO之实现最简单的回音壁(1)

闲来无事做,不如写博客。今晚准备抽点时间,写一点java网络编程的BIO,NIO,AIO。本文从最简单的回音壁开始,我们也是要讲究循序渐进的哈~回音壁就是客户端向服务端发送一个消息,服务端原样的回复回来。在java中实现客户端和服务端通信,有很多的类。这里先演示最简单的。具体思路很简单实现也非常简单,就是服务端监听888端口,客户连接指定的IP地址,服务端读取客户端的消息,然后再写回去...

2020-03-09 20:33:17 422

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除