openjdk目录结构
```
├─agent Serviceability Agent的客户端实现
├─make 用来build出HotSpot的各种配置文件
├─src HotSpot VM的源代码
│ ├─cpu CPU相关代码(汇编器、模板解释器、ad文件、部分runtime函数在这里实现)
│ ├─os 操作系相关代码
│ ├─os_cpu
继续阅读 »
一 编程规约
(一) 命名规约
(二) 常量定义
(三) 格式规约
(四) OOP规约
(五) 集合处理
(六) 并发处理
(七) 控制语句
(八) 注释规约
(九) 其它
二 异常日志
(一) 异常处理
(二) 日志规约
三 MySQL规约
(一) 建表规约
(二) 索引规约
(三) SQL规约
(四) ORM规约
四 工程规约
(一) 应用分层
(二) 二方库规约
(三) 服务器规约
五 安全规约
* * *
more
一 编程规约
(一)命名规约
【强制】 代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束。
继续阅读 »
记录工作中经常要去爬的maven相关技术。
拷贝maven依赖到target/lib下
xml
org.apache.maven.plugins
maven-dependency-plugin
copy-dependencies
prepare-package
copy
继续阅读 »
这里收藏工作中用到的下载地址,也为了防止做重复的搜索工作,同时分享给大家。
more
java相关
api
https://docs.oracle.com/javase/8/docs/api/index.html
javase
http://www.oracle.com/technetwork/java/javase/downloads/index.html
server-jre8
http://www.oracle.com/technetwork/java/javase/downloads/server-jre8-downloads-2133154.html
linux wget下载
java8 wget --no-check
继续阅读 »
这里收藏工作中用到的脚本,也为了防止做重复的搜索工作,同时分享给大家。
more
数组
初始化数组
shell
name = (value1 value2 ... valuen)
$ A=(a b c d)
$ echo ${A[@]} # 输出所有元素
数组去重
shell
$ array=($(awk -vRS=' ' '!a[$1]++' <<< ${array[@]}))
取得数组元素的个数
shell
$ echo ${#A[@]}
取下标
shell
$ echo ${A[1]} # 从1开始
清除元素
shell
$ unset A
$ echo ${A[@]}
循环取元素
shell
$ fo
继续阅读 »
Why
读ConcurrentHashMap的时候,我们遇到的一个很大的概念就是Segment(java8之后只有在调用writeObject方法的方法的时候才会用到segment),该类继承了ReentrantLock,用于实现分段锁(乐观锁)。处于心痒痒的目的,我也尝试写了个简陋版的分段锁。
How
该Demo实现的比较简单:根据key获取或者创建Lock(获取锁的时候使用double check),然后使用该锁来同步put或者read(ConcurrentHashMap的读操作使用的volatile,这里不深入)。不足之处还请指正~
What
java实现: github
more
```java
package
继续阅读 »
问题
在日常开发中,当使用ObjectMapper进行解析json时,我们时常需要将json解析成我们指定泛型的集合类型Collection。
但是如果直接使用objectMapper.readValue(json, Collection.class)的话,那么就会解析为Collection的类型,这个明显不是我们想要的。
方案
在jackson内,如果要反序列化为Collection或者Map,我们可以使用
- CollectionType construct = CollectionType.construct(LinkedList.class, SimpleType.construct(clazz));
-
继续阅读 »
开发中遇到的问题
在scala开发过程中,有需要使用Class获取scala单例(孤立)对象的需求,但是直接使用Class.newInstance()是无法获取单例对象的。
发现
google之后,在一篇博客:http://blog.csdn.net/zhangjg_blog/article/details/23376465 其中有一个例子:
scala
object Test {
val a = "a string";
def printString = println(a)
}
编译之后可以看到有两个class文件:
Test$.class
Test.class
也就是说, 这个孤立对象也被编译成一
继续阅读 »
问题描述
项目使用SpringMVC框架,并用jackson库处理JSON和POJO的转换。在POJO转化成JSON时,有些属性我们不需要输出或者有些属性循环引用会造成无法输出。
例如:实体User其中包括用户名、密码、邮箱等,但是我们在输出用户信息不希望输出密码、邮箱信息;
例如:实体user和department是多对一的关系,user内保存着department的信息,那么json输出时会导致这两个实体数据的循环输出;
jackson默认可以使用JsonIgnoreProperties接口来定义要过滤的属性,然后使用ObjectMapper#addMixInAnnotations来设置对应实体对应的JsonIgnorePr
继续阅读 »
Linux安装Samba文件共享服务器
Samba相对于Windows服务器来说具有更灵活的配置、高效等特点。个人认为是共享服务器的最佳选择。
more
安装samba:
bash
yum install samba
ubuntu下yum对应命令为:
bash
apt-get install samba
samba主要配置文件在/etc/samba/smb.conf中
```bash
[global]
realm = 192.168.0.2
netbios name = SAMBA-SERVER
netbios aliases = SAMBA-SERVER
继续阅读 »