自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

EnjoyCode的专栏

享受代码,分享快乐

  • 博客(87)
  • 资源 (8)
  • 收藏
  • 关注

原创 如何高效使用搜索引擎

主流搜索引擎(baidu,google)支持的搜索命令 双引号 把搜索词放在双引号中,代表完全匹配搜索,也就是说搜索结果返回的页面包含双引号中出现的所有的词,连顺序也必须完全匹配。bd和Google 都支持这个指令。例如搜索: “seo方法图片” 减号 减号代表搜索不包含减号后面的词的页面。使用这个指令时减号前面必须是空格,减号后面没有空格,紧跟着需要排除的词。Google 和bd都...

2019-07-26 14:56:03 576

转载 Git 分支管理最佳实践

WeiboGoogle+用电子邮件发送本页面 2Git 是目前最流行的源代码管理工具。大量的软件项目由 GitHub、Bitbucket 和 GitLab 这样的云服务平台或是私有的 Git 仓库来管理。在使用 Git 时通常会遇到的一个问题是采用何种分支管理实践,即如何管理仓库中作用不同的各类分支。和软件开发中的其他实践一样,Git 分支管理并没有普遍适用的最佳做法,而只有对每个...

2019-02-19 11:15:40 418

原创 Redis使用笔记

过期策略定期删除redis 会将每个设置了过期时间的 key 放入到一个独立的字典中,以后会定期遍历这个字典来删除到期的 key。定期删除策略Redis 默认会每秒进行十次过期扫描(100ms一次),过期扫描不会遍历过期字典中所有的 key,而是采用了一种简单的贪心策略。从过期字典中随机 20 个 key;删除这 20 个 key 中已经过期的 key;如果过期的 ke...

2019-02-18 20:30:26 189

转载 Spring 的 IOC 容器和 SpringMVC 的 IOC 容器 关系

需要进行 Spring 整合 SpringMVC 吗 ?还是否需要再加入 Spring 的 IOC 容器 ?是否需要再 web.xml 文件中配置启动 Spring IOC 容器的 ContextLoaderListener ?1. 需要: 通常情况下, 类似于数据源, 事务, 整合其他框架都是放在 spring 的配置文件中(而不是放在 SpringMVC 的配置文件中).

2017-01-04 15:44:16 1318

转载 SpringMvc 入门

一、SpringMVC基础入门,创建一个HelloWorld程序  1.首先,导入SpringMVC需要的jar包。  2.添加Web.xml配置文件中关于SpringMVC的配置123456789101112131415

2017-01-04 15:20:12 523

原创 JProfiler 的使用

一、安装JProfiler       从http://www.ej-technologies.com/下载5.1.2并申请试用序列号 二、主要功能简介1.内存剖析 Memory profilerJProfiler 的内存视图部分可以提供动态的内存使用状况更新视图和显示关于内存分配状况信息的视图。所有的视图都有几个聚集层并且能够显示现有存在的对象和作为垃圾回收的对象。所

2017-01-01 17:47:30 775

原创 深入分析ConcurrentHashMap

术语英文解释哈希算法hash algorithm是一种将任意内容的输入转换成相同长度输出的加密方式,其输出被称为哈希值。 哈希表hash table根据设定的哈希函数H(key)和处理冲突方法将一组关键字映象到一个有限的地址区间上,并以关键字在地址区间中的象作为记录在表中的存储位置,这种表称为哈希表或散列,所得存储位置

2016-12-13 11:14:52 373

原创 volatile 与synchronized的区别,以及volatile 的使用方法

Java 语言中的 volatile 变量可以被看作是一种 “程度较轻的 synchronized”;与 synchronized 块相比,volatile 变量所需的编码较少,并且运行时开销也较少,但是它所能实现的功能也仅是 synchronized 的一部分。本文介绍了几种有效使用 volatile 变量的模式,并强调了几种不适合使用 volatile 变量的情形。锁提供了两种

