自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 memcpy和memmove

memcpy()和memmove()函数的区别是在于对内存重叠的情况的处理。memcpy()对内存重叠不做任何处理,而memmove()在内存重叠时采用从尾部复制。以上,是官方的解释,也是各个博客的解释。肯定没问题。先贴一下两个函数的实现。void* memcpy(void*dest, constvoid*src, size_tn){ char*dp = dest; ...

2019-09-10 21:12:36 230

原创 finally的执行

finally       finally作为异常处理的一部分,只能在try/catch语句中,并且附带一个语句块,标识这段语句最终一定被执行,经常用在释放资源的情况下。       关于finally的执行顺序——JVM规范中有:如果try语句里面有return,那么先将值保存到局部变量中,然后执行finally...

2018-11-26 11:32:53 269

原创 final修饰符

final       用于声明属性不可变、方法不可重载、类不可被继承。  &

2018-11-25 11:27:56 146

原创 ReentrantReadWriteLock解析

通常我们用的 Synchronized 和 ReentrantLock 都是独占锁,即在同一时刻只有一个线程获取到锁。然而在有些业务场景中,我们大多在读取数据,很少写入数据。这种情况下,如果仍使用独占锁,效率将及其低下。针对这种情况,Java提供了读写锁——ReentrantReadWriteLock。读写锁允许同一时刻被多个读线程访问,但是在写线程访问时,所有的读线程和其他的写线程都会被阻塞。...

2018-08-28 18:14:49 1311

原创 ReentrantLock源码分析

       ReentrantLock比Synchronized提供了更加灵活的加锁方式,可中古段一个正则等待锁的线程,实现指定时间的获取锁,实现公平与非公平锁等。构造器及lock() //默认构造非公平同步器 public ReentrantLock() { sync = new NonfairSync(); } //可构造公平或非公平...

2018-08-18 21:45:05 342

原创 Java的Object类的源码分析

Object类是Java中所有类的父类,所以对其的认识是十分重要的。下面是我对Object类中个方法的认识(结合了代码中的注释以及看过的一些书)public class Object { //其主要作用是将C/C++中的方法映射到Java中的native方法,实现方法命名的解耦。函数的执行是在静态代码块中执行的,在类首次进行加载的时候执行。 private stati...

2018-08-07 11:40:40 3540

原创 String、StringBuilder、StringBuffer

StringBuilderStringBuilder的构造器,无论是默认的无参构造器,或是指定容量的,或是指定字符串的,最终都是继承自AbstractStringBuilder的构造方法。 AbstractStringBuilder(int capacity) { value = new char[capacity]; }主要看一下append()方法 ...

2018-08-06 10:47:32 114

翻译 RDMA介绍

这是对这篇文章的大致翻译:zcopy.wordpress.com/2010/10/08/quick-concepts-part-1-%E2%80%93-introduction-to-rdma/What is RDMARDMA is Remote Dynamic Memory Access which is a way of moving buffers between two app...

2018-07-27 17:58:48 3497

原创 和为S的连续正数序列 剑指offer

题目描述:输出所有和为S的连续正数序列。序列内按照从小至大的顺序,序列间按照开始数字从小到大的顺序  /** * 思路1:针对序列起始数字。 * 从start=1开始循环,假设序列的起始数字为start,那么用S逐渐减去start,start+1,star+2.... * 最后S会为0。若S最后为0,则说明以该start开始的序列是和为S的连续序列...

2018-07-23 15:43:48 162

原创 HashMap的put操作及扩容函数的源码分析 1.8

put操作步骤:  1、检查桶数组,如果数组为空,初始化HashMap;否则,执行2  2、根据带插入的key的hash找到在数组中的索引,如果该位置为空,直接插入;否则,执行3  3、根据该位置下的结构是链表或者红黑树选择相应的插入方式。红黑树的插入涉及去了解红黑树就知道了。链表的插入是在尾部插入。PS:HashTable的链表插入是在头节点插入,这也是两者不同之处。 fin...

2018-07-23 09:11:10 619

原创 二叉树的遍历

package algorithms;import util.TreeNode;import java.util.*;public class BinaryTree { ArrayList<TreeNode> list = new ArrayList<>(); /** * 二叉树的递归前序遍历: * 如果根节点为空,什么...

2018-07-23 08:54:44 117

原创 KMP算法

参考文档: http://jakeboxer.com/blog/2009/12/13/the-knuth-morris-pratt-algorithm-in-my-own-words/ http://www.ruanyifeng.com/blog/2013/05/Knuth%E2%80%93Morris%E2%80%93Pratt_algorithm.html字符串模式匹配      ...

2018-07-18 22:48:05 181

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除