自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Java仗剑走天涯

全栈式Java开发

原创 【KVM系列文章】目录

【KVM系列01】KVM简介及安装【KVM系列02】KVM的CPU 和内存虚拟化【KVM系列03】KVM的I/O 全虚拟化和准虚拟化【KVM系列04】KVM的I/O 设备直接分配和SR-IOV【KVM系列05】Libvirt 介绍【KVM系列06】Nova 通过 libvirt 管理 QEMU/KVM 虚机【KVM系列07】使用 libvirt 做 QEMU/KVM 快照和...

2019-03-26 09:18:16 482

原创 ORACLE系列异常总结ORA

本文对常见的Oracle使用中的异常解决方案进行总结1.ORACLE异常--ORA系列:ORA-00904 标识符无效 invalid identifier2.ORACLE异常--ORA-00918 未明确定义列 column ambiguously defined3.ORA-00942 表或视图不存在 table or view does not exist4.ORA-00984...

2018-07-28 11:22:29 1996

原创 MySQL/Oracle数据库优化总结(非常全面)

MySQL/Oracle数据库优化总结(非常全面)

2017-08-21 21:05:30 38147 6

转载 java中打开指定的文件夹

今天在项目中有用到,下载完成一个文件之后,弹出下载到本地的具体文件夹,原来一行代码就可以实现这种是纯java的方式,不受系统的约束Desktop.getDesktop().open(new File("D:\\文件夹"));...

2019-09-02 20:17:04 753

转载 安装完CentOS 7 后必做的七件事

CentOS是最多人用来运行服务器的 Linux 版本,最新版本是 CentOS 7。当你兴趣勃勃地在一台主机或 VPS 上安装 CentOS 7 后,首要的工作肯定是加强它的安全性,以下列出的七件事,是你进一步配置系统和安装其他软件前必须做的。1. 更改 root 密码若果你是自行安装 CentOS 7 的话,安装程序会让你自行设定 root 的密码。不过很多 VPS 服务商只会提供预先...

2019-05-01 23:36:25 393 1

原创 【深入Java虚拟机JVM 10】回收方法区

说明:文章所有内容均摘自《深入理解Java虚拟机:JVM高级特性与最佳实践(第二版)》很多人认为方法区(或者HotSpot虚拟机中的永久代)是没有垃圾收集的,Java虚拟机规范中确实说过可以不要求虚拟机在方法区实现垃圾收集,而且在方法区中进行垃圾收集的“性价比”一般比较低:在堆中,尤其是在新生代中,常规应用进行一次垃圾收集一般可以回收70%~95%的空间,而永久代的垃圾收集效率远低于此。...

2019-04-13 09:48:34 306

原创 【深入Java虚拟机JVM 09】JVM垃圾回收finalize方法--对象最有一次自我拯救

说明:文章所有内容均摘自《深入理解Java虚拟机:JVM高级特性与最佳实践(第二版)》即使在可达性分析算法中不可达的对象,也并非是“非死不可”的,这时候它们暂时处于“缓刑”阶段。要真正宣告一个对象死亡,至少要经历两次标记过程:如果对象在进行可达性分析后发现没有与GC Roots相连接的引用链,那它将会被第一次标记并且进行一次筛选,筛选的条件是此对象是否有必要执行finalize(...

2019-04-13 09:33:04 625

原创 【深入Java虚拟机JVM 08】JVM四种引用-强引用、软引用、弱引用、虚引用

说明:文章所有内容均摘自《深入理解Java虚拟机:JVM高级特性与最佳实践(第二版)》无论是通过引用计数算法判断对象的引用数量,还是通过可达性分析算法判断对象的引用链是否可达,判定对象是否存活都与“引用”有关。在JDK 1.2以前Java中的引用的定义很传统:如果reference类型的数据中存储的数值代表的是另外一块内存的起始地址,就称这块内存代表着一个引用。这种定义很纯粹...

2019-04-13 09:21:35 481 1

原创 【深入Java虚拟机JVM 07】JVM如何判断对象已死

说明:文章所有内容均摘自《深入理解Java虚拟机:JVM高级特性与最佳实践(第二版)》在堆里面存放着Java世界中几乎所有的对象实例,垃圾收集器在对堆进行回收前,第一件事情就是要确定这些对象之中哪些还“存活”着,哪些已经“死去”(即不可能再被任何途径使用的对象)。1 引用计数算法很多教科书判断对象是否存活的算法是这样的:给对象中添加一个引用计数器,每当有一个地方引...

2019-04-11 08:34:48 229

原创 【深入Java虚拟机JVM 06】垃圾收集概述

说明:文章所有内容均摘自《深入理解Java虚拟机:JVM高级特性与最佳实践(第二版)》说起垃圾收集(Garbage Collection,GC),大部分人都把这项技术当做Java语言的伴生产物。事实上,GC的历史比Java久远,1960年诞生于MIT的Lisp是第一门真正使用内存动态分配和垃圾收集技术的语言。当Lisp还在胚胎时期时,人们就在思考GC需要完成的3件事情:哪些内存需...

2019-04-10 08:29:55 182

原创 【Spring注解系列14】@Profile进行环境切换

1.@ProfileProfile: Spring为我们提供的可以根据当前环境,动态的激活和切换一系列组件的功能;开发环境、测试环境、生产环境;数据源:(/A)(/B)(/C);@Profile:指定组件在哪个环境的情况下才能被注册到容器中,不指定,任何环境下都能注册这个组件1)、加了环境标识的bean,只有这个环境被激活的时候才能注册到容器中。默认是default环...

