问题标签 [ocpjp]
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.
java - Post 和 Pre 增量运算符
当我运行以下示例时,我得到输出 0,2,1
我不明白为什么输出是 0,2,1 而不是 0,2,2
java - 使用 printf 和 format 进行格式化
在下面的程序中
输出是
有人可以解释一下如何将双精度值(即123.456
)转换为布尔值(即。true
)
我问的原因是因为我知道 java 不允许将数字用于布尔值。例如,Java 中不允许以下内容
谢谢
java - 线程并发——同步和锁。
当我运行上述程序时,我得到以下异常:
几个问题:
为什么会出现 IllegalMonitorStateException?因为 Test.sa 被分配给一个新的 String 对象,我期待 ZiggyTest2 线程无限期地等待,因为 sa.notify() 将在与 ZiggyTest2 中使用的锁不同的锁上调用。
在上面的示例中,在“sa”对象上调用了 wait() 和 notify()。说自己调用 notify() 和使用对象即 sa.wait() 和 sa.notify() 调用 notify()/wait() 有什么区别?
在 Test 类中同步块具有 sa 对象的锁并且 sa 对象是静态的但在 ZiggyTest2 类中,同步块使用相同的 sa 对象引用但使用非静态引用是否重要?鉴于一个是静态的而另一个不是,他们是否仍然使用同一个锁?
java - 解决向上转换/向下转换问题
有没有人有任何可行的策略来解决铸造/上转型问题?我理解何时允许向上转换和向下转换,但是当问题往往涉及多个对象时,我往往很快就会感到困惑。例如,找到这样一个问题的答案的最佳方法是什么:
问题:编译以下程序的结果是什么:
我对答案并不感兴趣,但对解决问题的方法更感兴趣。有什么方法/策略可以用来解决像上面这样的向上转换/向下转换问题吗?例如,可以在纸上绘制参考/对象,以便我可以获得视觉表示,这有帮助吗?
谢谢
java - SCJP/OCPJP 7 目标
SCJP/OCPJP 7 新增了哪些目标?
或者更具体地说,SCJP/OCPJP 6 和 7 之间有哪些变化?
PS:我不确定它是否仍然被称为SCJP。
编辑:我已经为 OCPJP 7 添加的新更改/目标添加了一个帖子。
java - 实例化一个泛型类
我正在为 SCJP/OCPJP 学习,我遇到了一个对我来说很奇怪的示例问题。
示例代码实例化了两个通用集合:
该问题的“正确”答案是该代码可以编译,但添加到任一集合都会产生运行时错误。
当我尝试编译这样的代码时,我只会得到错误。Java 教程甚至没有显示这种类型的代码,而是通常使用通配符作为向上转换的一部分。
上面的两个通用集合是合法代码吗?按照我的逻辑,第二个只会禁止接口。第一个看起来完全没用。为什么要使用不尝试控制的泛型?
java - 为什么 Double.NaN==Double.NaN 返回 false?
我只是在研究 OCPJP 问题,发现了这个奇怪的代码:
当我运行代码时,我得到:
false
当我们比较两个看起来相同的东西时,输出如何?是什么NaN
意思?
java - java == 表示整数
我发现 Integer 对象有以下 == 行为,但我无法理解。(我很清楚应该使用 equals 进行此类比较,但我正在为 OCPJP 学习......)
简而言之,== 对 1000 的预期效果,但对 10 无效。
之前的代码片段是:
它的行为与预期的一样:
后者虽然:
具有以下输出:
有人可以解释为什么会这样吗?
java - 需要解释输出
下面的代码为什么会显示两次“Hi1”和“Hi3”?
我刚刚开始准备 OCPJP 考试。
java - 有多少对象符合垃圾收集器的条件
有两种对象符合垃圾收集条件,但一种很难理解。
1)这条线我认为它会做到这一点
2)但真正在做的是这个(所以一个合格的对象)为什么会这样?
因为分配是从右到左关联的。
谁能解释一下?谢谢