你好陌生人,请不要试图越过权限文章,谢谢!

java-IDEA载入项目遇到的问题与java学习记录

问题

  最近在写项目过程需要团队协调配合,并没有使用协同管理代码,所以只能被动的几个人合并,这时候如果替换原有的项目代码,会在idea中产生找不到当前包情况,比如:

1
2
com.jian.until.dateTime没有找到

  这样类似的错误。分析发现是由于idea工程中iml文件也被覆盖了,所以会产生分模块找不到的问题,需要执行重新生成文件。

1
mvn:idea:module

  输入以上命令在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();


}
}
}