问题标签 [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.
java - Post 和 Pre 增量运算符
当我运行以下示例时,我得到输出 0,2,1
我不明白为什么输出是 0,2,1 而不是 0,2,2
java - 使用 printf 和 format 进行格式化
在下面的程序中
输出是
有人可以解释一下如何将双精度值(即123.456
)转换为布尔值(即。true
)
我问的原因是因为我知道 java 不允许将数字用于布尔值。例如,Java 中不允许以下内容
谢谢
java - 使用模式匹配器正则表达式类
在以下示例中:
m.find() 方法总是假的,所以它没有找到字符串“water”。这是什么原因?
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 - 观察垃圾收集箱中的一个对象
我试图查看垃圾收集器何时“垃圾收集”一个对象。根据文档,当垃圾收集器“删除”一个对象时,会调用一次 finalize() 方法。
我试图覆盖 finalise() 以查看在我使对象无效后是否可以看到它在什么时候被调用,但我似乎在无限期地等待。这应该工作吗?
主要课程:
我想做的是在我使 Dog 对象无效后看到 finalise() 方法被调用。这就是为什么我将 notify() 语句放在 finalize() 方法中。它不起作用,它只是一直在等待..
编辑
多谢你们。在我修改 ZiggyTest2 以添加 System.gc(); 后,我让它工作了。
输出:
java - 解决向上转换/向下转换问题
有没有人有任何可行的策略来解决铸造/上转型问题?我理解何时允许向上转换和向下转换,但是当问题往往涉及多个对象时,我往往很快就会感到困惑。例如,找到这样一个问题的答案的最佳方法是什么:
问题:编译以下程序的结果是什么:
我对答案并不感兴趣,但对解决问题的方法更感兴趣。有什么方法/策略可以用来解决像上面这样的向上转换/向下转换问题吗?例如,可以在纸上绘制参考/对象,以便我可以获得视觉表示,这有帮助吗?
谢谢
java - 通过继承隐藏字段
在以下代码示例中:
和输出:
为什么p.aMethod()
px打印6时不打印6?
谢谢
编辑
哎呀,有点错字:问题应该是“为什么 p.aMethod() 在 px 打印 5 时不打印 5” - 谢谢@thinksteep
java - SCJP/OCPJP 7 目标
SCJP/OCPJP 7 新增了哪些目标?
或者更具体地说,SCJP/OCPJP 6 和 7 之间有哪些变化?
PS:我不确定它是否仍然被称为SCJP。
编辑:我已经为 OCPJP 7 添加的新更改/目标添加了一个帖子。
java - 实例化一个泛型类
我正在为 SCJP/OCPJP 学习,我遇到了一个对我来说很奇怪的示例问题。
示例代码实例化了两个通用集合:
该问题的“正确”答案是该代码可以编译,但添加到任一集合都会产生运行时错误。
当我尝试编译这样的代码时,我只会得到错误。Java 教程甚至没有显示这种类型的代码,而是通常使用通配符作为向上转换的一部分。
上面的两个通用集合是合法代码吗?按照我的逻辑,第二个只会禁止接口。第一个看起来完全没用。为什么要使用不尝试控制的泛型?
java - 声明泛型类型时的编译器警告
为什么在将变量声明为时编译器会发出警告
警告:
但是当我将变量声明为时它不会发出警告