無名無姓
  • 首页
  • 归档
  • 分类
  • 标签
  • 关于
  • 文档
    主题

临急抱佛脚之杂七杂八

java程序设计语言 String类为什么是final的 final char[],但数组的值可变,为了不被重写方法修改char[]值,所以final String维持不可变性。 String、Stringbuilder、Stringbuffer 区别 Stringbuilder不是线程安全,Stringbuffer是线程安全。当有大量字符串操作时,效率:Stringbuilder》Stringb
2018-03-03
java

临急抱佛脚之ConcurrentHashMap源码

HashMap是线程不安全的,在并发下容易导致Entry构成环状结构导致死循环。而HashTable虽然是线程安全的,但是他的方法都用synchronize同步。当竞争激烈时,就只有一个线程能进行操作,效率低下。HashTable的问题在于全部线程都竞争同一个锁,但是实际上各个线程所操作的数据却不一定是同一个。既然这样,那就把不同的额数据设置不同的锁,那么操作不同数据的线程之间就不会产生竞争了。这
2018-03-02
数据结构

临急抱佛脚之HashMap源码

先上图吧,图说的最清楚,侵删。HashMap的组成单位是Node,Node储存这key-value。最普通的hash存储法,用对象的hashCode方法算出hash,hash对数组长度求余便是这个对象的索引。但是这样会导致hash冲突,所以当hash冲突时,通过链表来解决。但是,如果这个不巧,大部分的key都冲突在一起,那么就会HashMap退化成链表。所以在java8之后,当链表太长时,会把链表
2018-02-28
数据结构

自己的web框架的需求和设计

其实之前师兄就叫我试试自己写个mvc框架,但是各种破事加上懒,就一直没有做。但是需求是第一生产力。刚开始用框架还觉得框架简单好使省事,但是用久了,一些为了开发方便固定下来的套路就渐渐觉得不那么灵活了。什么套路呢?先让我复习一下mvc。 MVC框架 MVC框架的m v c分别代表了模型层,视图层和控制器。 维基百科上讲的: 控制器(Controller)- 负责转发请求,对请求进行处理。 视图(V
2018-02-21
其他

红黑树的原理

这红黑树真是有毒,看了我好几天才大致搞清楚它在干嘛,原理什么的还迷迷糊糊。 二叉排序树 二叉排序树大家应该比较熟悉了,就是一个二叉树,左孩子的值比父节点小,右孩子比父节点大。但是二叉排序树在插入和删除过程中容易导致树失去平衡,导致查找效率降低。而红黑树就是平衡二叉树的一种实现方法。 红黑树 既然红黑树就是平衡二叉树的一种实现方法,那红黑树就是一颗二叉排序树,拥有二叉排序树的全部特性。除此以外,红黑
2018-02-13
数据结构

数据结构与八大排序算法复习

顺序表链表什么的跳过,以下图片均盗自文末的参考文献,数据结构没图(最好是动图)简直要死。 树 度 结点的度是该节点所拥有的子树棵数。树的度是该树各节点的度的最大值。 高度 树中最大的层次数 二叉树 若根节点层次为1,则二叉树第i层最多有2i-1个节点 高度为h的二叉树中,最多有2h-1个节点 设一课二叉树叶子节点为n0,2度的节点有n2,则n0=n2-1 一课具有n个节点的完全二叉树,其高度为h
2018-02-11
算法

博客的不足

发现有个非常不好用的地方,我没有对我写的文章进行版本控制。这导致如果我按浏览器的返回建,返回到文章编辑页面,文章可能是编辑到一半的旧版本。如果我一个不留神保存了,就把新文章覆盖掉,tm又白写了。要版本控制现成的可以考虑备份到github,但是如果是多点部署就势必导致github远程产库和各个本地产库的同步问题,并且github连接速度这么慢,感觉并不是个好解决办法啊!
2018-02-08
随笔

java并发编程的艺术学习笔记

上下文切换 cpu通过给线程分配时间片,时间片一般是几十毫秒。在线程切换的时候,需要在切换前保存上一个任务的状态,以便下次切换回是可以再加载这个任务。这样一个任务从保存到在加载的过程就叫做上下文切换。多线程虽然能将多核cpu物尽其用,但是线程之间的切换也是需要时间和成本的。在并发编程中,将代码执行速度加快的原子是将代码中串行执行的部分变成并发执行,但是如果将串行执行的部分变成并发执行,因为受限于资
2018-02-04
java

深入理解java虚拟机第八-十三章学习笔记

栈帧 栈帧是虚拟机栈的栈元素,栈帧储存了方法的局部变量表,操作数栈,动态链接和方法返回地址。对于活动的线程来说,只有在栈顶的栈帧才是有效的,这个栈帧成为当前栈帧,而当前栈帧对于的方法成为当前方法。 局部变量表 用来存储方法参数和方法的局部变量,局部变量表需要多大在编译的时候以及确定。局部变量表的容量以变量槽(slot)为最小单位。一般32位处理器slot大小为32位,64的则是64。为了节省栈空间
2018-02-02
java

深入理解java虚拟机第三-七章学习笔记

引用计数算法 引用计数算法就是某个对象每增加一个被引用,就计数加一,如果某个对象的引用计数为零,那就是没有被引用了。但显然这种算法没法解决A对象引用B对象,B对象也引用A对象,但除此以外就再也没有任何对象yinyA或者B对象的问题。 可达性分析算法 可达性分析算法是像树一样,从一系列的根节点,称为“GC Roots”开始向下搜索,如果遍历不到某个对象,则这个对象以及没有被引用。而GC Roots包
2018-01-30
java
1…10111213

搜索

Hexo Fluid

备案?不存在的

总访问量 次 总访客数 人