自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

CSDN文章已停止维护,后续文章会在 https://blog.hufeifei.cn 持续更新

CSDN文章已停止维护,后续文章会在 https://blog.hufeifei.cn 持续更新

  • 博客(130)
  • 资源 (23)
  • 收藏
  • 关注

原创 EffectiveJava读书笔记- 第4条:通过私有构造器强化不可实例化的能力

通过私有构造器强化不可实例化的能力上一条讲单例的时候已经提到了私有化构造器。单例模式这么搞是为了保证全局只有一个实例,而这一条规则是为了让工具类一个实例都无法创建。这样的例子在JDK中有很多:java.util.Collections,java.util.Arrays,java.util.concurrent.Executors,java.util.Objects,java.util.st...

2018-02-17 20:11:33 428

原创 EffectiveJava读书笔记- 第3条:用私有构造器或者枚举类型强化Singleton属性

用私有构造器或枚举类型强化Singleton属性单例模式(Singleton Pattern)无疑是笔试面试中被问得最多的问题之一。单例模式虽然看似简单,但是仍有很多东西值得思考。GOF是这么定义单例模式的: 确保一个类只有一个实例,并提供一个全局访问点。通常实现单例都需要我们私有化构造器,让对象无法在外部创建,同时提供一个外部访问的方法返回这个单例对象。通常单例分为两大...

2018-02-16 21:55:27 568

原创 EffectiveJava读书笔记- 第2条:遇到构造器有多个参数时要考虑用构建者模式

遇到构造器有多个参数时要考虑用建造者模式静态工厂方法和构造器都有一个局限性:当构造的对象有大量的可选参数时,你可能需要定义很多个静态工厂方法或者构造器。用setter方法替代多参数构造器的几个缺点书中提到多参数的构造器的一个替代方法,就是用JavaBean模式:使用无参构造器创建对象,然后调用setter方法设置每个必要参数以及一些可选参数。1. 构造的过程中,对象可能处于不一...

2018-02-13 17:09:43 300

原创 EffectiveJava读书笔记- 第1条:考虑用静态工厂方法代替构造器

考虑静态工厂方法代替构造器静态工厂方法相对于构造器的好处:1. 静态工厂方法有名字,相比构造器创建的对象更语义化最好的例子就是并发库中的Executors工具类了。Executors中有多个创建线程池的方法:public static ExecutorService newFixedThreadPool(int nThreads);public static Execut...

2018-02-12 23:30:26 365

原创 Java SPI机制

SPI全称Service Provider Interface,是Java提供的一种让第三方实现或扩展的API。java平台中很多功能都是以这种方式提供接口给开发者调用的,最典型的如:JDBC,JDNI,JCE(Java加密扩展),JAXP等,看JDK源码或者第三方源码的时候会经常碰到SPI,所以我觉得很有必要写个笔记把SPI记录下来。定义SPI接口这里我就拿JDBC的数据库驱动作...

2018-02-12 18:15:03 630

原创 Spring@Conditional注解的使用

Spring3开始提供的profile机制用起来的确很爽,在Spring4中提供了一种更通用的条件化Bean定义机制。@Conditional注解使用@Conditional注解定义一个Bean,这个Bean只有在满足MagicExistCondition中定义的条件时才会创建。@Bean@Conditional(MagicExistCondition.class)pu...

2018-02-05 10:30:10 1378

原创 Spring@Profile注解的使用

通常开发测试与上线生产使用不同的环境配置,我们可以使用@Profile注解实现。在类上使用@Profile注解开发环境配置package cn.hff;import javax.sql.DataSource;import org.springframework.context.annotation.Bean;import org.springframework.con...

2018-02-05 10:27:40 1046

原创 Spring整合阿里云OSS服务实现文件上传

