- 博客(304)
- 资源 (2)
- 收藏
- 关注
原创 数据结构与算法-专栏文章目录汇总
专栏原创出处:github-源笔记文件 ,github-源码 ,欢迎 Star,转载请附上原文出处链接和本声明。数据结构-基础篇内存模型-基础概念 内存模型-顺序一致性 并发编程-CAS 实现原理 内存模型-原子操作 专栏更多文章笔记Java 核心知识-专栏文章目录汇总 Java 并发编程-专栏文章目录汇总 Java JVM(JDK13)-专栏文章目录汇总 ...
2020-02-18 01:37:41 724
原创 2020 年 Java 面试题(中高级)
自我面试背书式的学习对技术的提升帮助很小。本篇内容不涉及答案,答案需要去相关专栏学习。把面试看作是费曼学习法中的回顾、授课环节。首先我们能讲给自己听,如果不满意再回炉学习总结,如此反复。专栏学习地址:CSDN-同步发布 Java 并发编程专栏 CSDN-同步发布 Java 虚拟机(JVM) 专栏 个人技术博客-同步发布 Java 并发编程专栏 个人技...
2020-01-19 16:29:36 2252
原创 Java 核心知识-专栏文章目录汇总
专栏原创出处:github-源笔记文件 ,github-源码 ,欢迎 Star,转载请附上原文出处链接和本声明。Java 核心知识专栏系列笔记,系统性学习可访问个人技术博客 Java 核心知识 Java 核心知识-基础篇Java 深入理解内部类的作用Java 核心知识-集合Java 哈希碰撞实战- HashMap 原理...
2020-01-17 15:38:41 1013
原创 Java JVM(JDK13)-专栏文章目录汇总
专栏原创出处:github-源笔记文件 ,github-源码 ,欢迎 Star,转载请附上原文出处链接和本声明。Java JVM-虚拟机专栏系列笔记,系统性学习可访问个人复盘笔记-技术博客 Java JVM-虚拟机 Java JVM(虚拟机)-自动内存管理Java JVM 运行时内存数据区域Java JVM 对象的创建与访问过程...
2020-01-04 00:13:15 1899
原创 Java 并发编程-专栏文章目录汇总
专栏原创出处:github-源笔记文件 ,github-源码 ,转载请附上原文出处链接和本声明。并发编程-基础概念Java 内存模型-基础概念Java 内存模型-顺序一致性Java 并发编程-CAS实现原理Java 内存模型-原子操作Java 内存模型- final 域的内存语义Java 并发关键字-volatileJava 并发关键字-synchronizedJava...
2019-12-18 11:18:35 3766 7
原创 Git-基础配置与常用命令
专栏原创出处:github-源笔记文件 ,欢迎 Star,转载请附上原文出处链接和本声明。文章目录使用前的配置创建仓库分支进行更改重做提交同步更改多 SSH-Key 生成及代理配置生成一个新的 SSH Key将 SSH Key 添加到不同的代理测试配置是否成功术语表参考使用前的配置检查你的配置git config --list --show-origin# 查看所有的配置以及它们所...
2020-03-27 11:14:18 675 1
原创 Java 集合体系接口概览
专栏原创出处:github-源笔记文件 ,github-源码 ,欢迎 Star,转载请附上原文出处链接和本声明。Java 核心知识专栏系列笔记,系统性学习可访问个人复盘笔记-技术博客 Java 核心知识 文章目录1. Iterable 接口是干什么用的?2. 集合体系接口关系概览2.1 Queue2.2 List2.3 Set2.4 Map1. Iterable 接口是干什么用的?J...
2020-02-25 18:18:48 713
原创 位运算技巧总结
专栏原创出处:github-源笔记文件 ,github-源码 ,欢迎 Star,转载请附上原文出处链接和本声明。文章目录有哪些位运算位移实现乘除法`a ^ b ^ b = a` 异或交换两数与运算判断奇偶数取反运算交换符号位操作求绝对值位操作进行高低位交换消去二进制最后一位的 1参考有哪些位运算& 与运算 两个位都是 1 时,结果才为 1,否则为 0| 或运算 两个位都是 ...
2020-02-24 23:59:26 990
原创 数据结构-树、二叉树、查找树、平衡树
专栏原创出处:github-源笔记文件 ,github-源码 ,欢迎 Star,转载请附上原文出处链接和本声明。文章目录1. 树的概念2. 二叉树2.1 二叉树的遍历2.2 二叉树的类型二叉树相关算法参考1. 树的概念具有 n(n≥0)n(n\ge 0)n(n≥0) 个节点的有限集称为树。当 n=0n = 0n=0 时称为空树;当 n≥1n\ge 1n≥1 时,仅有一个特定的称为根...
2020-02-22 05:15:49 561
原创 算法题常见名词解释
专栏原创出处:github-源笔记文件 ,github-源码 ,欢迎 Star,转载请附上原文出处链接和本声明。文章目录1. 回文参考1. 回文百度百科 :把相同的词汇或句子,在下文中调换位置或颠倒过来,产生首尾回环的情趣,叫做回文,也叫回环。正例:-----------------------------------------------------------121 回...
2020-02-22 05:14:17 1524
原创 如何轻而易举的写出递归函数
专栏原创出处:github-源笔记文件 ,github-源码 ,欢迎 Star,转载请附上原文出处链接和本声明。文章目录1. 递归的定义2. 如何写出一个递归函数2.1 寻找递归跳出条件2.2 分析逻辑,寻找递归等式(难点)2.3 优化递归函数2.4 改为循环3. 递归乘法的案例实战3.1 审题思路3.2 尝试递归3.3 尝试优化4. 再谈由上到下、由下到上5. 递归算法推荐参考1. 递...
2020-02-22 05:09:57 2329 5
原创 Java 从字节码的角度谈代码优化的假象
专栏原创出处:github-源笔记文件 ,github-源码 ,欢迎 Star,转载请附上原文出处链接和本声明。Java 核心知识专栏系列笔记,系统性学习可访问个人复盘笔记-技术博客 Java 核心知识 文章目录个人想法for 里面外面声明对象问题个人想法总结此文章源于以前对代码格式书写的误解。for 里面外面声明对象问题// 方式一:Object 声明在 for 外部publ...
2020-02-19 22:45:51 421
原创 算法解题技巧总结
专栏原创出处:github-源笔记文件 ,github-源码 ,欢迎 Star,转载请附上原文出处链接和本声明。文章目录1.双指针技巧1.1 对撞指针,两个指针从两端向中间迭代1.2 窗口指针,两个指针保持距离同步迭代1.3 快慢指针,快慢指针同步迭代2.哨兵节点(哑节点、伪节点)参考1.双指针技巧1.1 对撞指针,两个指针从两端向中间迭代一个指针从始端开始,而另一个指针从末端开始。...
2020-02-19 03:05:01 652
原创 数据结构-链表
文章目录1.链表1.1 链表的特点1.2 链表的类型1.3 时间复杂对比对2.单链表3.单向循环链表4.双向链表5.双向循环链表6.实践参考1.链表链表作为一种基础的数据结构可以用来生成其它类型的数据结构。通常由一连串节点组成,每个节点包含任意的实例数据(data)和一或两个用来指向上一个/或下一个节点的位置的链接。我们通过下图可直观的比对数组与链表的结构。 比如我们删除第「3...
2020-02-18 01:46:45 1513
原创 数据结构-字符串和数组
专栏原创出处:github-源笔记文件 ,github-源码 ,欢迎 Star,转载请附上原文出处链接和本声明。文章目录1.数组1.1 数组的特点1.2 为什么下标从 0 开始1.3 多维数组1.4 动态数组2. 字符串3.数组字符串算法总结3.1 双指针技巧4.算法实践参考专栏更多文章笔记1.数组数组是一种基本的数据结构,用于按顺序存储元素的集合。但是元素可以随机存取,因为数组中的每...
2020-02-18 01:44:08 578
原创 数据结构-算法时间复杂度与空间复杂度
专栏原创出处:github-源笔记文件 ,github-源码 ,欢迎 Star,转载请附上原文出处链接和本声明。文章目录1.算法2.时间复杂度2.1 时间频度2.2 时间复杂度的定义2.2.1 忽略项2.2.2 计算时间复杂度的方法2.2.3 常见的时间复杂度2.3 平均时间复杂度和最坏时间复杂度3.空间复杂度参考1.算法算法是解决特定问题求解步骤的描述,在计算机中表现为指定的有限序列...
2020-02-18 01:42:25 901
原创 数据结构概述
专栏原创出处:github-源笔记文件 ,github-源码 ,欢迎 Star,转载请附上原文出处链接和本声明。文章目录1.数据结构2.逻辑结构2.1 逻辑结构的分类2.2 常见的数据逻辑结构层次关系图3.存储结构4.逻辑结构和存储结构的区别参考1.数据结构相互之间存在一种或多种特定关系的数据元素的集合称为「数据结构」。按照视点的不同,数据结构可以分为「逻辑结构」和「存储结构」。2....
2020-02-18 01:39:31 459
原创 Spark WordCount 代码执行过程解析
专栏原创出处:github-源笔记文件 ,github-源码 ,欢迎 Star,转载请附上原文出处链接和本声明。文章目录1. WordCount 代码示例2. 运行前的准备3. Stage 的切分4. Task 提交5. 任务计算6. 结果返回1. WordCount 代码示例object WordCount { def main(args: Array[String]): Uni...
2020-02-16 22:37:24 425
原创 Spark 部署模式
专栏原创出处:github-源笔记文件 ,github-源码 ,欢迎 Star,转载请附上原文出处链接和本声明。文章目录1.部署模式1.1.本地部署模式1.2.Standalone 部署模式1.3.On-Yarn 部署模式2. 任务提交流程2.1.Standalone 模式2.2.On-Yarn 模式2.3.Yarn-Client 和 Yarn-Cluster 的区别1.部署模式1.1...
2020-02-16 22:36:40 417
原创 Spark Partitioner 分区机制解析
专栏原创出处:github-源笔记文件 ,github-源码 ,欢迎 Star,转载请附上原文出处链接和本声明。文章目录1. 什么是分区2. 分区方式1.HashPartitioner2.RangePartitioner3. 如何设置合理的分区数1. 什么是分区RDD 是一个分布式的数据集,会存放很大量的数据,一个 RDD 是由若干个分区组成的,对 RDD 进行的各种操作,实际上就是对...
2020-02-16 22:35:46 575
原创 Spark 内存管理-内存划分
专栏原创出处:github-源笔记文件 ,github-源码 ,欢迎 Star,转载请附上原文出处链接和本声明。文章目录1、前言2、堆内存和堆外内存3、内存划分3.1 相关参数3.2 内存划分示意图4、相关源码解读4.1 UnrollMemory 理解参考1、前言spark 内存管理源码说明spark-core jar 中 org.apache.spark.memory 负责内存管...
2020-02-16 22:35:00 788
原创 Spark 共享变量、广播变量、累加器
专栏原创出处:github-源笔记文件 ,github-源码 ,欢迎 Star,转载请附上原文出处链接和本声明。文章目录1. 什么是共享变量2. 广播变量2.1.什么是广播变量2.2.如何使用广播变量3. 累加器3.1.什么是累加器3.2.如何使用累加器1. 什么是共享变量默认情况下,在一个对 RDD 操作的算子中如果使用到了外部 Driver 端定义的变量,这些变量将会被发送到每一个...
2020-02-16 22:34:18 458
原创 Spark Shuffle 机制解析
专栏原创出处:github-源笔记文件 ,github-源码 ,欢迎 Star,转载请附上原文出处链接和本声明。文章目录1. 什么是 Shuffle2. Shuffle 管理器的发展史3. SortShuffleManager 解析3.1.普通机制解析3.2.bypass 机制解析3.3.bypass 机制开启条件4. SortShuffleManager 两种机制的区别1. 什么是 S...
2020-02-16 22:33:09 424
原创 Spark RDD 介绍
专栏原创出处:github-源笔记文件 ,github-源码 ,欢迎 Star,转载请附上原文出处链接和本声明。文章目录1. 什么是 RDDRDD 的五个主要特性初始化 RDD操作 RDD闭包问题2. Stage 划分宽依赖与窄依赖如何划分 Stage3. RDD 的缓存cache 和 persist 的区别cache 和 checkPoint 的区别persist 和 checkPoin...
2020-02-16 22:31:58 488
原创 Spark 入门介绍
专栏原创出处:github-源笔记文件 ,github-源码 ,欢迎 Star,转载请附上原文出处链接和本声明。文章目录1. 简介Spark 的身世Spark 特性Spark 针对 Hadoop-MR 做的改进2. 运行时组件DriverMasterWorkerExecutor3. 编程模型SparkContextSparkConfSparkEnvRDDDAGDAGSchedulerSta...
2020-02-16 22:29:48 318
原创 vimium 快捷键列表
vimium 快捷键列表一个使用快捷键来操作浏览器页面的插件。浏览当前页面? 显示所有可用键列表的帮助对话框h 向左滚动j 向下滚动k 向上滑动l 向右滚动gg 滚动到页面顶部G 滚动到页面的底部d 向下滚动半页u 向上滚动半页f 在当前标签中打开一个链接...
2020-02-15 19:22:52 367
原创 LeetCode-747. 至少是其他数字两倍的最大数(数组)
LeetCode 题目描述在一个给定的数组 nums 中,总是存在一个最大元素 。查找数组中的最大元素是否至少是数组中每个其他数字的两倍。如果是,则返回最大元素的索引,否则返回-1。示例 1:输入: nums = [3, 6, 1, 0]输出: 1解释: 6 是最大的整数, 对于数组中的其他整数,6 大于数组中其他元素的两倍。6 的索引是 1, 所以我们返回 1.示例 2:输...
2020-02-06 17:04:27 366
原创 LeetCode-724.寻找数组的中心索引(数组)
LeetCode 题目描述给定一个整数类型的数组 nums,请编写一个能够返回数组“中心索引”的方法。我们是这样定义数组中心索引的:数组中心索引的左侧所有元素相加的和等于右侧所有元素相加的和。如果数组不存在中心索引,那么我们应该返回 -1。如果数组有多个中心索引,那么我们应该返回最靠近左边的那一个。示例 1:输入: nums = [1, 7, 3, 6, 5, 6]输出: ...
2020-02-06 16:19:38 293
原创 LeetCode-66.加一(数组)
LeetCode 题目描述给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例 1:输入: [1,2,3]输出: [1,2,4]解释: 输入数组表示数字 123。示例 2:输入: [4,3,2,1]输出: [4,3,2,2]解...
2020-02-06 15:19:23 282
原创 LeetCode-1195.交替打印字符串(多线程)
LeetCode 题目描述编写一个可以从 1 到 n 输出代表这个数字的字符串的程序,但是:如果这个数字可以被 3 整除,输出 “fizz”。如果这个数字可以被 5 整除,输出 “buzz”。如果这个数字可以同时被 3 和 5 整除,输出 “fizzbuzz”。例如,当 n = 15,输出: 1, 2, fizz, 4, buzz, fizz, 7, 8...
2020-02-06 13:32:19 859
原创 普通话-汉语拼音字母表
前言声母:使用在韵母前面的辅音,跟韵母一起构成的一个完整的音节。其他汉藏语系语言也有类似的结构,一般由辅音充当,即首辅音。辅音的主要特点是发音时气流在口腔中要分别受到各种阻碍,因此可以说,声母发音的过程也就是气流受阻和克服阻碍的过程。声母通常响度较低、不可任意延长、而且不用于押韵。韵母:可以分成韵头 (介音)、韵腹 (主要元音)、韵尾三部分。如“娘”niáng 的韵母是 iang,其中...
2020-02-05 13:22:37 11766
原创 LeetCode-1116.打印零与奇偶数(多线程)
LeetCode 题目描述假设有这么一个类:class ZeroEvenOdd { public ZeroEvenOdd(int n) { ... } // 构造函数 public void zero(printNumber) { ... } // 仅打印出 0 public void even(printNumber) { ... } // 仅打印出 偶数 pu...
2020-02-04 18:45:55 1165
原创 LeetCode-1115.交替打印FooBar(多线程)
LeetCode 题目描述我们提供一个类:class FooBar { public void foo() { for (int i = 0; i < n; i++) { print("foo"); } } public void bar() { for (int i = 0; i < n; i++) { print("...
2020-02-04 16:40:35 733
原创 LeetCode-1114. 按序打印(多线程)
LeetCode 题目描述我们提供了一个类:public class Foo { public void one() { print("one"); } public void two() { print("two"); } public void three() { print("three"); }}三个不同的线程将会共用一个 Foo 实例。线程...
2020-02-03 21:53:44 755
原创 LeetCode-1117. H2O 生成(多线程)
Leetcode 题目描述现在有两种线程,氢 oxygen 和氧 hydrogen,你的目标是组织这两种线程来产生水分子。存在一个屏障(barrier)使得每个线程必须等候直到一个完整水分子能够被产生出来。氢和氧线程会被分别给予 releaseHydrogen 和 releaseOxygen 方法来允许它们突破屏障。这些线程应该三三成组突破屏障并能立即组合产生一个水分子。你必须保证产生一...
2020-02-03 18:29:20 464
原创 Java 从底层实现角度理解 java 中的 null 是什么
专栏原创出处:github-源笔记文件 ,github-源码 ,欢迎 Star,转载请附上原文出处链接和本声明。Java 核心知识专栏系列笔记,系统性学习可访问个人复盘笔记-技术博客 Java 核心知识 一、Oracle 官方对 null 的描述The Kinds of Types and Values 中说明,在实践中,程序员可以忽略 null 类型,而只是假装 null 只是可以是...
2020-01-20 17:11:19 1035
原创 Java for、foreach 循环底层实现原理,以及如何判断集合支持 foreach 循环
专栏原创出处:github-源笔记文件 ,github-源码 ,欢迎 Star,转载请附上原文出处链接和本声明。Java 核心知识专栏系列笔记,系统性学习可访问个人复盘笔记-技术博客 Java 核心知识 一、前言本节内容主要研究 for、foreach 循环的底层实现原理,再比较两种实现方式的性能。最后通过 RandomAccess 接口说明 JDK 让我们怎么去识别集合是否支持随机访...
2020-01-20 15:47:17 5059
原创 Java JVM 虚拟机编译器性能增强优化技术
专栏原创出处:github-源笔记文件 ,github-源码 ,欢迎 Star,转载请附上原文出处链接和本声明。Java JVM-虚拟机专栏系列笔记,系统性学习可访问个人复盘笔记-技术博客 Java JVM-虚拟机 前言介绍 Oracle HotSpot 虚拟机技术的性能增强部分案例。优化技术手段非常之多,可参考官方列出 openjdk-优化技术概览 字符串压缩字符串压缩功能...
2020-01-19 16:06:25 1320
原创 Java 可变长参数的使用及特性
专栏原创出处:github-源笔记文件 ,github-源码 ,欢迎 Star,转载请附上原文出处链接和本声明。Java 核心知识专栏系列笔记,系统性学习可访问个人复盘笔记-技术博客 Java 核心知识 [[toc]]一、可变长参数的定义使用 类型... 名称 定义为可变长参数(Varargs),一个方法只能有一个可变长参数并且必须是方法最后一个参数。void method(Str...
2020-01-19 11:25:12 837
原创 Java JVM 从程序员的角度看对象初始化过程,变量加载顺序及内存分配
专栏原创出处:github-源笔记文件 ,github-源码 ,欢迎 Star,转载请附上原文出处链接和本声明。Java JVM-虚拟机专栏系列笔记,系统性学习可访问个人复盘笔记-技术博客 Java JVM-虚拟机 一、前言前面我们分析过 从虚拟机的角度看对象的创建与访问 。现在我们站在程序员角度,定义的一个个类及类里面的成员变量是怎么初始化的,什么时候初始化,以及初始化顺序。网...
2020-01-18 23:43:21 791 2
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人