Java常见面试题
文章平均质量分 70
Oeljeklaus
python开发,大数据,图数据,数据分析
展开
-
进程的通信方式
linux下的进程通信手段基本上是从Unix平台上的进程通信手段继承而来的。而对Unix发展做出重大贡献的两大主力AT&T的贝尔实验室及BSD(加州大学伯克利分校的伯克利软件发布中心)在进程间通信方面的侧重点有所不同。前者对Unix早期的进程间通信手段进行了系统的改进和扩充,形成了“system V IPC”,通信进程局限在单个计算机内;后者则跳过了该限制,形成了基于套接口(socket)...转载 2018-05-05 19:08:46 · 1284 阅读 · 0 评论 -
MyISAM和InnoDB的区别
答:主要有以下几点区别: a)构造上的区别 MyISAM在磁盘上存储成三个文件,其中.frm文件存储表定义;.MYD (MYData)为数据文件;.MYI (MYIndex)为索引文件。 而innodb是由.frm文件、表空间(分为独立表空间或者共享表空间)和日志文件(redo log)组成。 b)事务上的区别 myisam不支持事务;而innodb支持事务。 ...转载 2018-05-05 19:22:45 · 1210 阅读 · 0 评论 -
MySQL中的索引
一、零铺垫 在介绍B树之前,先来看另一棵神奇的树——二叉排序树(Binary Sort Tree),首先它是一棵树,“二叉”这个描述已经很明显了,就是树上的一根树枝开两个叉,于是递归下来就是二叉树了(下图所示),而这棵树上的节点是已经排好序的,具体的排序规则如下:若左子树不空,则左子树上所有节点的值均小于它的根节点的值若右子树不空,则右子树上所有节点的值均大于它的根节点的值它的左、右子树也分...转载 2018-05-05 21:05:38 · 1252 阅读 · 0 评论 -
一致性Hash(Consistent Hashing)原理剖析
引入在业务开发中,我们常把数据持久化到数据库中。如果需要读取这些数据,除了直接从数据库中读取外,为了减轻数据库的访问压力以及提高访问速度,我们更多地引入缓存来对数据进行存取。读取数据的过程一般为: 图1:加入缓存的数据读取过程对于分布式缓存,不同机器上存储不同对象的数据。为了实现这些缓存机器的负载均衡,可以使用式子1来定位对象缓存的存储机器:其中,o为对象的名称,n为机器的数量,m为机器的编号,h...转载 2018-04-27 19:48:31 · 1194 阅读 · 0 评论 -
数据库中join、left outer join 、right join、 inner join的比较
首先我们使用下列语句进行数据库的相关表的创建。create table user( id int primary key, name varchar(20) not null, age int );insert into user(id,name,age)values(1,"Marry",20),(2,"Mike",18),(3,"Nike",23);create tabl...原创 2018-04-28 17:50:13 · 1947 阅读 · 0 评论 -
HashMap详解
1.1HashMap1.1.1特点线程不安全,允许key和value为null1.1.2结构主要分为两个部分,第一是Entry数组,第二个是每一个数组元素,维护一个链表,用于解决Hash冲突。1.1.3如何Hashstatic final int hash(Object key) { int h; return (key == null) ? 0 : (h = ke...原创 2018-05-15 14:36:03 · 1206 阅读 · 0 评论 -
ArrayList详解
1.2ArrayList1.2.1特点线程不安全,动态数组实现1.2.2结构1.2.3实现接口实现了哪些接口public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable可以看出A...原创 2018-05-15 14:37:33 · 1460 阅读 · 0 评论 -
计算机网络(面试必备知识点)
第一章 概述互联网的组成以及几种网络传输方式边缘部分:由所有连接在互联网上的主机构成。这部分是用户直接使用的,用来通讯和数据共享。计算机之间的通讯有两种,一种是客户-服务器方式,一种是P2P方式。核心部分:由大量网络和连接这些网络的路由器组成。这部分是为边缘部分提供服务。核心中起重要作用的是路由器,他的作用是分组交换,转发收到的分组。数据交换的几种方式和特点: 1.电...原创 2018-06-01 09:04:46 · 25306 阅读 · 1 评论 -
孤儿进程与僵尸进程[总结]
1、前言 之前在看《unix环境高级编程》第八章进程时候,提到孤儿进程和僵尸进程,一直对这两个概念比较模糊。今天被人问到什么是孤儿进程和僵尸进程,会带来什么问题,怎么解决,我只停留在概念上面,没有深入,倍感惭愧。晚上回来google了一下,再次参考APUE,认真总结一下,加深理解。2、基本概念 我们知道在unix/linux中,正常情况下,子进程是通过父进程创建的,子进程在创建新的进程。子进程...转载 2018-05-05 19:01:16 · 1163 阅读 · 0 评论 -
三次握手与四次挥手详解
TCP(Transmission Control Protocol,传输控制协议)是 面向连接的协议,也就是说在收发数据之前,必须先和对方建立连接,一个TCP连接必须要经过三次“对话”才能建立起来,其中的过程非常复杂,只简单的 描述下这三次对话的简单过程:主机A向主机B发出连接请求数据包:“我想给你发数据,可以吗?”,这是第一次对话;主机B向主机A发送同意连接和要求同步 (同步就是两台主机一个在发...转载 2018-05-05 18:28:40 · 1283 阅读 · 0 评论 -
快速失败(fail-fast)和安全失败(fail-safe)的区别
链接:https://www.nowcoder.com/questionTerminal/95e4f9fa513c4ef5bd6344cc3819d3f7?pos=101&mutiTagIds=570&orderByHotValue=1来源:牛客网一:快速失败(fail—fast) 在用迭代器遍历一个集合对象时,如果遍历过程中对集合对象的内容进行了修改(增加、删...转载 2018-05-05 17:42:52 · 1436 阅读 · 0 评论 -
ConcurrentHashMap原理分析
曾经在 [高并发Java 五] JDK并发包1 中提到过ConcurrentHashMap,只是简单的提到了下ConcurrentHashMap的优点,以及大概的实现原理。而本文则重点介绍ConcurrentHashMap实现的细节。HashMap就不介绍了,具体请查看JDK7与JDK8中HashMap的实现HashTable是一个线程安全的类,它使用synchronized来锁住整张Hash表来...转载 2018-05-02 15:19:25 · 1198 阅读 · 0 评论 -
HTTP1.0和HTTP1.1的区别
1、HTTP 1.1支持长连接(PersistentConnection)和请求的流水线(Pipelining)处理HTTP 1.0规定浏览器与服务器只保持短暂的连接,浏览器的每次请求都需要与服务器建立一个TCP连接,服务器完成请求处理后立即断开TCP连接,服务器不跟踪每个客户也不记录过去的请求。HTTP 1.1则支持持久连接Persistent Connection, 并且默认使用persist...转载 2018-05-02 15:34:48 · 1216 阅读 · 0 评论 -
HashMap的工作原理
HashMap的基本特点:1.非线程安全2.可以让null作为key和value3.存储原理是hash4.hashMap的初始容量大小是16,默认装载因子为0.75HashMap的主要结构图在这里可以看出,HashMap主要是由数组和链表组成,链表主要是为了解决Hash冲突。这里的源代码主要是jdk1.8根据HashMap的源代码:/** * Implements Map.put and...原创 2018-04-26 10:53:19 · 1187 阅读 · 0 评论 -
HashMap与HashTable的区别与联系
HashMap和Hashtable的比较是Java面试中的常见问题,用来考验程序员是否能够正确使用集合类以及是否可以随机应变使用多种思路解决问题。HashMap的工作原理、ArrayList与Vector的比较以及这个问题是有关Java 集合框架的最经典的问题。Hashtable是个过时的集合类,存在于Java API中很久了。在Java 4中被重写了,实现了Map接口,所以自此以后也成了Java...原创 2018-04-26 10:58:41 · 1223 阅读 · 0 评论 -
Java7/8 中的 HashMap 和 ConcurrentHashMap 全解析
今天发一篇”水文”,可能很多读者都会表示不理解,不过我想把它作为并发序列文章中不可缺少的一块来介绍。本来以为花不了多少时间的,不过最终还是投入了挺多时间来完成这篇文章的。网上关于 HashMap 和 ConcurrentHashMap 的文章确实不少,不过缺斤少两的文章比较多,所以才想自己也写一篇,把细节说清楚说透,尤其像 Java8 中的 ConcurrentHashMap,大部分文章都说不清楚...转载 2018-05-04 19:04:09 · 1276 阅读 · 0 评论 -
单例模式的创建
package cn.edu.hust;import java.util.concurrent.locks.ReentrantLock;//剑指offer面试题,设计一个类,单例类public class OfferSingleton { //private static OfferSingleton offerSingleton=null; private Off...原创 2018-04-27 09:40:17 · 1152 阅读 · 0 评论 -
ArrayList和LinkedLIst底层实现以及源码解析
首先,看一下两者在jdk的具体位置可以看出ArrayList和LinkedList都是实现了List接口,而LIst接口继承了Collection接口,在Java中,基本上所有的集合类,都实现了Iterable接口,用于迭代。以下所有的源码基于jdk1.8让我们来看一下ArrayList源码:/** * Default initial capacity. ...原创 2018-04-27 10:33:24 · 2608 阅读 · 1 评论 -
TCP的三次握手与四次挥手过程,各个状态名称与含义
三次握手第一次握手:主机A发送位码为syn=1,随机产生seq number=10001的数据包到服务器,主机B由SYN=1知道,A要求建立联机,此时状态为SYN_SENT; 第二次握手:主机B收到请求后要确认联机信息,向A发送ack number=(主机A的seq+1),syn=1,ack=1,随机产生seq=20001的包,此时状态由LISTEN变为SYN_RECV; 第三次握手:主机A收到后...转载 2018-05-05 16:51:37 · 1600 阅读 · 0 评论 -
数据库知识篇(面试必备知识点)
数据库知识篇数据库范式第一范式 数据库表中的每一列都是不可再分的原子项。第二范式 在第一范式的基础上,消除了非主属性对码的部分依赖。第三范式 在第二范式的基础上,消除了传递依赖。MySQL基础视图 一种虚拟存在的表,对于使用视图的用户来说基本上是透明的。视图并不实际存在,行和列数据来自定义视图的查询中的使用表,...原创 2018-06-01 11:04:09 · 4408 阅读 · 0 评论