自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

白夜行

冗长的黑暗中,你是我唯一的光。

  • 博客(28)
  • 资源 (25)
  • 收藏
  • 关注

原创 【面试题】海量数据及其它

海量数据处理思路针对时间,可以采用巧妙的算法搭配合适的数据结构,如Bloom filter/Hash/bit-map/堆/数据库或倒排索引/trie/,针对空间,无非就一个办法:大而化小:分而治之/hash映射,处理海量数据的几种方法分而治之/hash映射 + hash统计 + 堆/快速/归并排序;双层桶划分;Bloom filter/Bitmap;Trie树/数据库/倒排索引;外排序

2017-08-07 19:15:16 623

原创 【面试题】14.设计模式相关

1.单例设计模式使用设计模式为了代码复用,增加可维护性。设计模式的六大原则:开闭原则、里氏代换原则、依赖倒转原则、接口隔离原则、迪米特法则(最少知道原则)、合成/聚合复用原则Singleton(创建):保证一个类仅有一个实例,并提供一个访问它的全局访问点。如打印机饿汉式单例模式//饿汉模式:线程安全,耗费资源。public class HugerSingletonTest { /

2017-08-07 15:26:51 749

原创 【面试题】二叉树相关

1.二叉树二叉树是每个节点最多有两个子树的树结构满二叉树:除叶子节点外,所有节点的度都为2完全二叉树:叶子结点只能出现在最下两层;最下层的叶子一定集中在左部连续位置;倒数二层,若有叶子结点,一定都在右部连续位置;如果结点度为1 ,则该结点只有左孩子,即不存在只有右子树的情况;同样结点数的二叉树,完全二叉树的深度最小。哈夫曼树是一种带权路径长度最短的二叉树,也称为最优二叉树2.前中序遍历的代

2017-08-07 14:32:09 528

原创 【面试题】链表、栈和队列

