静态变量初始化的顺序,Java

可能重复: Java静态类初始化 以什么顺序执行的类中的静态块和静态变量? 当我运行这段代码时答案是1,我认为它将是2.初始化的顺序和每一步中k的值是多少? public class Test { static {k = 2;} static int k = 1; public static void main(String[] args) { System.out.println(k); } } 编辑1:作为“k设置为默认值”的后续内容,为什么下一个代码不能编译? 这是一个错误“无法在定义之前引用字段”。 public class Test { static {System.out.println(k);} static int k=1; public static void main(String[] args) { System.out.println(k); } } 编辑2:对于一些我不知道的原因,当^而不是“k”它的“Test.k”时它起作用。 感谢所有的答案。 这将是完美的:D

Java:检查数组的相等性(顺序无关紧要)

我有两个String数组,让我们说: String[] s1 = {“a”,”b”,”c”} String[] s2 = {“c”,”a”,”b”} //这些数组应该相等 我想以“最干净”的方式检查他们的平等。 我尝试使用Arrays.equals(s1,s2)但我得到了一个错误的答案。 我想这个方法关心元素的顺序,我不希望这一点很重要。 你能告诉我怎样才能以一种好的方式做到这一点?

如何使用Spring重新加载属性?

我在Spring 3中使用属性文件。当Spring初始化它的上下文时,它会加载属性文件并将其放在所有带有@Value注释的bean中。 我希望有可能更新文件中的某些属性,并在服务器上公开JMX,将新属性重新加载到Spring – 无需重新启动服务器,并重新加载其上下文。 我可以通过使用一些Spring方法重新加载属性并将它们填充到所有bean来实现这一点,还是应该由我自己编写这样的东西?

当迭代JsonObject的密钥时,它们的顺序与服务器的响应顺序不同

我从JSON字符串的服务器得到了非常大的响应。 我将它转换为JSON对象,然后获取密钥并迭代它。 问题是,当我迭代时,它的顺序与服务器的响应顺序不同。 接下来,我通过添加List所有键并对其进行排序来应用另一个方法,然后获取它的迭代器,但仍然不是我需要的(如响应中)。 代码示例如下: JSONObject jsonObject = new JSONObject(responseString); Iterator myIter = jsonObject.keys(); List sortKey = new ArrayList(); while(myIter.hasNext()){ sortKey.add(myIter.next()); } Collections.sort(sortKey);

使用Java发送和接收UDP数据包?

我做了一个程序,从客户端发送UDP数据包到服务器这里是发送器代码 import java.io.IOException; import java.net.*; /** * * @author hp */ public class JavaApplication9 { /** * @param args the command line arguments */ public static void main(String[] args) throws UnknownHostException, SocketException, IOException { // TODO code application logic here byte[] buffer = {10,23,12,31,43,32,24}; byte [] IP={-64,-88,1,106}; InetAddress address = InetAddress.getByAddress(IP); DatagramPacket packet = new […]

如何使用selenium或webdriver处理测试自动化中的文件上载

我认为每个人如何使用Webdriver进行测试自动化必须意识到它对Web开发的巨大优势。 但是,如果文件上传是您的Webflow的一部分,则存在一个巨大的问题。 它不再是测试自动化。 浏览器的安全限制(调用文件选择)实际上使得无法自动化测试。 Afaik唯一的选择是让webdriver单击文件上传按钮,睡眠线程,让开发人员/测试人员手动选择文件,然后完成其余的Web流程。 如何解决这个问题,是否有解决方法呢? 因为它真的不能这样做。 这没有意义。 这是我所知道的浏览器安全限制不适用的唯一情况: function window.onload(){ document.all.attachment.focus(); var WshShell=new ActiveXObject(“WScript.Shell”) WshShell.sendKeys(“D:\MyFile.doc”) }

是否在Java中inheritance了同步?

我有超类Point和一个synchronized方法draw() 。 如果我在其中覆盖方法draw()或者我必须总是写它, Point的子类是否会inheritancesynchronized ?

SWIG(v1.3.29)生成的C ++到Java Vector类不能正常运行

我有一些本机C ++代码,我正在使用SWIG转换为Java,以便我的Java应用程序可以使用它。 特别是有一些函数返回std :: vector。 这是我的界面文件的片段: %include “std_vector.i” namespace std { %template(Vector) vector; %template(Matrix) vector<vector >; } %include “std_string.i” std_string.i和std_vector.i包含在我正在使用的SWIG构建中。 我的第一个惊喜是Java输出包含了SWIG的“自有”版本的Vector类(而不是使用java.util.Vector )。 我真正的问题是从这些函数返回的Vector似乎不起作用。 例如,我无法使用get() (有时会使程序崩溃)或size()函数返回负值来检索其内容。 我知道Vector包含数据,因为我编写了相同函数的’String’版本,它们简单地遍历Vector (返回原生C ++代码)并以逗号分隔的String值返回内容。 虽然这是一个有效的解决方法,但最终我希望这能够正常工作,因为我能够接收和操作Vectors 。 任何帮助/提示将不胜感激。

javax.servlet.ServletException:在作用域内找不到bean

我收到这个错误: javax.servlet.ServletException: bean not found within scope 在顶部的页面上。 该类存在于类路径中,它今天早上起作用,我没有得到范围内没有找到的东西。 这是怎么造成的,如何解决?

为什么我的Spring ContextRefreshed事件被调用了两次?

我注册了一个Spring ApplicationListener bean来监听ContextRefreshed事件。 但是出于一些奇怪的原因,我在完成上下文初始化时onApplicationEvent(ContextRefreshedEvent)方法进行两次调用。 这是正常行为还是表示我的配置有问题? 我正在使用Jetty 8作为我的Servlet容器。 我的相关web.xml配置如下 contextConfigLocation /WEB-INF/config/spring/spring-config.xml Spring org.springframework.web.servlet.DispatcherServlet contextConfigLocation 1 org.springframework.web.context.ContextLoaderListener Spring /service/* 谢谢!