5 Sniper_2018

尚未进行身份认证

2018年3月面试阿里高级Java被第一轮就被婉拒,工作三年就这样死得这么丢人确实有点失落,于是决定潜心修行,记录下自己所学所想;

等级
博文 15
排名 116w+

Java基础-红黑树(RBTree)学习与ArrayList,HashSet性能比较

这两天都在看红黑树,第一次听说这种数据结构是在大学,当时听不大懂,第二次是在一篇博客上面了解到,当时是分析的jdk1.8的ConcurrentHashMap当某一个链表的节点数达到8个会采用红黑树的数据结构,当时没看懂,后面查看很多博客,也翻阅了数据结构的书,稍微理解了很多。概念和源码二叉树:二叉树是一个连通的无环图,并且每一个顶点的度不大于3。有根二叉树还要满足根结点的度不大于2。有了根结点之后...

2018-04-10 22:41:49

Java基础-数据结构之Stack和Queue源码分析

栈和队列基本概念:栈(Stack)是一种后进先出(lastinfirstoff,LIFO)的数据结构,而队列(Queue)则是一种先进先出(fisrtinfirstout,FIFO)的结构。java栈实现:我本地是jdk1.6,实现方式是数组,他继承Vector,Vector其实很像ArrayList,只是他在很多关键方法都加了synchronized关键字,导致每...

2018-04-08 23:09:19

Java基础-NIO(buffer、channel、selector)三大组件学习笔记

又是两天没有学习了,内心十分惭愧,今天又开始学习;Buffer一个用于特定基本类型数据的容器。先看结构上图一共七个buffer类,java的8大基本数据类型唯独差了boolean,查看源码,他们都是各自对应的数组组成。属性分析:position、limit、capacity0<=标记<=位置<=限制<=容量 capacity,它代表这个缓冲区的容量,一旦设定...

2018-04-07 14:27:00

Java基础-IO流

IO流结构流的概念和作用流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作。IO流的分类根据处理数据类型的不同分为:字符流和字节流根据数据流向不同分为:输入流和输出流字符流和字节流字符流的由来:因为数据编码的不同,而有了对字符进行高效操作的流对象。本质其实就是基于字节流读...

2018-04-02 22:12:57

Java基础-synchronized 关键字浅析

1.使用方式Synchronized是Java中解决并发问题的一种最常用的方法,也是最简单的一种方法。Synchronized的作用主要有三个:(1)确保线程互斥的访问同步代码(2)保证共享变量的修改能够及时可见(3)有效解决重排序问题。从语法上讲,Synchronized总共有三种用法:(1)修饰普通方法(2)修饰静态方法(3)修饰代码块2.三种使用方法的示例:publicclassLock...

2018-04-01 23:36:03

Java基础-ConcurrentHashMap源码分析

1.官方解释: 1)支持获取的完全并发和更新的所期望可调整并发的哈希表。此类遵守与Hashtable相同的功能规范,并且包括对应于Hashtable的每个方法的方法版本。不过,尽管所有操作都是线程安全的,但获取操作不必锁定,并且不支持以某种防止所有访问的方式锁定整个表。此类可以通过程序完全与Hashtable进行互操作,这取决于其线程安全,而与其同步细节无关。 2)获取...

2018-04-01 16:08:40

Java基础-ArrayList源码分析

老规矩也是先画个类图了解一下他的结构:画了三个类图之后我陷入了沉思,为啥类图和HashSet这么像?翻阅资料,了解集合框架采用了策略模式的设计模式,设计模式等后面再认真整理一份分析一下,这里就不多说了,留着这些问题,后面设计模式版本慢慢揭秘,下面说说几个重要的方法构造方法:这里了解到如果我们不设置初始值的话默认是10,和hashMap的16有差别,初始化方法就初始化了一个10长度的Object数组...

2018-03-31 14:24:28

Java基础-HashSet源码分析

看完hashSet的源码,你肯定会来一句,我靠,因为HashSet居然是HashMap实现的,吓尿了,温习一下类图,画一个:源码走一波:构造方法publicHashSet(){ map=newHashMap<E,Object>();}add方法publicbooleanadd(Ee){ returnmap.put(e,PRESENT)...

2018-03-30 22:53:37

Java基础-HashMap源码分析

HashMap是我们工作中经常用到的key->value键值对数据结构,但是你可曾详细了解过他的内部实现?类图:刚复习完类图,马上温习一下,看一下HashMap的类家族先有一个整体的结构把握,ps:这个类图已经是我第三版的杰作了,哈哈从上图,我们能够理解,hashMap的存储结构其实就是一个entry数组,由于entry的特殊设计,entry的属性包含了一个entry,这样就让entry具有...

2018-03-29 22:43:30

UML-类图笔记

最近要研究jdk源码,类图怎么能少呢,先记录一个笔记方便查阅1.类图关系大概分为6种:2.类图属性表示:符号含义:+:表示public- :表示private# :表示protected方法格式:可见性 名称(参数列表)[:返回类型]...

2018-03-29 21:03:59

Java基础-Thread和Runnable、start()和run()浅析

1.Thread和Runnable区别我们要清楚Thread是一个类,他实现了Runnable接口,Runnable是一个接口,这是他们本质上的区别,我们都知道java是单继承语言,一个子类他的父类只能有一个,但是可以实现多个接口,我们平时需要新建一个线程通常的方法有两种,废话不多说,代码说话。publicclassThreadTest{ publicstaticvoidmain(S...

2018-03-28 22:32:52

Java基础-StringBuilder、StringBuffer源码详解

UML类图:1.StringBuilder源码分析publicfinalclassStringBuilder extendsAbstractStringBuilder{},他继承一个抽象类,AbstractStringBuilder,抽象类声明他的两个属性: char[]value;//具体数据 intcount;//被使用的长度自己动手写一个publicclassMyString...

2018-03-28 22:05:35

Java基础- System.arraycopy()

经过这段时间的源码阅读,我发现一个非常重要的方法,虽然我们平时很少用到,但是jdk源码里面对数组的复制都是通过这个方法,所以记录一下publicstaticnativevoidarraycopy(Objectsrc,intsrcPos,Objectdest,intdestPos,intlength);方法简介:方法是一个本地方法,而且是一个System的静态方法,一般Syste...

2018-03-28 21:48:58

Java基础-String详解

String详解1.数据结构:char数组:被final修饰,表示不可变,所以String一旦初始化之后不能改变;offset字段:offset有抵消的含义,在String里面表示数组存储的第一个索引;count字段:为数组的长度,实际上等于str.length();hash字段:在第一次获取hashCode的时候会初始化,之后再调用不会再计算;2.主要方法:其他方法可以不知道,但是toCharA...

2018-03-27 21:49:39

SmartUpload控件 中文乱码问题 jsp+servlet解决办法

看到很多网友找不到答案,所有特别为这些网友写一点思路,SmartUpload控件中文乱码问题jsp+servlet解决办法

2015-03-16 17:20:08
奖章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!