我希望有人来验证我的理解是否正确.我有一些像这样的代码:
public class A {
int a;
int b;
public A(int a)
{
this.a=a;
}
Run Code Online (Sandbox Code Playgroud)
现在A()是我定义的构造函数,这意味着它不是默认的构造函数.所以,如果我有一个扩展这个类的子类.
public class B extends A{
public B()
{
super(15);
}
}
Run Code Online (Sandbox Code Playgroud)
如果我在子类中打印a和b的值,我看到a的值为15,b的值为0.当我在A中明确定义了一个构造函数,这意味着它不是默认的构造函数,那么是A类中未初始化的字段,得到0的值?
我在许多地方看过Java代码,人们倾向于在原语int和char之间进行转换.
这有必要吗?他们没有被隐含地转换.
因为我试过这个并且完全得到了我应该做的.那为什么人们明确地投了?我错过了什么吗?
char a = 'a';
int index = (int) a;
index = 98;
a = 98;
System.out.println(index);
System.out.println(a);
Run Code Online (Sandbox Code Playgroud) 在我用Java创建一个不可变的对象的过程中,我标记了类final,它的所有变量都是final,并且没有提供setter和getter.这些是否足以保证对象不会被修改?是3个必要条件还是3个条件中的2个绰绰有余?
我需要将一堆文件从生产主机传输到我的本地机器.我已经在我需要传输文件的目录中了.我知道需要传输到本地计算机的日志文件的名称.它们是log.timestamp.hostnames,这些往往很长.如何使用scp批量转移?有没有比输入长文件名更简单的方法?我可以从文件名中删除它吗?
我收到此字符串的无效转义序列错误.如何在我的java代码中逃避它?
"^(?:(2\d\d\d)\s+)?(?:Comm\. Rep\.\s+)?(?:CONG\s+)?(\S+)\s+(\S+)\s+(?:No\.\s+)?(\S+)(?:\s+\(.*?\))?$"
Run Code Online (Sandbox Code Playgroud)