03 2019 档案

摘要:首先简单介绍一下volatile的应用,volatile作为Java多线程中轻量级的同步措施,保证了多线程环境中“共享变量”的可见性。这里的可见性简单而言可以理解为当一个线程修改了一个共享变量的时候,另外的线程能够读到这个修改的值。下面就是volatile的具体定义和实现原理。上一篇Java内存模型 阅读全文
posted @ 2019-03-25 18:22 夏末秋涼 阅读(773) 评论(0) 推荐(0)
摘要:一、版本1—有序数组中只出现一次的数字 1、题目描述 给定一个只包含整数的有序数组,每个元素都会出现两次,唯有一个数只会出现一次,找出这个数。 示例 1: 示例 2: 注意: 您的方案应该在 O(log n)时间复杂度和 O(1)空间复杂度中运行。 2、思路 a)使用线性时间异或运算: b)实现规定 阅读全文
posted @ 2019-03-20 22:53 夏末秋涼 阅读(2207) 评论(0) 推荐(0)
摘要:一、题目描述 给定一个非负整数 num。对于 0 ≤ i ≤ num 范围中的每个数字 i ,计算其二进制数中的 1 的数目并将它们作为数组返回。 示例 1: 示例 2: 要求: ①给出时间复杂度为O(n*sizeof(integer))的解答非常容易。但你可以在线性时间O(n)内用一趟扫描做到吗? 阅读全文
posted @ 2019-03-20 20:38 夏末秋涼 阅读(330) 评论(0) 推荐(0)
摘要:一、题目描述 给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。 说明:解集不能包含重复的子集。 示例: 二、思路 三、代码实现 阅读全文
posted @ 2019-03-20 13:24 夏末秋涼 阅读(416) 评论(0) 推荐(0)
摘要:一、题目描述 你有一个单词列表 words 和一个模式 pattern,你想知道 words 中的哪些单词与模式匹配。如果存在字母的排列 p ,使得将模式中的每个字母 x 替换为 p(x) 之后,我们就得到了所需的单词,那么单词与模式是匹配的。(回想一下,字母的排列是从字母到字母的双射:每个字母映射 阅读全文
posted @ 2019-03-19 23:17 夏末秋涼 阅读(510) 评论(0) 推荐(0)
摘要:一、简单选择排序 1、简单选择排序的思想是这样的:首先,找到数组中最小的元素,其次,将它和数组中的第一个元素交换位置。再次,在剩下的元素中寻找最小的元素,然后将它和数组中第二个元素交换位置,这样往复进行,知道到数组中最后一个元素的时候就变成了有序数组。 2、简单选择排序算法:对于长度为N的数组,需要 阅读全文
posted @ 2019-03-15 16:09 夏末秋涼 阅读(392) 评论(0) 推荐(0)
摘要:Java内存模型 为了屏蔽各种硬件和操作系统的内存访问差异,实现Java在不同平台下都能达到一致的内存访问效果,而定义出的一种内存模型规范。 一、主内存和工作内存 Java内存模型的主要目标是为了定义程序中各个变量的访问规则(虚拟机中读写变量....这些变量包括实例字段、静态字段、构成数组对象的元素 阅读全文
posted @ 2019-03-12 16:19 夏末秋涼 阅读(882) 评论(0) 推荐(0)
摘要:上一篇JVM垃圾收集器与内存分配策略(一),下面是jdk1.7版本的垃圾收集器之间的关系,其中连线两端的两种垃圾收集器可以进行搭配使用,下面来总结一下这些收集器的一些特点以及关系。 一、Serial收集器 1、serial收集器是一个单线程的收集器,单线程说明两点:①只会使用一个CPU或者一条线程来 阅读全文
posted @ 2019-03-12 09:48 夏末秋涼 阅读(480) 评论(0) 推荐(0)