在我们重载构造函数时,Oracle引用并未说明此关键字的最佳实践.任何人都可以建议最好的做法吗?
public class A {
private int x, y, z, p;
public A() {
this(1,1,1,1);
}
public A(int x, int y, int z, int p) {
this.x = x;
this.y = y;
this.z = z;
this.p = p;
}
}
Run Code Online (Sandbox Code Playgroud)
和
public class A {
private int x, y, z, p;
public A() {
this.x = 1;
this.y = 1;
this.z = 1;
this.p = 1;
}
public A(int x, int y, int z, int p) …Run Code Online (Sandbox Code Playgroud) 我在SCJP书中看到了练习题下面的代码
Object obj = new Object();
Run Code Online (Sandbox Code Playgroud)
首先我认为这可能是一个错误,因为我没有使用这样的语句.现在我明白这是一个有效的陈述.
我只想了解这个的实际用途(如果有的话).你可以使用什么Object类型的对象(而不是派生自的类Object)?
我想要一个文件,从多个线程访问常量.为此安排一个有很多public static final ints 的课程是否安全?
在一个Java servlet容器中(最好是Tomcat,但是如果这可以在另一个容器中完成,那么这样说)我希望理论上可行的东西.我的问题是,是否存在支持它的工具,以及是否存在哪些工具(或者我应该进一步研究哪些名称).
这是我的问题:在一个servlet容器中,我想运行大量不同的WAR文件.它们共享一些大型公共库(例如Spring).乍一看,我有两个不可接受的选择:
在每个WAR文件中包含大型库(例如Spring).这是不可接受的,因为它会加载大量的Spring副本,耗尽服务器上的内存.
将大型库放在容器类路径中.现在所有WAR文件共享一个库实例(好).但这是不可接受的,因为我无法在不升级所有WAR文件的情况下升级Spring版本,并且如此大的改变难以实现.
但理论上,有一种替代方案可行:
"魔术"必须在容器级别完成(我认为),因为这只能通过使用不同的类加载器加载库的每个版本来实现,然后调整每个WAR文件可见的类加载器.
所以,你有没有听说过这样做?如果是这样,怎么样?或者告诉我它叫什么,这样我就可以进一步研究.
我正在做java分配,我遇到了这个代码.
int x=3, y=5;
System.out.println(x + y + " = " + y + x);
Run Code Online (Sandbox Code Playgroud)
输出为"8 = 53".为什么要评估第一个x + y并打印最后一个y和x表达式?让我疑惑.Thanx提前的家伙.
我有一个类,我需要两个变量,一个是静态的,另一个是非静态的.当我们声明两个变量时,我的问题是什么,我们可以用相同的名称声明它们吗?
为什么我问这个问题是静态变量和非静态变量存储在两个不同的区域(方法区域中的静态变量和堆区域中的非静态(实例)变量).那么,如果我用相同的名称声明它们会发生什么?如果是错的,原因是什么?
Object o = new Student(); // Implicit casting
我非常了解这段代码,而且我理解的是引用变量"o"是指"Object"类型的数据,我们可以看到Student从"Object"扩展,这意味着它引用了Student的一个实例.如果我写了以下代码:
Object x = o;
这会将o中的值分配给x,这意味着如果我们遵循x的方向,我们将转到上面的学生对象!
我的问题是,为什么我不能写下面的代码?:
Student x = o;
Run Code Online (Sandbox Code Playgroud)
"o"指的是"对象"类型的对象,该对象将其地址(在内存中)分配为"o",为什么我们不能将保存在o中的值分配给x!
在Java中使用常量声明数组有什么好处?例如,
private static final int CAPACITY = 2;
private int[] items = new int[CAPACITY];
Run Code Online (Sandbox Code Playgroud)
上面的代码有什么区别:
private int[] items = new int[2];
Run Code Online (Sandbox Code Playgroud)
注意:声明后,数组的长度不能更改.那我为什么要使用常数呢?
我在Java - Maven - Jenkins项目上使用语义版本控制,因此,每当完成不兼容的API更改时,应更改产品的主要版本.我正在寻找一种自动检测这种变化的方法,以便maven构建在发生时会失败(甚至自动增加版本).谷歌搜索让我在编写自己的maven enforcer plugin规则的轨道上,但我想询问是否有人知道任何可以提供帮助的工具(Jenkins插件或类似工具也可以工作).