小编raw*_*wat的帖子

即使在Java中初始化子类之后,静态变量的值也没有改变

当我y通过使用Checks.y(Checks作为子类)调用静态变量时,不执行静态块,y并且不会更新值.

class Par {
    static int y = 4;
}

class Checks extends Par {
    static {
        y = 5;
    }
}

public class Check {
    public static void main(String args[]) {
        System.out.println(Checks.y); // here printing 4
    }
}
Run Code Online (Sandbox Code Playgroud)

由于静态在所有子类之间共享,因此应该更新该值.

它背后的原因是什么?

java inheritance jvm static-block static-variables

32
推荐指数
2
解决办法
1448
查看次数

仅使用 3 个元素形成数组的方法数?

我们需要找出可以形成仅包含 3 个元素(1,2 和 3)的 N 长度数组 (A) 的方法数。

数组的相邻元素如何放置在数组中几乎没有限制:

(A[i], A[i + 1])某种类型的相邻元素对的数量不能超过问题陈述中给出的数量。

example :

1, 2 : 2 (we can have at most 2 adjacent-pairs of value [1, 2] in the array)
1, 3 : 3
2, 1 : 1
2, 3 : 0 (we cannot have any adjacent-pairs of value [2, 3] in entire array)
3, 1 : 4
3, 2 : 3
Run Code Online (Sandbox Code Playgroud)

对于 type 的相邻元素 A[i] == A[i + 1],它们可以在数组中出现任意次数

1, 1 …
Run Code Online (Sandbox Code Playgroud)

arrays algorithm math dynamic-programming combinatorics

8
推荐指数
1
解决办法
509
查看次数

如何最好地确定一个字符串是否只包含空字符?

检查字符串是否仅包含空字符的正确方法是什么?

String s = "\u0000";
if(s.charAt(0) == 0) {
   System.out.println("null characters only");
}
Run Code Online (Sandbox Code Playgroud)

或者

String s = "\0\0";
for(int i = 0; i < s.length(); i++) {
   if(s.charAt(i) == 0) 
       continue;

   else break;

}
Run Code Online (Sandbox Code Playgroud)

两者都有效。但是有没有更好,更简洁的方法来执行此检查。是否有实用程序可以检查 java 中的字符串是否仅包含空字符(\u0000OR \0)?

和之间有什么区别'\0''\u0000'

java string char null-character java-8

5
推荐指数
3
解决办法
243
查看次数

VSCode:Code Runner 扩展无法在 git bash 终端上执行代码?

在此处输入图片说明 我正在尝试使用适用于 VSCode 的 Code Runner 扩展运行一个简单的程序“primeRange.cpp”。

我在VSCode 中选择了我的默认终端作为git bash,但是当我点击右上角的Run时,它会将命令发送到 bash 以使用 g++ 编译器运行程序,但是我收到错误,因为没有这样的文件或目录,当有存在具有给定名称的目录。

我怎样才能解决这个问题?

当我在代码运行器上按运行时,如何自定义要在 bash 上运行的命令?

我想将命令设置为:

cd "c:\\Users\\Tushar\\Desktop\\contests\\Practice" && g++ primeRange.cpp -o primeRange && "c:\\Users\\Tushar\\Desktop\\contests\\Practice\\primeRange"
Run Code Online (Sandbox Code Playgroud)

或者

cd "c:\Users\Tushar\Desktop\contests\Practice" && g++ primeRange.cpp -o primeRange && "c:\Users\Tushar\Desktop\contests\Practice\primeRange"
Run Code Online (Sandbox Code Playgroud)

如果我在 bash 上手动执行上述任何一个命令,那么它就可以工作。

所以我基本上想知道如何在路径中包含可执行文件名

"c:\Users\Tushar\Desktop\contests\Practice\primeRange"
Run Code Online (Sandbox Code Playgroud)

而不是在引号之后:

"c:\Users\Tushar\Desktop\contests\Practice\"primeRange
Run Code Online (Sandbox Code Playgroud)

这是我的settings.json在此处输入图片说明

我已将 settings.json 中的路径更新为:

"code-runner.executorMap": {
        "cpp": "cd $dir && g++ -std=c++11 $fileName -o $fileNameWithoutExt && \"./$fileNameWithoutExt.exe\""
    },
Run Code Online (Sandbox Code Playgroud)

但现在我得到提示而不是要求标准输入,如下所示: 在此处输入图片说明

解决

修复 1:

将 …

bash visual-studio-code vscode-tasks vscode-code-runner

4
推荐指数
1
解决办法
1719
查看次数