2019-04-09 22:12:50 541

原创 【Spring注解系列13】Spring自动装配总结:@Autowired、@Resource、@Qualifier、@Inject

目录1.@Autowired、@Resource、@Qualifier、@Inject1)、@Autowired2)、@Resource与@Inject3)、 @Autowired参数取值2.实例1.@Autowired、@Resource、@Qualifier、@Inject自动装配; Spring利用依赖注入(DI),完成对IOC容器中中各个组件的依...

2019-04-09 12:39:56 260

原创 详解Dozer对象转换使用方法

1.Dozer作用Dozer是一个实现对象间字段赋值转换的工具包。它支持简单的属性映射,复杂类型映射,双向映射,隐式显式的映射,以及递归映射。它支持三种映射方式:注解、API、XML。它是开源的,遵从Apache 2.0 协议常见应用场景: 微服中,有大量实体转换,从前端表单转换为业务实体,从业务实体转换为报表Dto。2.Dozer设计核心接口Ma...

2019-04-08 17:10:09 1954

原创 【Spring注解系列12】@Value与@PropertySource注解

1.@Value与@PropertySource注解@Value注解:主要用于赋值,该值可以是取值配置文件中的,也可以直接赋值,也可以使用SpEl表达式进行计算的结果,抑或直接从环境变量中获取。 该注解不能处理日期类赋值1、基本数值2、可以写SpEL; #{}3、可以写${};取出配置文件【properties】中的值(在运行环境变量里面的值) 原理是底层使用了后置处理器Aut...

2019-04-08 08:43:12 768

原创 【Spring注解系列11】Spring后置处理器BeanPostProcessor用法与原理

1.BeanPostProcessor原理先说,bean的后置处理器BeanPostProcessor接口中两个方法:postProcessBeforeInitialization:在初始化之前工作 postProcessAfterInitialization:在初始化之后工作BeanPostProcessor原理populateBean(beanName, mbd, ins...

2019-04-04 16:27:56 544

原创 【Spring注解系列10】SpringBean的生命周期

1.SpringBean生命周期定义指bean创建---初始化----销毁的过程。构造(对象创建):单实例:在容器启动的时候创建对象 多实例:在每次获取的时候创建对象初始化和销毁方式: 指定初始化和销毁方法;容器在bean进行到当前生命周期的时候来调用我们自定义的初始化和销毁方法。 @Bean中指定的 initMethod 和destroyMet...

2019-04-04 07:59:36 188

原创 【Spring注解系列09】Spring初始化和销毁接口-InitializingBean与DisposableBean

1.InitializingBean与DisposableBeanInitializingBean定义初始化逻辑,用于执行自定义初始化或者校验已设置的属性值等。* Interface to be implemented by beans that need to react once all their properties* have been set by a {@link B...

2019-04-03 12:44:40 412

原创 【Spring注解系列08】@PostConstruct与@PreDestroy

1.@PostConstruct与@PreDestroy@PostConstruct:在bean创建完成并且属性赋值完成;来执行初始化方法@PreDestroy:在容器销毁bean之前通知我们进行清理工作2.实例@Servicepublic class PersonService { @PostConstruct public void post(){ ...

2019-04-03 08:22:06 273

原创 【Spring注解系列07】Spring注入Bean有哪些方式总结

给Spring容器中注册组件方式:1)、包扫描+组件标注注解(@Controller/@Service/@Repository/@Component)2)、@Bean 导入的第三方包里面的组件3)、@Import 快速给容器中导入一个组件 1)、普通class类对象,id默认是全类名 2)、实现ImportSelector接口的class类对象,返回需要导入的...

