问题
最近在写项目过程需要团队协调配合,并没有使用协同管理代码,所以只能被动的几个人合并,这时候如果替换原有的项目代码,会在idea中产生找不到当前包情况,比如:
1 2
| com.jian.until.dateTime没有找到
|
这样类似的错误。分析发现是由于idea工程中iml文件也被覆盖了,所以会产生分模块找不到的问题,需要执行重新生成文件。
输入以上命令在Terminal虚拟终端即可解决问题。

Java缓冲池用法
使用 new Integer 与使用 Integer.valueOf()
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| package com.jianfreespace;
public class BufferPool {
public BufferPool(){
Integer x = new Integer(123); Integer y = new Integer(123);
System.out.println(x == y);
Integer z = Integer.valueOf(123); Integer k = Integer.valueOf(123); System.out.println(z == k);
} }
|

表示当前 x 创建一个对象实例为123,则会在IntegerCache中生成 123并存入。并且当 z 与 k 使用valueOf方法时候,会先判断是否在缓存池区间,根据源码显示出,区间在 -128 ~127之间,valueOf源码如下:
1 2 3 4 5 6
| @IntrinsicCandidate public static Integer valueOf(int i) { if (i >= IntegerCache.low && i <= IntegerCache.high) return IntegerCache.cache[i + (-IntegerCache.low)]; return new Integer(i); }
|
从源码看出,chache是一个数组,存储Interger。大小为255。若值大小从属这个区别,会直接提取缓存中返回,若不符合区间则会新建一个对象实例返回。
关键字final
final关键字可用于 变量、成员方法、类。
声明的成员方法无法被重写、类不可被继承。
1 2 3 4 5 6 7
| final x = 1; // x = 2 是会报错,无法更改final类型的变量。
final A a = new A(); a.x = 1; //如果定义在对象中,则不能引用其他对象,但可以修改本身自己的对象。
|
静态语句块与静态内部类(static)
静态语句块会在类初始化时运行一次
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| package com.jianfreespace.letter;
public class A {
static { System.out.println("静态语句块初始化A"); }
public A(){
} }
|
静态内部类不能调用外部的类非静态变量与方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| package com.jianfreespace.letter;
public class A {
private String name; private static final int num = 10;
static { System.out.println("静态语句块初始化A"); }
public A(){
} public static void startClass(){ System.out.println("启动静态方法A"); }
public void startClassNoStatic(){ System.out.println("启动方法A"); }
static class Ain{ public Ain(){ startClass(); } } }
|