2017-02-17 blademainer
openjdk目录结构 ``` ├─agent Serviceability Agent的客户端实现 ├─make 用来build出HotSpot的各种配置文件 ├─src HotSpot VM的源代码 │ ├─cpu CPU相关代码(汇编器、模板解释器、ad文件、部分runtime函数在这里实现) │ ├─os 操作系相关代码 │ ├─os_cpu 继续阅读 »
2017-02-14 blademainer
一 编程规约 (一) 命名规约 (二) 常量定义 (三) 格式规约 (四) OOP规约 (五) 集合处理 (六) 并发处理 (七) 控制语句 (八) 注释规约 (九) 其它 二 异常日志 (一) 异常处理 (二) 日志规约 三 MySQL规约 (一) 建表规约 (二) 索引规约 (三) SQL规约 (四) ORM规约 四 工程规约 (一) 应用分层 (二) 二方库规约 (三) 服务器规约 五 安全规约 * * * more 一 编程规约    (一)命名规约  【强制】 代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束。 继续阅读 »
2016-12-18 blademainer
记录工作中经常要去爬的maven相关技术。 拷贝maven依赖到target/lib下 xml org.apache.maven.plugins maven-dependency-plugin copy-dependencies prepare-package copy 继续阅读 »
2016-11-14 blademainer
这里收藏工作中用到的下载地址,也为了防止做重复的搜索工作,同时分享给大家。 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 继续阅读 »
2016-09-12 blademainer
这里收藏工作中用到的脚本,也为了防止做重复的搜索工作,同时分享给大家。 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 继续阅读 »
2016-04-18 blademainer
Why 读ConcurrentHashMap的时候,我们遇到的一个很大的概念就是Segment(java8之后只有在调用writeObject方法的方法的时候才会用到segment),该类继承了ReentrantLock,用于实现分段锁(乐观锁)。处于心痒痒的目的,我也尝试写了个简陋版的分段锁。 How 该Demo实现的比较简单:根据key获取或者创建Lock(获取锁的时候使用double check),然后使用该锁来同步put或者read(ConcurrentHashMap的读操作使用的volatile,这里不深入)。不足之处还请指正~ What java实现: github more ```java package 继续阅读 »
2016-03-29 blademainer
问题 在日常开发中,当使用ObjectMapper进行解析json时,我们时常需要将json解析成我们指定泛型的集合类型Collection。 但是如果直接使用objectMapper.readValue(json, Collection.class)的话,那么就会解析为Collection的类型,这个明显不是我们想要的。 方案 在jackson内,如果要反序列化为Collection或者Map,我们可以使用 - CollectionType construct = CollectionType.construct(LinkedList.class, SimpleType.construct(clazz)); - 继续阅读 »
2015-10-30 blademainer
开发中遇到的问题 在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 也就是说, 这个孤立对象也被编译成一 继续阅读 »
2015-10-14 blademainer
问题描述 项目使用SpringMVC框架,并用jackson库处理JSON和POJO的转换。在POJO转化成JSON时,有些属性我们不需要输出或者有些属性循环引用会造成无法输出。 例如:实体User其中包括用户名、密码、邮箱等,但是我们在输出用户信息不希望输出密码、邮箱信息; 例如:实体user和department是多对一的关系,user内保存着department的信息,那么json输出时会导致这两个实体数据的循环输出; jackson默认可以使用JsonIgnoreProperties接口来定义要过滤的属性,然后使用ObjectMapper#addMixInAnnotations来设置对应实体对应的JsonIgnorePr 继续阅读 »
2014-01-06 blademainer
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 继续阅读 »