2019-04-02 22:59:52 1887

原创 【Spring注解系列06】FactoryBean注入对象用法

使用Spring提供的 FactoryBean(工厂Bean);1)、默认获取到的是工厂bean调用getObject创建的对象2)、要获取工厂Bean本身,我们需要给id前面加一个& &colorFactoryBean实例类与配置类public class Color {}//创建一个Spring定义的FactoryBeanpublic cla...

2019-04-02 22:41:46 1097

原创 【Spring注解系列05】@Import注入原理

1.@Import注解用于注入指定的类,导入组件id默认是组件的全类名。 只能作用于类上。 属性:value = {xx.class,xx.class} 说明:xx.class为要导入到容器中的组件属性value中class分为三类: 1)普通类直接注入 2)实现ImportSelector接口的类 3)实现ImportBeanDefin...

2019-04-02 21:31:50 2143

原创 【深入Java虚拟机JVM 05】HotSpot对象探秘

说明:文章所有内容均摘自《深入理解Java虚拟机:JVM高级特性与最佳实践(第二版)》介绍完Java虚拟机的运行时数据区之后,我们大致知道了虚拟机内存的概况,读者了解了内存中放了些什么后,也许就会想更进一步了解这些虚拟机内存中的数据的其他细节,譬如它们是如何创建、如何布局以及如何访问的。对于这样涉及细节的问题,必须把讨论范围限定在具体的虚拟机和集中在某一个内存区域上才有意义。基于实用优先...

2019-03-29 13:55:38 155

原创 【深入Java虚拟机JVM 04】JVM内存溢出OutOfMemoryError异常实例

说明:文章所有内容均摘自《深入理解Java虚拟机:JVM高级特性与最佳实践(第二版)》在Java虚拟机规范的描述中,除了程序计数器外,虚拟机内存的其他几个运行时区域都有发生OutOfMemoryError(下文称OOM)异常的可能。目的有两个:通过代码验证Java虚拟机规范中描述的各个运行时区域存储的内容; 希望读者在工作中遇到实际的内存溢出异常时,能根据异常的信息快速判断是哪...

2019-03-29 09:35:23 263

原创 【Spring注解系列04】@Condition条件注解

