在阅读了c#的隐藏特性之后,我想知道Java的隐藏特性有哪些?
当前回答
标识符可以包含外文字符,比如变音:
而不是写:
String title="";
有人可以这样写:
String Überschrift="";
其他回答
您选择的编码中的属性文件如何?过去,当你加载你的属性,你提供了一个InputStream和load()方法解码为ISO-8859-1。你实际上可以用其他编码来存储文件,但你必须在加载后使用像这样令人作呕的黑客来正确解码数据:
String realProp = new String(prop.getBytes("ISO-8859-1"), "UTF-8");
但是,从JDK 1.6开始,有一个load()方法接受Reader而不是InputStream,这意味着您可以从一开始就使用正确的编码(还有一个store()方法接受Writer)。对我来说,这似乎是一件相当大的事情,但它似乎是悄无声息地潜入JDK的。我几周前才偶然发现它,快速搜索谷歌,只发现了一个提及。
你可以在方法中声明一个类:
public Foo foo(String in) {
class FooFormat extends Format {
public Object parse(String s, ParsePosition pp) { // parse stuff }
}
return (Foo) new FooFormat().parse(in);
}
最终初始化可以推迟。
它确保即使使用复杂的逻辑流也始终设置返回值。很容易错过一个case并意外返回null。它并不是不可能返回null,只是很明显它是故意的:
public Object getElementAt(int index) {
final Object element;
if (index == 0) {
element = "Result 1";
} else if (index == 1) {
element = "Result 2";
} else {
element = "Result 3";
}
return element;
}
我真的很喜欢从Java 1.6重写的线程API。可调用对象很棒。它们基本上是带有返回值的线程。
我最喜欢的:转储所有线程堆栈跟踪到标准输出。
在你的java cmd/控制台窗口中按CTRL-Break键
unix: kill -3 PID
推荐文章
- 在流中使用Java 8 foreach循环移动到下一项
- 访问限制:'Application'类型不是API(必需库rt.jar的限制)
- 用Java计算两个日期之间的天数
- 如何配置slf4j-simple
- 在Jar文件中运行类
- 带参数的可运行?
- 我如何得到一个字符串的前n个字符而不检查大小或出界?
- 我可以在Java中设置enum起始值吗?
- Java中的回调函数
- c#和Java中的泛型有什么不同?和模板在c++ ?
- 在Java中,流相对于循环的优势是什么?
- Jersey在未找到InjectionManagerFactory时停止工作
- 在Java流是peek真的只是调试?
- Recyclerview不调用onCreateViewHolder
- 将JSON字符串转换为HashMap