- 博客(38)
- 资源 (5)
- 收藏
- 关注
原创 NodeJs服务器管理
服务器管理是系统上线后需要面对的问题。最好有一个软件可以提供整套的服务器运行解决方案:要求运行稳定,启动/停止命令简单,支持热部署,宕机重启,监控日志,集群环境等。NodeJs服务器管理模块有forever、pm2等。forever是一个简单的命令式nodejs的守护进程,能够启动,停止,重启App应用。forever完全基于命令行操作,在forever进程之下,创建node的子进程,监控node子
2015-07-28 14:33:15
1779
转载 Java Reflection(十二):动态类加载与重载
Java允许你在运行期动态加载和重载类,但是这个功能并没有像人们希望的那么简单直接。这篇文章将阐述在Java中如何加载以及重载类。 你可能会质疑为什么Java动态类加载特性是Java反射机制的一部分而不是Java核心平台的一部分。不管怎样,这篇文章被放到了Java反射系列里面而且也没有更好的系列来包含它了。类加载器所有Java应用中的类都是被java.lang.ClassLoader类的一系列子类
2015-06-25 15:51:44
523
转载 Java Reflection(十一):动态代理
利用Java反射机制你可以在运行期动态的创建接口的实现。java.lang.reflect.Proxy类就可以实现这一功能。这个类的名字(译者注:Proxy意思为代理)就是为什么把动态接口实现叫做动态代理。动态的代理的用途十分广泛,比如数据库连接和事物管理(transaction management)还有单元测试时用到的动态mock对象以及AOP中的方法拦截功能等等都使用到了动态代理。创建代理你可
2015-06-25 14:55:42
566
转载 Java Reflection(十):数组
利用反射机制来处理数组会有点棘手。尤其是当你想要获得一个数组的Class对象,比如int[]等等。本节会讨论通过反射机制创建数组和如何获取数组的Class对象。注意:在阅读Eyal Lupu的博客文章“Two Side Notes About Arrays and Reflection”之后对本文的内容做了更新。目前这个版本参考了这篇博文里面的内容。java.lang.reflect.ArrayJa
2015-06-25 14:51:08
372
转载 Java Reflection(九):泛型
我常常在一些文章以及论坛中读到说Java泛型信息在编译期被擦除(erased)所以你无法在运行期获得有关泛型的信息。其实这种说法并不完全正确的,在一些情况下是可以在运行期获取到泛型的信息。这些情况其实覆盖了一些我们需要泛型信息的需求。在本节中我们会演示一下这些情况。运用泛型反射的经验法则下面是两个典型的使用泛型的场景: 1、声明一个需要被参数化(parameterizable)的类/接口。 2、
2015-06-25 14:44:54
435
转载 Java Reflection(八):注解
利用Java反射机制可以在运行期获取Java类的注解信息。什么是注解注解是Java 5的一个新特性。注解是插入你代码中的一种注释或者说是一种元数据(meta data)。这些注解信息可以在编译期使用预编译工具进行处理(pre-compiler tools),也可以在运行期使用Java反射机制进行处理。下面是一个类注解的例子:@MyAnnotation(name="someName", value =
2015-06-25 14:35:42
451
转载 Java Reflection(七):私有变量和私有方法
在通常的观点中从对象的外部访问私有变量以及方法是不允许的,但是Java反射机制可以做到这一点。使用这个功能并不困难,在进行单元测试时这个功能非常有效。本节会向你展示如何使用这个功能。注意:这个功能只有在代码运行在单机Java应用(standalone Java application)中才会有效,就像你做单元测试或者一些常规的应用程序一样。如果你在Java Applet中使用这个功能,那么你就要想办
2015-06-25 14:26:38
433
转载 Java Reflection(六):Getters and Setters
使用Java反射你可以在运行期检查一个方法的信息以及在运行期调用这个方法,使用这个功能同样可以获取指定类的getters和setters,你不能直接寻找getters和setters,你需要检查一个类所有的方法来判断哪个方法是getters和setters。首先让我们来规定一下getters和setters的特性:Getter Getter方法的名字以get开头,没有方法参数,返回一个值。Sett
2015-06-25 14:19:43
590
转载 Java Reflection(五):变量
使用Java反射机制你可以运行期检查一个类的变量信息(成员变量)或者获取或者设置变量的值。通过使用java.lang.reflect.Field类就可以实现上述功能。在本节会带你深入了解Field对象的信息。获取Field对象可以通过Class对象获取Field对象,如下例:Class aClass = ...//获取Class对象 Field[] methods = aClass.getFie
2015-06-25 14:10:14
413
转载 Java Reflection(四):方法
使用Java反射你可以在运行期检查一个方法的信息以及在运行期调用这个方法,通过使用java.lang.reflect.Method类就可以实现上述功能。在本节会带你深入了解Method对象的信息。获取Method对象可以通过Class对象获取Method对象,如下例:Class aClass = ...//获取Class对象Method[] methods = aClass.getMethods(
2015-06-25 14:03:24
600
转载 Java Reflection(三):构造器
利用Java的反射机制你可以检查一个类的构造方法,并且可以在运行期创建一个对象。这些功能都是通过java.lang.reflect.Constructor这个类实现的。本节将深入的阐述Java Constructor对象。获取Constructor对象我们可以通过Class对象来获取Constructor类的实例:Class aClass = ...//获取Class对象Constructor[]
2015-06-25 13:56:41
390
转载 Java Reflection(二):Classes
使用Java反射机制可以在运行时期检查Java类的信息,检查Java类的信息往往是你在使用Java反射机制的时候所做的第一件事情,通过获取类的信息你可以获取以下相关的内容:Class对象,类名,修饰符,包信息,父类,实现的接口,构造器,方法,变量,注解。除了上述这些内容,还有很多的信息你可以通过反射机制获得,如果你想要知道全部的信息你可以查看相应的文档JavaDoc for java.lang.Cl
2015-06-25 11:20:38
397
转载 Java Reflection(一):Java反射指南
Java反射机制可以让我们在编译期(Compile Time)之外的运行期(Runtime)检查类,接口,变量以及方法的信息。反射还可以让我们在运行期实例化对象,调用方法,通过调用get/set方法获取变量的值。Java反射机制功能强大而且非常实用。举个例子,你可以用反射机制把Java对象映射到数据库表,就像Butterfly Persistence所做的那样,或者把脚本中的一段语句在运行期映射到相
2015-06-25 11:03:16
410
转载 Java 8新特性探究(十一)Base64详解
BASE64 编码是一种常用的字符编码,在很多地方都会用到。但base64不是安全领域下的加密解密算法。能起到安全作用的效果很差,而且很容易破解,他核心作用应该是传输数据的正确性,有些网关或系统只能使用ASCII字符。Base64就是用来将非ASCII字符的数据转换成ASCII字符的一种方法,而且base64特别适合在http,mime协议下快速传输数据。JDK里面实现Base64的API在JDK1
2015-03-05 16:34:16
518
转载 Java 8新特性探究(十)StampedLock将是解决同步问题的新宠
本文将从synchronized、Lock到新增的StampedLock进行对比分析
2015-03-05 16:24:42
417
转载 Java 8新特性探究(九)跟OOM:Permgen说再见吧
JEP 122: Remove the Permanent Generation,再也见不到OOM:Permgen了
2015-03-05 16:12:38
456
转载 Java 8新特性探究(八)精简的JRE详解
详细解释compact profile相关知识,字面上翻译是紧凑的配置文件,但我认为紧凑的JRE更容易理解,或者精简的JRE
2015-03-05 15:57:31
719
转载 Java 8新特性探究(七)深入解析日期和时间-JSR310
JSR310已在java8中实现了,对于恶心的java.util.Date和Calendar,终于可以休息了吧。
2015-03-05 14:55:28
619
转载 Java 8新特性探究(六)泛型的目标类型推断
简单理解泛型泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。通俗点将就是“类型的变量”。这种类型变量可以用在类、接口和方法的创建中。理解Java泛型最简单的方法是把它看成一种便捷语法,能节省你某些Java类型转换(casting)上的操作:List<Apple> box = new ArrayList<Apple>();box.add(new
2015-03-05 14:35:14
457
转载 Java 8新特性探究(五)重复注解(repeating annotations)
知识回顾前面介绍了: lambda表达式和默认方法 (JEP 126) 批量数据操作(JEP 107) 类型注解(JEP 104) 注:JEP=JDK Enhancement-Proposal (JDK 增强建议 ),每个JEP即一个新特性。 在java 8里面,注解一共有2个改进,一个是类型注解,在上篇已经介绍了,本篇将介绍另外一个注解的改进:重复注解(JEP 120)。什么是重复注解
2015-03-05 14:24:17
484
转载 Java 8新特性探究(四)类型注解 复杂还是便捷
本文将介绍java 8的第二个特性:类型注解。 注解大家都知道,从java5开始加入这一特性,发展到现在已然是遍地开花,在很多框架中得到了广泛的使用,用来简化程序中的配置。那充满争议的类型注解究竟是什么?复杂还是便捷?什么是类型注解在java 8之前,注解只能是在声明的地方所使用,比如类,方法,属性;java 8里面,注解可以应用在任何地方,比如:创建类实例 new @Interne
2015-03-05 14:15:46
478
转载 Java 8新特性探究(二)深入解析默认方法
上篇讲了 lambda表达式的语法,但只是 JEP126 特性的一部分,另一部分就是默认方法(也称为虚拟扩展方法或防护方法) 。什么是默认方法,为什么要有默认方法简单说,就是接口可以有实现方法,而且不需要实现类去实现其方法。只需在方法名前面加个default关键字即可。 为什么要有这个特性?首先,之前的接口是个双刃剑,好处是面向抽象而不是面向具体编程,缺陷是,当需要修改接口时候,需要修改全部实现该接
2015-03-05 13:36:04
416
转载 Java 8新特性探究(一)通往lambda之路_语法篇
说到java 8,首先会想到lambda(闭包)以及虚拟扩展方法(default method),这个特性早已经被各大技术网站炒得沸沸扬扬了,也是我们java 8系列开篇要讲的第一特性(JEP126 http://openjdk.java.net/jeps/126),jdk8的一些库已经应用了lambda表达式重新设计了,理解他对学习java 8新特性有着重要的意义。
2015-03-05 13:08:52
415
转载 Java 8新特性探究 前言
自2013年6月13日,oracle就已经发布的Java 8特性完备版本(M7),但最终GA版本将在2014年3月18日(已第二次跳票,原计划今年9月发布的,据官网宣称是为了解决安全问题……),相信大家多多少少都听闻了关于Java 8的改进,总得来说,Java 8从语言,核心库,国际化、虚拟机,安全性,平台等方面一共有55个特性,本系列博文将带大家对这55个特性进行探究,不求做到最好,只求详细,深入
2015-03-05 12:50:58
393
转载 Java 8新特性终极指南
1.介绍毫无疑问,Java 8发行版是自Java 5(发行于2004,已经过了相当一段时间了)以来最具革命性的版本。Java 8 为Java语言、编译器、类库、开发工具与JVM(Java虚拟机)带来了大量新特性。在这篇教程中,我们将一一探索这些变化,并用真实的例子说明它们适用的场景。这篇教程由以下几部分组成,它们分别涉及到Java平台某一特定方面的内容: Java语言 编译器 类库 工具
2015-03-05 12:04:48
1422
1
原创 JDK1.7新特性
1. 二进制文本在jdk1.7之前,所支持的进制包括十进制、八进制和十六进制。八进制在数字字面量前面添加0来表示,十六进制在数字字面量前面添加0x来表示。如果要处理二进制值,就必须进行基础的转换,或者调用parseX方法。如:想让int x变量用位模式(计算机中所有二进制的0、1代码所组成的数字串)表示十进制值102,可以这样写:int x = Integer.parseInt("11
2015-02-03 19:43:31
566
转载 JDK1.6新特性
1.Desktop类和SystemTray类 在JDK6中 ,AWT新增加了两个类:Desktop和SystemTray。 前者可以用来打开系统默认浏览器浏览指定的URL,打开系统默认邮件客户端给指定的邮箱发邮件,用默认应用程序打开或编辑文件(比如,用记事本打开以txt为后缀名的文件),用系统默认的打印机打印文档;后者可以用来在系统托盘区创建一个托盘程序. 2.使用JAXB2来实
2015-01-20 16:30:44
527
原创 JDK5.0新特性
jdk5.0重要的语言变化:泛型(Generics)、循环增强(Enhanced for Loop)、自动封箱(Autoboxing)和解箱(Unboxing)、类型安全的枚举(Typesafe Enums)、可变参数(Varargs)、静态导入(Static Import)、注解(Annotations)1. 泛型(Generics)没有使用泛型的问题:(1)从集合中获得元素
2015-01-20 15:47:43
461
原创 解决在Tomcat中同时部署两个项目问题
将两个项目打成war包在tomcat下部署会出现一些问题,只有一个项目能部署成功。将两个项目导入到Eclipse中同时部署并启动Tomcat,经过测试报错如下:java.lang.IllegalStateException: Web app root system property already set to different value,它的意思是将Web app root系统属性设置为
2015-01-19 12:13:50
2720
2
原创 Spring3.1, Hibernate4与Jackson2处理Json序列化异常
在Spring MVC + Hibernate开发项目的过程中,使用Json序列化Hibernate懒加载对象时会抛出org.hibernate.LazyInitializationException异常。原因是懒加载的对象是一个代理对象,并不是我们真正想要得到的对象,所以Json无法序列化。网上给出几种解决办法:1. 使用OpenSessionInViewFilter,但经过本人多次测试未能
2015-01-09 13:54:09
3351
翻译 MongoDB数据库设计中6条重要经验法则 Part 3
这是系列的最后一部分。在第一部分里,我介绍了三种针对“一对多 ”关系建模的基础方案。在第二部分中,我介绍了对基础方案的扩展:双向关联和反范式化。 反范式可以让你避免一些应用层级别的join,但是这也会让更新变的更复杂,开销更大。不过冗余那些读取频率远远大于更新频率的字段还是值得的。 如果你还没有读过前两部分,欢迎一览。 让我们回顾下这些方案 你可以采取内嵌,或者建立
2015-01-09 13:39:46
696
翻译 MongoDB数据库设计中6条重要经验法则 Part 2
在上一部分中介绍了三种基本的设计方案:内嵌,子引用,父引用,同时说明了在选择方案时需要考虑的两个关键因素。 1. 一对多中的多是否需要一个单独的实体。 2. 这个关系中集合的规模是一对很少,很多,还是非常多。 在掌握了以上基础技术后,我将会介绍更为高级的主题:双向关联和反范式化。 双向关联 如果你想让你的设计更酷,你可以让引用的“one”端和
2015-01-09 13:21:44
632
翻译 MongoDB数据库设计中6条重要经验法则 Part 1
“我有丰富的sql使用经验,但是我是个MongoDB的初学者。我应该如何在MongoDB中针对一对多关系进行建模?”这是我被问及最多的问题之一。 我没法简单的给出答案,因为这有很多方案去实现。接下来我会教导你如何针对一对多进行建模。 这个话题有很多内容需要讨论,我会用三个部分进行说明。在第一部分,我会讨论针对一对多关系建模的三种基础方案。在第二部分我将会覆盖更多高级内容,包括反范式
2015-01-09 12:17:05
996
1
原创 正则表达式(整理)
正则表达式正则表达式:是强大、便捷和高效的文本处理工具。正则表达式如同一门编程语言的通用模式表示法。赋予使用者描述和分析文本的能力,能够添加、删除、分离、叠加、插入和修整各种类型的文本和数据。 完整的正则表达式由两种字符组成:特殊字符(称为元字符)和普通文本字符。 「^」:代表一行的开始。如「^cat」匹配以c作为一行的第一个字符,紧接一个a,再紧接一个t的文本。
2015-01-08 20:23:36
825
原创 博客开张篇
时间过得真快,做程序员已经4年了。但在这4年里还没有真正的去写过博客,说来也惭愧。自己也曾有过写博客的想法,但都没坚持下去,所以今天写这篇博客一是希望通过写博客能将自己的技能提升,二是为了督促自己以后经常写博客。4年时间说长也长,说短也短。在不知不觉中敲了4年的代码,期间学会了很多,但也有很多东西值的去深究,相信每个程序员都有这种感受吧。回想以前自己为什么选择了这个行业,呵呵,自己也不太清楚,
2015-01-08 19:28:07
399
Hibernate4.1.11中文手册
2015-03-05
AngularJS权威教程高清中文版带书签
2015-03-05
Node.js实战高清中文版
2015-01-09
Struts2权威指南完整版pdf
2011-11-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人