Java
文章平均质量分 60
不晓得X
NJU/预备役程序员
github:https://github.com/xjwhhh
公众号:【不知道别问我】
展开
-
阿里巴巴Java开发手册:编程规约.并发处理
2.【强制】创建线程或线程池时请指定有意义的线程名称,方便出错时回溯。正例:自定义线程工厂,并且根据外部特征进行分组,比如,来自同一机房的调用,把机房编号赋值给whatFeaturOfGrouppublic class UserThreadFactory implements ThreadFactory { private final String namePrefix; pr...原创 2020-04-23 16:37:20 · 355 阅读 · 0 评论 -
阿里巴巴Java开发手册:编程规约.集合处理
1.【强制】关于hashCode和equals的处理,遵循如下规则:1) 只要重写equals,就必须重写hashCode。2) 因为Set存储的是不重复的对象,依据hashCode和equals进行判断,所以Set存储的对象必须重写这两个方法。3) 如果自定义对象作为Map的键,那么必须重写hashCode和equals。说明:String重写了hashCode和equals方法,所以我...原创 2020-04-21 12:37:07 · 469 阅读 · 0 评论 -
阿里巴巴Java开发手册:编程规约.OOP
2.【强制】所有的覆写方法,必须加@Override注解。说明:getObject()与get0bject()的问题。一个是字母的O,一个是数字的0,加@Override可以准确判断是否覆盖成功,避免外形太像导致覆写失败。另外,如果在抽象类中对方法签名进行修改,其实现类会马上编译报错。重写发生在运行期,是子类对父类的允许访问的方法的实现过程进行重新编写。返回值类型、方法名、参数列表必须相同,抛...原创 2020-04-20 10:56:49 · 314 阅读 · 0 评论 -
阿里巴巴Java开发手册:编程规约.命名风格
命名风格1.【强制】代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束。反例:name/name/namename / name_ / namename/name/name /name__2.【强制】代码中的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式。正例:alibaba / taobao / youku / hangzhou 等国际通用的名称,可视...原创 2020-04-19 22:11:51 · 316 阅读 · 0 评论 -
Java Eclipse问题总结
步骤1.启动程序时,添加参数 -Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=7899,suspend=n-XDebug 启用调试; -Xrunjdwp 加载JDWP的JPDA参考执行实例; transport 用于在调试程序和VM使用的进程之间通讯; dt_socket 套接字传输; server=y/n VM是否...原创 2018-08-14 14:03:10 · 296 阅读 · 0 评论 -
Java Keytool生成数字证书/.cer/.p12文件
任何机构或者个人都可以申请数字证书,并使用由CA机构颁发的数字证书为自己的应用保驾护航。常用的两个证书管理工具:KeyTool,OpenSSL—>构建CSR(Certificate Signing Request,数字证书签发申请),交由CA机构签发,形成最终的数字证书。最近用到p12文件,就记录一下如何使用jdk自带的keytool来创建p12文件创建私钥和证书1.打开cmd,切换到...原创 2018-09-18 15:59:39 · 10141 阅读 · 0 评论 -
Java解析p12文件
做公司项目遇到了关于GoogleBigQuery的问题,而要使用这个服务需要一个证书,要求支持json和p12文件两种格式。这里主要记录一下如何从p12文件中读取出公钥和私钥信息。import sun.misc.BASE64Encoder;import java.security.KeyStore;import java.security.PrivateKey;import java...原创 2018-09-13 17:28:05 · 4905 阅读 · 2 评论 -
Java反编译
今天想要看公司项目引入的jar包源码,就下载了反编译软件,有两种方式。JD-GUI图形化界面,可以直接读取jar包JD-Eclipse/JD-IntelliJ将软件以插件的形式集成到IDE,可以直接查看项目jar包源码,在debug时很方便下载地址http://jd.benow.ca/...原创 2018-10-18 17:50:00 · 178 阅读 · 0 评论 -
Struts2问题总结
Eclipse下struts2.5环境搭建与struts2.3的区别在struts2.3中,需要导入导入了9个常用jar包。 (1)struts2-core-2.x.x.jar :Struts 2框架的核心类库 (2)xwork-core-2.x.x.jar :XWork类库,Struts 2在其上构建 (3)ognl-3.x.x.jar :对象图导航语言(Object Gr...原创 2018-08-01 10:29:52 · 755 阅读 · 0 评论 -
Redis安装与基本使用
Redis安装及基本使用redis特点1.Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。2.Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,sorted-set,hash等数据结构的存储。3.Redis支持数据的备份,即master-slave模式的数据备份。redis安装(windows...原创 2018-05-15 21:39:46 · 311 阅读 · 0 评论 -
Java集合类源码分析(二):List接口
List接口源码分析default void replaceAll(UnaryOperator<E> operator) { Objects.requireNonNull(operator); final ListIterator<E> li = this.listIterator(); while (li.hasNext()) { ...原创 2018-05-14 21:31:40 · 329 阅读 · 0 评论 -
Java集合类源码分析(三):AbstractList类
AbstractList源码分析调用了void add(int index, E element),将元素增加在列表末尾。某些列表类会对增加的元素类型有所要求 public boolean add(E e) { add(size(), e); return true; } public E set(int index, E el...原创 2018-05-14 21:42:36 · 989 阅读 · 0 评论 -
Java集合类源码分析(四):ArrayList&LinkedList
ArrayList源码分析ArrayList可以放入任何类型的元素 ArrayList不是同步的/** * Default initial capacity. */private static final int DEFAULT_CAPACITY = 10;/** * Shared empty array instance used for empty instances....原创 2018-05-14 22:00:06 · 255 阅读 · 0 评论 -
java集合类源码分析(五):Map接口
Map接口源码解析Map接口的顺序与迭代器在集合角度上的顺序相同,有三种集合角度,分别是键的set,值的集合,和键值对的mappings一些实现类,如TreeMap,对于顺序做了一些保证,另一些例如HashMap就没有map不能以map做键,能以map做值,但这样的map对于equals和hashCode方法定义的不好void putAll(Map<? extends K, ...原创 2018-05-14 22:28:01 · 243 阅读 · 0 评论 -
Java集合类源码分析(六):AbstractMap类
AbstractMap源码解析提供了对Map接口大致性的实现如果要实现一个不可修改的map,只需要继承此类并实现entrySet方法。这个set不支持add,remove,它的迭代器也不支持remove如果要实现一个可修改的map,还要额外重写这个类的put,迭代器也要实现removepublic boolean containsValue(Object value) { ...原创 2018-05-14 22:32:03 · 261 阅读 · 0 评论 -
Java集合类源码分析(七):HashMap&LinkedHashMap
HashMap源码分析基于哈希表的map实现类,允许所有可选的map操作,也允许null作为键和值与HashTable不同处在于HashMap不是同步的,允许null值HashMap对于顺序也不做保证相比于之前的版本,jdk1.8在解决哈希冲突时有了较大的变化,当数组总容量大于64且链表长度大于阈值(默认为8)时,将链表转化为红黑树,以减少搜索时间。原本Map.Entry接口的实现...原创 2018-05-14 22:36:58 · 212 阅读 · 0 评论 -
Java集合类源码分析(八):AbstractSet类
AbstractSet源码解析本类没有重写任何AbstractCollection类的方法实现,只是增加了对于equals和hashCode的实现equals,比较set与参数object是否相等当且仅当参数object类型是set,两个set有相同长度,并且参数set的每个元素都存在于原set中public boolean equals(Object o) { if (o...原创 2018-05-14 22:38:43 · 300 阅读 · 0 评论 -
Java集合类源码分析(九):HashSet&LinkedHashSet
HashSet源码解析HashSet类实现了Set。对于迭代器的顺序不做保证,并且不保证随着时间变化,顺序会保持一致。HashSet类允许null元素在元素均匀分布的情况下,HashSet对于一些基础操作,如add,remove,contains,size提供了常数时间的操作。用迭代器遍历set所需要的时间与HashSet元素总数和哈希桶的数量成正比。如果遍历速度很重要的话,不要把set的...原创 2018-05-14 22:41:08 · 238 阅读 · 0 评论 -
Java集合类源码分析(一):Collcetion接口
Collection接口源码分析int size();获取集合长度boolean isEmpty();集合是否不包含任何元素boolean contains(Object o);集合是否含有该元素 (o==null?e==null:o.equals(e))Iterator<E> iterator();返回了一个迭代器,这个迭代器的元素顺序是否有...原创 2018-05-14 21:23:25 · 705 阅读 · 0 评论