My learning track of java
==============================================================================
这里记录一些我自己在学习使用java过程中的一些东西,仅仅用于备忘和知识梳理.这篇文章我会不断补充,因为我也在不断学习中. 请勿转载.
==============================================================================
目录:
-
MongoDB
-
morphia 谷歌的一个针对MongoDB的数据化持久框架<含各个版本API> :http://mongodb.github.io/morphia/
-
IBM的一个教程关于 <使用 Morphia 和 MongoDB 实现域模型持久性>
-
数据批量处理
-
BigDecimal精确数据类型
-
JDK8里新成员Lambda&Stream
-
并发编程
-
ThreadPoolExecutor
-
Quartz 定时任务
-
注解<Annotation>
-
SVN
=============================================================================
transient
使用注解@Transient 或者 transient关键字, 编译时要是有这个标记, 编译器就不会把这个属性序列化<1.交给编译器处理>. 但仅限于继承接口Serializable;
另外一个序列化接口Externalizable属于半自动序列化接口. 区别在于需要手动重写方法来指定哪些属性会被write()到磁盘或者流里<2.手动处理>, 这时候这个注解或关键字并不会管用;
例如:logger仅仅是希望在运行时中方便子类输出log,并不希望被序列化到DB<mongoDB>或者其他磁盘位置.
public abstract class BaseEntity implements Serializable{
private static final long serialVersionUID = -148184665704100002L;
@Transient
protected final Logger logger = LoggerFactory.getLogger(this.getClass());
//或者使用关键词 transient
// protected final transient Logger logger = LoggerFactory.getLogger(this.getClass());
}
Externalizable:
public abstract class BaseEntity implements Externalizable{
private String content = "序列化测试文本";//会被序列化
protected final Logger logger = LoggerFactory.getLogger(this.getClass()); //不会被序列化
@Override
public void writeExternal(ObjectOutput out) throws IOException {
out.writeObject(content);
}
@Override
public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
content = (String) in.readObject();
}
}
注销当前登陆的svn账户, 使用新svn账号登陆svn.删除不同svn根节点下的账户记录,再次update时会从新提示输入account & password.
举个例子,核心代码保护, 公用服务器正使用有权限SVN账号维护核心代码, 此时人员变多,出于安全考虑要删除这部分源码, relogin为一个没权限checkout的账户.并直接删除<核心代码所在文件夹>并不能达到目的,
正确做法是: 使用svn右键的delete, 删除.svn文件夹里的配置信息,否则,直接update还是可以再次update下来.