-
Maven中的dependencyManagement 意义【原文链接】
在Maven中dependencyManagement的作用其实相当于一个对所依赖jar包进行版本管理的管理器。
pom.xml文件中,jar的版本判断的两种途径:
(1):如果dependencies里的dependency自己没有声明version元素,那么maven就
会到dependencyManagement里面去找有没有对该artifactId和groupId进行过版本声明,如果有,就继承它,如果没有就会报错,告诉你必须为dependency声明一个version 。
(2):如果dependencies中的dependency声明了version,那么无论dependencyManagement中有无对该jar的version声明,都以dependency里的version为准。//只是对版本进行管理,不会实际引入jar <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>3.2.7</version> </dependency> </dependencies> </dependencyManagement> //会实际下载jar包 <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> </dependency> </dependencies>
-
StringUtils部分用法【原文链接】
/*替换字符串:把text中的searchString替换成replacement,max是最大替换次数,默认是替换所有*/ StringUtils.replaceOnce("sshhhss","ss","p");//只替换一次-->结果是:phhhss StringUtils.replace("sshhhs","ss","p");//全部替换--->结果是:phhhs StringUtils.replace("sshhhsshss","ss","7777",2);//max:最大替换次数-->结果是:7777hhh7777hss StringUtils.replaceChars("sshhhs","ss","p");//替换所有字符,区别于replace--->结果是:pphhhp而不是pphhhs
-
ManagementFactory
ManagementFactory是一个为我们提供各种获取JVM信息的工厂类,使用ManagementFactory可以获取大量的运行时JVM信息,比如JVM堆的使用情况,以及GC情况,线程信息等,通过这些数据项我们可以了解正在运行的JVM的情况,以便我们可以做出相应的调整。RuntimeMXBean runtimeMXBean = ManagementFactory.getRuntimeMXBean(); String pid = runtimeMXBean.getSystemProperties().get("PID");
-
SpringApplication配置项
RegisterShutdownHook : Spring在非web应用中关闭IoC容
setSources(Set -
System.arraycopy()和Arrays.copyOf() (来源)
System.arraycopy()#####
public static native void arraycopy(Object src,int srcPos, Object dest, int destPos,int length);
src - 源数组。
srcPos - 源数组中的起始位置。
dest - 目标数组。
destPos - 目标数据中的起始位置。
length - 要复制的数组元素的数量。该方法用了native关键字,说明调用的是其他语言写的底层函数。
Arrays.copyOf()#####
public static <T,U> T[] copyOf(U[] original, int newLength, Class<? extends T[]> newType) { @SuppressWarnings("unchecked") T[] copy = ((Object)newType == (Object)Object[].class)?(T[]) new Object[newLength]:(T[]) Array.newInstance(newType.getComponentType(), newLength);System.arraycopy(original,0, copy,0, Math.min(original.length, newLength)); return copy; }
该方法对应不同的数据类型都有各自的重载方法
original - 要复制的数组
newLength - 要返回的副本的长度
newType - 要返回的副本的类型
仔细观察发现,copyOf()内部调用了System.arraycopy()方法区别在于:
arraycopy()需要目标数组,将原数组拷贝到你自己定义的数组里,而且可以选择拷贝的起点和长度以及放入新数组中的位置
copyOf()是系统自动在内部新建一个数组,调用arraycopy()将original内容复制到copy中去,并且长度为newLength。返回copy; 即将原数组拷贝到一个长度为newLength的新数组中,并返回该数组。**
Array.copyOf()可以看作是受限的System.arraycopy(),它主要是用来将原数组全部拷贝到一个新长度的数组,适用于数组扩容。
如果是数组比较大,那么使用System.arraycopy会比较有优势:因为其使用的是内存复制,省去了大量的数组寻址访问等时间。** -
JDBC Type
JDBC Type | Java Type |
---|---|
CHAR | String |
VARCHAR | String |
LONGVARCHAR | String |
NUMERIC | java.math.BigDecimal |
DECIMAL | java.math.BigDecimal |
BIT | boolean |
BOOLEAN | boolean |
TINYINT | byte |
SMALLINT | short |
INTEGER | INTEGER |
BIGINT | long |
REAL | float |
FLOAT | double |
DOUBLE | double |
BINARY | byte[] |
VARBINARY | byte[] |
LONGVARBINARY | byte[] |
DATE | java.sql.Date |
TIME | java.sql.Time |
TIMESTAMP | java.sql.Timestamp |
CLOB | Clob |
BLOB | Blob |
ARRAY | Array |
DISTINCT | mapping of underlying type |
STRUCT | Struct |
REF | Ref |
DATALINK | java.net.URL |
MySQL的整型类型有这样几种:
类型 | 占用字节 |
---|---|
tinyint | 1 |
smallint | 2 |
mediumint | 3 |
int | 4 |
bigint | 8 |