GC
摘要:判断一个对象是否为垃圾: 该对象没有被其他对象所引用. 判定对象是否被引用的算法: 引用计数法,可达性分析算法. 可以作为GC Root的对象: 1 虚拟机栈中引用的对象(栈帧中的本地变量表) 2 方法区中常量引用对象 3 方法区中类静态引用的对象 4 本地方法栈JNI(Native方法)中引用的对
阅读全文
java基石-JVM
摘要:我对java这门语言的理解: 主要从以下几个方面阐述:1、java平台无关性(跨平台,一次编译,到处运行);2、GC;3、语言特性(反射,泛型,lamda表达式);4、面向对象(封装,继承,多态);5、类库(java本身自带的集合,并发库,网络库,IO,NIO等;6、异常处理) 如何实现平台无关的:
阅读全文
缓存中间件-Redis面试问题总结
摘要:Redis为什么快? Redis的QPS最新官方数据为 10W+的查询次数。 1、Redis是基于内存的 ,绝大部分的请求是纯粹的内存操作,执行效率高。 2、数据结构简单,对数据库库的操作也简单,数据复杂度为O(1)。 3、主线程(IO事件的处理,过期键的处理,集群协调等会被封装成周期性的任务轮询调
阅读全文
事务相关问题
摘要:事务隔离从低到高的种类: 1、读未提交 2、读已提交(oracle默认的事务隔离级别) 3、可重复读(mysql默认的事务隔离级别) 4、串行化(可以解决所有事务并发问题,但效率比较低,不适合并发比较高的场景) 事务并发访问引起的问题及如何避免: 更新丢失:数据库层面已经处理了该问题 脏读:读已提交
阅读全文
Mysql的InnoDB和MyISAM的锁模块
摘要:两种引擎关于锁方面的区别: 1、MyISAM默认是表级锁不支持行集锁。 2、InnoDB默认用的是行级锁也支持表级锁。 MyISAM总结:上了共享锁之后依然支持上共享锁,不支持上排他锁。先上排他锁,读或者写都是不允许的,这种特性也同样适用InnoDB引擎。 InnoDB:在sql没有用到索引的时候用
阅读全文
索引相关问题
摘要:密集索引和稀疏索引的区别 1、密集索引的每个搜索码值都对应一个索引值 2、稀疏索引只为索引码的某些键建立索引项 主流mysql数据库引擎对这两索引的选择: InnoDB: 1、如果一个主键被定义了,则改键作为密集索引。 2、如果没有主键被定义,那么该表的唯一非空索引则作为密集索引。 3、若不满足以上
阅读全文
索引之B-TREE定义及约束
摘要:B-tree的特点: 1、节点至少包括两个孩子 2、树中每个节点最多含有m个孩子 m>=2 3、除根结点及叶子节点外每个节点最多含有ceil(m/2)个孩子 4、所有的叶子节点都位于同一层 假设每个非终端节点中包含n个关键字信息,其中 a、Ki(i = 1~n)为关键字,且关键字按顺序升序排排序,即
阅读全文
Socket通信流程及示例
摘要:代码就是最好的文档 代码演示: // 服务端代码 public class ServerSocket { public static void main(String[] args) throws IOException { java.net.ServerSocket ss = new java.n
阅读全文
TCP和UDP的区别
摘要:TCP和UDP是OSI模型中传输层的协议,区别如下: 1、连接性:TCP连接需要经过三次握手,TCP提供可靠的通信传输,而UDP常用广播和细节交给应用层控制的通信传输,UDP是和消息的多播发布从单个点向多个点传输信息; 2、可靠性:TCP具有可靠性,而UDP可能会丢失数据; 3、有序性:TCP利用序
阅读全文
Tcp的三次握手和四次挥手
摘要:TCP协议的简介: 面向连接,可靠的基于字节流的传输层通信协议,将应用层的数据流分割成报文段发送给目标节点的TCP层,为了保证不丢包会为每个数据包打上序号,对方收到则发送ACK确认,未收则重传,使用校验和函数校验传输中是否有错误。 TCP报文头: 20位报文头 = 2位长度源端口 +2位长度的目标端
阅读全文
开放互联参考模型(OSI)
摘要:1、ISO的OSI(七层架构) 1.1 物理层:首先解决两台物理机的通信需求,例如:机器A往机器B发送数据(比特流),物理层大致做这样的事情,该层定义物理数据的标准,光纤的接口及各种传输介质的传输速率等,主要作用是传输比特流,及0101二进制数据,将他们转化为电流强弱来进行传输,到达目的后在转换为0
阅读全文