Java的隐藏特征

Java的隐藏特征

阅读后C#的隐藏特征我想知道,Java的一些隐藏特性是什么?



噜噜哒
浏览 350回答 3
3回答

交互式爱情

双支撑初始化几个月前我第一次发现它的时候让我大吃一惊,以前从未听说过。线迹通常不像存储每个线程状态的方式那样广为人知。由于JDK1.5 Java有非常好的实现和健壮的并发工具,而不仅仅是锁,所以它们存在于java.util.并发一个特别有趣的例子是java.util.concurrent.原子子包,该包含实现比较和交换操作,并可以映射到这些操作的实际本机硬件支持的版本。

温温酱

类型参数方差联合:public&nbsp;class&nbsp;Baz<T&nbsp;extends&nbsp;Foo&nbsp;&&nbsp;Bar>&nbsp;{}例如,如果您想接受一个既具有可比性又具有集合的参数:public&nbsp;static&nbsp;<A,&nbsp;B&nbsp;extends&nbsp;Collection<A>&nbsp;&&nbsp;Comparable<B>>boolean&nbsp;foo(B&nbsp;b1,&nbsp;B&nbsp;b2,&nbsp;A&nbsp;a)&nbsp;{ &nbsp;&nbsp;&nbsp;return&nbsp;(b1.compareTo(b2)&nbsp;==&nbsp;0)&nbsp;||&nbsp;b1.contains(a)&nbsp;||&nbsp;b2.contains(a);}如果两个给定集合相等,或者其中一个包含给定元素,则此人工方法返回true,否则为false。需要注意的一点是,您可以对参数b1和b2调用可比较方法和Collection方法。

精慕HU

前几天我对实例初始化器感到惊讶。我删除了一些代码折叠的方法,最后创建了多个实例初始化器:public&nbsp;class&nbsp;App&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;App(String&nbsp;name)&nbsp;{&nbsp;System.out.println(name&nbsp;+&nbsp;"'s&nbsp;constructor&nbsp;called");&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;static&nbsp;{&nbsp;System.out.println("static&nbsp;initializer&nbsp;called");&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;System.out.println("instance&nbsp;initializer&nbsp;called");&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;static&nbsp;{&nbsp;System.out.println("static&nbsp;initializer2&nbsp;called");&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;System.out.println("instance&nbsp;initializer2&nbsp;called");&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;void&nbsp;main(&nbsp;String[]&nbsp;args&nbsp;)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new&nbsp;App("one"); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new&nbsp;App("two"); &nbsp;&nbsp;}}执行main方法将显示:static&nbsp;initializer&nbsp;calledstatic&nbsp;initializer2&nbsp;called instance&nbsp;initializer&nbsp;called instance&nbsp;initializer2&nbsp;called one's&nbsp;constructor&nbsp;called instance&nbsp;initializer&nbsp;called instance&nbsp;initializer2&nbsp;called two's&nbsp;constructor&nbsp;called我想,如果您有多个构造函数,并且需要通用代码,这将是有用的。它们还为初始化类提供了语法糖:List<Integer>&nbsp;numbers&nbsp;=&nbsp;new&nbsp;ArrayList<Integer>(){{&nbsp;add(1);&nbsp;add(2);&nbsp;}};Map<String,String>&nbsp;codes&nbsp;=&nbsp;new&nbsp;HashMap<String,String>(){{&nbsp; &nbsp;&nbsp;put("1","one");&nbsp; &nbsp;&nbsp;put("2","two");}};
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java