- 博客(127)
- 资源 (7)
- 收藏
- 关注
原创 关于Java内存可见性的探究实验遇到的意外和happens-before
java内存模型(JMM)学习过后,一直没有找机会进行实践,于是抽时间写了一个程序验证JVM内存模型中常见的线程不可见问题程序如下:package com.bestqiang.thread.JUC;/** * @author BestQiang */public class TestStatic { public static void main(String[] args...
2019-05-15 14:43:25
17255
原创 GC Roots的对象,以及对java类中的成员变量,局部变量,静态变量和常量的不同回收时机的解析
1.作为GC Roots的对象有以下几种虚拟机栈(栈帧中的局部变量区,也叫局部变量表)中引用的对象。方法区中的类静态属性引用的对象。方法区中常量引用的对象。本地方法栈中JNI(Native)方法引用的对象。2.成员变量(实例变量)&局部变量&静态变量(类变量)的区别成员变量(实例变量)&局部变量区别:作用域成员变量:针对整个类有效。局部变量:只在...
2019-05-06 10:16:36
19685
原创 从class文件与JVM加载机制理解final、static、static final
编程过程中经常用的static,final关键字,也经常听到同事谈起这些词,到底他们怎么样呢,JVM中class类文件结构可以找到答案。ConstantValue属性ConstantValue属性的作用是通知虚拟机自动为静态变量赋值,只有被static修饰的变量才可以使用这项属性。非static类型的变量的赋值是在实例构造器方法中进行的;tatic类型变量赋值分两种,在类构造其中赋值,或使用C...
2019-05-05 22:03:43
18789
转载 通过反编译深入理解Java String及intern + JDK1.8关于运行时常量池, 字符串常量池的要点
原作者:liuxiaopeng一、字符串问题 字符串在我们平时的编码工作中其实用的非常多,并且用起来也比较简单,所以很少有人对其做特别深入的研究。倒是面试或者笔试的时候,往往会涉及比较深入和难度大一点的问题。我在招聘的时候也偶尔会问应聘者相关的问题,倒不是说一定要回答的特别正确和深入,通常问这些问题的目的有两个,第一是考察对 JAVA 基础知识的了解程度,第二是考察应聘者对技术的态度。 ...
2019-05-04 21:25:57
17574
2
原创 "init"与"clinit"的区别
在编译生成class文件时,会自动产生两个方法,一个是类的初始化方法<clinit>, 另一个是实例的初始化方法<init>注意:<clinit>:如果没有静态块,静态变量则没有<clinit><init>:类的实例构造器。关于二者的详细对照:<clinit>:在JVM第一次加载class文件时调用,包括静态变量初始...
2019-05-03 17:19:23
17791
原创 JVM之Class文件分析详解
JVM之Class文件分析详解逐个字节分析Class文件。了解Class文件内部结构。原始类文件:这个类直接拿了知乎的一个类,分析是很简单,只是因为重新画图比较麻烦,不想再做重复的苦力工作(地址(https://zhuanlan.zhihu.com/p/23068093)ps:作者仅仅提供了类和图,并无解析。)package com.vonzhou.learn.jvm.klass;p...
2019-05-03 13:43:30
17526
原创 关于Idea激活后第一次可以正常使用,后来依然显示需要重新激活,然后出现 Key is invalid
这是因为导入了之前Idea的设置,在全局配置中依然采用旧的激活包,解决办法是把之前旧版本Idea的设置删掉,然后,在全局配置(注意不是Idea安装目录)中,C:\Users\你的用户名\.IntelliJIdea2019.1\config中的idea64.exe.vmoptions 进行修改,添加-javaagent:D:\JetBrains\IntelliJ IDEA 2019.1.1\...
2019-04-29 17:33:30
39249
2
原创 jinfo报错:Error attaching to process
使用jinfo命令查看 RemoteMavenServer(Idea的一个进程) 时报错:Error attaching to process: sun.jvm.hotspot.runtime.VMVersionMismatchException: Supported versions are 25.101-b13. Target VM is 25.152-b28sun.jvm.hotspot...
2019-04-27 20:06:15
19330
原创 Jenkins踩坑-No such directory exists:XX ERROR: Failed to launch Maven. Exit code = 1 Finished: FAILURE
使用Jenkins持续集成时,发现错误:No such directory exists: /var/lib/jenkins/workspace/jm_config/jm-config/usr/local/maven/mavenERROR: Failed to launch Maven. Exit code = 1Finished: FAILURE百思不得其解,明明已经配置了maven,...
2019-04-24 17:26:14
21140
1
原创 Head First设计模式-观察者模式(基于气象观测站)
观察者模式:观察者模式:定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会受到通知并自动更新。实现观察者模式的方法不止一种,但是以包含Subject与Observer接口的镭射机的做法最常见。改变主题或观察者其中一方,并不会影响另一方。因为两们之间的接口仍被遵守,我们就可以自由地改变他们。设计原则:为了交互对象之间的松耦合设计而努力。松耦合的设计之所以...
2019-04-23 21:39:55
17276
原创 Ubuntu的常用快捷键总结,桌面图标的添加,常用命令,读音
窗口最大化: 命令行为 F11,普通情况为super + 上(下为最小化)快速返回桌面: Ctrl + Super + D(Super换为Alt也可以),再按返回之前的状态进入命令行: Ctrl + Alt + T关于ubuntu开机后经常提示:检测到系统程序出现问题:打开终端,输入 sudo gedit /etc/default/apport把里面的enabled=1改成enable...
2019-04-22 19:29:32
17474
原创 西部数据WD移动硬盘在电脑上不显示盘符解决办法
昨天买的1t的移动硬盘今天到了,但是插在电脑上没有盘符,但是下面的u盘标志显示已识别到,上网查了好多资料,全是废话,最后还是自己解决了,打开windows的磁盘管理(如何打开自行百度吧!)找到 My Passport ,然后右键,为它指定盘符即可,我为它指定了H盘,一切正常啦!...
2019-04-21 13:52:26
78520
5
原创 docker启动报错:Failed to start Docker Application Container Engine.
今天docker启动报错:4月 20 20:52:26 localhost.localdomain systemd[1]: Failed to start Docker Application Container Engine.4月 20 20:52:26 localhost.localdomain systemd[1]: Unit docker.service entered failed ...
2019-04-20 21:17:50
18994
原创 IDEA出现Failed to read artifact descriptor forXXX:jar:unknow解决办法
今天IDEA出现,Failed to read artifact descriptor for org.springframework.cloud:spring‐cloud‐starter‐config:jar:unknown ,尝试了以下常用解决方法:重新Reimport All Maven Projects。删除Maven依赖,再重新导入。重启IDEA,并清除缓存。删除仓库的包,重...
2019-04-19 09:17:11
33404
5
原创 CentOS7/Linux永久开放某个指定的 端口号
1、开启防火墙systemctl start firewalld2、开放指定端口firewall-cmd --zone=public --add-port=8080/tcp --permanent命令含义:–zone #作用域–add-port=8080/tcp #添加端口,格式为:端口/通讯协议–permanent #永久生效,没有此参数重启后失效3、重启防火墙firewa...
2019-04-17 08:17:30
17675
原创 Linux(CentOS下)更改终端命令行颜色及网络配置
测试环境:CentOS 7修改CentOS命令行颜色用户命令行颜色修改:进入用户家目录,输入命令ls -al然后,用vim或者vi编辑器打开.bash_profile文件,在文件最下方添加:# PS1PS1='\[\e[32;40m\][\u@\h\w]$'修改完输入命令source .bashrc即可,这种方法可为每个用户定制登录颜色全用户命令行颜色修改:在roo...
2019-04-12 09:17:34
20530
原创 深入分析ClassLoader工作机制
深入分析ClassLoader工作机制结合资料,自己的一些理解,分析JVM的类加载器工作机制。1.java类的加载机制1.1 .什么是类的加载类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据结构。类的加载的最终产品是位于堆区中的Class对象,Class对象封装...
2019-04-11 15:57:27
17506
原创 Head First设计模式-策略模式(基于鸭子应用)
问题梳理:首先实现鸭子应用时用一个Duck抽象类,封装一些方法(飞,游泳)和一些抽象(外貌,叫)方法,然后用其他鸭子的子类来继承。这很好,但是后来新增一个鸭子子类,它不会飞,如果依然继承Duck类,就要覆盖父类的飞,进行重写,这样,每次新增鸭子,如果它有其他不同的地方,都要考虑要不要额外进行覆盖方法,而且,如果要修改现有的一个种类鸭子的其他方法,不能直接修改父类中继承的方法,这样会导致全部种类鸭...
2019-04-11 10:08:28
17227
原创 简单实现并查集(基于数组和基于树)
并查集:并查集,在一些有N个元素的集合应用问题中,我们通常是在开始时让每个元素构成一个单元素的集合,然后按一定顺序将属于同一组的元素所在的集合合并,其间要反复查找一个元素在哪个集合中。这一类问题近几年来反复出现在信息学的国际国内赛题中,其特点是看似并不复杂,但数据量极大,若用正常的数据结构来描述的话,往往在空间上过大,计算机无法承受;即使在空间上勉强通过,运行的时间复杂度也极高,根本就不可能在...
2019-04-10 17:14:59
17453
原创 剑指offer 29.最小的K个数(优先队列解决法)
时间限制:1秒 空间限制:32768K 本题知识点: 数组题目描述输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。思路:我考虑用最大堆来实现(java自带默认最大堆)可以全部入堆,再出k个元素,即可,但这样会浪费空间,就不符合最小堆动态排序这种特点import java.util.ArrayList;imp...
2019-04-08 21:39:03
17129
原创 leetcode 677. 键值映射(trie解决)
实现一个 MapSum 类里的两个方法,insert 和 sum。对于方法 insert,你将得到一对(字符串,整数)的键值对。字符串表示键,整数表示值。如果键已经存在,那么原来的键值对将被替代成新的键值对。对于方法 sum,你将得到一个表示前缀的字符串,你需要返回所有以该前缀开头的键的值的总和。示例 1:输入: insert("apple", 3), 输出: Null输入: sum("...
2019-04-08 19:48:33
17153
原创 leetcode 208. 实现 Trie (前缀树)
实现一个 Trie (前缀树),包含 insert, search, 和 startsWith 这三个操作。示例:Trie trie = new Trie();trie.insert("apple");trie.search("apple"); // 返回 truetrie.search("app"); // 返回 falsetrie.startsWith("app");...
2019-04-08 19:41:30
17060
原创 Trie的递归实现和非递归实现
关于Trie: 在计算机科学中,Trie,又称字典树、单词查找树或键树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较,查询效率比哈希树高。import java.util.TreeMap;/** * @author ...
2019-04-08 19:29:58
17822
原创 关于在参数中使用"++"语句的坑,参数不改变?
今日在进行传递参数时使用了++语句,发现前面出现了黄色警告,然后就无视了,无奈程序就是执行不对,就回去好好看一下警告内容The value changed at 'index++' is never used less... (Ctrl+F1) Inspection info: This inspection points out the cases where a variable val...
2019-04-08 17:40:19
19544
原创 windows出于安全原因某些设置由系统管理员管理解决方法
将:C:\Windows\System32\GroupPolicyUsers 文件夹清空打开:C:\Windows\System32\GroupPolicy将文件夹中所有文件删除;打开cmd更新组策略重启电脑
2019-04-06 08:16:19
33380
原创 对页面(text)进行回车键盘事件绑定的时候,页面刷新而不触发事件的问题解决
今天在用vue的时候,对text进行回车事件绑定,但是事件一直触发不了,就是页面刷新而已,用其他按键事件测试,则正常,唯独回车事件不正常,找了很久没有解决这个问题.后来发现页面自动刷新,但是参数列表为空,等于提交地址为空,后来参考https://blog.csdn.net/xuezhongsong/article/details/6859037 博客,明白了问题所在:问题: 鼠标聚焦到TextB...
2019-04-05 19:41:33
17311
原创 css样式内联式,外联式,嵌入式
1.外联式样式(属于外部样式表)特征:1、有一个单独的CSS文件存在![如:001.css]2、首先,通过【格式】→【样式表连接】与CSS文件[001.css]建立连接!3、在合适的地方使用 class=“样式名” 调用具体的样式效果!如:2.嵌入式样式(属于内部样式表)特征:1、样式的属性内容以代码的形式[放在 ]写在网页代码中!2、首先,通过【格式】→【样式】设置样式的属性内...
2019-04-05 17:32:22
26718
原创 response解决中文输出乱码问题,request解决请求参数的乱码问题
浏览器显示乱码:原因: 在Servlet中使用getWriter().write(“中国”)字符输出流(编译器为UTF-8编码)进行输出中文的时候,在浏览器显示乱码,原因是HttpServletResponse默认使用ISO8859-1码表,而ISO8859-1字符码表不兼容中文,如中国会被解析为 编码63 63,结果在浏览器汇用GB2312码表将 63 63 解码为 ? ?解决方案:方法...
2019-04-03 20:37:12
18572
原创 HTTP协议中的幂等性,以及ajax使用put请求时后台接收参数失败的问题
幂等(idempotent、idempotence) 是一个数学与计算机学概念,常见于抽象代数中。 在编程中一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同。 幂等函数,或幂等方法,是指可以使用相同参数重复执行,并能获得相同结果的函数。 这些函数不会影响系统状态,也不用担心重复执行会对系统造成改变。基于HTTP协议的WebAPI是时下最为流行的一种分布式服务提供方式。无论...
2019-04-03 16:52:02
17180
原创 MIME (多用途互联网邮件扩展类型)
百度百科: MIME(Multipurpose Internet Mail Extensions) 多用途互联网邮件扩展类型。是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式。它是一个互联网标准,扩展了电子邮件标准,使其...
2019-04-02 21:55:30
17811
原创 HttpServlet类源码的getLastModified()返回值为什么是-1?
关于 HttpServlet有关Last-Modified缓存机制在客户端第一次输入url是,服务器端会返回内容和状态码200,表示请求成功,同时会添加一个“Last-Modified”的响应头,表示此文件在服务器上的最后更新时间;客户端第二次请求此URL时,客户端会像服务器发送请求头“If-Modified-Since”,询问服务器该时间之后当前请求内容是否有被修改过,如果服务器的内容没...
2019-04-02 21:29:02
17673
2
原创 win10总是很快自动休眠,设置休眠时间也无效?
最近升级显卡驱动后,电脑两分钟就会进入休眠,真的很烦,后来找到了解决方法,在硬件管理器先卸载自带的集显,但是卸载时注意不要把驱动也卸载了,然后重启电脑,会自动重新装载集显,之后测试恢复正常。...
2019-04-01 15:34:43
46605
3
原创 import static和import的区别
什么是import static?import static 静态导入是JDK1.5中的新特性。一般我们导入一个类都用 import com…ClassName;而静态导入是这样:import static com…ClassName.;这里的多了个static,还有就是类名ClassName后面多了个 . ,意思是导入这个类里的静态方法。当然,也可以只导入某个静态方法,只要把 .* 换成静态方...
2019-03-31 21:42:44
17207
原创 剑指offer 15.反转链表
时间限制:1秒 空间限制:32768K题目描述输入一个链表,反转链表后,输出新链表的表头。思路:利用递归解决即可,首先考虑两个节点的情况,将头结点的next指针指向的节点进行反转,然后,将头结点的next指针置空,放到反转后的next节点尾部即可/*public class ListNode { int val; ListNode next = null; ...
2019-03-31 20:48:06
17012
原创 剑指offer 16.合并两个排序的链表
时间限制:1秒 空间限制:32768K 本题知识点: 链表题目描述输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。思路:利用递归进行解决,先比较两个链表头结点的大小,将较大的节点作为头结点,然后该节点的next后的节点与另一个链表合并后,放到较大的头结点后即可./*public class ListNode { int val;...
2019-03-31 20:47:45
17031
原创 剑指offer 9.变态跳台阶
时间限制:1秒 空间限制:32768K题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。思路:因为n级台阶,第一步有n种跳法:跳1级、跳2级、到跳n级跳1级,剩下n-1级,则剩下跳法是f(n-1)跳2级,剩下n-2级,则剩下跳法是f(n-2)所以f(n)=f(n-1)+f(n-2)+…+f(1)因为f(n-1)...
2019-03-31 20:38:17
17090
原创 剑指offer 8.跳台阶
时间限制:1秒 空间限制:32768K题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。思路: 典型的斐波那契算法思路,1.假设当有n个台阶时假设有f(n)种走法。2.青蛙最后一步要么跨1个台阶要么跨2个台阶,只有这两种情况。3.当最后一步跨1个台阶时即之前有n-1个台阶,根据1的假设即n-1个台阶有f(n...
2019-03-31 19:01:31
17052
原创 剑指offer 7.斐波那契数列
时间限制:1秒 空间限制:32768K题目描述大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。n<=39来自百度百科对斐波那契数列的介绍: 斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,...
2019-03-31 18:39:56
17115
原创 剑指offer 6.旋转数组的最小数字
时间限制:3秒 空间限制:32768K 本题知识点: 查找题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。思路1: 直接最简单的数组遍历,因为是有序的,所...
2019-03-31 18:25:32
17101
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