Hua's blog

Hua's blog

Scroll Down

最新文章

  • ConcurrentHashMap JDK1.8 源码分析
    2021年04月13日

    ConcurrentHashMap JDK1.8 源码分析

    1 助记JDK 1.7使用的是segment分段锁,默认为16个segment,扩容分别在各自的segment进行。JDK 1.8使用的是Synchronized+CAS自旋,相应的内部结构和hashmap一样,改为了红黑树当Node数组为空,直接用CAS初始化或者插入数据当Node数组节点不为空,

    查看全文
  • SpringBoot 自动装配
    2021年04月12日

    SpringBoot 自动装配

    1 对比以前:在没有Spring之前,我们需要通过XML或者Java中定义@Bean 来把我们要用的jar装配到Spring中现在:Springboot提供了一个规范,只要按照这个规范定义好我们用的starter,它就会为我们自动装配。2 具体实现2.1 Springboot的核心注解@Enable

    查看全文
  • Java集合框架常见面试题(转)
    2021年04月12日

    Java集合框架常见面试题(转)

    1. 剖析面试最常见问题之 Java 集合框架1.1. 集合概述1.1.1. Java 集合概览1.1.2. 说说 List,Set,Map 三者的区别?1.1.3. 集合框架底层数据结构总结1.1.3.1. List1.1.3.2. Set1.1.3.3. Map1.1.4. 如何选用集合?1.1

    查看全文
  • ArrayList JDK1.8源码分析
    2021年04月11日

    ArrayList JDK1.8源码分析

    助记初始大小:单例,初始为10,扩容1.5倍mod: failfast问题时间复杂度add :O(1)add(index): O(n-index),因为需要数组移动get:O(1)最大容量:Integer.Max-8构造函数ArrayList 有三种方式来初始化以无参数构造方法创建 ArrayLis

    查看全文
  • HashMap JDK1.8源码分析
    2021年04月11日

    HashMap JDK1.8源码分析

    帮助记忆组成:Node数组+链表/红黑树数组:默认为0,用了单例模式,第一次调用初始化为16,扩容因子为0.75链表:长度大于8,且数组长度大于64,转为红黑树,长度小于6,转为链表hash索引:异或高四位,防止hash冲突扩容:重新散列法hash异或高四位,防止hash冲突static final

    查看全文
  • JVM 垃圾回收器
    2021年04月11日

    JVM 垃圾回收器

    1、GC的基础知识什么是垃圾没有任何引用指向的一个对象 或者 多个对象的循环引用(浮动垃圾)如何定位垃圾引用计数(ReferenceCount): python根可达算法(RootSearching) : java常见的垃圾回收算法标记清除(mark sweep):位置不连续 产生碎片 效率偏低(两

    查看全文
  • JVM详解
    2021年04月07日

    JVM详解

    1、Class 加载过程JVM的模式解释执行编译执行混合模式(某个方法重复运行count次,JVM就会把这个方法先编译,下次运行提高效率)Class的格式(16进制)参考这篇文章具体加载过程通过类加载器把字节码加载到JVM内存中,生成Class对象,并放入缓存中。Loading 加载 :二进制码加载

    查看全文
  • Java中常用锁的介绍
    2021年04月04日

    Java中常用锁的介绍

    前言本篇主要介绍java中使用到的各种锁以及使用场景和原理, 写的不对的地方可以评论指出。Object中的MarkWordSynchronized介绍在 JDK 1.6 之前,synchronized 是重量级锁,效率低下。从 JDK 1.6 开始,synchronized 做了很多优化,如偏向锁、

    查看全文
  • 手写基于Netty的RPC框架
    2021年03月29日

    手写基于Netty的RPC框架

    1 简介1.1 什么是RPC框架?通俗意义上来说,RPC是调用本地接口,实现方法在远程端实现。1.2 如何实现需要用到通信RPC肯定是1对多的关系模式,所以需要连接池管理客户端客户端发送接口信息,肯定需要用到序列化多个客户端如何鉴别,如何返回结果,肯定需要协议(协议就需要包括requestId等信息

    查看全文
  • Spring (冲向架构师)
    2021年03月11日

    Spring (冲向架构师)

    1.谈谈Spring IOC的理解,原理与实现?总:控制反转:理论思想,原来的对象是由使用者来进行控制,有了spring之后,可以把整个对象交给spring来帮我们进行管理​DI:依赖注入,把对应的属性的值注入到具体的对象中,@Autowired,populateBean完成属性值的注入容器:存储对

    查看全文
  • Mysql 篇(冲向架构师)
    2021年03月11日

    Mysql 篇(冲向架构师)

    1 数据结构的升级1.1 二叉树优点:可以通过二分法快速查询。缺点:树的深度太深,容易形成链表。1.2 平衡二叉树优点:优化了二叉树深度问题,最长子树的节点和最最短相差1个节点。缺点:为了维持树的平衡,需要频繁的旋转树。1.3 红黑树优点:为了优化平衡二叉树频繁的旋转,修改了最长子树和最短子树相差节

    查看全文
  • 剑指 Offer 24. 反转链表
    2021年04月19日

    剑指 Offer 24. 反转链表

    题目定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。 示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL来源:力扣(LeetCode)链接:https://leetco

    查看全文
  • 429. N 叉树的层序遍历
    2021年04月19日

    429. N 叉树的层序遍历

    题目给定一个 N 叉树,返回其节点值的层序遍历。(即从左到右,逐层遍历)。树的序列化输入是用层序遍历,每组子节点都由 null 值分隔(参见示例)。 示例 1:输入:root = [1,null,3,2,4,null,5,6]输出:[[1],[3,2,4],[5,6]]来源:力扣(LeetCode)

    查看全文
  • 1254. 统计封闭岛屿的数目
    2021年04月15日

    1254. 统计封闭岛屿的数目

    题目有一个二维矩阵 grid ,每个位置要么是陆地(记号为 0 )要么是水域(记号为 1 )。我们从一块陆地出发,每次可以往上下左右 4 个方向相邻区域走,能走到的所有陆地区域,我们将其称为一座「岛屿」。如果一座岛屿 完全 由水域包围,即陆地边缘上下左右所有相邻区域都是水域,那么我们将其称为 「封闭

    查看全文
  • 165. 比较版本号
    2021年04月15日

    165. 比较版本号

    题目给你两个版本号 version1 和 version2 ,请你比较它们。版本号由一个或多个修订号组成,各修订号由一个 '.' 连接。每个修订号由 多位数字 组成,可能包含 前导零 。每个版本号至少包含一个字符。修订号从左到右编号,下标从 0 开始,最左边的修订号下标为 0 ,下一个修订号下标为

    查看全文
  • Mybatis 基于XML配置的源码分析(未完善)
    2021年04月13日

    Mybatis 基于XML配置的源码分析(未完善)

    创建SqlSessionFactory加载Mybatis XML文件加载Mapper XML文件三种加载方式1、resource2、url3、Class所有xml配置文件存放在configuration对象中创建 Executor执行者Exexutor接口是主要的执行者,其中定义了各种方法:sele

    查看全文
  • 网络
    2021年04月13日

    网络

    1、Get和Post区别POST和GET都是向服务器提交数据,并且都会从服务器获取数据。区别:1、传送方式:get通过地址栏传输,post通过报文传输。2、传送长度:get参数有长度限制(受限于url长度),而post无限制3、GET和POST还有一个重大区别,简单的说:GET产生一个TCP数据包;

    查看全文
  • 04.02. 最小高度树
    2021年04月10日

    04.02. 最小高度树

    原地址https://leetcode-cn.com/problems/minimum-height-tree-lcci/题目给定一个有序整数数组,元素各不相同且按升序排列,编写一个算法,创建一棵高度最小的二叉搜索树。示例:给定有序数组: [-10,-3,0,5,9],一个可能的答案是:[0,-3,

    查看全文
  • 93. 复原 IP 地址
    2021年04月10日

    93. 复原 IP 地址

    原地址https://leetcode-cn.com/problems/restore-ip-addresses/题目给定一个只包含数字的字符串,用以表示一个 IP 地址,返回所有可能从 s 获得的 有效 IP 地址 。你可以按任何顺序返回答案。有效 IP 地址 正好由四个整数(每个整数位于 0 到

    查看全文
  • 176. 第二高的薪水
    2021年04月09日

    176. 第二高的薪水

    原地址https://leetcode-cn.com/problems/second-highest-salary/题目编写一个 SQL 查询,获取 Employee 表中第二高的薪水(Salary) 。+----+--------+| Id | Salary |+----+--------+| 1

    查看全文
  • 20. 有效的括号
    2021年04月09日

    20. 有效的括号

    原地址https://leetcode-cn.com/problems/valid-parentheses/题目给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。分析只要

    查看全文