java
BlackCutter
not just java developer
展开
-
skill:Kindeditor
简单记录下使用方式:页面使用textarea元素作为容器:<textarea id="content" name="content" ></textarea>使用Kindeditor的js渲染textarea,生成一个富文本编辑框(并不是原来的textarea)$(function(){ KindEditor.create('#content',{ height : '500原创 2016-03-11 17:34:58 · 499 阅读 · 0 评论 -
javap:count = count ++
int count = 0;for(int i=0;i<10;i++){ count = count++;}原创 2015-05-21 18:06:28 · 793 阅读 · 0 评论 -
jdk:CopyOnWriteArrayList
解决问题如何理解CopyOnWrite?关键词数组、new数组、复制、数组更新、数组引用更新codeCopyOnWriteArrayList.set(int index, E element)public E set(int index, E element) { final ReentrantLock lock = this.lock; lock.lock(); try {原创 2016-06-24 18:55:30 · 404 阅读 · 0 评论 -
jdk:HashSet基于HashMap实现
以前就听过,HashSet基于HashMap实现,HashMap的键部分就是一个HashSet,但是今天看了一眼源码之后,我就觉得这些说法并不够清晰,至少没有我看了一眼源码来的痛快。HashSet源码中的两行代码:private transient HashMap<E,Object> map;public HashSet() { map = new HashMap<E,Object>();原创 2015-06-23 14:39:48 · 578 阅读 · 0 评论 -
jdk:HashMap的keySet(),values(),entrySet()
在api文档中这三个方法返回的都是视图,今天从源码层面上分析,为什么是视图。keySet(): public Set<K> keySet() { Set<K> ks = keySet; return (ks != null ? ks : (keySet = new KeySet())); } private final class KeySet exte原创 2015-06-23 14:07:07 · 1084 阅读 · 0 评论 -
jdk:HashMap
首先看我们通常使用的HashMap构造函数:public HashMap() { this.loadFactor = DEFAULT_LOAD_FACTOR; threshold = (int)(DEFAULT_INITIAL_CAPACITY * DEFAULT_LOAD_FACTOR); table = new Entry[DEFAULT_INIT原创 2015-06-23 11:17:44 · 558 阅读 · 0 评论 -
jdk:ArrayList
public boolean add(E e) { ensureCapacity(size + 1); // Increments modCount!! elementData[size++] = e; return true; }原创 2015-06-19 11:56:45 · 565 阅读 · 0 评论 -
jdk:Arrays.asList&Collection.toArray
Arrays.asList 与 Collection.toArray原创 2015-06-19 11:26:41 · 553 阅读 · 0 评论 -
Pattern:group
Pattern pattern = Pattern.compile("(.)(.)\\1\\2");原创 2015-05-22 14:42:28 · 739 阅读 · 0 评论 -
javap:String +
源代码:public class Test{ public static void main(String[]args){ String x = ""; for(int i=0;i<10;i++){ x+="abc"; } System.out.println(x); }}javap:反编译结果原创 2015-10-30 20:28:19 · 582 阅读 · 0 评论 -
Serializable: 默认序列化
PeopleName 是一个人名对象,包含三个成员变量:firstName、middleName、lastName,非常适合用默认的序列化形式。下面说什么是默认序列化形式,默认序列化形式表现上来说就是只要实现Serializable ,任何其它的事情都不需要做了。public class PeopleName implements Serializable { private static原创 2015-07-08 09:53:00 · 1178 阅读 · 0 评论 -
Serializable:serialVersionUID
序列化运行时使用一个称为 serialVersionUID 的版本号与每个可序列化类相关联,该序列号在反序列化过程中用于验证序列化对象的发送者和接收者是否为该对象加载了与序列化兼容的类。如果接收者加载的该对象的类的 serialVersionUID 与对应的发送者的类的版本号不同,则反序列化将会导致 InvalidClassException。可序列化类可以通过声明名为 “serialVersion原创 2015-07-08 10:05:05 · 408 阅读 · 0 评论 -
Serializable:writeObject/readObject有的限制?
writeObject/readObject的实现有没有什么限制?答案是没有任何限制,可以任意实现。 比如说如下面这样:private void writeObject(ObjectOutputStream out) throws IOException{ System.out.println("这里的方法吧?");}private void readObject(ObjectInpu原创 2015-07-08 13:17:56 · 1572 阅读 · 0 评论 -
Serializable:序列化代理
序列化代理简单来说,A有序列化的需求,但是不直接序列化A,而是序列化一个A的代理对象B,我们可以将A的信息保存在B中,在反序列化时,再通过B得到A的信息,实例化一个A对象 为什么这么费劲呢?因为反序列化是java机制之外的东西,不通过构造方法生成实例,这样有机会被入侵(具体说不上,就是有可能被黑的意思吧),采用序列化代理可以有效的避免通过反序列化来生成实例,所有的实例都通过构造函数来生成,这样就可原创 2015-07-08 14:40:06 · 958 阅读 · 0 评论 -
Serializable:writeReplace
如果一个序列化类中含有Object writeReplace()方法,那么实际序列化的对象将是作为writeReplace方法返回值的对象,而且序列化过程的依据是实际被序列化对象的序列化实现。People定义了writeReplace方法,并且自定义了writeObject/readObject方法。public class People implements Serializable{原创 2015-07-08 14:24:42 · 2118 阅读 · 0 评论 -
Serializable:readResolve
如果序列化类定义了Object readResolve() ,那么将无视readObject的实现,直接返回作为readResolve() 方法返回值的对象。public class People implements Serializable{ /** * */ private static final long serialVersionUID = 265原创 2015-07-08 14:06:24 · 848 阅读 · 0 评论 -
Serializable:自定义序列化
序列化对象可以自定义序列化,也可以使用默认序列化 如何选择呢? 这就要从序列化的目的说起,序列化的目的简单来说就是保存,之后可以还原,这就是说只要我们能达到这个目的,都是ok的。如果都ok那么就可以选择更ok的形式。看下面这个例子: OddNum 这是一个极其没有道理的例子,只是为了说明问题public class OddNum implements Serializable{ /*原创 2015-07-08 13:49:24 · 986 阅读 · 0 评论 -
summary:http乱码
解决方案httpPost.setEntity(new UrlEncodedFormEntity(nvps,”UTF-8”)); 延伸解读new UrlEncodedFormEntity(nvps,”UTF-8”) 源码:public UrlEncodedFormEntity ( final List <? extends NameValuePair> parameters, fina原创 2016-04-15 19:43:34 · 1013 阅读 · 0 评论 -
skill:RabbitMq
如何使用安装RabbitMq服务安装 Eralng OTP ,安装 Rabbit MQ Server,具体可以到网上搜教程。spring 集成 RabbitMqspring配置文件<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-原创 2016-05-06 15:37:43 · 1814 阅读 · 0 评论