校招面试题
文章平均质量分 92
Tuzki_小辣鸡
这个作者很懒,什么都没留下…
展开
-
备战秋招:面试题1
MVCCHTTP和HTTPS区别1、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协...原创 2018-08-30 22:41:35 · 648 阅读 · 0 评论 -
面试题12
InnoDB页溢出会怎么办?我们知道数据页的大小是 16KB,Innodb 存储引擎保证了每一页至少有两条记录,如果一页当中的记录过大,会截取前 768 个字节存入页中,其余的放入 BLOB Page。行溢出数据InnoDB存储引擎可以将一条记录中的某些数据存储在真正的数据页面之外,即作为行溢出数据。 InnoDB存储引擎表是索引组织的,即B+树的结构。因此每个页中至少应该有两个行记录(否...原创 2019-01-22 17:54:30 · 223 阅读 · 0 评论 -
面试题11
阻塞IO,非阻塞IO(IO与NIO)阻塞IO应用程序调用IO函数,导致应用程序阻塞,等待数据准备好。如果数据没有准备好,一直等待数据准备好了,从内核拷贝到用户空间,IO函数返回成功指示。当用户线程发出IO请求之后,内核会去查看数据是否就绪,如果没有就绪就会等待数据就绪,而用户线程就会处于阻塞状态,用户线程交出CPU。当数据就绪之后,内核会将数据拷贝到用户线程,并返回结果给用户线程,用户线程才...原创 2019-01-08 09:44:05 · 181 阅读 · 0 评论 -
面试题10
找出两文件种包含的相同的url问题:给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a、b文件共同的url?分析:50亿个url,每个url64字节,就是320G,显然是无法一次读入内存的。因此这里需要采用分治法。方案:分治法,分支方法:哈希步骤:1 将AB两个文件,用相同的哈希函数,分解为1000个独立哈希值相同的小文件,这里哈希函数的设计是...原创 2018-12-26 11:05:50 · 322 阅读 · 0 评论 -
面试题9
缓存穿透缓存穿透是指查询一个一定不存在的数据,由于缓存是不命中时被动写的,并且出于容错考虑,如果从存储层查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到存储层去查询,失去了缓存的意义。在流量大时,可能DB就挂掉了,要是有人利用不存在的key频繁攻击我们的应用,这就是漏洞。解决方案有很多种方法可以有效地解决缓存穿透问题,1.最常见的则是采用布隆过滤器,将所有可能存在的数据哈希到...原创 2018-11-14 20:43:34 · 250 阅读 · 0 评论 -
备战秋招:面试题8
谈谈你对面向对象的理解在我理解,面向对象是向现实世界模型的自然延伸,这是一种“万物皆对象”的编程思想。在现实生活中的任何物体都可以归为一类事物,而每一个个体都是一类事物的实例。面向对象的编程是以对象为中心,以消息为驱动,所以程序=对象+消息。面向对象有三大特性,封装、继承和多态。封装就是将一类事物的属性和行为抽象成一个类,使其属性私有化,行为公开化,提高了数据的隐秘性的同时,使代码模块化。这...原创 2018-10-04 15:23:00 · 278 阅读 · 0 评论 -
备战秋招:面试题6
死锁产生的4个必要条件1、互斥:某种资源一次只允许一个进程访问,即该资源一旦分配给某个进程,其他进程就不能再访问,直到该进程访问结束。2、占有且等待:一个进程本身占有资源(一种或多种),同时还有资源未得到满足,正在等待其他进程释放该资源。3、不可抢占:别人已经占有了某项资源,你不能因为自己也需要该资源,就去把别人的资源抢过来。4、循环等待:存在一个进程链,使得每个进程都占有下一个进程所需的...原创 2018-09-19 14:35:39 · 219 阅读 · 0 评论 -
备战秋招:面试题7
volatile的原理对volatile修饰的变量进行修改时,JVM会向CPU发出Lock前缀指令:线程本身并不直接与主内存进行数据的交互,而是通过线程的工作内存来完成相应的操作。这也是导致线程间数据不可见的本质原因。因此要实现volatile变量的可见性,直接从这方面入手即可。对volatile变量的写操作与普通变量的主要区别有两点:(1)修改volatile变量时会强制将修改后的值刷新的...原创 2018-09-23 14:18:31 · 341 阅读 · 0 评论 -
备战秋招:面试题3
JAVA多线程实现的四种方式Java多线程实现方式主要有四种: 1. 继承Thread类 2. 实现Runnable接口 3. 实现Callable接口通过FutureTask包装器来创建Thread线程 4. 使用ExecutorService、Callable、Future实现有返回结果的多线程。HashMap和HashTable区别线程安全不同是否允许null...原创 2018-09-07 00:38:54 · 286 阅读 · 0 评论 -
备战秋招:面试题4
不可重复读和幻读的区别当然, 从总的结果来看, 似乎两者都表现为两次读取的结果不一致.但如果你从控制的角度来看, 两者的区别就比较大对于前者, 只需要锁住满足条件的记录 对于后者, 要锁住满足条件及其相近的记录我这么理解是否可以?避免不可重复读需要锁行就行 避免幻影读则需要锁表不可重复读和幻读的区别很多人容易搞混不可重复读和幻读,确实...原创 2018-09-10 01:19:10 · 256 阅读 · 0 评论 -
备战秋招:面试题2
error和exception区别error表示恢复不是不可能但是很苦难的情况下的一种严重问题,比如说内存溢出。不可能指望程序能处理这样的情况。exception表示一种设计或实现的问题,也就是说,他表示如果程序运行正常,从不会发生的情况。NollpointerException、ArrayOutOfBoundsException、ClassCastExceptionTCP释放链接...原创 2018-09-04 00:55:25 · 202 阅读 · 0 评论 -
备战秋招:面试题5
count(1)与count(*)比较1、如果你的数据表没有主键,那么count(1)比count(*)快2、如果有主键的话,那主键(联合主键)作为count的条件也比count(*)要快3、如果你的表只有一个字段的话那count(*)就是最快的啦4、count(*) count(1) 两者比较。主要还是要count(1)所相对应的数据字段。5、如果count(1)是聚索引,i...原创 2018-09-11 21:02:08 · 225 阅读 · 0 评论 -
面试题13
object有哪些方法hashCode()返回对象的哈希码值。hashCode()相等equals()不一定truefinalize()当垃圾收集确定不再有对该对象的引用时,垃圾收集器在对象上调用该对象。一个子类覆盖了处理系统资源或执行其他清理的finalize方法。clone()创建并返回此对象的副本HashMap便利方式(推荐使用entrySet())第一种:效率高Ma...原创 2019-05-16 00:04:26 · 208 阅读 · 0 评论