2016-12-13 10:54:33 410

原创 详解 分布式服务框架 Zookeeper

Zookeeper 分布式服务框架是 Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。本文将从使用者角度详细介绍 Zookeeper 的安装和配置文件中各个配置项的意义,以及分析 Zookeeper 的典型的应用场景(配置文件的管理、集群管理、同步锁、Leader 选举、队列管

2016-12-12 15:51:36 1299

原创 jedis操作redis的几种方式

redis是一个著名的key-value存储系统,也是nosql中的最常见的一种。其实,个人认为,redis最强大的地方不在于其存储,而在于其强大的缓存作用。我们可以把它想象成一个巨大的(多借点集群,聚合多借点的内存)的Map,也就是Key-Value。所以,我们可以把它做成缓存组件。官方推荐的java版客户端是jedis,非常强大和稳定,支持事务、管道及有jedi

2016-12-06 10:03:38 5221

原创 翱翔GitHub的海洋

GitHub 其中一个最重要的作用就是发现全世界最优秀的开源项目,你没事的时候刷刷微博、知乎,人家没事的时候刷刷 GitHub ,看看最近有哪些流行的项目,久而久之,这差距就越来越大,那么如何发现优秀的开源项目呢?这篇文章我就来给大家介绍下。1. 关注一些活跃的大牛GitHub 主页有一个类似微博的时间线功能,所有你关注的人的动作,比如 star、fork 了某个项目都会出现在你的

2016-12-05 10:39:52 434

转载 初探Nginx

相信很多人都听过nginx,这个小巧的东西慢慢地在吞食apache和IIS的份额。那究竟它有什么作用呢?可能很多人未必了解。说到反向代理,可能很多人都听说,但具体什么是反向代理,很多人估计就不清楚了。摘一段百度百科上的描述:Html代码  反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上

2016-11-20 16:15:55 277

原创 模拟Servlet3.0使用注解的方式配置Servlet

一、Servlet的传统配置方式  在JavaWeb开发中, 每次编写一个Servlet都需要在web.xml文件中进行配置,如下所示:1 servlet>2 servlet-name>ActionServletservlet-name>3 servlet-class>me.gacl.web.controller.ActionServletservlet-c

2016-11-11 14:01:33 2797 1

转载 Maven搭建SpringMVC+Hibernate项目详解

今天复习一下SpringMVC+Hibernate的搭建,本来想着将Spring-Security权限控制框架也映入其中的,但是发现内容太多了,Spring-Security的就留在下一篇吧,这篇主要搭建SpringMVC4.1.4和Hibernate4.3.8,之前也打了好多SpringMVC的,这部分已经非常的熟悉了,毕竟业开发过一年多SpringMVC的,这次持久层采用Hibernate,数

2016-10-26 15:01:44 991

转载 windows下安装redis

1、redis简介redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hashs(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis

2016-10-25 11:26:11 235

转载 Maven tomcat7-maven-plugin 部署Maven Web 项目

摘要: http://tomcat.apache.org/maven-plugin.html。 下面记录的是我在Eclipse环境中使用Tomcat Maven Plugin 在Tomcat7中部署Maven Web应用的配置过程 1: 配置Tomcat Manager 用户:    重新解压缩了一个新的tomcat7,打开Tomcat根目录下conf目录中的tomcat_user

2016-10-15 20:52:23 6307 1

转载 kafka入门:简介、使用场景、设计原理、主要配置及集群搭建(转)

问题导读:1.zookeeper在kafka的作用是什么?2.kafka中几乎不允许对消息进行“随机读写”的原因是什么?3.kafka集群consumer和producer状态信息是如何保存的?4.partitions设计的目的的根本原因是什么? 一、入门    1、简介    Kafka is a distr

2016-08-15 16:20:22 384

原创 jdk动态代理技术demo(干货)

学习完jdk动态代理以后,写的demo。为了方便以后查阅,特将代码贴到博客上,以后有时间再详细讲解通知接口package com.me.aop;public interface IAdvice { void befor(); void after();}通知实现类,完成日志打印package com.me.aop;public class LogAdvic

2016-07-27 14:19:50 1540 1

转载 cglib动态代理技术

一、原理      代理为控制要访问的目标对象提供了一种途径。当访问对象时,它引入了一个间接的层。JDK自从1.3版本开始,就引入了动态代理,并且经常被用来动态地创建代理。JDK的动态代理用起来非常简单,当它有一个限制,就是使用动态代理的对象必须实现一个或多个接口。如果想代理没有实现接口的继承的类,该怎么办?现在我们可以使用CGLIB包。二、什么是cglib     CGL

2016-07-27 14:09:34 1607

转载 UML类图实例讲解

首先是复习一下UML中九种图的理解:http://xhf123456789plain.blog.163.com/blog/static/172880482201192222144421/画用例图:http://xhf123456789plain.blog.163.com/blog/static/172880482201192221826110/下面是类图的实例(好像大话设计中有):

2016-07-25 16:13:56 21358 3

原创 数据库设计案例分析

一、树型关系的数据表  不少程序员在进行数据库设计的时候都遇到过树型关系的数据,例如常见的类别表,即一个大类,下面有若干个子类,某些子类又有子类这样的情况。当类别不确定,用户希望可以在任意类别下添加新的子类,或者删除某个类别和其下的所有子类,而且预计以后其数量会逐步增长,此时我们就会考虑用一个数据表来保存这些数据。按照教科书上的教导,第二类程序员大概会设计出类似这样的数据表结构:类别表

2016-06-30 09:39:02 19771 3

原创 JVM运行时的数据区

理解JVM运行时的数据区是Java编程中的进阶部分。我们在开发中都遇到过一个很头疼的问题就是OutOfMemoryError(内存溢出错误),但是如果我们了解JVM的内部实现和其运行时的数据区的工作机制,那么前面的问题就会迎刃而解。在这片文章中,我们将简单了解JVM中有哪些运行时数据区以及这些数据区的工作机制。JVM运行时数据区分类程序计数器 (Program Counte

2016-06-28 10:09:17 680

转载 详解Java中的注解

在Java中,注解(Annotation)引入始于Java5,用来描述Java代码的元信息,通常情况下注解不会直接影响代码的执行,尽管有些注解可以用来做到影响代码执行。注解可以做什么Java中的注解通常扮演以下角色编译器指令构建时指令运行时指令其中Java内置了三种编译器指令,本文后面部分会重点介绍Java注解可以应用在构建时,即当你构建

2016-06-28 10:02:59 8658 3

原创 关于java类加载器理解及畅谈

每一种技术的出现无一不例外都是有现实的需求,就像java这门语言的诞生,正是因为互联网的发展,移动智能设备的诞生,网民数量的爆炸式增加,随之而来的就是软件业的兴起。此时传统汇编,C语言的复杂性就成了制约软件发展的门槛,于是跨平台,面向对象的java应运而生;同理web技术的诞生,90年代互联网诞生之初,那时候的互联网还只属于少数人(科研机构),当时的web只是用来彼此交流一些静态文档,随之诞生了H

2016-06-26 16:29:59 373

原创 Eclipse导入git上的maven web项目详解

1 Eclipse中导入Git的maven项目 方法1:(1)首先当然是拉代码。在Eclipse里面有个Git Repositories Exploring。就是Git仓库,clone a git repository。复制一个git仓库,输入地址,然后按next,按照说明一直next下去。拉代码过程时选择preproduction分支把代码拉下来之后请记住你存

2016-05-21 19:59:40 1607

原创 JVM 内存模型详解

JVM堆(Heap)= 新生代(Young) + 旧生代(Tenured)新生代(Young)= Eden区 + Survivor区  http://blog.csdn.net/jollyant/article/details/5647141http://blog.csdn.net/zhangren07/article/details/62708

2016-04-08 11:08:04 454

转载 git分支管理策略以及常用术语

如果你严肃对待编程,就必定会使用"版本管理系统"(Version Control System)。眼下最流行的"版本管理系统",非Git莫属。相比同类软件,Git有很多优点。其中很显著的一点,就是版本的分支(branch)和合并(merge)十分方便。有些传统的版本管理软件,分支操作实际上会生成一份现有代码的物理拷贝,而Git只生成一个指向当前版本(又称"快照")的指针,因

2016-03-14 17:54:54 861

转载 java可视化监控工具

1.JConsole JConsole工具在JDK/bin目录下,启动JConsole后,将自动搜索本机运行的jvm进程,不需要jps命令来查询指定。双击其中一个jvm进程即可开始监控,也可使用“远程进程”来连接远程服务器。进入JConsole主界面,有“概述”、“内存”、“线程”、“类”、“VM摘要”和"Mbean"六个页签:

2016-03-14 17:31:17 2927

转载 java 内存调优

JVM调优主要是针对内存管理方面的调优,包括控制各个代的大小,GC策略。由于GC开始垃圾回收时会挂起应用线程,严重影响了性能,调优的目是为了尽量降低GC所导致的应用线程暂停时间、 减少Full GC次数。代大小调优最关键参数:-Xms、 -Xmx 、-Xmn 、-XX:SurvivorRatio、-XX:MaxTenuringThreshold、-XX:PermSize、-

2016-03-14 17:05:49 531

转载 java 对象的内存分配和回收

对象优先在Eden上分配大多数情况下,对象优先在新生代Eden区域中分配。当Eden内存区域没有足够的空间进行分配时,虚拟机将触发一次 Minor GC(新生代GC)。Minor GC期间虚拟机将Eden区域的对象移动到其中一块Survivor区域。大对象直接进入老年代所谓大对象是指需要大量连续空间的对象。虚拟机提供了一个XX:P

2016-03-14 16:57:07 626

转载 java 垃圾收集器

HotSpot JVM收集器              上面有7中收集器,分为两块,上面为新生代收集器,下面是老年代收集器。如果两个收集器之间存在连线,就说明它们可以搭配使用。Serial(串行GC)收集器Serial收集器是一个新生代收集器,单线程执行,使用复制算法。它在进行垃圾收集时,必须暂停其他所有的工作线程(用户线程)。是Jvm client模式下默认的

2016-03-14 16:28:57 376

转载 java 垃圾收集算法

跟踪收集器跟踪收集器采用的为集中式的管理方式,全局记录对象之间的引用状态,执行时从一些列GC  Roots的对象做为起点,从这些节点向下开始进行搜索所有的引用链,当一个对象到GC  Roots 没有任何引用链时,则证明此对象是不可用的。下图中,对象Object6、Object7、Object8虽然互相引用,但他们的GC Roots是不可到达的,所以它们将会被判定为是可回收的对象。

2016-03-14 16:15:42 442

转载 java中的对象访问原理及图解

对象访问会涉及到Java栈、Java堆、方法区这三个内存区域。如下面这句代码:[java] view plain copy print?Object objectRef = new Object();         假设这句代码出现在方法体中,"Object objectRef” 这部分将会反映到Java栈的本地变量中,作为一个

2016-03-14 15:41:30 1898

转载 java体系结构及内存模型

一:Java技术体系模块图二:JVM内存区域模型1.方法区也称"永久代” 、“非堆”,  它用于存储虚拟机加载的类信息、常量、静态变量、是各个线程共享的内存区域。默认最小值为16MB,最大值为64MB,可以通过-XX:PermSize 和 -XX:MaxPermSize 参数限制方法区的大小。

2016-03-14 15:03:51 423

转载 MQTT协议及拓展

什么是MQTT协议MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是IBM开发的一个即时通讯协议。MQTT协议是为大量计算能力有限,且工作在低带宽、不可靠的网络的远程传感器和控制设备通讯而设计的协议,它具有以下主要的几项特性1、使用发布(Publish)/订阅/(Subscribe)消息模式,提供一对多的消息发布,解除

2016-01-11 11:25:56 2872

转载 java 如何从jar包中读取资源文件

在代码中读取一些资源文件(比如图片,音乐,文本等等),在集成环境(Eclipse)中运行的时候没有问题。但当打包成一个可执行的jar包(将资源文件一并打包)以后,这些资源文件找不到,如下代码:Java代码  [java] view plaincopy//源代码1:    package edu.hxraid;    import java

2015-07-10 14:16:55 847

转载 jvm系统属性的获取

获取你的JVM系统环境属性  Java的"Writer once,run anywhere"口号的确让我们领略到了Java的神奇,也成为SUN宣传Java的金字招牌。拂开这层神秘的面纱,我们不难发现其核心是运行在各种操作系统中的JVM(Java虚拟机)在发挥着重要的作用,Java虚拟机允许我们的纯java类可以达到"一次编写,到处运行"。每个安装在不同操作系统的Java虚拟机负责着Java程序

2015-07-09 15:47:52 1056

转载 jar包路径问题

开发完毕后,我们经常会将我们的程序打包成可运行jar文件,或者是war包。如果程序内部需要明确知道当前jar包所处的位置,下面是几种方法:获取JAR包路径和所在目录的几种方法2012-02-14 CHERROT6 COMMENTS之前转过一篇文章(读取jar包中资源文件的几个方法),详细介绍了如何读取保存在jar包内的资源文件。今天又遇到

2015-07-09 15:22:45 2119

转载 桥梁模式和适配器模式的区别

桥梁模式和适配器模式的区别很多时候经常容易把桥接模式和适配器模式弄混。那什么时候用桥接,什么时候用适配器呢 ?共同点:桥接和适配器都是让两个东西配合工作不同点:出发点不同。         适配器:改变已有的两个接口,让他们相容。         桥接模式:分离抽象化和实现,使两者的接口可以不同,目的是分离。所以说,如果你拿到两个已有模块,想让他们同时工作,那么

2015-05-22 12:20:50 618

转载 Message Queue 简介

Queue(队列),这个词在《数据结构》的课程中出现过,即先进先出的一中数据结构,形象例子就是简单的铁路隧道和排队机;和Queue对应的就是stack(栈),Stack是一种先进后出的数据结构;如果看中文书,还有一个名词用于混,就是heap(堆),这个也很形象,进出是没有顺序的,就像煤堆。在计算机科学中,Message Queue(MQ),就是按顺序传递消息的一种技术。MQ一般都做为企业级

2015-05-21 21:21:03 508

hibernate_lib_JAR开发包

hibernate_lib_JAR开发包 web开发技术 数据持久层开发包 实现了数据库国际化

2014-04-27

struts2_core_JAR开发包

struts2_core_JAR开发包 MVC思想Xwork为技术核心。

2014-04-27

json相关的包

json相关的包 web开发使用 ajax中会用到

2014-04-27

俩大JS框架,Jquery和Prototype

俩大JS框架,Jquery和Prototype

2014-04-27

基于java web的网上招聘系统

基于java web的网上招聘系统,struct2,hibernate,spring框架,sqlserver数据文件。可以作为毕业设计

2014-04-19

Java小游戏 俄罗斯方块,贪吃蛇,捕鱼达人,万年历

java小游戏,俄罗斯方块,贪吃蛇,捕鱼达人,万年历,还有一个自编小游戏

2013-12-21

RDA5807+LCD+IIC的收音机源程序

使用单片机,通过IIC总线通信控制RDA5807芯片的收音机,可以在LCD上显示音量,频率。

2013-08-28

万年历(1602显示)

完全由单片机控制LCD显示时间,另加三个按键可以自己设定时间

2013-06-19

空空如也

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

TA关注的人

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