1.顺序存储结构顺序存储结构,即数组。优点:节省存储空间,随机存取表中元素;缺点 :插入和删除操作需要移动元素顺序存储结构的插入与删除操作代码实现 public void insert(int data){ if (length >= size){ System.out.println("已存满"); return;

2017-08-07 13:35:00 923

原创 【面试题】13.算法相关

1.冒泡排序思想:比较相邻的元素。如果第一个比第二个大,就交换它们的值,从开始第一对到结尾的最后一对代码实现:O(n2)、O(n)、O(n2)、O(1)、稳定。 public static void bubble(int[] array) { for (int i = 0; i < array.length - 1; i++) { for (int

2017-08-07 10:20:51 686

原创 【面试题】Hadoop相关

1.HDFS的特点?Hadoop是一套开源的软件平台,利用服务器集群,根据用户的自定义业务逻辑,对海量数据进行分布式处理,核心组件分为:HDFS(分布式文件系统)、MapRuduce(分布式运算编程框架)、YARN(运算资源调度系统)HDFS是Hadoop体系中数据存储管理的基础。它是一个高度容错的系统,能检测和应对硬件故障,用于在低成本的通用硬件上运行。HDFS简化了文件的一致性模型,通过流式

2017-08-06 17:43:04 814

原创 【面试题】9.Netty相关

1.BIO、NIO和AIO的区别?BIO:一个连接一个线程,客户端有连接请求时服务器端就需要启动一个线程进行处理。线程开销大。伪异步IO:将请求连接放入线程池,一对多,但线程还是很宝贵的资源。NIO:一个请求一个线程,但客户端发送的连接请求都会注册到多路复用器上,多路复用器轮询到连接有I/O请求时才启动一个线程进行处理。AIO:一个有效请求一个线程,客户端的I/O请求都是由OS先完成了

2017-08-06 14:33:39 52218 7

原创 【面试题】8.Redis相关

1.Redis与Memorycache的区别?Redis使用单线程,而Memcached是多线程,Redis使用现场申请内存的方式来存储数据,并且可以配置虚拟内存;Memcached使用预分配的内存池的方式。Redis实现了持久化和主从同步,容灾性会更强。而Memcached只是存放在内存中,服务器故障关机后数据就会消失,Redis支持五种数据类型:string,list, Hash,

2017-08-05 17:40:07 2029 3

原创 【面试题】7.MySQL相关

1.MySQL常用命令创建表:create table employee(id int,name varchar(20));修改表结构(列):alter table employee add/modify/drop salary float; 修改字符集:alter table employee character set GBK;修改列名:alter table employee chan

2017-08-05 11:19:59 1770

原创 【面试题】6.网络相关

TCP拥塞机制和流量控制

2017-08-05 09:29:59 926

原创 【面试题】5.Linux相关

1.常用命令有哪些文件相关命令 head -n、tail、ln、locate、wc、more、less、ll、dd、df、du、tar-zxvf、ls、nl、cat、pwd、mkdir、rm 、cd、cp、touch、 awk、 date由localtime函数将时间数值转换为日期,是非线程安全的(静态变量)。 而localtime_r和strftime是线程安全的。 find -...

2017-08-04 17:03:28 665

原创 【面试题】4.JVM相关

1.堆和栈的区别栈内存是存储基本类型的变量和对象的引用变量,方法调用完后会释放该栈及栈中变量。存取速度比堆要快,仅次于寄存器,栈数据可以共享,多个引用可以指向同一个地址,存在栈中的数据大小与生存期必须是确定的,缺乏灵活性。堆内存用于存放由new创建的对象和数组,由JVM管理,由于要在运行时动态分配内存,存取速度较慢,栈中的变量指向堆内存中的变量,这就是 Java 中的指针2.解释内...

2017-08-04 12:57:32 851

原创 【面试题】3.多线程相关

1.线程与进程的区别定义 进程: 一个执行中的程序,每一个进程执行都有一个执行的顺序(执行单元)线程:是进程中的一个独立的控制单元,是操作系统能够进行运算调度的最小单位,一个进程中至少有一个线程。进程是资源拥有的单位,同一个进程内的线程共享进程的资源;线程是处理器调度和分派的基本单位;进程为重量级组件,线程为轻量级组件;进程的切换代价远高于线程,同步和通信的实现也比线程复杂。多进程是指

2017-08-04 07:01:49 931

原创 【面试题】2.集合类的原理

ArrayList实现原理1.基本原理ArrayList是基于数组实现的,是一个动态数组,其容量能自动增长,允许重复,默认第一次插入元素时创建数组的大小为10,超出限制时会增加50%的容量,2.扩容机制首先将容量扩展为原来的1.5倍,然后将新的容量与最大存储容量(Integer.MAX_VALUE - 8)比较,若大于最大存储容量,则取新的容量为整数最大值。每次扩容都底层采用System.array

2017-08-03 14:01:23 676

原创 【面试题】12.Mybatis、Zookeeper与Dubbo

1.HashMap的键值允许为空吗? 集合类 Key Value Super 线程 ConcurrentHashMap 非null 非null AbstractMap 安全 TreeMap 非null 可null AbstractMap 不安全 HashMap 可null 可null AbstractMap 不安全 W

2017-08-03 09:34:42 689

原创 【面试题】1.JavaSE基础常见面试题

基础部分1.Java语言的特性?跨平台性、面向对象、安全性、多线程、简单易用。2.& 和 && 的区别?&运算符表示按位与、逻辑与,而&&运算符是短路与运算。3.String是最基本的数据类型吗?基本数据类型包括byte、int、char、long、float、double、boolean和short。 取值范围是 -2^(字节数*8-1) ~ -2^(字节数*8-1) - 1,但Boolean是4

2017-08-03 08:18:51 4246 4

原创 2018届秋招时间表

一、笔试面试时间 序号 公司 内推时间 内推笔试 内推面试 网申时间 网申笔试 网申面试 1 阿里 7.4-8.18 免 7.3-8.25 7.4-8.18 8.23-8.25 9 2 网易 7.17-8.8 8.12 8.15-8.30 8.9-9.6 9.9 9-10 3

2017-08-02 13:19:47 28470 3

原创 【Redis深入】Redis分布式锁的实现

引入在实际的应用中,有很多情况需要加锁处理,最典型的情况就是秒杀了,一般的解决方案都是基于DB实现,但如果使用Redis,该如何实现呢。我们都知道Redis为单线程模式,采用队列模式将并发访问变成串行访问,且多客户端对redis的连接并不存在竞争关系。而且Redis提供一些命令,如SETNX,GETSET,来实现分布式锁机制。Redis命令回顾在之前的博客中,我介绍了Redis的常用命令,现在

2017-08-02 11:33:35 913

原创 【算法】一致性哈希算法

1.历史一致性哈希算法在1997年由麻省理工学院提出的一种分布式哈希(DHT)实现算法,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似。一致性哈希修正了CARP使用的简 单哈希算法带来的问题,使得分布式哈希(DHT)可以在P2P环境中真正得到应用。2.特点平衡性(Balance): 平衡性是指哈希的结果能够尽可能分布到所有的缓冲中去,这样可以使得所有的缓冲空间都

2017-08-02 08:01:08 333

原创 【算法】负载均衡

1.定义负载均衡(Load Balance,简称LB)是一种服务器或网络设备的集群技术。负载均衡将特定的业务(网络服务、网络流量等)分担给多个服务器或网络设备,从而提高了业务处理能力,保证了业务的高可用性。负载均衡(Load Balance)是分布式系统架构设计中必须考虑的因素之一,它通常是指,将请求/数据均匀分摊到多个操作单元上执行,负载均衡基本概念有:实服务、实服务组、虚服务、调度算法、持

2017-08-02 07:25:19 382

原创 【算法】RSA加密算法

1.历史RSA是1977年由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出的。当时他们三人都在麻省理工学院工作。RSA就是他们三人姓氏开头字母拼在一起组成的。2.公钥与密钥的产生假设Alice想要通过一个不可靠的媒体接收Bob的一条私人讯息。她可以用以下的方式来产生一个公钥和一个私钥:随意选择两个大的质数p和

2017-08-01 20:35:40 464

原创 【Netty源码】ByteBuf源码剖析

ByteBuf概述1.ByteBuf与ByteBuffer的区别ByteBuf不是对ByteBuffer的封装,而是重新实现了一个缓冲区。ByteBuffer只使用了一个position指针来记录当前的读写位置,ByteBuf使用了两个指针readerIndex, writerIndex分别来记录当前的读写位置,使用起来更加简单和方便。ByteBuffer是一个固定长度的缓冲区,当put方法要写

2017-08-01 19:21:29 757

原创 【Netty源码】内存管理

概述Netty内部的内存管理机制。首先,Netty会预先申请一大块内存,在内存管理器中一般叫做Arena。Netty的Arena由许多Chunk组成,而每个Chunk又由一个或多个Page组成。Chunk通过二叉树的形式组织Page,每个叶子节点表示一个Page,而中间节点表示内存区域,节点自己记录它在整个Arena中的偏移地址。当区域被分配出去后,中间节点上的标记位会被标记,这样就表示这个中间

2017-08-01 17:09:36 494

原创 【Netty源码】read、write与accept源码剖析

引入在上篇博文中我讲了NioEventLoop的源码剖析,其中的方法调用如下,NioEventLoop.run()->selectNow()->processSelectedKeys()->processSelectedKeysOptimized()最后processSelectedKeysOptimized方法中有三个事件:可读、可写、可接收,我并没有细说,所以在这篇文章中我就详细讲一下。read

2017-08-01 16:41:49 713

原创 【Netty源码】ChannelPipeline源码剖析

1.图解每个channel内部都会持有一个ChannelPipeline对象pipeline. pipeline默认实现DefaultChannelPipeline内部维护了一个DefaultChannelHandlerContext链表。当channel完成register、active、read等操作时,会触发pipeline的相应方法。当channel注册到selector时,触发pip

2017-08-01 16:12:30 450

原创 【Netty源码】NioEventLoop源码剖析

NioEventLoopGroup1.NioEventLoopGroup的类层次图2.NioEventLoopGroup 实例化过程分析:EventLoopGroup(其实是MultithreadEventExecutorGroup) 内部维护一个类型为 EventExecutor children 数组, 其大小是 nThreads, 这样就构成了一个线程池如果我们在实例化 NioEventL

2017-08-01 15:48:00 856

原创 【Netty源码】服务端源码剖析

引入如果你对Netty的服务端启动流程不是很了解,请参考基于Netty的Server代码,以便对服务器的启动流程有个清晰的认识,才能更好的理解源码中的步骤。Netty是基于Nio实现的,也有selector、serverSocketChannel、socketChannel和selectKey等,只不过Netty把这些实现都封装在了底层。开始时,ServerBootstrap实例中需要两个Ni

2017-08-01 12:07:24 532

原创 【Maven入门】maven常用命令

Maven常用命令表 命令 功能 mvn compile 编译源代码 mvn test-compile 编译测试代码 mvn test 运行测试 mvn site 产生site mvn package 打包 mvn install a.jar to b 在本地Repository中安装jar mvn clean 清除产生的项目 mvn

2017-08-01 07:56:47 438

《剑指Offer》题目及代码(修订版4).pdf

《剑指offer》的Java版代码实现(修订版4),有题目和解题思路,对部分代码重新排版,解决了部分代码消失的问题。

2019-06-16

《剑指Offer》题目及代码(修订版2).pdf

《剑指offer》的Java版代码实现(修订版2),有题目和解题思路,修改了部分题目的代码和解题思路。

2019-06-16

《剑指Offer》题目及Java版代码(带目录)

最全的《剑指offer》Java版代码实现,带目录高清完整版,保证正确性,全都在OJ上测试AC了。

2019-03-03

《剑指offer》Java版代码

最全的《剑指offer》Java版代码实现,保证正确性,全都在OJ上测试AC了。

2017-11-02

技术之瞳 阿里巴巴技术笔试心得.pdf

2017-04-11

高性能Linux服务器构建实战:运维监控、性能调优与集群应用.pdf

2017-04-11

GNULINUX初学之旅.pdf

2017-04-11

2017各大互联网公司校招要求.docx

2017-04-11

MySQL面试题.pdf

2017-04-11

progit2-中文版

2017-04-11

mysql 驱动 .jar

2017-04-11

netty jar包

netty jar包

2017-04-11

struts2.jar

2017-04-11

MySQL 5.1 参考手册

2017-04-11

linux 2 参考手册

2017-04-11

java 8 API 英文原版

2017-04-11

dom4j参考手册

2017-04-11

HTML参考手册-日常使用

HTML参考手册-日常使用

2017-04-11

java开发手册

介绍了Java的命名规约!

2017-04-11

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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