自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

平湖的博客

守得云中月,方可揽星辰。

  • 博客(13)
  • 问答 (1)
  • 收藏
  • 关注

原创 Java并发核心浅谈(二)

回顾在上一篇 Java并发核心浅谈 我们大概了解到了Lock和synchronized的共同点,再简单总结下:Lock主要是自定义一个 counter,从而利用CAS对其实现原子操作,而synchronized是c++ hotspot实现的 monitor(具体的咱也没看,咱就不说)二者都可重入(递归,互调,循环),其本质都是维护一个可计数的 monitor,在其它线程访问加锁对象时会判断...

2019-06-16 18:05:14 144

原创 Java并发核心浅谈

Java并发的核心就是 j.u.c 包,而 j.u.c 的核心是AbstractQueuedSynchronizer抽象队列同步器,简称 AQS,一些锁啊!信号量啊!循环屏障啊!都是基于AQS。而 AQS 又是基于UNSAFE的一系列compareAndSet,所以理解了这块,并发不再是问题!先解释下何为compareAndSet就拿AtomicInteger先开刀: // 实际操作的值...

2019-06-12 11:31:59 171

原创 ThreadPoolExecutor浅谈

在了解线程池之前,希望你能够理解 Java 内存模型 和 AQS CAS /** * The runState provides the main lifecycle control, taking on values: * * RUNNING: Accept new tasks and process queued tasks * ...

2019-06-11 10:10:25 163

原创 leetcode - 189. 旋转数组

/** * 旋转数组:将数组的后 k 位数移至头部,前 length - k 位数移至尾部 * 要求使用原地算法,即不使用额外的空间 * @param nums 数组 * @param k 旋转的个数 */ private static void rotate(int[] nums, int k) { int length = nums.length; // 无须操...

2019-06-30 08:13:25 240

原创 字符串的四则运算表达式

public static void main(String[] args) { // 支持括号 小数 负数 String statement = "-10/(4.5+5.5)*(-4-6+20)/-2"; // 10/(-2) 也行 System.out.println(calculate(statement)); } @SuppressWarnings("...

2019-06-28 21:36:45 1048

原创 Java中各种对象的各种实例化方式

Java 中万物皆对象,Linux 中一切皆文件。简单的说下对象的实例化过程:首先我们需要有个意识,就是创建一个类的实例化对象,内存中必须要加载了这个类所以,不论是 new 还是反射或是 Unsafe.allocateInstance(Class),都必须要先找到类对象的内存地址然后知道类对象的结构,再去堆上申请新的空间,即实例化对象顺带说下,Java 占内存的原因正是因为对象携带的信...

2019-06-13 11:43:12 829

原创 英语词类浅谈

英语是一门语言,一门学科,一门语言学(Philology)大家都知道英文的构词法是前缀改变词意,后缀强调词性。Philology 可拆分为 Philo(爱) logy(意思:说。和逻辑 logic 又很像)说明语言学是爱说且富有逻辑的,英语正是如此。宾语(object)说到这,我很敬佩当初的翻译者,因为程序员最为熟知的 object 即对象,为什么解释为对象呢!我的推测是这样的,ob 是对面...

2019-06-09 14:13:46 490

原创 leetcode-cn 实现strStr()

题目如图:其实这道题相当于让我们自己手写indexOf(),平时用惯了api,手写起来不是很容易,我自己就换了好几种写法,代码如下: private static int strStr(String haystack, String needle) { if (haystack == null || needle == null) { return -1; } in...

2019-06-08 15:16:08 119

原创 leetcode-cn 删除排序数组中的重复项

题目如图:比较简单,代码如下: private static int removeDuplicates(int[] nums) { int length = nums.length; int headIndex = 0, tailIndex = 1; for (; tailIndex < length; tailIndex++) { // 比较 headIndex t...

2019-06-07 21:21:30 91

原创 leetcode-cn 有效的括号

题目描述如图:废话不多说,代码如下: private static boolean oddAndEvenNumber(int value1, int value2){ // 判断两个数是否同时为偶数或同时为奇数 return ((value1 & 1) == 1) == ((value2 & 1) == 1); } private static boolean...

2019-06-07 18:55:44 126

原创 函数依赖

函数依赖是指关系中属性间(或者说是表中字段间)的对应关系。定义:设 R 为任一给定关系,如果对于 R 中属性 X 的每一个值,R 中的属性 Y 只有唯一值与之对应,则称 X 函数决定 Y 或称 Y 函数依赖于 X ,记作 X—>Y。其中,X 称为决定因素。通俗一点,就是给定一个 X 都有唯一的 Y。可以理解为函数 y = f(x); 对于任意的 x 都有唯一的 y ,且 y 的取值由 x...

2019-06-07 15:17:57 30278 2

原创 leetcode-cn 回文数判断

解法基本分为两种,一类是转成字符串数组,然后逐个比较左边和右边的字符,或者是转成字符串,然后反转,再进行比较,其本质都是单个字符的比较,大家都能想到,就不写了。另一类是直接对数字进行操作,leetcode上有人例举了,还不错。我写完之后,看别人的代码,简洁好多,自叹不如(不过我这个是支持负数回文数的

2019-06-07 08:56:49 149 1

原创 SQL多表查询

多表查询的话,SQL提供了JOIN关键字来连接多张表的查询(即连接的是SELECT结果集)基本分为以下几种:JOIN / INNER JOIN-也称作内连接,是最为常用的一种JOIN,其效果是在表中存在一个匹配即返回该条数据等值连接:ON 子句中使用了运算符“=”,且连接的两个字段最好是主键不等连接:ON 子句中使用了不等于运算符,例如"<>" "<=>"等(可以...

2019-06-05 22:29:09 16359

空空如也

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

TA关注的人

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