- 浏览: 11167 次
- 来自: 无锡
最新评论
文章列表
Google Guice学习一(基础)
- 博客分类:
- 开源软件
Google Guice是依赖注解的DI容器,支持字段、方法和构造函数的注入依赖。
使用方法步骤为配置需要注入的字段、配置模板、使用Injector API获得实例。
一、 支持的注入方式
1、字段注入
最常见的方式,使用@Inject注解完成
@Inject
private XmlUserLoader loader;
2、构造函数注入
@Inject
public XmlUserServiceImpl(XmlUserLoader loader)
{
this.loader=loader;
}
3、setter方法注入
@Inject
p ...
一、正则表达式的元字符
元字符
说明
备注
^
代表行的开始
^abc匹配以abc为开头的行
$
代表行的结束
abc$匹配以abc为结尾的行
[字符组]
[]
匹配若干字符之一
[abc]表示匹配a或者b或者c。
-连字符表示一个范围,[a-zA-Z]匹配字母。如果想把连字符在字符组内作为一个正常的字符,必须放在最前面[-a-z]
在字符组内的字符除了连字符,其他都不是元字符。例如[*+?]表示匹配* + ?字符中的一个
^表示匹配一个未列出的字符 [^a-z0-9]。表示匹配除a-z和0-9之间的字符。^必须放在开头 ...
一、InetAddress
java.net.InetAddress类是java对IP地址的高层表示。通过主机查找IP的时候会查询DNS服务器,开销会很大,因此InetAddress类会缓存中查找。对于DNS的缓存时间可以用系统属性networkaddress.cache.ttl指定成功的DNS结果在java缓存中 ...
一、java.util.Date
类 Date 表示特定的瞬间,精确到毫秒,负责存储一个绝对时间。从 JDK 1.1 开始,应该使用 Calendar 类实现日期和时间字段之间转换,使用 DateFormat 类来格式化和分析日期字符串。Date 中的把日期解释为年、月、日、小时、分钟和秒值的方法已废弃。
构造方法摘要 -------------
Date()
分配 Date 对象并用当前时间初始化此对象,以表示分配它的时间(精确到毫秒)。
Date(long date)
分配 Date 对象并初始化此对象,以表示自从标准基准时间(称 ...
Java Excel是开源项目,使用它可以用纯java来读取Excel文件的内容、创建Excel文件、更新已存在的Excel文件的内容,它不依赖于操作系统,这样可以使大家放心方便的操作Excel'文件。
一、maven依赖
<dependency>
<groupId>net.sourceforge.jexcelapi</groupId>
<artifactId>jxl</artifactId>
<version>2.6.12</version>
</depe ...
附件为三个示例。
1、简单的hash模型
2、根据java对象生成java源码
3、根据xml文件生成java源码
一、创建 Configuration 实例
Configuration cfg = new Configuration(Configuration.VERSION_2_3_22);
cfg .setClassForTemplateLoading(this.getClass(), "ftl");
cfg.setDefaultEncoding("UTF-8");
cfg.setTemplateExceptionHandler(TemplateExceptionHandler.RETHROW_HANDLER);
不需要重复创建 Conf ...
一、什么是Freemarker
FreeMarker 是一款模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本。模板文件即ftl文件,数据对象是java对象。
模板 + 数据模型 = 输出
二、Freemarker的数据模型
1、顶层数据模型
数据模型是树状结构的,顶层默认为root节点
(root)
|+- animals
| |+- mouse
| | |+- size = "small"
| | |+- price = 50
| |+- elep ...
一、Class类结构:
class文件是以8位字节为基础单位的二进制流。
ClassFile {
u4 magic;//魔数(0xCAFEBABE。固定值)
u2 minor_version;//次版本号
u2 major_version;//主版本号
u2 constant_pool_count;//常量池容量计数值
cp_info constant_pool[constant_pool_count-1];//常量池
一、Java的内存主要有如下的部分组成:
堆内存:存放对象或者数组实例。可以使用-Xms指定最小值,-Xmx指定最大值。分为新生带和老年点。其中新生代又可以分为伊甸园区和两个Survivor0区和Survivor1区,他们的内存比例用-XX:SurvivorRadio=X指定,例如如果这个值等于6,那么表示伊甸园区的内存总数为 新生代x6/(6+2)。内存溢出信息为:Java heap space。该内存区域为整个进程共享
方法区:存放加载类信息、静态常量以及即时编译器编译的本地代码。可以使用-XX:PermSize指定最小值,-XX:MaxPermSize指定最大值。内存溢出异常的信 ...
1、在java中经常会看到这样的代码 File file=new File("local/app.txt")。那么这个文件的路径是相对于系统属性key为user.dir的路径。代码如下:
// 打印当前的路径
File currentFile = new File("");
printer.println(currentFile.getAbsolutePath());
// 打印出user.dir属性
printer.println(System.getProperty("user.di ...
在项目中经常会遇到xml与Object的转换,即java对象序列号为xml文档,xml文档可以反序列化为java对象。目前比较好用的有jaxb和XStream。下面进行分别介绍
一、JAXB
Java Architecture for XML Binding (JAXB) 是一个业界的标准,是一项可以根据XML Schema产生Java类的技术。
废话不多说,直接上例子,假设我们需要实现一个简单的学校学生系统,我们的java对象如下:
/**
* @author ozl
* 基类
*/
public abstract class AbstracEleme ...
在生成java代码的中经常会遇到Java文件的合并问题,EMF的org.eclipse.emf.codegen插件提供了Java文件合并的工具类,用户只需要配置一定的规则就可以解决java文件的合并问题。
EMF提供了简介的API调用:
public String mergeContent(String sourceContent,String targetContent)
{
//用户配置的合并规则
String jmergeRuleURI= URI.createPlatformPluginURI(
"org.eclipse.emf.codeg ...