相关配置在阿里云控制台生成访问密钥(AccessKey)创建OSS bucket。 阿里云提供了Endpoint(是阿里云自己的域名)。数据库中存储的文件地址如果包含阿里云的域名,将来如果不使用阿里云(使用其他的云服务,或者是自己搭建图片服务器),那么数据库中的地址全部要修改(这里面包括富文本内容,修改富文本内容中的图片地址复杂程度可想而知)。 域名解析选择CNA...

2018-01-19 09:01:59 1894

原创 Shiro认证与授权源码分析

这里使用官方提供的demo进行调试,进入源码分析。官方demo地址:https://github.com/apache/shiro/tree/master/samples/quickstartpublic class Quickstart { private static final transient Logger log = LoggerFactory.getLogger...

2018-01-04 17:11:13 1544

原创 SpringMVC源码浅析

先来看一张整体的处理过程图: 下面的Spring源码版本为4.3.12,是目前最新的稳定版本。 源码版本不一致,可能会有稍许差异。DispatcherServlet.doDispatcher()先看一下DispatcherServlet方法的核心方法doDispatch:protected void doDispatch(HttpServletReque...

2017-12-25 21:51:21 537

原创 Hessian初体验

前面两篇文章写了一个RMI的例子并简单分析了一下RMI的原理。这里简单概括一下RMI的优缺点;优点:面向对象的远程服务模型;客户端可以像调用本机对象一样去调用远程对象的方法。基于TCP协议,执行速度非常快。缺点:使用Java特有的序列化协议JRMP,不能使用在多语言实现的异构系统上。在J2EE中WebService使用SOAP协议解决了异构系统通信的问题。因为SO...

2017-12-24 15:13:56 401

原创 RMI原理浅析

之前看过一个RMI的简单示例。这篇文章简单的分析一下RMI的原理。RMI应用程序的体系结构上一个例子中,我们编写了两个程序,一个服务端(Server)和一个客户端(Client)。在Server内创建一个远程对象(CalcServiceImpl),并生成存根,注册到Registry中。客户端请求远程对象,并调用对象的方法。Transport Layer:RMI传输层...

2017-12-23 20:05:46 939

原创 RMI简单示例

RMI是Java1.1中实现的一种RPC通信机制。使用RMI可以让一个Java虚拟机中的对象调用另外一个虚拟机中对象的方法,它大大增强了Java开发分布式应用的能力。这篇文章使用RMI实现一个简单的例子。服务端代码1.声明一个服务接口,提供给远程调用,该接口必须继承自java.rmi.Remote接口。package cn.hff.service;import java...

2017-12-23 18:00:49 1086

转载 前端存储技术

以前用过localForage,了解过客户端存储。找了几篇文章复习一下https://www.cnblogs.com/huangjacky/p/4019868.html, https://segmentfault.com/a/1190000002701423客户端存储主要方便一些APP离线使用。今天就来说说客户端存储的方法有多少? 说在最前面的一句:所有的客户端存储都有一个原则...

2017-12-11 15:14:23 508

原创 CentOS6上安装redis并配置服务自启动

安装Redis安装过程相当简单,官网也有安装教程,这里贴一下redis-3.2.11版的安装过程:1.下载源码包wget http://download.redis.io/releases/redis-3.2.11.tar.gz2.解压tar -xzvf redis-3.2.11.tar.gz -C /usr/local/3.编译redis源码并安装 因为red...

2017-12-07 22:12:04 799

原创 解决iptables重启失效问题

直接使用iptables命令修改防火墙配置的时候,防火墙规则只是保存在内存中,重启后就会失效。一种最简单的方式是在修改防火墙陪之后,再使用service iptables save命令将防火墙配置保存起来;使用该命令会将所有的防火墙规则保存在/etc/sysconfig/iptables文件中。另一种方法是使用iptables-save命令,顾名思义,该命令用于保存当前的防火墙规则的。直接使用该命令

2017-11-28 15:25:31 24043 3

原创 CentOS6上搭建Tomcat环境并配置服务自启动

下载并安装JDK卸载原装的OpenJDK(如果有)# 查看是否安装Javajava -version# 查看Java的安装包信息rpm -qa | grep java# 卸载原装Java,<java_package>为查找到的安装包信息rpm -e --nodeps <java_package> OpenJDK是JDK的开源版本,Linux使用...

2017-11-28 14:39:09 7506 4

原创 源码安装nginx服务器并配置服务自启动

下载可以到官网找下载地址:http://nginx.org/en/download.html这里使用1.8.1版本的源码安装wget http://nginx.org/download/nginx-1.8.1.tar.gz 下载方式多种多样,你也可以用ftp传上去安装前环境准备1.准备gcc-c++编译器yum install gcc-c++2.准...

2017-11-26 20:45:52 1820

原创 设置yum国内的镜像站点

yum国内镜像的配置yum默认链接是国外的镜像,速度堪忧,配置成国内的镜像会快很多,这里以阿里镜像为例进行配置:CentOS系统更换软件安装源第一步:备份原镜像文件,出错后方便恢复。mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup第二步:下载新的CentOS-Base.repo 到/etc/yu

2017-11-26 15:48:50 1631

原创 CentOS7虚拟机网络的配置

这几天做一个项目,要搭建图片服务器,所以在虚拟机上先模拟一下,因为后续可能集群的测试,我这渣渣电脑,带不起,所以我把虚拟机的内存限制在512M,硬盘存储限制在10G。考虑到图形界面太耗内存,也占空间,所以全用命令行的方式进行各种配置。Linux命令这东西几个月不碰,果然忘得很快,这里我把虚拟机网络配置的过程写下来,方便日后再用。虚拟机安装过程省略网上一大把。物理机配置为了方便测试虚拟机是否能ping

2017-11-22 15:12:55 1740 1

转载 Vmware虚拟机三种网络模式详解

转载自:http://blog.csdn.net/noob_f/article/details/51099040由于linux目前很热门,越来越多的人在学习linux,但是买一台服务放家里来学习,实在是很浪费。那么如何解决这个问题?虚拟机软件是很好的选择,常用的虚拟机软件有vmware workstations和virtual box等。在使用虚拟机软件的时候,很多初学者都会遇到很多问...

2017-11-22 12:43:54 769

转载 Servlet3.0动态注册Servlet、Filter和Listener

文章转载自http://www.blogjava.net/yongboy/archive/2010/12/30/346209.html 感谢原作者的分享说实话,对servlet 3动态加载servlet的机制有些失望,本来期望着可以在运行时完成对servlet的注册和销毁,但现状是,只能在webapp启动在初始化时进行完成注册,可能是为了安全考虑吧.在Servlet3.0...

2017-11-18 17:51:05 2622

转载 解决FastJson的$ref循环引用检测的问题

今天帮小黑解决问题的时候碰到的问题,感谢原作者的分享 原文章链接:https://www.cnblogs.com/zjrodger/p/4630237.html【需求与环境描述】0、开发环境  SSH,EasyUI,MySQL1、需求要求:  (1)首先获取所有的贷款订单数据,即List 。  (2)然后从单个贷款订单实体LoanOrder去访问贷款人实体Lo...

2017-11-14 13:17:41 1661 2

原创 Struts2通配符和它的各种坑

Struts2和Servlet相比有几个牛逼的地方。对OGNL表达式的整合以及通配符的运用就是其中两个。而J2EE标准中,与这两个对应的分别是JSP中EL表达式的运用,以及urlPattern中的通配符。前面的一篇文章中,讲述了OGNL的使用(OGNL在功能上把EL秒成渣(~ ̄▽ ̄)~ )。这篇文章就来说说Struts2中的通配符以及它的各种坑。最基本的使用1. *通配...

2017-10-29 21:05:55 2479

原创 Ognl表达式语言

Ognl全称Object Graph Navigation Language,是Apache Commons下的一个子项目。和JSP中的EL表达式一样,通常作为View层访问数据的一种方式。但是OGNL的功能比EL表达式功能强大的多(看完这篇文章后你会觉得OGNL能把EL表达式秒成渣)jar包下载使用ognl最有名的项目就是Struts2和MyBatis了,关于OGNL在Struts2...

2017-10-29 15:25:33 1163

转载 事务的隔离级别

转载自:http://xm-king.iteye.com/blog/770721SQL标准定义了4类隔离级别,包括了一些具体规则,用来限定事务内外的哪些改变是可见的,哪些是不可见的。低级别的隔离级一般支持更高的并发处理,并拥有更低的系统开销。 1. Read Uncommitted(读取未提交内容)​ 在该隔离级别,所有事务都可以看到其他未提交事务的执行结果。本隔离级别很少用于实际应

2017-10-17 18:51:59 650

转载 妙用XML实体引用

转载自:http://blog.sina.com.cn/s/blog_605f5b4f0100ir4c.html 看到实体引用还能这么搞,学习了一波,转载一下,方便以后查看。 感谢原作者的分享。XML的实体引用先看xml的文档结构:1,XML声明 xml文档是由一组使用唯一名称标识的实体组成的。始终以一个声明开始,这个声明指定该文档遵循XML1.0的规范。XML也有一种逻辑结构,在逻

2017-09-29 08:44:27 3874 1

转载 传统轮询,长轮询,EventSource与WebSocket

转载自:http://blog.zhangruipeng.me/2015/10/22/Web-Connectivity/构建网络应用的过程中,我们经常需要与服务器进行持续的通讯以保持双方信息的同步。通常这种持久通讯在不刷新页面的情况下进行,消耗一定的内存资源常驻后台,并且对于用户不可见。本文将简要介绍Web通信中常用的四种方式。传统轮询(Traditional Polling)...

2017-09-27 13:10:46 6308

原创 Tomcat编码问题详解

J2EE服务端开发编码问题主要集中在两个地方:JSP页面和Servlet程序。JSP页面:<%@ page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8" language="java" %><html><head> <meta charset="UTF-8"> <title>编码问题</title></he

2017-09-22 22:16:38 1651

原创 将Sublime打造成超强前端IDE

前几天把Sublime更新了一下,插件什么的重新装,但是突然都忘了以前装过什么插件了,把内容记录下来以备将来再查。sublime下载地址:https://www.sublimetext.com/3sublime文档地址:https://www.sublimetext.com/docs/3/http://docs.sublimetext.info授权码(不激活也可以使用,推荐购买授权码)—– B

2017-09-18 13:14:35 4634

原创 LESS小试牛刀

为什么选择lessCSS代码开发与维护都比较困难,特别是CSS中的各种尺寸颜色,看多了绝对想吐。所以就有了便于开发以及维护管理的CSS预处理语言,可以由它们编译生成CSS。作为一个搞后端的Javer,我所了解的CSS预处理语言大致有三种LESS, SASS, Stylus。这几种预处理语言都提供了变量(variables),混合书写(mixins),函数(functions),运算(ope...

2017-09-16 11:16:47 521

原创 LocalDB的使用详解

LocalDB是什么我们知道微软有一个SQL Server的免费版本SQL Server Express,它是作为学习以及构建桌面或小型服务器应用的入门级的免费数据库。但是作为编程人员,还是觉得体积过大。所以微软为开发者量身定制了一款专门用于编程开发的小数据库SQL Server Express LocalDB(实际上就是从SQL Server Express中抽离出来的)。下载和安装...

2017-09-09 21:15:21 11635 1

原创 远程连接Oracle的配置

前两天在CentOS7上装了Oracle,但每次都需要shell远程登录oracle用户才能在服务器上使用sqlplus进行数据库操作。感觉真尼玛麻烦,直接拿个Windows上的Oracle客户端连上去多爽,所以今天就折腾了一番,整理出来以防将来再走弯路。选择客户端我的本上客户端有很多,比如图形界面的有:Navicat Premium(能连Oracle,MySQL,SqlLite...

2017-08-30 18:50:32 8985

原创 Linux上安装Oracle的辛酸史

下个礼拜就要开始学习Oracle了,得嘞先在我的CentOS7上装一个(貌似听说Oracle装在Oracle Linux能得到更好的性能,不过懒得下Oracle Linux镜像,在CentOS7上装个试试先)。创建oracle用户与相关用户组为什么要把这部分作为第一步呢,主要是为了避免后面创建文件以及解压缩等一系列步骤中,要将文件所有者修改为oracle才能在安装过程中有足够的权限创建...

2017-08-27 19:06:14 49778 20

原创 NIO中的File文件操作

之前的两篇文章http://blog.csdn.net/holmofy/article/details/75269866, http://blog.csdn.net/holmofy/article/details/77429957分别对传统IO对文件的基本操作以及读写进行了介绍,从Java1.7开始Java在NIO中引入了新的文件操作API。这些API在java.nio.file以及它的子包jav...

2017-08-26 19:13:27 3727

原创 Java函数式编程与Lambda表达式

C++,Java,C#,Python等各个编程语言早已经支持lambda表达式了,作为即将从业的大学生,现在学习Java的函数式编程应该为时不晚。FunctionalInterface函数式接口四个最基本的函数式接口基本数据类型的函数式接口1double类型的函数式接口2int类型的函数式接口3long类型的函数式接口4boolean类型的函数式接口一元函数式接口用于类...

2017-08-22 15:54:59 6432 3

原创 JavaIO怎么调用WindowsAPI的——从Native层剖析JavaIO文件读写

上一篇文章中列举了JavaIO中FileDescriptor和File类提供的一些文件操作,这些操作还只是对文件系统中的文件进行创建或删除操作。鉴于大一玩过Window编程(对Linux API不是很熟悉),所以这篇文章会从Windows C API去分析一下Java提供给我们的几个文件读写类。 建议结合着源代码看这篇文章(这篇文章就是记录我看源代码的过程,这里的java版本是1.8.0_...

2017-08-20 16:22:59 2155

原创 Java多线程复习与巩固(六)--线程池ThreadPoolExecutor详解

1. 为什么要使用线程池线程创建与销毁都耗费时间,对于大量的短暂任务如果仍使用“创建-&amp;amp;amp;amp;amp;amp;gt;执行任务-&amp;amp;amp;amp;amp;amp;gt;销毁”的简单模式,将极大地降低线程的使用效率(一个线程仅仅处理一个短暂的任务就被销毁了)。在这种情况下,为了提高线程的使用效率,我们使用缓存池的策略让线程执行任务后不立即销毁而是等待着处理下一个任务。2. 使用Executors工具类创建线程池Executors是线程池框

2017-08-19 14:16:38 4903 3

原创 斐波那契数列算法优化问题

斐波那契是数学中最值得讨论的一个问题,从12世纪斐波那契提出这个数列后,就有很多数学家研究过这个数列,对斐波那契数列的新发现也越来越多,这些细节我没能力去研究,这篇文章中要讲的是编程中对生成斐波那契数算法的优化。首先要说的就是斐波那契数列的定义,这一切都起源于一个生殖能力超强的兔子:第一个月初有一对刚诞生的兔子第二个月后(第三个月初)他们可以生育每月没对兔子可生育的兔子会诞生下一对新兔子...

2017-08-07 19:16:21 7644 7

原创 Java国际化主题大合集

Java提供给我们软件国际化的解决方案,这些国际化API基于Unicode标准,并且包括文本、(货币)数字、日期以及用户自定义对象的适配,从而使得软件能够应用到任何国家或地区。国际化英文为“Internationalization”,通常简写成i18n(实际开发经常使用简写)。更多有关Java国际化的内容可以参考Oracle的相关网站。文字国际化Java语言基于Unicode字符集。Unicode是

2017-08-05 19:43:04 2108

SpringBoot实战简体中文

Spring Boot实战 简体中文带目录,学习SpringBoot的不二之作

2018-01-23

Effective Java 中文 简体繁体(侯捷)两本随你选

Effective Java 中文 简体(扫描版)、繁体(文字版) 带目录

2018-01-23

素数检测优化

http://blog.csdn.net/holmofy/article/details/76283751文章的Java实现代码

2017-07-28

自旋锁公平性的三种实现代码下载

http://blog.csdn.net/holmofy/article/details/75213405的文章代码

2017-07-17

git pro 教程

网上down下来的,感觉不错

2017-06-28

JVM Hotspot实现源码

OpenJDK

2017-06-18

JDK1.8完整源码,包含sun等包,以及C/C++ native层代码

OpenJDK源码 1.8u131版本。

2017-05-10

Android 音乐播放器简单实现源码实例下载

音乐播放器的简单实现,注意你的设备中得有音乐。。不然程序检索不到 完整的app示例地址:https://github.com/holmofy/MediaPlayer

2017-05-05

快速排序的六种实现,单轴快排,双轴快排JAVA实现

http://blog.csdn.net/Holmofy/article/details/71168530 这篇文章的实现代码

2017-05-04

常见的八大排序算法及其JAVA实现

http://blog.csdn.net/holmofy/article/details/70245895 文章的实现代码

2017-04-26

DOS命令大全

在dos_command的基础上添加了一些命令说明

2017-04-17

SurfaceView TextureView的Demo

博客代码

2017-03-26

前端 运维 安卓客户端 等工具集, angrytools.com网的神器

前端 运维 安卓客户端 等工具集, angrytools.com网的神器。angrytools.com的工具集

2017-03-11

Android官方培训课程中文版(v0.9.7)

网上down下来的,方便离线查看

2017-03-10

Color Scheme Designer设计师配色器,网页版的,点击html文件就可以打开使用

从网站上拔下来的,这个是中文的

2017-02-22

nodejs中英文文档合集及chm打包

直接从nodejs中文网搞下来的,然后打了个包

2017-01-19

View滑动效果常用属性详解2-使用scrollX|scrollY和Scroller实现自定义ViewPager

View滑动效果常用属性详解2-使用scrollX|scrollY和Scroller实现自定义ViewPager

2017-01-02

使用scroll,translation,margin三种滑动效果的对比

View滑动效果常用属性详解:scroll、translation、LayoutParams代码 http://blog.csdn.net/Holmofy/article/details/53959511

2017-01-01

Javascript HTML5 W3C官方API

上次的传错文件了,只传了整站,没传CHM包

2016-12-03

AndroidStudio黑色主题以及AndroidStudio下的Eclipse快捷键

自己花了一个晚上一个颜色一个颜色的设置,中与配好了比原来EclipseNeon黑色主题还漂亮的界面

2016-10-27

宇宙最全html5官方JavascriptAPI文档包含chm打包和html官方整站

把HTML5官方文档从网上扒了下来,比较适合英文基础比较好的码农

2016-09-24

前端API合集HTML5,CSS3,JavaScript,jQuery,Bootstrap的API,都是个人认为质量最好的API文档

HTML5.chm是W3School上的文档 CSS3.chm是飘零雾雨制作的,最全的CSS文档 JavaScript.chm因为没找到让我满意的文档,所以就自己制作了chm Bootstrap.chm是网上流传的,直接从官网翻译过来的 jQuery.chm是jQuery1.11.3版本的API,作者是Shifone,也是良心之作

2016-09-23

JavaScriptAPI中文手册HTML版和chm压缩版都有

在网上找了半天都没找到一个让我满意的文档,终于一个还是自己制作的chm才能让自己满意

2016-09-23

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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