我正在学习GoF Java设计模式,我想看看它们的一些真实例子.Java核心库中这些设计模式的一些很好的例子是什么?
为什么Java API会使用int,何时short甚至byte是足够的?
示例:DAY_OF_WEEK类中的字段Calendar使用int.
如果差异太小,那么为什么存在这些数据类型(short,int)?
我想知道实际使用的不安全性sun.misc.Unsafe.我想创建一个对象的代理,我拦截每个方法调用(但Object.finalize出于性能考虑而去的那个).为此,我用谷歌搜索了一下,并提出了以下代码片段:
class MyClass {
private final String value;
MyClass() {
this.value = "called";
}
public void print() {
System.out.println(value);
}
}
@org.junit.Test
public void testConstructorTrespassing() throws Exception {
@SuppressWarnings("unchecked")
Constructor<MyClass> constructor = ReflectionFactory.getReflectionFactory()
.newConstructorForSerialization(MyClass.class, Object.class.getConstructor());
constructor.setAccessible(true);
assertNull(constructor.newInstance().print());
}
Run Code Online (Sandbox Code Playgroud)
我的考虑是:
sun.misc.Unsafe被认为是Java 9中公共API的一部分sun.misc.Unsafe从那时起,许多非Oracle虚拟机也会提供- 我猜 - 有很多库已经使用它了.这也使得这个班级不太可能消失我仍然想知道:还有其他原因我不应该使用sun.misc.Unsafe我没有想到的吗?如果你谷歌这个问题,人们宁愿回答一个未指定,因为它不安全,但我真的不觉得除了(非常不可能)该方法将有一天从Oracle VM消失的可能性.
我实际上需要创建一个对象而不需要调用构造函数来克服Java的类型系统.我不考虑sun.misc.Unsafe对性能的原因.
附加信息:我ReflectionFactory在示例中使用的是方便的,Unsafe …
在java中的neo4j嵌入式数据库中,我应该如何检查两个节点是否相互关联?
我想要语法或教程链接,我已经看过neo4j网站,但没有找到它.
谢谢.
我正在玩一个简单的Android应用程序使用运行android-7(2.1)的emmulator和运行android-8(2.2)的moto-defy.
我遇到了一个有趣的问题,即一个CSV解析应用程序在emmulator上失败,但是在defy和常规java应用程序中成功(使用sun java).
我跟踪问题,原因是android-7的StringReader实现不支持负跳过操作:
Android的7:
/**
* Skips {@code amount} characters in the source string. Subsequent calls of
* {@code read} methods will not return these characters unless {@code
* reset()} is used.
*
* @param ns
* the maximum number of characters to skip.
* @return the number of characters actually skipped or 0 if {@code ns < 0}.
* @throws IOException
* if this reader is closed.
* @see #mark(int)
* @see #markSupported()
* @see #reset()
*/
@Override …Run Code Online (Sandbox Code Playgroud) 当装载系统类,该<clinit>方法实例化in,out以及err PrintStream变量null使用nullPrintStream()方法:
private static PrintStream nullPrintStream() throws NullPointerException {
if (currentTimeMillis() > 0) {
return null;
}
throw new NullPointerException();
}
Run Code Online (Sandbox Code Playgroud)
我明白为什么会这样,以及为什么变量在加载过程中无法实例化,但我感到困惑的是该方法的内容.
为什么比较currentTimeMillis()来0?在什么情况下,这种比较会回归false?
我想知道sharepoint服务器是否有java api.
非常感谢
一位同事问我有关Throwablejava API中的类的问题.
按照标准,我明白,每个结尾的单词都是java API中的一个接口.关于使用诸如接口名称之类的单词存在行业标准.所以,我在不知不觉中告诉他这是java世界中所有异常和错误类型的基本接口.然后他向我展示了这个类的java文件.
我的问题:
为什么java人选择这个名字作为一个类.我认为这应该是默认的界面?
这是一种使用*能够用作界面的模式吗?
是否还有其他以*able结尾的课程示例?
问候.
是否有任何其他离线方式的集成来获取Java API文档?