一个简单的多叉树实现 import java.util.List;import java.util.concurrent.CopyOnWriteArrayList;public class Tree { Node node = null; public static void main(String[] args) { Tree tree = new Tree(); tree.insert(...
对int(11)的误解,并不能存999亿条数据 闲来无事,突发奇想往Mysql表的主键id int(11)插入11个9,结果竟然插不进去。很是诧异,通过不断二分法,一步一步测试终于在id为2147483647的时候插进去了,再加1就不行了。所以Mysql的整型int最大也就20多亿,并没有想象的999亿。 既然数据只有20多亿,Java类型呢?通过代码插入比这个数大的数据不是出错了,我赶紧去试了一下,诶哟!出乎所料...
eclipse配置lombok插件 1.在pom.xml引包<!-- 增加lombok依赖,可以使用注解@Data 编译时自动生成get,set方法,构造函数,toString方法 --> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId&g...
Netty源码的日志工厂类:InternalLoggerFactory 看Netty源码发现Netty日志的工厂抽象类(InternalLoggerFactory)很有意思,在静态代码块里面顺序调用继承自己的子类来检查是否创建对象成功。还找到一篇分析很透彻的文章:https://segmentfault.com/a/1190000005797595...
Security源码接口PasswordEncoder不同版本的用法 PasswordEncoder是一个加密接口,新老版本放的包路径不一样,新版本方法名简化,对老版本已经弃用。老版本类路径:org.springframework.security.authentication.encoding.PasswordEncoder接口定义了两个方法,encodePassword()方法是对原始密码进行加密,采用hash+salt方式,在方法中应用系统得提供盐值(salt...
System.arraycopy数组复制函数 在类:org.springframework.security.authentication.encoding.LdapShaPasswordEncoder里面有个combineHashAndSalt函数使用了System.arraycopy的这个系统方法把两个byte数组组合成一个数组。private byte[] combineHashAndSalt(byte[] hash, byte[] s...
maven scope含义的说明 依赖范围控制哪些依赖在哪些classpath 中可用,哪些依赖包含在一个应用中。让我们详细看一下每一种范围: compile (编译范围) compile是默认的范围;如果没有提供一个范围,那该依赖的范围就是编译范围。编译范围依赖在所有的classpath 中可用,同时它们也会被打包。 provided (已提供范围) provided 依赖只有在当JDK
Update Maven JDK版本变更的修改方法 Maven项目JDK版本改变的原因:1.新建一个Maven项目JDK版本和系统版本不对应,2.右键Maven项目->Maven->Update ProjectJDK版本改变了修改方法(假如系统jdk版本是1.7):方法一:在pom.xml文件中指定jdk的版本: org.apache.maven.plugins maven-compiler-plugi
SimpleDateFormat Calendar calendar = Calendar.getInstance(); SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd_HHmmss"); String currentTime = dateFormat.format(calendar.getTime()); System.out.println(
Eclipse快捷键功能 Eclipse的编辑功能非常强大,掌握了Eclipse快捷键功能,能够大大提高开发效率。Eclipse中有如下一些和编辑相关的快捷键。1. 【ALT+/】此快捷键为用户编辑的好帮手,能为用户提供内容的辅助,不要为记不全方法和属性名称犯愁,当记不全类、方法和属性的名字时,多体验一下【ALT+/】快捷键带来的好处吧。2. 【Ctrl+O】显示类中方法和属性的大纲,能快速定位类的方法和属
RuntimeException一次性中断退出递归函数 /** * 递归查找文件 * @param basePath * @param methodName * @return */ private String Recurisive(String basePath, String methodName) { // TODO Auto-generated method stub File
InetAddress测试 package com.net.ip;import java.net.InetAddress;import java.net.InetSocketAddress;import java.net.UnknownHostException;/** * 封装端口:在InetAddress基础+端口 * @author Administrator * */public class I
递减数 package com.huahua2.test;import java.util.HashMap;import java.util.Map;import java.util.Scanner;public class Main { public static void main(String[] args) { // TODO Auto-generated method stu
IP加步长 package com.huawei.test;import java.util.Scanner;public class Main { public static void main(String[] args) { // TODO Auto-generated method stub @SuppressWarnings("resource") Scanner cin =
Java绝对路径读取jar包 方法一:package com.demo.action;import java.lang.reflect.Method;import java.net.URL;import java.net.URLClassLoader;public class Test { public static void main(String[] args) { // TODO Auto-gen
ArrayList和Vector的区别,HashMap和Hashtable的区别以及线程安全的理解 就ArrayList与Vector主要从二方面来说. 一.同步性:Vector是线程安全的,也就是说是同步的,而ArrayList是线程序不安全的,不是同步的 二.数据增长:当需要增长时,Vector默认增长为原来一培,而ArrayList却是原来的一半就HashMap与HashTable主要从三方面来说。 一.历史原因:Hashtable是基于陈旧的Dic
读取硬盘下多少行Java代码 import java.io.BufferedReader;import java.io.File;import java.io.FileReader;/** * des: * author: zbl * date: 2014年12月17日 **/public class MathTest { static int line = 0; public static void