问题标签 [scjp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
7 回答
697 浏览

java - Post 和 Pre 增量运算符

当我运行以下示例时,我得到输出 0,2,1

我不明白为什么输出是 0,2,1 而不是 0,2,2

0 投票
3 回答
70040 浏览

java - 使用 printf 和 format 进行格式化

在下面的程序中

输出是

有人可以解释一下如何将双精度值(即123.456)转换为布尔值(即。true

我问的原因是因为我知道 java 不允许将数字用于布尔值。例如,Java 中不允许以下内容

谢谢

0 投票
1 回答
95 浏览

java - 使用模式匹配器正则表达式类

在以下示例中:

m.find() 方法总是假的,所以它没有找到字符串“water”。这是什么原因?

0 投票
1 回答
197 浏览

java - 线程并发——同步和锁。

当我运行上述程序时,我得到以下异常:

几个问题:

  • 为什么会出现 IllegalMonitorStateException?因为 Test.sa 被分配给一个新的 String 对象,我期待 ZiggyTest2 线程无限期地等待,因为 sa.notify() 将在与 ZiggyTest2 中使用的锁不同的锁上调用。

  • 在上面的示例中,在“sa”对象上调用了 wait() 和 notify()。说自己调用 notify() 和使用对象即 sa.wait() 和 sa.notify() 调用 notify()/wait() 有什么区别?

  • 在 Test 类中同步块具有 sa 对象的锁并且 sa 对象是静态的但在 ZiggyTest2 类中,同步块使用相同的 sa 对象引用但使用非静态引用是否重要?鉴于一个是静态的而另一个不是,他们是否仍然使用同一个锁?

0 投票
3 回答
182 浏览

java - 观察垃圾收集箱中的一个对象

我试图查看垃圾收集器何时“垃圾收集”一个对象。根据文档,当垃圾收集器“删除”一个对象时,会调用一次 finalize() 方法。

我试图覆盖 finalise() 以查看在我使对象无效后是否可以看到它在什么时候被调用,但我似乎在无限期地等待。这应该工作吗?

主要课程:

我想做的是在我使 Dog 对象无效后看到 finalise() 方法被调用。这就是为什么我将 notify() 语句放在 finalize() 方法中。它不起作用,它只是一直在等待..

编辑

多谢你们。在我修改 ZiggyTest2 以添加 System.gc(); 后,我让它工作了。

输出:

0 投票
4 回答
3812 浏览

java - 解决向上转换/向下转换问题

有没有人有任何可行的策略来解决铸造/上转型问题?我理解何时允许向上转换和向下转换,但是当问题往往涉及多个对象时,我往往很快就会感到困惑。例如,找到这样一个问题的答案的最佳方法是什么:

问题:编译以下程序的结果是什么:

我对答案并不感兴趣,但对解决问题的方法更感兴趣。有什么方法/策略可以用来解决像上面这样的向上转换/向下转换问题吗?例如,可以在纸上绘制参考/对象,以便我可以获得视觉表示,这有帮助吗?

谢谢

0 投票
3 回答
1194 浏览

java - 通过继承隐藏字段

在以下代码示例中:

和输出:

为什么p.aMethod()px打印6时不打印6?

谢谢

编辑

哎呀,有点错字:问题应该是“为什么 p.aMethod() 在 px 打印 5 时不打印 5” - 谢谢@thinksteep

0 投票
1 回答
1884 浏览

java - SCJP/OCPJP 7 目标

SCJP/OCPJP 7 新增了哪些目标?
或者更具体地说,SCJP/OCPJP 6 和 7 之间有哪些变化?

PS:我不确定它是否仍然被称为SCJP。


编辑:我已经为 OCPJP 7 添加的新更改/目标添加了一个帖子

0 投票
4 回答
500 浏览

java - 实例化一个泛型类

我正在为 SCJP/OCPJP 学习,我遇到了一个对我来说很奇怪的示例问题。

示例代码实例化了两个通用集合:

该问题的“正确”答案是该代码可以编译,但添加到任一集合都会产生运行时错误。

当我尝试编译这样的代码时,我只会得到错误。Java 教程甚至没有显示这种类型的代码,而是通常使用通配符作为向上转换的一部分。

上面的两个通用集合是合法代码吗?按照我的逻辑,第二个只会禁止接口。第一个看起来完全没用。为什么要使用不尝试控制的泛型?

0 投票
2 回答
377 浏览

java - 声明泛型类型时的编译器警告

为什么在将变量声明为时编译器会发出警告

警告:

但是当我将变量声明为时它不会发出警告