1.@Condition条件注解满足指定条件,则会加载对应的实例或者类。该注解可以作用于类和方法上。@Condition类属性值中,对应的类,必须是实现Condition接口的类2.实例配置类:@Configurationpublic class ConditionalConfig { /** * @Conditional({Condition})...

2019-03-28 21:46:08 1939

原创 【Spring注解系列03】@Scope与@Lazy

1.@Scope与@Lazy@Scope对象实例作用域,默认是单实例的。取值有四个:/** * @see ConfigurableBeanFactory#ConfigurableBeanFactory#SCOPE_PROTOTYPE * @see ConfigurableBeanFactory#SCOPE_SINGLETON * @see org.springfr...

2019-03-28 21:20:48 283

原创 【Spring注解系列02】@CompentScan与@CompentScans

1.@CompentScan与@CompentScans@CompentScan为扫描包注解,只能作用于类上,一个类上可以有多个@CompentScan注解。等价于 <context:component-scan base-package="com.java" ></context:component-scan>使用了@ComponentScan注解后,...

2019-03-28 20:55:58 784

原创 【Spring注解系列01】@Configuration与@Bean

1. @Configuration与@Bean@Configuration:告诉Spring这是一个配置类,配置类==配置文件。 @Configuration==beans.xml@Bean:给容器中注册一个Bean;类型为返回值的类型,id默认是用方法名作为id。 @Bean 等价于 <bean></bean> 可以给@Bean设置value来修...

2019-03-28 20:26:54 807

原创 【深入Java虚拟机JVM 03】Java内存模型

说明:文章所有内容均摘自《深入理解Java虚拟机:JVM高级特性与最佳实践(第二版)》Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的“高墙”,墙外面的人想进去,墙里面的人却想出来。1. 概述对于从事C、C++程序开发的开发人员来说,在内存管理领域,他们既是拥有最高权力的“皇帝”又是从事最基础工作的“劳动人民”——既拥有每一个对象的“所有权”,又担负着每一个对象生命...

2019-03-28 09:38:12 124

转载 【ProcessOn】在线流程图、思维导图、原型图、UML图制作工具ProcessOn使用

文章转载自简书:https://www.jianshu.com/p/de31ebe40a8e这两天项目要结束了,领导让写设计文档。于是,涉及到了流程图、类结构图、思维导图之类的。然后我的电脑上装的office2013并没装viso,于是就在网上搜了下有什么替代品,发现还真有不少呢,其中个人觉得很不错的免费在线工具:ProcessOn。简介:ProcessOn是一个方便易用、免费高效的在线作...

2019-03-27 17:00:11 845

原创 【深入Java虚拟机JVM 02】常见Java虚拟机概述

目录1.1 Sun Classic/Exact VM1.2 Sun HotSpot VM1.3 Sun Mobile-Embedded VM/Meta-Circular VM1.4 BEA JRockit/IBM J9 VM1.5 Azul VM/BEA Liquid VM1.6 Apache Harmony/Google Android Dalvik VM1.7 Mi...

2019-03-27 14:57:18 475

原创 【深入Java虚拟机JVM 01】Java发展与展望概述

目录1.1 概述1.2 Java技术体系1.3 Java发展史1.4 展望Java技术的未来1.4.1 模块化1.4.2 混合语言1.4.3 多核并行1.4.4 进一步丰富语法1.4.5 64位虚拟机说明:文章所有内容均摘自《深入理解Java虚拟机:JVM高级特性与最佳实践(第二版)》1.1 概述Java的优点:它拥有一门结构严谨、面向对象的编程...

2019-03-27 14:55:42 255

原创 【KVM系列08】使用 libvirt 迁移 QEMU/KVM 虚机和 Nova 虚机

第八章 使用 libvirt 迁移 QEMU/KVM 虚机和 Nova 虚机1. QEMU/KVM 迁移的概念1.1 迁移效率的衡量1.2 KVM 迁移的原理1.3 使用命令行的方式做动态迁移2. OpenStack Nova QEMU/KV...

2019-03-25 20:18:40 202

原创 【KVM系列07】使用 libvirt 做 QEMU/KVM 快照和 Nova 实例的快照

第七章 使用 libvirt 做 QEMU/KVM 快照和 Nova 实例的快照1. QEMU/KVM 快照1.1 概念1.2 使用 virsh 实验1.3 外部快照的删除2. OpenStack 中的快照2.1 对 Nova Instance 进行快照2.2 对卷做快照...

2019-03-25 20:10:58 168

原创 【KVM系列06】Nova 通过 libvirt 管理 QEMU/KVM 虚机

第六章 Nova 通过 libvirt 管理 QEMU/KVM 虚机1. Libvirt 在 OpenStack 架构中的位置2. Nova 中 libvirt 的使用2.1 创建 QEMU/KVM 虚机2.2 添加 volume 到虚机 (nov...

2019-03-25 20:04:29 432

原创 【KVM系列05】Libvirt 介绍

第五章 Libvirt 介绍1. Libvirt 是什么1.1 Libvirt C API1.2 Libvirt XML 定义1.3 Libvirt API 的实现1.4 Libvirt 的 Python 绑定2. QEMU/...

2019-03-25 19:58:12 1078

原创 【KVM系列04】KVM的I/O 设备直接分配和SR-IOV

第四章 I/O 设备直接分配和 SR-IOV1. PCI/PCI-E 设备直接分配给虚机 (PCI Pass-through)1.1 PCI/PCIe Pass-through 原理1.2 在 RedHat Linux 6 上使用 v...

2019-03-25 19:55:10 271

原创 【KVM系列03】KVM的I/O 全虚拟化和准虚拟化

第三章 I/O 全虚拟化和准虚拟化 1. 全虚拟化 I/O 设备1.1 原理1.2 QEMU 模拟网卡的实现1.3 RedHat Linux 6 中提供的模拟设备1.4 qemu-kvm 关于磁盘设备和网络...

2019-03-25 19:52:03 318

原创 【KVM系列02】KVM的CPU 和内存虚拟化

第二章KVM的CPU 和内存虚拟化 1. 为什么需要 CPU 虚拟化1.1 基于二进制翻译的全虚拟化(Full Virtualization with Binary Translation)1.2. 超虚拟化(或者半虚拟化/操作...

2019-03-25 19:46:03 486

原创 【KVM系列01】KVM简介及安装

第一章 KVM简介及安装1. KVM 介绍1.0 虚拟化简史1.1 KVM 架构2. KVM 的功能列表3. KVM 工具...

2019-03-25 19:31:42 1008

原创 一文搞定位运算

目录一、前言二、加减乘除运算原理2.1 加法和乘法2.2 减法和除法三、位运算3.1 按位与 &3.2 按位或 |3.3 按位异或 ^3.4 取反 ~3.5 按位左移<<3.6 按位右移 >>3.7 无符号按位右移 >>>3.8 总结四、位运算应用4.1 常用位运算4.2 颜色转...

2019-03-22 09:20:48 137

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