- 博客(16)
- 资源 (2)
- 收藏
- 关注
原创 基于JDK1.8源码分析HashMap容器
前言基于JDK1.8源码解析Map集合类下的HashMap,以及HashMap与HashTable的对比。要点总结:HashMap底层是数组+链表/红黑树(在JDK1.7及之前是数组+链表); HashMap根据哈希算法,计算key的HashCode(具体可参考Object类的HashCode()方法),为了减少冲突概率,在与数组长度做与运算之前,将高16位与低16位做异或运算,高位...
2019-12-23 14:32:57 244
原创 List集合类介绍(源码分析)
前言基于JDK1.8源码解析List集合类下的ArrayList,Vector与ArrayList的区别,LinkedList。要点总结:ArrayList底层是数组,初始容量默认为10,每次扩容为原容量的1.5倍; ArrayList基于动态数组实现,扩容的底层通过JNI调用JVM里由C/C++编写的native方法实现,可概括为申请一块新的内存存放新数组,再把原数组的数据拷贝到新...
2019-12-23 14:09:02 275
原创 LeetCode10
import java.util.HashMap;import java.util.Map;public class LeetCode10 { // trash code// public boolean isMatch(String s, String p) {// // corner case// p = organizePatternStr(p);// if (p.equals("")) {// retu.
2021-10-26 22:31:26 89 1
原创 LeetCode9
public class LeetCode9 { public boolean isPalindrome(int x) { if (x < 0) return false; int n = x, y = 0; while (n > 0) { int z = y; z *= 10; z += n%10; n /= 10; .
2021-10-26 22:21:14 74
原创 LeetCode8
public class LeetCode8 { public int myAtoi(String s) { if (s == null || s.equals("")) { return 0; } int res = 0; int sign = 1; int i = 0; char[] chars = s.toCharArray(); for (char c .
2021-10-26 22:20:10 78
原创 LeetCode7
public class LeetCode7 { public int reverse(int x) { if (x == Integer.MIN_VALUE) { return 0; } int neg = x < 0 ? -1 : 1; x *= neg; int ret = 0; while (x > 0) { int n = ret;.
2021-10-26 22:19:43 74
原创 Java内部类的知识点总结
引言基于JDK1.8分析Java的内部类以及内部类的使用方法。1、内部类介绍内部类分为4种:成员内部类 静态内部类 局部内部类 匿名内部类思维导图:1.1 成员内部类在写法上与成员变量相似,直接写在类里。内部类的定义示例:public class OutClass { int a = 1; class InnerClass { int a = 2; public void printA() {
2020-05-17 23:26:59 189
原创 开发过程中常用到的linux 命令笔记
一、Linux权限的概念Linux下有两种用户:普通用户和超级用户()。普通用户:在linux下做有限的事情;超级用户:可以在linux系统下做任何事情,不受限制。普通用户的提示符是“$”,超级用户的命令提示符是“#”。命令:su [用户名]功能:切换用户Linux权限管理1.文件访问者的分类(人)文件和文件目录的所有者:u—User文件和文件目录的所有者所在的...
2020-05-11 20:20:16 177
原创 JVM入门(一):JVM的内存区域分析
参考:https://www.cnblogs.com/lewis0077/p/5143268.htmlJava虚拟机内存模型Java中通过多线程机制使得多个任务同时执行处理,所有的线程共享JVM内存区域main memory,而每个线程又单独的有自己的工作内存,当线程与内存区域进行交互时,数据从主存拷贝到工作内存,进而交由线程处理(操作码+操作数)。1、程序计数器程序计数器...
2020-05-11 20:18:38 117
原创 动态规划(一)经典问题:01背包
引言:动态规划的基本问题之一,几乎所有的动态规划问题的解决方法都可以从这些经典问题的方法的延伸中找到。步骤:1、将问题分解为子问题2、确定状态3、确定初始条件和边界条件4、确定状态转移方程5、根据以上计算出全局最优解问题描述:有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包...
2020-05-11 20:12:35 787
cppan-master-Windows-client
2018-07-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人