- 博客(17)
- 收藏
- 关注
原创 负载均衡一致性hash算法一点总结
参考:这篇写的非常通俗易懂https://blog.youkuaiyun.com/cywosp/article/details/23397179#commentsedit大意:利用一个环形的hash空间selectors(散列范围0~(2^32)-1,实际上底层是一个ConcurrentMap),按照hash算法将一个key散列到指定的位置。对象(o1,o2,o3)的散列与机器(Node1,Node2,...
2018-09-02 16:56:33
1548
原创 《Thinking in java》第18章--Java NIO
NIO (非阻塞式IO)1、来看看IO、NIO区别? 当用户线程发起一个IO请求操作(本文以读请求操作为例),内核会去查看要读取的数据是否就绪,对于阻塞IO来说,如果数据没有就绪,则会一直在那等待,直到数据就绪;对于非阻塞IO来说,如果数据没有就绪,则会返回一个标志信息告知用户线程当前要读的数据没有就绪。当数据就绪之后,便将数据拷贝到用户线程,这样才完成了一个完整的IO读请求...
2018-08-25 17:19:03
315
原创 《Thinking in java》第五章--初始化与清理
一、用构造器确保类型的初始化(相当于initialize()方法) 1) 构造器是一种特殊类型的方法。它没有返回值 2)既然是方法,那就可以重载 3)有唯一的有参构造器时,不会自动生成无参构造器二、方法重载 1)方法重载的唯一区分的规则是:重载的方法需要具有独一无二的参数类型列表 2) 不能!不能!不能!以返回值来区分重载方法 3)对于基本类型的...
2018-08-22 21:44:17
297
原创 《Thinking in java》第18章--Java BIO
BIO(阻塞式IO)1、File类: ①File可以根据路径访问到文件或是文件目录,并将文件或是文件目录以java对象的方式存储。如 File file = new File("d:/IO/hello.txt"); ②File可以创建、删除、重命名文件以及文件目录 ③但是File不能访问到文件的内容,此时,必须将file作为对象传递给输入输出流才行。 访问文件名相关:---|...
2018-08-22 21:44:04
233
原创 《Thinking in java》第13章--Integer以及字符串
一、JAVA的参数传递?传值or传指针? 1)基本类型作为参数传递时,是传递值的拷贝,无论你怎么改变这个拷贝,原值是不会改变的 对象作为参数传递时,是把对象在内存中的地址拷贝了一份传给了参数。实参(对象)与形参(参数列表里)都指向了同一个地方 2)Integer x = 127在常量池中缓存中有(-128~127);Integer x = 128会在堆中new一个区域...
2018-08-22 21:43:55
210
原创 《Thinking in java》第23章--网络编程
一、主要内容 1)通信要素: 》IP和端口号:InetAdress类 》网络通信协议:TCP网络通信协议、UDP网络通信协议 2)URL编程 3)网络编程的目的: 直接或者间接地通过网络协议与其他计算机进行通信 4)网络编程中有两个主要的问题: 》如何准确的定位网络上一台或者多台主机 》...
2018-08-22 21:43:40
346
原创 多线程知识点总结(更新中..)
多线程的基础1.线程的生命周期?(五个)一个线程经历了新建、就绪、阻塞、运行、死亡五个生命周期。当一个线程被创建时,即为“新建”阶段,调用了该线程的start()方法之后,就进入了“就绪”阶段。若线程抢到了CPU的执行权,就会进入“运行”阶段,在“运行”阶段的线程被调用了yield()方法之后就会回到“就绪”阶段。在“运行”阶段的线程被调用了sleep()/wait()/suspend(...
2018-07-21 16:17:40
334
转载 java Comparable 和Comparator详解及 区别(附代码)
https://blog.youkuaiyun.com/tolcf/article/details/52229068
2018-06-01 15:34:42
217
转载 Collections.sort()和Arrays.sort()排序算法选择
https://blog.youkuaiyun.com/timheath/article/details/68930482
2018-06-01 15:24:18
413
原创 关于HashMap
1. HashMap中是如何进行散列的,hash的原理(前置知识点)关于这部分,我看到的一个知乎高亮胖胖的 解释非常深刻!hash的解释的链接源码中,计算hash值时,是这么写的:static final int hash(Object key) { int h; return (key == null) ? 0 : (h = key.hashCode()) ^ (...
2018-03-25 21:02:57
699
原创 终于ok了!ecplise中如何调试jdk源码,并能够看见变量的值!
参考了这位童鞋的博文 点击打开链接以下操作基于ecplise英文版,若汉化过可能出现问题。 在ecplise安装目录下的 ecplise.ini 文件中 末尾添加 -Duser.language=en 这样一句话就好了。即便java是开源的,但是在ecplise中对源码进行调试 还是会遇到一些问题。rt.jar中包含了许多的常用类。但是orcale在rt.jar编译时除去了调试信息。导致我们在调试...
2018-03-25 10:55:38
384
原创 源码解析之LinkedList
public class LinkedList<E> extends AbstractSequentialList<E> implements List<E>, Deque<E>, Cloneable, java.io.SerializableLinkedList继承了AbstractSequentialList(双端链表),实现了L...
2018-03-22 22:32:38
327
原创 源码解析之ArrayList
我用的是jdk1.8ArrayList的底层实现是数组,因此与数组有许多相同的地方。可以根据下标查找到关键字,插入关键字可能需要后移其他元素(所以插入非常慢)。与数组不同的地方在于可以动态的分配内存。下面是ArrayList中的定义的字段: //定义ArrayList初始化大小 private static final int DEFAULT_CAPACITY = 10; /...
2018-03-22 16:38:59
225
原创 关于Iterator接口和Iterable接口的有困惑的看过来~
所有的collection(list、Set)、Map都实现了Iterable接口,进而能够使用了Iterator()迭代器方法。首先搬源码Iterable接口public interface Iterable<T> { //定义了一个Iterator<T>迭代器类型的iterator()方法 Iterator<T> iterator(); ...
2018-03-22 14:40:54
629
原创 源码解析之Throwable
Throwable 类是exceptions和error的父类。只有作为此类(或其某个子类)实例的对象才会由Java虚拟机抛出,或者可以由Java throw语句抛出。 同样,只有这个类或它的一个子类可以是catch子句中的参数类型。 由于java检查编译时异常的存在,Throwable和Throwable的任何子类(不是RuntimeException或Error的子类)均被视为检查异常。通常用...
2018-03-22 11:21:21
2073
转载 maven 下载 源码和javadoc命令
1:Maven命令下载源码和javadocs当在IDE中使用Maven时如果想要看引用的jar包中类的源码和javadoc需要通过maven命令下载这些源码,然后再进行引入,通过mvn命令能够容易的达到这个目的:mvn dependency:sourcesmvn dependency:resolve -Dclassifier=javadoc命令使用方法:首先进入到相应的pom.xml目录中,然后...
2018-03-21 21:46:08
238
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人