4 Java仗剑走天涯

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 1k+

java中打开指定的文件夹

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

2019-09-02 20:17:04

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

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

2019-05-01 23:36:25

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

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

2019-04-13 09:48:34

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

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

2019-04-13 09:33:04

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

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

2019-04-13 09:21:35

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

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

2019-04-11 08:34:48

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

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

2019-04-10 08:29:55

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

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

2019-04-09 22:12:50

【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

详解Dozer对象转换使用方法

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

2019-04-08 17:10:09

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

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

2019-04-08 08:43:12

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

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

2019-04-04 16:27:56

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

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

2019-04-04 07:59:36

【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

【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

【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

【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

【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

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

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

2019-03-29 13:55:38

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

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

2019-03-29 09:35:23

查看更多

勋章 我的勋章
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!