面试知识点汇总
文章平均质量分 86
xk_一步一步来
一步一步
展开
-
深入理解Java对象的创建过程:类的初始化与实例化
https://blog.csdn.net/justloveyou_/article/details/72466416摘要: 在Java中,一个对象在可以被使用之前必须要被正确地初始化,这一点是Java规范规定的。在实例化一个对象时,JVM首先会检查相关类型是否已经加载并初始化,如果没有,则JVM立即进行加载并调用类构造器完成类的初始化。在类初始化过程中或初始化完毕后,根据具体情况才会去对类...转载 2019-04-25 18:44:11 · 508 阅读 · 0 评论 -
常用的数据库有哪些?常见的nosql数据库有哪些?以及他们的特点与区别?
常用的数据库有哪些?redis用过吗?常见的主流数据库(DBMS):https://blog.csdn.net/gengkui9897/article/details/89294936关系型数据库MySQL数据库Microsoft SQL Server数据库Oracle数据库Postgresql数据库Sybase数据库DB2数据库Access数据库非关系型数据库Mong...转载 2019-04-26 12:46:44 · 2887 阅读 · 0 评论 -
面试中关于Redis的问题看这篇就够了
https://blog.csdn.net/qq_34337272/article/details/80012284看别人写的面经发现redis在面试中还是比较常问的(笔主主Java方向)。所以查阅官方文档以及他人造好的轮子,总结了一些redis面试和学习中你必须掌握的问题。事无巨细,不可能囊括到所有内容,尽量把比较常见的写出来。欢迎关注我的微信公众号:“Java面试通关手册”,也可以加我微信:...转载 2019-04-26 14:01:29 · 396 阅读 · 0 评论 -
缓存雪崩、缓存穿透、缓存与数据库双写一致
Redis数据类型 最为常用的数据类型主要有五种:String, Hash, List, Set和SortedSet. redis内部使用一个redisObject对象来表示所有的key和value。redisObject最主要的信息如下图所示: type代表一个value对象具体是何种数据类型,encoding是不同数据类型在redis内部的存储方式,比如:type=string代表va...转载 2019-01-05 16:25:51 · 333 阅读 · 2 评论 -
数据库索引的优缺点以及什么时候数据库索引失效
https://blog.csdn.net/u013310119/article/details/525276321. 什么是索引:索引就像是书的目录,是与表或视图关联的磁盘上结构,可以加快从表或视图中检索行的速度。索引中包含由表或视图中的一列或多列生成的键。这些键存储在一个结构(BTree)中,使SQL可以快速有效地查找与键值关联的行。2. 为什么要建立索引,即索引的优点:① ...转载 2019-04-26 14:31:18 · 4040 阅读 · 1 评论 -
事务具有的四个特性ACID、事务之间的相互影响、事务隔离级别、数据库中的范式、数据库三级封锁协议
谈谈数据库的ACID与事务之间的相互影响:https://blog.csdn.net/qq_32534441/article/details/88637390理解事务的4种隔离级别:https://blog.csdn.net/qq_32534441/article/details/88640259第一范式,第二范式,第三范式,BCNF范式理解:https://blog.csdn.net/...原创 2019-04-26 16:20:08 · 365 阅读 · 0 评论 -
MySQL的主从复制、主从延时优化、读写分离、分区、分表、分库、分片
MySQL的主从复制原理:https://blog.csdn.net/qq_32534441/article/details/88632458MySQL主从复制面试之作用和原理:https://blog.csdn.net/qq_32534441/article/details/88632451MySQL主从延时这么长,要怎么优化?https://blog.csdn.net/qq_3253...原创 2019-04-26 16:58:41 · 334 阅读 · 0 评论 -
MyISAM和InnoDB引擎的区别
区别构造上的区别:MyISAM在磁盘上存储成三个文件,其中.frm文件存储表定义;.MYD (MYData)为数据文件;.MYI (MYIndex)为索引文件。而Innodb是由.frm文件、表空间(分为独立表空间或者共享表空间)和日志文件(redo log)组成。事务上的区别:MyISAM不支持事务,而InnoDB支持事务。锁上的区别:MyISAM使用的是表锁;而InnoDB使用的行锁(...原创 2019-04-26 20:05:56 · 147 阅读 · 0 评论 -
数据库常见面试题(附答案)
https://blog.csdn.net/qq_22222499/article/details/79060495文章目录1.事务四大特性2.数据库隔离级别3.MYSQL的两种存储引擎区别(事务、锁级别等等),各自的适用场景4.索引有B+索引和hash索引5.聚集索引和非聚集索引6.索引的优缺点,什么时候使用索引,什么时候不能使用索引7.InnoDB索引和MyISAM索引的区别8.索引的底层实...转载 2019-04-26 20:22:31 · 1294 阅读 · 0 评论 -
JVM问题合集
JVM垃圾处理方法(标记清除、复制、标记整理)?【深入Java虚拟机】之五:Java垃圾收集机制:https://blog.csdn.net/qq_32534441/article/details/860982551.1GC用的引用可达性分析算法中,哪些对象可作为GC Roots对象?• Java虚拟机栈中的对象• 方法区中的静态成员• 方法区中的常量引用对象• 本地方法区中的J...原创 2019-04-26 23:55:10 · 224 阅读 · 0 评论 -
Http和https的区别
• http是HTTP协议运行在TCP之上。所有传输的内容都是明文,客户端和服务器端都无法验证对方的身份。• https是HTTP运行在SSL/TLS之上,SSL/TLS运行在TCP之上。所有传输的内容都经过加密,加密采用对称加密,但对称加密的密钥用服务器方的证书进行了非对称加密。此外客户端可以验证服务器端的身份,如果配置了客户端验证,服务器方也可以验证客户端的身份。• https协议需要...转载 2019-04-27 10:46:35 · 287 阅读 · 0 评论 -
TCP如何保证可靠传输?三次握手及四次挥手过程?为什么TCP连接需要三次握手,两次不可以吗
TCP为了提供可靠传输:(1)首先,采用三次握手来建立TCP连接,四次握手来释放TCP连接,从而保证建立的传输信道是可靠的。(2)其次,TCP采用了连续ARQ协议(回退N,Go-back-N;超时自动重传)来保证数据传输的正确性,使用滑动窗口协议来保证接方能够及时处理所接收到的数据,进行流量控制。(3)最后,TCP使用慢开始、拥塞避免、快重传和快恢复来进行拥塞控制,避免网络拥塞。TCP提供...原创 2019-04-27 10:51:08 · 3422 阅读 · 5 评论 -
如果客户端不断的发送请求连接会怎样?
• 服务器端会为每个请求创建一个链接,然后向client端发送创建链接时的回复,然后进行等待客户端发送第三次握手数据包,这样会白白浪费资源。DDos就是利用这种方式进行攻击的。• DDos攻击简单的说就是想服务器发送链接请求,首先进行第一步:客户端向服务器端发送连接请求数据包(1)第二步:服务器向客户端回复连接请求数据包(2),然后服务器等待客户端发送tcp/ip链接的第三步数据包(3)...原创 2019-04-27 10:54:17 · 2279 阅读 · 0 评论 -
如何分辨恶意的TCP连接?
如何防止模拟的http的恶意请求?https://blog.csdn.net/mituan1234567/article/details/44833681TCP连接暗藏杀机 查!https://www.jb51.net/softjc/29949.html怎样防止恶意连接?https://bbs.csdn.net/topics/360098365...原创 2019-04-27 10:57:14 · 922 阅读 · 0 评论 -
GET和POST的区别?
先看 http://blog.csdn.net/qq_33417547/article/details/69055518。 提到了RESTful风格想要诠释的http的本意。再看 http://blog.csdn.net/xdd19910505/article/details/49366653。最后看https://mp.weixin.qq.com/s?__biz=MzI3NzIzMzg3M...原创 2019-04-27 10:58:28 · 21609 阅读 · 6 评论 -
滑动窗口算法与TCP的拥塞处理
参考 https://blog.csdn.net/qq_32534441/article/details/88686147 中的滑动窗口部分。TCP-IP详解:滑动窗口(Sliding Window)https://blog.csdn.net/wdscq1234/article/details/52444277原创 2019-04-27 11:07:21 · 255 阅读 · 0 评论 -
从输入网址到获得页面的过程
很全面的http协议解析:https://blog.csdn.net/qq_32534441/article/details/88684048一次完整的HTTP请求过程:https://blog.csdn.net/qq_32534441/article/details/88684100完整的HTTP请求会经历以下过程:https://blog.csdn.net/qq_32534441/a...原创 2019-04-27 11:10:40 · 707 阅读 · 0 评论 -
计算机网络基础及IP、TCP、UDP格式、CSMA/CD
面试总结之time_wait状态产生的原因,危害,如何避免:https://blog.csdn.net/qq_32534441/article/details/88655725CSMA/CD 及其二进制指数退避算法:https://blog.csdn.net/qq_32534441/article/details/88659857IP、TCP、UDP首部详解:https://blog.c...原创 2019-04-27 11:14:46 · 367 阅读 · 0 评论 -
计算机网络面试问题汇总
面试总结之time_wait状态产生的原因,危害,如何避免:https://blog.csdn.net/qq_32534441/article/details/88655725计算机网络面试问题集锦:https://blog.csdn.net/qq_32534441/article/details/88655480搞定计算机网络面试,看这篇就够了:https://blog.csdn.ne...原创 2019-04-28 10:07:22 · 940 阅读 · 0 评论 -
操作系统基础知识
操作系统:概述:https://blog.csdn.net/qq_32534441/article/details/88945780进程与线程:https://blog.csdn.net/qq_32534441/article/details/88945867原创 2019-04-28 15:44:04 · 200 阅读 · 0 评论 -
虚拟存储器、分页、分段、抖动、工作集和页面置换算法
内存管理(了解):https://blog.csdn.net/qq_32534441/article/details/88945904设备管理(了解):https://blog.csdn.net/qq_32534441/article/details/88945921虚拟存储器之概述:https://blog.csdn.net/qq_32534441/article/details/88...原创 2019-04-28 15:53:03 · 457 阅读 · 0 评论 -
死锁、银行家算法
死锁的概念: 死锁是指多个进程在运行过程中因争夺资源造成的一种僵局。若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。可剥夺资源和不可剥夺资源 系统中的资源可以分为两类,一类是可剥夺资源,是指某进程在获得这类资源后,该资源可以再被其他进程或系统剥夺。例如,优先权高的进程可以剥夺优先权低的进程的处理机。又如,内存区可由存储器管理程...原创 2019-04-28 15:57:12 · 328 阅读 · 0 评论 -
进程同步与PV操作
进程同步:https://blog.csdn.net/qq_32534441/article/details/88948281PV操作简单理解:https://blog.csdn.net/qq_32534441/article/details/88949763进程同步的经典问题:司机售票员&问题生产者消费者问题&哲学家进餐问题&读者写者问题:https://blo...原创 2019-04-28 16:00:07 · 2195 阅读 · 0 评论 -
进程间通信有哪几种方式?
无名管道( pipe ):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。高级管道(popen):将另一个程序当做一个新的进程在当前程序进程中启动,则它算是当前程序的子进程,这种方式我们成为高级管道方式。有名管道 (named pipe) : 有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。消息队列( me...原创 2019-04-28 16:01:55 · 11508 阅读 · 0 评论 -
面向对象的三大特征和五大原则
面向对象的三大特性 1.封装 所谓封装,就是将客观事物封装成抽象的类,并且类可以把数据和方法让可信的类或者对象进行操作,对不可信的类或者对象进行隐藏。类就是封装数据和操作这些数据代码的逻辑实体。在一个类的内部,某些属性和方法是私有的,不能被外界所访问。通过这种方式,对象对内部数据进行了不同级别的访问控制,就避免了程序中的无关部分的意外改变或错误改变了对象的私有部分。2....原创 2019-04-24 14:17:27 · 126 阅读 · 0 评论 -
HashMap 与HashTable的区别
https://blog.csdn.net/wangxing233/article/details/79452946HashMap 与HashTable的区别HashMap与Hashtable的区别是面试中经常遇到的一个问题。这个问题看似简单,但如果深究进去,也能了解到不少知识。本文对两者从来源,特性,算法等多个方面进行对比总结。力争多角度,全方位的展示二者的不同,做到此问题的终结版。1 ...转载 2019-04-24 14:06:53 · 327 阅读 · 0 评论 -
HashMap与ConcurrentHashMap的区别
https://blog.csdn.net/xuefeng0707/article/details/40834595从JDK1.2起,就有了HashMap,正如前一篇文章所说,HashMap不是线程安全的,因此多线程操作时需要格外小心。在JDK1.5中,伟大的Doug Lea给我们带来了concurrent包,从此Map也有安全的了。ConcurrentHashMap具体是怎么实现线程安...转载 2019-04-24 14:43:33 · 286 阅读 · 0 评论 -
面试中linux常见的20个命令
1.查找文件find / -name filename.txt根据名称查找/目录下的filename.txt文件。2.查看一个程序是否运行ps –ef|grep tomcat查看所有有关tomcat的进程3.终止线程kill -9 19979终止线程号位19979的线程4.查看文件,包含隐藏文件ls -al5.当前工作目录pwd6.复制文件包括其子文件到自定目录cp -...原创 2019-04-29 09:08:01 · 4937 阅读 · 0 评论 -
Linux下如何进行进程调度的?
https://blog.csdn.net/magoyang/article/details/51626327https://blog.csdn.net/eroswang/article/details/1907552https://blog.csdn.net/andylauren/article/details/70160903https://blog.csdn.net/gatieme/a...原创 2019-04-29 09:15:47 · 814 阅读 · 0 评论 -
常用的hash算法有哪些
常用的hash算法有哪些?• 加法Hash;把输入元素一个一个的加起来构成最后的结果• 位运算Hash;这类型Hash函数通过利用各种位运算(常见的是移位和异或)来充分的混合输入元素• 乘法Hash;这种类型的Hash函数利用了乘法的不相关性(乘法的这种性质,最有名的莫过于平方取头尾的随机数生成算法,虽然这种算法效果并不好);jdk5.0里面的String类的hashCode()方法也使用...原创 2019-04-29 09:23:24 · 20554 阅读 · 1 评论 -
几种经典的hash算法
一般的说,Hash函数可以简单的划分为如下几类:1. 加法Hash;2. 位运算Hash;3. 乘法Hash;4. 除法Hash;5. 查表Hash;6. 混合Hash;下面详细的介绍以上各种方式在实际中的运用。一 加法Hash所谓的加法Hash就是把输入元素一个一个的加起来构成最后的结果。标准的加法Hash的构造如...转载 2019-04-29 10:09:41 · 2026 阅读 · 0 评论 -
构造相同hash的字符串进行攻击,这种情况应该怎么处理?JDK7如何处理?
当客户端发送一个请求到服务器,如果该请求中带有参数,服务器端会将参数名-参数值作为key-value保存在HashMap中。如果有人恶意构造请求,在请求中加入大量相同hash值的String参数名(key),那么在服务器端用于存储这些key-value对的HashMap会被强行退化成链表,如图: 如果数据量足够大,那么在查找,插入时会占用大量CPU,达到拒绝服务攻击的目的。怎么处理:限...原创 2019-04-24 15:31:28 · 598 阅读 · 0 评论 -
String,StringBuffer与StringBuilder的区别
String,StringBuffer与StringBuilder的区别?String 字符串常量StringBuffer 字符串变量(线程安全)StringBuilder 字符串变量(非线程安全)简要的说, String 类型和 StringBuffer 类型的主要性能区别其实在于 String 是不可变的对象, 因此在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 ...原创 2018-11-07 15:45:49 · 132 阅读 · 0 评论 -
"=="、equals和hashCode有什么区别
1)“==”运算符用来比较两个变量的值是否相等。也就是说,该运算符用于比较变量对应的内存中所存储的数值是否相同,要比较两个基本类型的数据或两个引用变量是否相等,只能使用“==”运算符。具体而言,如果两个变量是基本数据类型,可以直接使用“==”运算符来比较其对应的值是否相等。如果一个变量指向的数据是对象(引用类型),那么,...原创 2019-04-24 16:17:45 · 106 阅读 · 0 评论 -
Java序列化,如何实现序列化和反序列化?常见的序列化协议有哪些?
https://blog.csdn.net/calledWWW/article/details/79307706什么是Java序列化将JVM中的对象转化字节流,或者将该字节流存储到硬盘上(持久化存储),用于以后恢复回对象(反序列化),或者将该字节流通过网络传输,之后在网络的其他节点恢复成对象(反序列化)。Java序列化的作用将JVM中的对象转化为字节流,方便存储到硬盘上或者在网络上传...转载 2019-04-24 16:29:01 · 733 阅读 · 0 评论 -
缓存相关
关于常见的几种缓存算法:https://blog.csdn.net/constant_zyh188/article/details/73350576缓存雪崩、缓存穿透、缓存与数据库双写一致:https://blog.csdn.net/qq_32534441/article/details/85857734如何尽可能少的占用缓存资源 Redis:https://blog.csdn.net/...原创 2019-04-29 10:59:39 · 221 阅读 · 0 评论 -
什么是一致性哈希?用来解决什么问题
https://blog.csdn.net/qq_32534441/article/details/89670569原创 2019-04-29 11:05:06 · 607 阅读 · 0 评论 -
你知道的开源协议有哪些?你知道的开源软件有哪些?
Java相关开源软件:JDK eclipseTomcat Spring Hibernate MySQLMyBatisstruts参考: http://blog.csdn.net/agromach/article/details/1532223你知道的开源协议有哪些?• Mozilla Public License: MPL License,允许免费重发布、免费修改,但要求...原创 2019-04-29 11:10:26 · 1341 阅读 · 0 评论 -
JAVA多线程实现的三种方式
http://www.cnblogs.com/yezhenhan/archive/2012/01/09/2317636.htmlJAVA多线程实现方式主要有三种:继承Thread类、实现Runnable接口、使用ExecutorService、Callable、Future实现有返回结果的多线程。其中前两种方式线程执行完后都没有返回值,只有最后一种是带返回值的。1、继承Thread类实现多线...转载 2019-04-24 16:58:57 · 178 阅读 · 0 评论 -
什么是线程安全
https://blog.csdn.net/suifeng3051/article/details/52164267线程安全是多线程领域的问题,线程安全可以简单理解为一个方法或者一个实例可以在多线程环境中使用而不会出现问题。产生线程不安全的原因在同一程序中运行多个线程本身不会导致问题,问题在于多个线程访问了相同的资源。如,同一内存区(变量,数组,或对象)、系统(数据库,web service...转载 2019-04-24 17:24:45 · 575 阅读 · 0 评论