7 在风中的意志

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 2k+

JDK1.8 源码 java.util.TreeMap

前言本章, 我们主要介绍java.util.TreeMap.根据上述图片, 其继承关系为TreeMap -> NavigableMap -> SortedMap -> Map.总览同样. 我们从成员变量和基本方法进行解读.成员变量private final Comparator<? super K> comparator;private transient Entry<K,V> root;private transient in

2020-07-31 00:58:47

JDK1.8 源码 java.util.LinkedHashMap

前言在前面的章节内我们仔细阅读了java.util.HashMap的源码. 在后面的2章内, 我们将看下JDK1.8内其余的2种数据类型的源码, 即LinkedHashMap与TreeMap.在看LinkedhashMap之前, 我们先回顾下HashMap的几个基本知识.基本数据节点Node<K,V> static class Node<K,V> implements Map.Entry<K,V> { final int hash;

2020-07-30 17:19:08

JDK1.8 源码 String当真不可变么? StringBuilder和StringBuffer的区别

前言在前面的章节内, 我们自己研究了java.lang.String类的源码. 本章主要解决与String相关的几个问题:String 当真不可变么?StringBuilder和StringBuffer的区别?常量池+运算符的重载及其含义String当真不可变么?我们回顾下String的源码.public final class String implements java.io.Serializable, Comparable<String>, CharSeque

2020-07-30 01:13:07

算法练习 - 判断是否存在相交数组

题目判断数据内,元素是否有交集. 数组内的值都是连续值.例如:[[1,6], [5,9],[16,30],[8,10]]输入: 一个二维数组.返回: 布尔类型数据 true or false.解题思路思路1: 两两比较.两两比较主要包括4种情况.Case1: 不相交if(A.尾巴>B.头){ resultFlag = false;}Case2: 不相交if(B.尾巴>A.头){ resultFlag = false;}Case3: 左交if(

2020-07-29 18:26:33

JDK1.8 源码 java.util.HashMap

本章, 我们来看下java.util.HashMap.从图中可以看出, 其继承关系为:Collection <-- Map <-- AbstractMap <-- HashMap.主要成员变量&方法成员变量 private static final long serialVersionUID = 362498820763181265L; static final int DEFAULT_INITIAL_CAPACITY = 1 << 4;

2020-07-17 21:50:33

JDK1.8 源码 java.util.LinkedList

前言今天我们来看下java.util.LinkedMap.从上图可以看出. LinkedList和ArrayList同属List <-AbstractList流程下的不同实现.此外, 因为链表的关系, LinkedList主要有2层继承关系.Collection <-- List <-- AbstractList <-- AbstractSequentialList. 此为第一段继承关系.Collection <-- Queue <- Deque <-

2020-07-17 12:11:55

JDK1.8 源码 java.util.ArrayList

前言本章, 我们来看下集合数据类型java.lang.ArrayList.集合类图解析从该类图中可以看到.集合类基础接口为Collection.随后衍生出List/Set/Map. 这3类接口.List线Collection <-- AbstractCollection <-- AbstractList/AbstractSetAstractList <-- ArrayList / LinkedList / Vector/ StackMap线Collecti

2020-07-17 00:55:57

JDK1.8 源码 java.lang.String

前言上一章节, 我们读了java.lang.Integer类. 本章我们读下java.lang.String类.正文总览主要成员变量// 存储数据类型private final char value[];// hash值private int hash; // Default to 0// 序列化值private static final long serialVersionUID = -6849794470754667710L;// 流对象?private static f

2020-07-16 01:27:48

JDK1.8 源码 java.lang.Integer类

前言在上一章. 我们读了下java.lang.Object类. 在本章内, 我们读一下java.lang.Integer类.众所周知, JDK有8种基本数据类型. 分别为 byte short int long float double. 还有2类非数字类, 分别为char和boolean. 也就是说, 读了其中一种数值数据类型, 即读过其他5种数据类型. 所以, 我们今天读取Integer数据类型是绝对有意义的.正文(成员 & 方法) 概览与Object类相似. 在细读源码之前,

2020-07-14 16:32:48

[设计模式] 再识责任链模式

前言今天通过面试复习了责任链模式. 又回头看了下之前的笔记. 突然就加深了理解.正文之前理解之前的理解. 责任链就是一个链式结构, 经典的例子就是一个任务在几个人之间传递执行.面试完之后想了想发现事情并没有想象滴那么简单....

2020-07-13 23:56:41

[设计模式] 代理模式之 静态代理与动态代理 & Mybatis实例解析

前言之前回头看设计模式的时候, 发现对于Java的动态代理还不是特别理解. 又拔了拔书, 随后发现Mybatis里面也用到了这个模式. 在此, 复习和记录一下学习的过程.准备操作- Java反射机制Java的反射主要包括3个部分:* 根据类名获取Class对象* 根据Class对象获取方法, 并调用.* 根据Class对象获取所有子接口, 并调用.* 根据Class对象获取成员, 并调用.在反射中, 用的比较多的是1和3这2个部分.public class ReflectDemo {

2020-07-11 13:43:52

[计算机网络基础] TCP协议 & 三次握手/四次挥手 及原因

前言在上一章节. 我们解释了OSI 7层模型. 及数据的处理流程. 今天我们来看TCP协议及其特性约定三次握手和四次挥手.在本章中, 我们会介绍三次握手和四次挥手分别是什么. 并最后总结, 为什么需要3握4挥的这样的一个设计模式.正文三次握手计算机网络的图是这样. 但是这个图理解起来不是很好. 推荐使用上图进行理解:首先我们要知道的是TCP协议是一个双向通信的可靠协议. 这里我们把通信的双方认为是A端和B端.第一次握手(A->B): A端发送协同请求SYNbit=1 (A),

2020-07-10 22:43:38

[计算机网络基础] 浏览器发送链接请求后发生了啥?细说OSI7层网络模型

前言前段时间又和朋友聊到了OSI 7层模型. 没想到那么多年过去了还是不是特别熟悉. 往常都是搜下别人到博客了解下了事. 这回自己总结一轮.注意: 关于浏览器客户端发送链接请求后发生了啥?这个问题. 我们等到最后再来阐述.计算机网络什么是计算机网络. 单看名词而言, 可以分成2个部分. 计算机和网络.所谓计算机. 即计算的工具. 是但不局限于现在流行的PC机器.所谓网络. 即多台计算机组成的交互和通信系统. 主要的传输介质和媒介我们主要常见的有有线网络 -> 网线/光缆 无线网络 -&

2020-07-10 18:27:17

Java 基础 Scanner读取控制台 & 控制台结束快捷键盘

前言之前在牛客网做题的时候. 对于输入和输出控制比较紧. 这边正好总结一下. 另一方面, Java的输入输出还是比当年的C++要容易的多. 虽然C++我也已经忘了大半代码.正文声明并且绑定控制台输入流Scanner scanner = new Scanner(System.in);读取字符串// 读取Lines. public static void readLines(Scanner scanner) { while(scanner.hasNext()) { Strin

2020-07-10 00:39:45

JDK1.8 源码 java.lang.Object类

前言之前一段时间. 曾经阅读了部分JDK 1.8 源码.首先阅读的是java.lang.Object类.详细内容主要方法.以上的几个方法可以分成几类:native 关键字方法.非native关键字方法.所谓native关键字方法指的是调用的是计算机本地的方法. 比如Linux内核, Windows内核. 其对于方法的实现是完全不同的, 这也是Java为什么可以跨平台运行的原因.(根据本地内核, 调整项目内的底层接口方法.) 感兴趣的同学可以自己编译下JDK源码进行调试运行.按照职

2020-07-10 00:20:10

Java基础 悲观锁&乐观锁

前言悲观锁与乐观锁 只是2种不同的概念. 在JDK内各有不同的实现.解析悲观锁悲观锁. 即. 认为: 我们每次修改数据时, 都会有其他人来修改数据. 所以, 我们在进行更新数据时, 都会加锁进行控制.即 执行类似如下流程.1- 锁定2- 修改数据3- 解除锁定Java 中并发包的锁主要有2种: synchronized关键字与RentrantLock对象. 其中之一写法:public void update(OptimisticLockObject object, int val

2020-07-09 23:54:47

算法练习 - HJ107 求解立方根

前言求解立方根. 原题信息如下所示:计算一个数字的立方根,不使用库函数详细描述:接口说明原型:public static double getCubeRoot(double input)输入:double 待求解参数返回值:double 输入参数的立方根,保留一位小数输入描述: 待求解参数 double类型输出描述: 输入参数的立方根 也是double类型示例1输入 216输出 6.0(牛客网 - HJ107) 求解立方根解析求立方根.工具法.我们可以使用M

2020-07-09 15:03:39

(Java基础) List转换为数组 & 数组转换为List

前言前段时间, 一直看到Spark内的一处进行序列化的语句. 想起来之前看过Arrays的源代码. 于是, 在此总结一下.String [] array = new String[]{"a","b","c"};JavaRDD<String> javaRDDTmp = new JavaSparkContext.parallellize(Array.asList(array));其实. 值得注意的是Spark内的RDD都是不可变的. 所以, 这里的转换没有问题. 但是在我们日常的开发中,

2020-07-07 12:37:35

Java工具-JsonObject&JsonArray/Object/String相互转换(FastJson)

前言之前处理Json类型字符串. 对于相关细节有些疏忽了(Spark SQL 导入JSON文件).借此机会将Json类型字符串全部梳理一遍.Maven 引用 <dependencies> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.4</versio

2020-07-07 01:07:00

LetCode1560 (Offer29) - 数组中出现次数超过一半的数字

前言题目描述数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。测试数据组:Case1: {1,2,3,2,2,2,5,4,2}Result: 2Case2: {1,2,3,2,4,2,5,2,3}Result: 0Case3: {}Result: 0Case 4:{1}Result: 1Case 5:{1,2}Re

2020-07-07 00:50:48

查看更多

CSDN身份
  • 博客专家
勋章 我的勋章
  • 领英
    领英
    绑定领英第三方账户获取
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 分享精英
    分享精英
    成功上传11个资源即可获取