- 博客(38)
- 资源 (5)
- 收藏
- 关注
原创 springboot属性加载顺序
优先级按照顺序由高到低,数字越小优先级越高在命令行中传入的参数。类似于java -jar -Dspring.profiles.active之类。SPRING_APPLICATION_JSON属性,该属性以JSON形式存储在系统环境变量中。java:comp/env中JNDI属性。Java的系统的属性,可通过System.getProperties()获得相关内容。操作系统中的环境变量...
2018-08-23 15:14:13
524
原创 十二、JVM(HotSpot)线程安全与锁优化----终结篇
注:本博文主要是基于JDK1.7会适当加入1.8内容。线程安全:当多个线程访问一个对象时,如果不用考虑这些线程在运行环境下的调度和交替执行,也不需要进行额外的同步,或者在调用方进行任何其他的协调操作,调用这个对象的行为可以获取正确的结果,那这个对象就是线程安全的。1、Java语言中线程安全不可变(final关键字)绝对线程安全(Vector、HashTable非绝对线程安全,集合里...
2018-08-20 17:08:20
278
原创 十一、JVM(HotSpot)Java内存模型与线程
注:本博文主要是基于JDK1.7会适当加入1.8内容。1、Java内存模型内存模型:在特定的操作协议下,对特定的内存或高速缓存进行读写访问的抽象过程。不同的物理机拥有不一样的内存模型,而Java虚拟机也拥有自己的内存模型。 主要目标:定义程序中各个变量的访问规则,即在虚拟机中将变量存储到内存和从内存中取出变量这样的底层细节。这里的变量与Java编程中所说的变量存在区别,它包括了实例变量、...
2018-08-20 16:47:11
1231
原创 十、JVM(HotSpot)晚期(运行时)优化
注:本博文主要是基于JDK1.7会适当加入1.8内容。Java程序最初是通过解释器进行解释执行的,当虚拟机发现某个方法或代码块的运行特别频繁时,就会把这段代码认定为“热点代码”,为了提高这部分代码的执行效率,在运行时,虚拟机会将这些代码编译成与本地平台相关的机器码,并进行各个层次的优化,完成这个任务的编译器成为即时编译器(JIT)。1、HotSpot虚拟机内的即时编译器1)解释器与编译...
2018-08-17 17:16:28
635
原创 九、JVM(HotSpot)早期(编译器)优化
注:本博文主要是基于JDK1.7会适当加入1.8内容。1、javac编译器编译过程:解析与填充符号表过程插入式注解处理器的注解处理过程分析与字节码生成过程1)解析与填充符号表 解析步骤:词法分析和语法分析 词法分析:将源代码中的字符流转变为标记(Token)集合,单个字符是程序编写过程的最小元素,而标记则是编译过程的最小元素,关键字、变量名、字面量、运算符都可以成为标记...
2018-08-17 16:28:06
189
原创 八、JVM(HotSpot)虚拟机字节码执行引擎
注:本博文主要是基于JDK1.7会适当加入1.8内容。物理机执行引擎:直接建立在处理器、硬件、指令集和操作系统层面。 虚拟机执行引擎:由虚拟机自定义实现,自行制定指令集与引擎体系结构,能够执行不被硬件执行的指令集合。(符号引用—-直接引用)1、运行时栈帧结构定义:用于支持虚拟机进行方法调用和方法执行的数据结构,虚拟机运行时数据区中的虚拟机栈的栈元素。存储了局部变量表、操作数栈、动态链...
2018-08-17 16:04:42
697
原创 七、JVM(HotSpot)虚拟机类加载机制
注:本博文主要是基于JDK1.7会适当加入1.8内容。虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验,转换解析,初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。1、类加载时机类加载到内存开始直至卸载出内存,它的生命周期包括:加载、验证、准备、解析、初始化、使用和卸载,其中验证、准备、解析称之为连接。加载、验证、准备、初始化、卸载这五个...
2018-08-14 15:54:47
640
原创 六、JVM(HotSpot)类文件结构
注:本博文主要是基于JDK1.7会适当加入1.8内容。实现语言无关性的基础是虚拟机和字节码的存储形式。 Java程序(.java)——>javac编译器——–>字节码(.class)—>Java虚拟机(HotSpot) JRuby程序(.rb)——->jrubyc编译器——>字节码(.class)—>Java虚拟机(HotSpot) Groovy程序(...
2018-08-14 14:47:12
271
原创 五、JVM(HotSpot)虚拟机性能监控与故障处理工具
注:本博文主要是基于JDK1.7会适当加入1.8内容。系统问题定位时,知识、经验是关键基础,数据是依据,工具是运用知识处理数据的手段。1、JDK命令行工具(1)jps虚拟机进程状况工具,JVM Process Status Tools,显示指定系统内所有的HotSpot虚拟机进程。类似于Unix/Linux中的ps命令显示指定系统中所有进行的进程。 格式:jps [options] ...
2018-08-13 16:39:57
252
原创 四、JVM(HotSpot)垃圾收集器与内存分配策略
注:本博文主要是基于JDK1.7会适当加入1.8内容。1、对象生死判断方法一:引用计数算法(JVM不采用) 对象添加一个引用计数器,当对象被引用则计数器+1,当对象引用失效则计数器-1,任何时刻计数器为0则判断对象不可能再被使用,判定为死亡。JVM(HotSpot)为什么没有使用引用计数器进行判断对象的生死呢?Java对象中存在对象之间的循环引用,如obja.instance = o...
2018-08-13 16:02:49
485
原创 三、JVM(HotSpot)Java对象
注:本博文主要是基于JDK1.7会适当加入1.8内容。1、对象创建第一步:虚拟机执行一条new指令时,首先会去检查这个指令的参数是否可以从常量池中获取到符号引用(再次回归到前两章提到的String.intern()用法),并且检查这个符号引用是否已加载、解析和初始化。如果没有,则必须先执行类加载过程。第二步:类加载检查通过后,虚拟机为新对象分配内存。分配内存又分为两种方式:如果虚拟...
2018-08-13 13:50:54
161
原创 二、JVM(HotSpot)内存泄漏和内存溢出
注:本博文主要是基于JDK1.7会适当加入1.8内容。1、Java堆溢出//-Xms20m -Xms20m -XX:+HeapDumpOnOutOfMemoryErrorpublic class HeapOOM { static class OOMObject {} public static void main(String[] args) { L...
2018-08-12 16:18:53
916
原创 一、JVM(HotSpot)Java内存区域
注:本博文主要是基于JDK1.7会适当加入1.8内容。切记,分清Java内存区域和Java内存模型是两个概念。Java运行区域大致分为五大部分,分别是:程序计数器、虚拟机栈、本地方法栈,堆,方法区。真实开发环境中,开发人员往往最关注的就是JVM的堆信息和栈信息,而方法区也就是我们通常所说的永久代,JDK1.7后已被移除,加入metaspace区域。1、程序计数器(线程私有)线程技术器是...
2018-08-12 15:26:57
861
原创 spring boot xml解析devtool冲突
##cxf xml解析<dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-spring-boot-starter-jaxws</artifactId></dependency><dependency> &
2018-04-13 14:43:35
402
原创 github使用过程中多账户造成的Permission to repository denied to username问题
github使用过程中多账户造成的Permission to repository denied to username
2017-08-22 11:08:38
323
转载 Java编程中“为了性能”尽量要做到的一些地方
最近的机器内存又爆满了,出了新增机器内存外,还应该好好review一下我们的代码,有很多代码编写过于随意化,这些不好的习惯或对程序语言的不了解是应该好好打压打压了。
2015-11-19 11:46:07
488
原创 mybatis中0和null关系处理
最近在项目开发中,mybatis遇到一个很奇怪的问题,因为想在后台传一个int型0插入到数据,却被识别成了null。
2015-11-19 11:15:43
9387
转载 IE11 Windows7下F12 DOC资源管理器不能用Exception in window.onload: Error: An error has ocurredJSPlugin.3005
从别处借鉴,能解决问题,拿来与大家分享。Diagnostic:Exception in window.onload: Error: An error has ocurredJSPlugin.3005Stack Trace:Error: An error has ocurredJSPlugin.3005 at getString (res://C:\Program Files\Internet Exp
2015-08-03 12:08:35
2013
原创 2015年java面试题
1.hashtable和hashmap区别实话说拿到这个题目的时候我也就蒙了,基本上也没怎么使用过hashtable。后面通过查找一些比较靠谱的网站得出答案,可供参考。(1)HashTable的方法是同步的,HashMap未经同步,所以在多线程场合要手动同步HashMap这个区别就像Vector和ArrayList一样。(2)HashTable不允许null值(key和value都不可...
2015-07-07 15:41:50
431
原创 jsp+servlet更改模板
首先,我们要找到myeclipse和eclipse的安装目录(本文以myeclipse2014为实例,个版本操作大同小异)一、jsp模板1、进入myeclipse或者eclipse安装目录下的plugins2、打开搜索,输入wizards,找到com.genuitec.eclipse.wizards_11.5.0.me201310291746.jar3、用压缩软件打开,点击temp
2015-05-30 09:03:09
432
原创 编程习惯——生活篇
很久没有更新我的博客了,研究生的学习枯燥而繁忙。想学的课程没有专业的老师来教导,自己摸索着学习,进度比较慢,不想学的课程老师得答道强制上课,上课去了也是一个酱油党,这确实和我最初上研究生的初衷所背离的。但是,自己既然已经选择了这门专业的研究生,还是得努力的去坚持下去。之前的博客文章大多集中在技术类这一块,最近看了一些关于编程习惯的书籍,自己也打算将它整理一下把它写下来。 关于编程习惯在生活方面的事
2015-05-12 12:12:08
518
原创 关于修改myeclipse中servlet和jsp模板
一、修改Servlet模板1、找到计算机本地中安装的myeclipse路径,按照关键字“wizard*”进行搜索。这里,以myeclipse2014为例,找到com.genuitec.eclipse.wizards_11.5.0.me201310291746.jar。2、用解压工具打开,找到template文件夹中,Servlet.java文件,并进行修改。3、 #---------
2015-03-18 14:06:57
532
原创 小工具之UUID和map 转换 JavaBean
第一个类:package com.victorzhang.tools.commons;import java.util.Map;import java.util.UUID;import org.apache.commons.beanutils.BeanUtils;import org.apache.commons.beanutils.ConvertUtils;/** * 类提
2014-10-09 22:22:11
552
原创 java关于函数重载(overload)和函数覆盖(override)区别
函数重载(overload):概念:在同一个类中,允许存在一个以上的同名函数,只要它们的参数个数或者参数类型不同即可。特点:与返回值类型无关,只看参数列表。优点:方便阅读,优化设计。注意:不能有两个名字相同,参数类型,参数个数也相同却返回不同类型值的函数。例:int add(int x, int y){return x+y;} Int add(int x,i
2014-09-18 16:05:02
2029
原创 Editplus中关于zen-coding插件的使用
1.zen-coding是一款用于高效开发HTML和CSS的插件。2.网址介绍:zen-coding的项目首页:http://code.google.com/p/zen-coding/zen-coding的下载所支持的软件: http://code.google.com/p/zen-coding/downloads/listzen-coding的微维基列表: http://
2014-08-19 15:37:35
3184
原创 全站编码 解决Get、Post乱码问题(Servlet)
我们经常会在javaee进行网站编写的时候出现servlet的乱码问题,如何解决这一问题成为了
2014-08-14 10:07:54
429
转载 windows7 快捷键
Windows 7是微软公司即将发布的一款新一代操作系统,据悉,微软公司已于7月中旬将RTM版本交付PC生产厂商,并将在2009年10月正式上市。此前微软已经就Windows 7发布过多个测试版,根据网友试用,无论是界面,硬件需求,还是性能,相比Vista都有很大改善。以下是微软官方发布的Windows 7操作系统快捷键的应用解释:1. 轻松访问键盘快捷方式 按住右Shift 八秒钟
2014-08-13 18:11:00
379
转载 Google Chrome 快捷键
Chrome窗口和标签页快捷键:Ctrl+N 打开新窗口 Ctrl+T 打开新标签页 Ctrl+Shift+N 在隐身模式下打开新窗口 Ctrl+O,然后选择文件 在谷歌浏览器中打开计算机上的文件 按住 Ctrl 键,然后点击链接 从后台在新标签页中打开链接,但您仍停留在当前标签页中 按住 Ctrl+Shift 键,然后点击链接 在新标签页中打开链接,同时切换到新打开的标签
2014-08-13 18:07:07
359
转载 Eclipse 快捷键
Ctrl+1 快速修复(最经典的快捷键,就不用多说了)Ctrl+D: 删除当前行 Ctrl+Alt+↓ 复制当前行到下一行(复制增加)Ctrl+Alt+↑ 复制当前行到上一行(复制增加)Alt+↓ 当前行和下面一行交互位置(特别实用,可以省去先剪切,再粘贴了)Alt+↑ 当前行和上面一行交互位置(同上)Alt+← 前一个编辑的页面Alt+→ 下一个编辑的页面(当然是针对
2014-08-13 17:59:59
361
转载 MyEclipse 快捷键
MyEclipse 快捷键1(CTRL)-------------------------------------Ctrl+1 快速修复Ctrl+D: 删除当前行 Ctrl+Q 定位到最后编辑的地方 Ctrl+L 定位在某行 Ctrl+O 快速显示 OutLine Ctrl+T 快速显示当前类的继承结构 Ctrl+W 关闭当前Editer Ctrl+
2014-08-13 17:58:16
346
原创 关于hibernate 4.3.5 中错误配置
../hibernate-release-4.3.5.Final/documentation/manual/en-US/html_single/index.html
2014-05-25 20:58:08
535
c3p0.jar mchange-commons.jar c3p0-config.xml
2014-10-10
关于JavaMail的两个关键jar
2014-08-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人