两者之间有什么区别吗?
DocumentBuilder.parse(InputStream) 和 DocumentBuilder.parse(InputSource) ? 我只能发现,对于第一种情况,解析器检测流中的编码,因此它更安全,而后者我不确定是否需要设置编码.
我应该知道的任何其他要点(例如表演)?
我怀疑是否有这样的东西,但我想问:
有没有人知道Java中是否有一个库读取xsd文件并"创建"已定义的元素,例如以字符串格式在代码中使用?
例如,阅读以下架构:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Address">
<xs:complexType>
<xs:sequence>
<xs:element name="Street" type="xs:string" />
<xs:element name="Town" type="xs:string" />
<xs:element name="Country" type="xs:string" minOccurs="0" />
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Run Code Online (Sandbox Code Playgroud)
并使用以下格式的String:
<Address>
<Street></Street>
<Town></Town>
<Country></Country>
</Address>
Run Code Online (Sandbox Code Playgroud)
自动工具执行类似的操作,即解析WSDL,并从类型部分创建例如JAXB类,它们可以是模式中定义的元素的实例.
有没有图书馆可以做到这一点?
更新:
例如,在Eclipse中为Web应用程序创建xml描述符时,它会显示一个树表,其中包含用户根据模式填写的所有必需元素.他们是如何做到的呢?我想他们会解析包含在罐子里的xsds
任何输入都是非常受欢迎的.
谢谢!
我在java keystores和keytool上有以下问题.我假设密钥库可能有多个证书.正如我所尝试的那样,通过keytool,我可以创建一个密钥库,并且要访问这个密钥库,我必须设置密码.另外,要访问每个证书条目,我必须设置密码.是否必须为密钥库和条目使用相同的密码?如果不是(我认为这样做是合理的)为什么是以下代码:
char[] pwd = new char[]{'s','e','c','r','e','t'};
KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType());
ks.load(new FileInputStream("myPersonal.keystore"), pwd);
kmf.init(ks, pwd);//fails here with exception
Run Code Online (Sandbox Code Playgroud)
给我以下例外?
Exception in thread "main" java.security.UnrecoverableKeyException: Cannot recover key
at sun.security.provider.KeyProtector.recover(Unknown Source)
at sun.security.provider.JavaKeyStore.engineGetKey(Unknown Source)
at sun.security.provider.JavaKeyStore$JKS.engineGetKey(Unknown Source)
at java.security.KeyStore.getKey(Unknown Source)
Run Code Online (Sandbox Code Playgroud)
secret是访问myPersonal.keystore我通过keytool创建的密钥库的密码.其中有2个条目,用于证书,1个DSA和1个RSA.每个密码库(以及彼此)都有不同的密码.现在代码是正确的,因为如果我使用一个密钥库,其中一个证书条目具有与密钥库相同的密码,则没有异常,程序运行正常.
那么这里的问题是什么?我不应该有不同的密码?我不应该有很多证书?或者是什么?
这或许是一个Java琐事问题.
我多次使用Stack实现.
我已经读过这被认为是一个遗留类,并且由于它的子类Vector使其在单线程应用程序中的性能变差.
我的问题是,Java Collection类中最好的选择是什么?
是否有另一个Stack可供选择的课程(可能是不同的名字)?
我的意思是,好的实现堆栈另一个现有的数据结构很容易,但我希望有一个现有Stack的使用.
我开始在android中开发,我尝试修改Snake代码,包括调用浏览器来显示网页,当我执行我的应用程序时它显示在brwser中的页面,但问题是当我回到蛇应用程序时它显示应用程序意外停止的消息,logCat显示下面的例外情况
02-19 01:06:50.920: W/dalvikvm(3394): threadid=1: thread exiting with uncaught exception (group=0x4015a760)
02-19 01:06:50.930: E/AndroidRuntime(3394): FATAL EXCEPTION: main
02-19 01:06:50.930: E/AndroidRuntime(3394): java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0
02-19 01:06:50.930: E/AndroidRuntime(3394): at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:255)
02-19 01:06:50.930: E/AndroidRuntime(3394): at java.util.ArrayList.get(ArrayList.java:308)
02-19 01:06:50.930: E/AndroidRuntime(3394): at com.example.android.snake.SnakeView.updateSnake(SnakeView.java:448)
02-19 01:06:50.930: E/AndroidRuntime(3394): at com.example.android.snake.SnakeView.update(SnakeView.java:403)
02-19 01:06:50.930: E/AndroidRuntime(3394): at com.example.android.snake.SnakeView.setMode(SnakeView.java:335)
02-19 01:06:50.930: E/AndroidRuntime(3394): at com.example.android.snake.SnakeView.onKeyDown(SnakeView.java:278)
02-19 01:06:50.930: E/AndroidRuntime(3394): at android.view.KeyEvent.dispatch(KeyEvent.java:2387)
02-19 01:06:50.930: E/AndroidRuntime(3394): at android.view.View.dispatchKeyEvent(View.java:4569)
02-19 01:06:50.930: E/AndroidRuntime(3394): at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1113)
02-19 01:06:50.930: E/AndroidRuntime(3394): at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1113)
02-19 01:06:50.930: E/AndroidRuntime(3394): …Run Code Online (Sandbox Code Playgroud) 我读到LinkedHashMap和描述(虽然非常有趣)我无法理解它是如何实际完成它的工作的.作为旁注,我知道HashMapJava中的工作原理.
所以我查看了源代码,仍然无法弄清楚它是如何工作的.也许在这种情况下我并没有抓住OOP的基本内容所以请耐心等待.
来概括,那会搞乱我的部分是:
将LinkedHashMap代表所有其父的电话HashMap.
在内部它覆盖HashMap.Entry来实现各种recordAccess与recordRemoval这似乎实现的逻辑方法,LinkedHashMap
但实际Entries是基类的表内即HashMap该实例的表HashMap.Entry不和LinkedHashMap.Entry.
所以,我想不出如何使用各种recordAccess和recordRemove等实际上被调用.
那么有谁能帮我理解这里发生了什么?
我是否正确认为这LinkedHashedMap.Entry是由HashMap?创建的表的类型?但是怎么样?
更新:
我的问题是如何recordAccess调用.我使用衍生版本HashMap失败的实验,因为盛源路(+1) - 我的不好
更新:
我尝试的以下内容与我正在做的相同(我认为)LinkedHashMap:
package delete;
public class Base<T> {
Entry<T>[] table;
int idx = 0;
@SuppressWarnings("unchecked")
public Base(){
System.out.println("In base");
table = new Entry[10];
}
public void add(T x){
table[idx] = …Run Code Online (Sandbox Code Playgroud) 我正在研究Java如何计算int的位集.
在我的脑海里,我有一些简单的东西(我认为是正确的):
public static int bitCount(int number){
final int MASK = 0x1;
int count = 0;
for(int i = 0; i < 32; i++){
if(((number >>> i) & MASK) == MASK){
count++;
}
}
return count;
}
Run Code Online (Sandbox Code Playgroud)
相反,我找到了一种方法,我完全不知道在做什么(对我来说似乎很神奇):
i = i - ((i >>> 1) & 0x55555555);
i = (i & 0x33333333) + ((i >>> 2) & 0x33333333);
i = (i + (i >>> 4)) & 0x0f0f0f0f;
i = i + (i >>> 8);
i = i + (i >>> …Run Code Online (Sandbox Code Playgroud) 我正在和JTree合作.
我想知道什么是最好的方法来了解在JTree中扩展哪些节点以便保存其状态(即保存所有扩展路径).因此,如果我调用model.reload()Jtree不会保持折叠,但我将能够将其原始状态恢复到用户,即,将扩展所有扩展节点.
HTTP是一种应用程序协议,可以关闭并重新打开底层TCP连接,而不会影响HTTP应用程序(性能除外).
通过使用HTTP1.1,我们使用持久连接,但服务器或客户端仍然可以随时关闭连接.
对于安全性,HTTP通过SSL/TLS使用TCP.
我的理解是SSL的行为很像应用程序,至少这是TCP"查看"SSL的方式.
我的问题是,如果底层TCP套接字在安全连接建立后的某个时刻关闭,这是否意味着SSL会话变得无效并且各方应该从ssl握手开始?
或者底层TCP连接与TLS会话无关?
谢谢!
我有以下问题:
如果被问到是否使用移位与乘法或除法(例如答案),请让JVM进行优化.
这里的示例:is-shifting-bits-faster-than-multiplying
现在我正在查看jdk源代码,例如Priority Queue,代码仅使用乘法和除法(有符号和无符号)进行移位.
理所当然地认为SO中的帖子是有效的答案我想知道为什么在jdk他们更愿意通过转移来做到这一点?
它是一些与性能无关的微妙细节吗?我怀疑它必须与上/下溢乘法和除法有关但我不确定.
有人有想法吗?使用移位是否能更好地处理溢出问题?或者只是味道问题?
java collections optimization bit-manipulation priority-queue