- 博客(17)
- 问答 (1)
- 收藏
- 关注
原创 深入理解Java虚拟机之对象存活算法的实现(2)
深入理解Java虚拟机之对象存活算法的实现(2)因为HotSpot是准确式GC(前一篇有说),并且是借助OopMap的协助来实现的, 所以就引出了一个问题,导致引用发生变化或者说导致OopMap发生修改的操作可能有 很多,如果每一个指令都生成一个OopMap这根本就不现实,因为如此以来空间成本就 太高了。所以HopSpot并不是为每一条指令都生成一个OopMap的,而是在特点的一些 位置将引
2017-12-19 21:56:15 925
原创 LintCode之50 数组剔除元素后的乘积
题目来源:数组提出元素后的乘积题目描述: 给定一个整数数组A。定义B[i] = A[0] * … * A[i-1] * A[i+1] * … * A[n-1], 计算B的时候请不要使用除法。样例 给出A=[1, 2, 3],返回 B为[6, 3, 2]Java代码:public ArrayList<Long> productExcludeItself(ArrayList<Integer> A)
2017-12-13 21:03:18 407
原创 LintCode之46 主元素
题目来源:主元素题目描述: 给定一个整型数组,找出主元素,它在数组中的出现次数严格大于数组元素个数的二分之一。样例: 给出数组[1,1,1,1,2,2,2],返回 1Java代码:public int majorityNumber(ArrayList<Integer> nums) { // write your code int[] number= new int
2017-12-13 21:01:20 348
原创 深入理解Java虚拟机之对象存活算法的实现
深入理解Java虚拟机之对象存活算法的实现在之前的博客中提到过,判断对象是否存活的方式有两种,一种是标记计数法,一种是可达性分析算法, 由于标记计数法不能解决循环引用的问题,所以大多数的虚拟机采用的都是可达性分析算法。但是我们知道 在可达性分析中可以作为GC Roots的节点主要位于全局性的引用(常量或类的静态成员变量)与执行的上下 文(Java虚拟机栈或本地方法栈的变量表)中,比方说有的应用
2017-12-13 20:51:41 961
原创 关于CentOS7 可以ping通 但是telnet无法连接上端口的问题
昨天应同学的要求在自己公司的云平台找了一台云主机上部署了分布式文件系统 FastDFS, 安装经过比较顺利,但是在启动服务的时候出问题了,追踪器Tracker 很容易就启动起来,端 口也可以通过ss -ntl看到,但是在启动存储器Storage 的时候却怎么也查不到相应的端口,查 看了一下日志,发现是Storage无法连接到Tracker,在确定配置不存在问题之后,觉得可能是 云主机的问题,
2017-12-13 10:34:43 40311 8
原创 LintCode之44 最小子数组
题目来源:最小子数组题目描述: 给定一个整数数组,找到一个具有最小和的子数组。返回其最小和。样例: 给出数组[1, -1, -2, 1],返回 -3Java代码:public int minSubArray(ArrayList<Integer> nums) { // write your code int start=0,end=0,minsum=nums.get
2017-12-12 22:17:38 270
原创 LintCode之41 最大子数组
题目来源:最大子数组题目描述: 给定一个整数数组,找到一个具有最大和的子数组,返回其最大和。样例: 给出数组[−2,2,−3,4,−1,2,1,−5,3],符合要求的子数组为[4,−1,2,1],其最大和为6Java代码:public int maxSubArray(int[] nums) { // write your code int start=0,end=
2017-12-12 22:15:52 212
原创 深入理解Java虚拟机之垃圾收集算法(3)
深入理解Java虚拟机之垃圾收集算法(3)今天说一下垃圾收集算法中的最后一个,“标记-整理算法”,之前说过,“暂停-复制算法”会导致部分空间 的浪费,而且需要有额外的空间进行担保,确保每次暂停复制的时候再另一块空间超出的时候有额外的空间存储, 所以在新生代会采用“暂停-复制算法”,但是在老年代会采用“标记-整理”算法。 “标记整理”算法和“标记-清除”算法比较像,但是在标记完对象之后,不会对可
2017-12-12 22:09:07 257
原创 Java源码阅读之String(4)
Java源码阅读之String(4)这一篇博客主要阅读String类的查找和替换相关的方法。 /* *查询当前对象的哈希码,如果当前对象没有计算过哈希码 *则计算当前对象的哈希码并赋值给当前对象的hash对象 *计算方法为: *value[0]*31^(n-1)+value[1]*31^(n-2)+...+value[n-2]*31+value[n-1]
2017-12-08 15:40:13 352
原创 LintCode之40 用栈实现队列
题目来源:用栈实现队列题目描述: 正如标题所述,你需要使用两个栈来实现队列的一些操作。队列应支持push(element),pop() 和 top(),其中pop是弹出队列中的第一个(最前面的)元素。pop和top方法都应该返回第一个元素的值。样例: 比如push(1), pop(), push(2), push(3), top(), pop(),你应该返回1,2和2Java代码:public
2017-12-07 23:16:37 229
原创 LintCode之39 恢复旋转排序数组
题目来源:恢复旋转排序数组题目描述: 给定一个旋转排序数组,在原地恢复其排序。什么是旋转数组?比如,原始数组为[1,2,3,4], 则其旋转数组可以是[1,2,3,4], [2,3,4,1], [3,4,1,2], [4,1,2,3]样例 [4, 5, 1, 2, 3] -> [1, 2, 3, 4, 5]Java代码:public void recoverRotatedSortedArra
2017-12-07 23:13:32 502
原创 LintCode之38 搜索二维矩阵 II
题目来源:搜索二维矩阵 II 写出一个高效的算法来搜索m×n矩阵中的值,返回这个值出现的次数。这个矩阵具有以下特性:每行中的整数从左到右是排序的。每一列的整数从上到下是排序的。在每一行或每一列中没有重复的整数。样例 考虑下列矩阵: [ [1, 3, 5, 7], [2, 4, 7, 8], [3, 5, 9, 10] ]给出target = 3,返回 2
2017-12-07 23:10:53 433
原创 深入理解Java虚拟机之垃圾收集算法(2)
深入理解Java虚拟机之垃圾收集算法(2)这一篇我们说一下垃圾收集算法中的,“暂停-复制”算法,暂停复制算法是为了补充“标记-清除” 算法的不足出现的,这个算法解决了“标记-清除”算法效率不高且产生内存碎片的缺点。它将内存分 为两块大小相等的区域,每次只使用一块。当这一块内存用完的时候就将这块内存上存活的对象复制到 另一块大小相等的区域中,再将原来的区域清理掉。这样一来每次产生对象都是移
2017-12-07 22:42:13 341
原创 深入理解Java虚拟机之垃圾收集算法(1)
深入理解Java虚拟机之垃圾收集算法(1)这一篇博客我们介绍一下虚拟机的垃圾收集算法,最基础的垃圾收集算法是“标记-清除”法,顾名思义 这个算法分为两个步骤,标记和清除,首先对需要进行回收的对象进行标记,如何进行标记在之前的博客里面 已经说过了,这里就不赘述了,标记完成之后,对所有进行标记过得对象进行回收。之所以说这个算法是最基 础的算法是因为之后的算法都是对这个算法进行的改进和补充,这个算法
2017-12-05 22:04:36 238
原创 Java源码阅读之String(3)
Java源码阅读之String(3)这一篇博客主要读一下String类的比较方法/***将anotherString对象和当前对象进行对比,对比方式为*从两者首位依次向后对比,知道对比到其中一个结束*返回值为负数则当前对象小,返回0则相等,返回正数则当前对象大*/public int compareTo(String anotherString) { int len1 = valu
2017-12-05 18:25:36 482
原创 PathVariable annotation was empty on param 0.
PathVariable annotation was empty on param 0.今天在写Feign调用另一个模块的时候报了一个错,就是标题,到网上查了一下发现问题出在@PathVariable 标记中的value不能为空,也就是不能只写@PathVariable String id而是要写成 @PathVariable(value=”id”) String id,这个问题似乎在普通的类上
2017-12-04 10:43:34 1905
原创 Java源码阅读之String(2)
Java源码阅读之String(2)这一篇博客用于记录String类的部分方法。//获取字符串长度,返回的是value数组的长度public int length() { return value.length;}//根据value数组长度判断字符串是否为空public boolean isEmpty() { return value.length == 0;}//根据ind
2017-12-02 14:32:47 1234
空空如也
Java final变量虚拟机赋初值
2016-07-28
TA创建的收藏夹 TA关注的收藏夹
TA关注的人