Java一般重要集合

TreeMap是一个有序的key-value集合,继承自AbstractMap,它是通过红黑树实现的。 TreeMap实现了NavigableMap接口,意味着它支持一系列导航方法,如返回有序的key集合。 TreeMap基于红黑树实现,该映射根据其键的自然顺序进行排序或根据创建映射时提供的C...

2018-08-14 22:06:35

阅读数 40

评论数 0

多线程的上下文切换

什么是上下文切换? 即使是单核CPU也支持多线程执行代码,CPU通过给每个线程分配CPU时间片来实现这个机制。时间片是CPU分配给各个线程的时间,因为时间片非常短,所以CPU不停的切换线程执行,让我们感觉多个线程同时执行的,时间片一般都是几十毫秒。 CPU通过时间片分配算法来循环执行任务,当前...

2018-07-27 16:35:25

阅读数 112

评论数 0

Java多态的实现原理

多态:父类的引用指向子类对象 继承是多态实现的基础,要是没有继承,多态也就无从谈起了。 那么JVM到底是怎样实现多态的呢? public class Test { public void perform(Latin dance){ dance.play(); ...

2018-07-25 19:05:41

阅读数 114

评论数 0

ConcurrentHashMap能完全替代HashTable吗

我们知道ConcurrentHashMap和HashTable都是线程安全的HashMap,其中ConcurrentHashMap在性能方面也是完全优于HashTable,那么ConcurrentHashMap可以完全替代HashTable吗?(对于JDK1.6、1.7) 答案是不能,HashT...

2018-07-25 15:37:43

阅读数 263

评论数 0

需要掌握的面试点

Java基础 八种基本数据类型的大小,以及他们的封装类 引用数据类型 switch能否用String做参数 equals 与 == 的区别 自动装箱、常量池 Object有哪些公开方法 Java的四种引用,用到的场景 HashCode的作用 HashMap的hashcode的作用...

2018-07-25 11:53:33

阅读数 206

评论数 0

内核线程和用户线程

       在传统的操作系统中,拥有资源和独立调度的基本单位都是进程,在引入线程的操作系统中,线程是独立调度的基本单位,进程是资源拥有的基本单位。在同一进程中,线程的切换不会引起进程的切换。,在不同的进程中进行线程切换,必然引起进程的切换。 根据操作系统内核是否对线程可感知,可以把线程分为内核...

2018-07-06 21:02:21

阅读数 69

评论数 0

Java NIO:Buffer、Channel和Selector

Buffer 一个 Buffer 本质上是内存中的一块,我们可以将数据写入这块内存中,之后从这块内存获取数据。 java.nio 定义了以下几个 Buffer 的实现。 其中最核心的是最后的 ByteBuffer,前面的一大串类只是包装了一下它而已,我们使用最多的通常也是 ByteBuf...

2018-07-01 20:02:48

阅读数 38

评论数 0

Java NIO概述

一、NIO 中几个基础的概念 在 NIO 中有几个比较关键的概念:Channel(通道)、Buffer(缓冲区)、Selector(选择器)。 首先从 Channel 说起,通道,顾名思义,就是通向什么的道路,为某个提供了渠道。在传统 IO 中,我们要读取一个文件中的内容,通常是像下面这样读取...

2018-07-01 16:43:25

阅读数 32

评论数 0

链表问题集锦

1. 在 O(1)的时间删除链表节点 题目描述:给定链表的头指针和一个节点的指针,在 O(1)时间删除该节点。 解法:用该节点的下一个节点覆盖要删除的节点,然后删除下一个节点。(如果是尾节点就行不通了) 2. 求链表倒数第 K 个节点 题目描述:输入一个单向链表,输出该链表倒数第 K 个节...

2018-07-01 15:29:46

阅读数 31

评论数 0

Java远程通信技术及原理

在分布式服务框架中,远程服务是怎么通讯的,在Java领域中有很多可能实现通讯的技术,如RMI、MINA、ESB、Burlap、Hessian、SOAP、EJB和JMS等,这些名词之间到底是些什么关系,他们背后到底是基于什么原理实现的?1. 基本原理要实现网络机器间的通讯,首先得来看看计算机网络通信...

2018-06-30 18:00:45

阅读数 375

评论数 0

单点登录原理

一、单系统登陆机制 1. http 无状态协议 web 应用采用 browser / server 架构,http 作为通信协议。http 是无状态协议,浏览器的每一次请求,服务器都会独立处理,不与之前或之后的请求产生关联,这个过程用下图说明,三次请求/响应之间没有任何联系。 但也同时意...

2018-06-28 21:21:37

阅读数 1498

评论数 3

一致性哈希算法

一致性哈希算法是为了解决分布式Cache中提出的,设计目标是为了解决因特网中的热点(Hot spot)问题。现在一致性哈希算法在分布式系统中得到了广泛的应用,研究过memcached缓存数据库的人知道,memcached服务器端本身不提供分布式cache的一致性,而是由客户端来提供。具体在计算一致...

2018-06-28 17:32:23

阅读数 43

评论数 0

Redis分区的实现原理

Redis Partitioning即Redis分区,简单的说就是将数据分布到不同的redis实例中,因此对于每个redis实例所存储的内容仅仅是所有内容的一个子集。分区不仅仅是Redis中的概念,几乎是所有数据存储系统都会涉及到的概念。 我们为什么要分区? 通常来说,分区的好处大致有如下两个...

2018-06-25 21:06:04

阅读数 431

评论数 0

Java中String为什么是不可变的

什么是不可变对象?在Java中,String类是不可变的,可以这么认为不可变对象:如果一个对象,在它创建完成以后,不能再改变它的状态,那么这个对象就是不可变得。不能改变状态的意思就是说,不能改变对象内的成员变量,包括基本数据类型的值不能改变,引用类型的变量不能指向其他的对象,引用类型指向的对象的状...

2018-06-25 18:48:25

阅读数 27

评论数 0

Java之常量池

1. 什么是常量池用final修饰的成员变量表示常量,值一旦给定就无法改变。final修饰的变量有三种:静态变量、实例变量和局部变量,分别表示三种类型的变量。2. Class文件中的常量池在Class文件结构中,最头的4个字节用于存储魔数Magic Number,用于确定一个文件是否被JVM接受,...

2018-06-25 14:53:03

阅读数 34

评论数 0

Redis集群

复制Redis 提供了复制功能,可以实现当一台数据库中的数据更新后,自动将更新的数据同步到其他的数据库上。在复制的概念中,数据库分为两类,一类是主数据库,另一类是从数据库。主数据库可以进行读写操作,当写操作导致数据变化时会自动将数据同步到从数据库。而从数据库一般是只读的,并接受主数据库同步过来的数...

2018-06-21 19:15:47

阅读数 51

评论数 0

Redis的持久化

       Redis 支持两种方式的持久化,一种是 RDB 方式,一种是 AOF 方式。RDB 方式会根据指定的规则“定时”将内存中的数据存储到硬盘上,而 AOF 方式在每次执行命令本身后将命令本身记录下来。两种持久化方式可以单独使用其中一种,但更多情况下是将二者结合使用。 RDB方式  ...

2018-06-19 19:17:42

阅读数 45

评论数 0

六种负载均衡算法

1. 轮询法将请求按顺序轮流地分配到后端服务器上,它均衡地对待后端的每一台服务器,而不关心服务器实际上的连接数和当前的系统负载。2. 随机法通过系统的随机算法,根据后端服务器的列表大小值来随机选取其中的一台服务器进行访问。由概率统计理论可以得知,随着客户端调用服务端的次数增多,其实际效果越来越接近...

2018-06-18 19:21:25

阅读数 119

评论数 0

布隆过滤器

我们知道在海量数据去重中,当一个值哈希一次的时候,重复的几率还是比较大的,但当哈希多次以后,重复的几率就会非常小,而布隆算法就是采用多次哈希的方法解决海量数据去重的。其使用的数据结构为bitmap,使用不同的哈希算法对同一个值就行多次哈希,将得到的哈希值所在的bitmap中对应的位置置为1。这样,...

2018-06-14 21:03:50

阅读数 31

评论数 0

缓存雪崩、缓存穿透、缓存预热、缓存热备

缓存雪崩 当缓存处于单点情况下,一旦缓存服务器崩溃,所有的请求都会落到数据库,此时,如果由于访问量过大则会导致数据库宕机,进而导致整个网站不可用,这种缓存故障就是俗称的缓存雪崩。 解决方案:解决缓存雪崩故障,就得解决单点问题,提高缓存高可用性,建立分布式的高可用系统,一台缓存服务器挂了,另一台...

2018-06-14 20:42:46

阅读数 133

评论数 1

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