Tag: java

什么时候静态类初始化发生?

什么时候静态字段初始化? 如果我从来没有实例化一个类,但我访问一个静态字段,是所有的静态块和私人静态方法用于实例化私人静态字段调用(按顺序)在这个瞬间? 如果我调用静态方法呢? 它是否也运行所有的静态块? 之前的方法?

为什么省略大括号被认为是不好的做法?

为什么每个人都告诉我写这样的代码是不好的做法? if (foo) Bar(); //or for(int i = 0 i < count; i++) Bar(i); 我忽略大括号的最大理由是它有时可能是它们的两倍。 例如,下面是一些在C#中为标签绘制发光效果的代码。 using (Brush br = new SolidBrush(Color.FromArgb(15, GlowColor))) { for (int x = 0; x <= GlowAmount; x++) { for (int y = 0; y <= GlowAmount; y++) { g.DrawString(Text, this.Font, br, new Point(IconOffset + x, y)); } } } […]

在Java中构build一系列分隔项目的最佳方法是什么?

在Java应用程序中工作时,我最近需要组装一个以逗号分隔的值列表,以传递给另一个Web服务,而不知道预先存在多less个元素。 我能从头顶上拿出最好的东西就是这样的: public String appendWithDelimiter( String original, String addition, String delimiter ) { if ( original.equals( "" ) ) { return addition; } else { return original + delimiter + addition; } } String parameterString = ""; if ( condition ) parameterString = appendWithDelimiter( parameterString, "elementName", "," ); if ( anotherCondition ) parameterString = appendWithDelimiter( […]

用JavaparsingDOM规范化 – 它是如何工作的?

在本教程中,我在下面的代码中看到了DOMparsing器的代码。 doc.getDocumentElement().normalize(); 为什么我们要做这个正常化? 我阅读文档,但我不明白一个字。 将此节点下的子树的全部深度放置为所有文本节点 好的,那么有人能告诉我(最好是有图片)这棵树是什么样的? 任何人都可以解释为什么需要规范化? 如果我们没有正常化会发生什么?

如何在Java中为正则expression式转义文本

Java是否有一种内置的方式来转义任意文本,以便它可以包含在正则expression式中? 例如,如果我的用户input“$ 5”,我希望在input结束后确切地匹配而不是“5”。

获取当前在Java中运行的所有线程列表

有什么办法可以获得当前JVM中所有正在运行的线程的列表(包括未由我的类启动的线程)? 是否也可以获得列表中的所有线程的线程和类对象? 我希望能够通过代码来做到这一点。

如何从Eclipse中设置java.library.path

我如何设置整个Eclipse项目的java.library.path? 我正在使用依赖于操作系统特定文件的Java库,并且需要查找.dll / .so / .jnilib。 但应用程序总是退出,并显示错误消息,指出这些文件在库path中找不到。 我想configuration这个整个项目来使用库path。 我试图添加path作为虚拟机参数在Eclipse中的一些运行configuration,但没有奏效。

获取当前正在执行的方法的名称

有没有办法在Java中获取当前正在执行的方法的名称?

如何避免dependency injection构造函数的疯狂?

我发现我的构造函数开始看起来像这样: public MyClass(Container con, SomeClass1 obj1, SomeClass2, obj2…. ) 不断增加参数列表。 由于“容器”是我的dependency injection容器,为什么我不能这样做: public MyClass(Container con) 为每个class? 有什么缺点? 如果我这样做,感觉就像我正在使用一个荣耀的静态。 请分享你对IoC和dependency injection疯狂的想法。

Java数组打印出奇怪的数字和文本

我是编程新手。 我相信这个问题的答案在那里,但我不知道要search什么。 所以呢。 好的,我会去的。 这是我的代码: int[] arr; arr = new int[5]; arr[0] = 20; arr[1] = 50; arr[2] = 40; arr[3] = 60; arr[4] = 100; System.out.println(arr); } } 编译和工作正常。 这只是CMD的输出,我晕了。 这是输出: [I@3e25a5 我希望他们代表完全相同的数字(arr)。 我如何做到这一点?