首页>新闻>JAVA>详情
Java进阶视频哪家好? 这些你都不知道
预约试听

发布时间:2018-03-21编辑:

Java进阶视频哪家好? 这些你都不知道

很多朋友想靠Java进阶视频来帮助自己突破瓶颈,没问题,千锋互联的视频就不错。不信?先看看下面这些你平时注意过吗?

1.没有检查过的异常

那就对了! JVM不知道任何这样的事情,只有Java语言。

今天,大家都同意检查异常是一个错误。 AsBruce Eckel在布拉格GeeCON闭幕主题演讲中表示,Java在使用已检查的异常之后没有其他语言,甚至Java 8也不再支持它们在新的Streams API中(这实际上可能有点痛苦,当 你的lambdas使用IO或JDBC)。

你想证明JVM不知道这样的事情吗? 试试下面的代码:

 

这不仅是编译,这实际上也抛出SQLException。

2.你可以让方法重载仅在返回类型中有所不同

这不会编译,对吧?

对。 Java语言不允许两个方法在同一个类中被“重写 - 等价”,而不管它们可能有不同的Throws型或返回类型。

但等一下。 查看Javadoc ofClass.getMethod(String,Class ...)。 它写道:

请注意,类中可能有多个匹配方法,因为虽然Java语言禁止类声明具有相同签名但返回类型不同的多个方法,但Java虚拟机不会。 虚拟机中增加的灵活性可用于实现各种语言功能。 例如,协变回报可以用桥接方法来实现; 桥接方法和被覆盖的方法将具有相同的签名但不同的返回类型。

原文:

Note that there may be more than one matching method in a class because while the Java language forbids a class to declare multiple methods with the same signature but different return types, the Java virtual machine does not. This increased flexibility in the virtual machine can be used to implement various language features. For example, covariant returns can be implemented with bridge methods; the bridge method and the method being overridden would have the same signature but different return types.

哇,是的,这是有道理的。 事实上,当你编写以下代码时,会发生这种情况:

检查Child中生成的字节码:

所以,Tis真的只是对象的字节码, 这很好理解。

合成桥接方法实际上是由编译器生成的,因为在特定的呼叫站点上,可能预期toParent.x()签名的返回类型为Object。 在没有这种桥接方法的情况下添加泛型将不可能以二进制兼容的方式进行。 所以,改变JVM以允许此功能是较小的痛苦(这也允许协变覆盖作为副作用...)聪明,是吧?

3.所有这些都是二维数组!

对,是真的。 即使你的心理分析器不能立即理解上述方法的返回类型,它们也是一样的! 类似于下面的一段代码:

你觉得那很疯狂? 想象一下在上面使用JSR-308 / Java 8类型注释。 句法可能性的数量爆炸!

4.你没有得到条件表达式

那么,当你使用条件表达式时,你认为你知道吗? 让千锋老师告诉你,你没有。 你们大多数人会认为下面的两个片段是相同的:

...与此相同?

不。让千锋老师们进行一个快速测试。

这个计划将打印:

1.01

是的! 如果“需要”,条件运算符将实现数字类型提升,并在该“需要”上引用一组非常非常强大的引号。 因为,你会期望这个程序抛出一个NullPointerException吗?

5.你也没有得到复合赋值操作符

有什么古怪呢? 千锋老师们来考虑以下两段代码:

直观地说,它们应该是等价的,对吗? 但猜猜怎么了。 他们不是! JLS规定:E1 op = E2形式的复合赋值表达式等价于E1 =(T)((E1)op(E2)),其中T是E1的类型,只是E1只计算一次。

现在,这有多么有用? 千锋老师将在=应用程序中投下/繁殖字符。

千锋互联校区

北京天丰利校区(总部):北京市海淀区宝盛北里西区28号

千锋Python培训学习靠谱吗

北京沙河校区:北京市昌平区沙阳路18号

千锋Python培训学习靠谱吗

上海校区地址:上海市宝山区同济支路199号

广州校区地址:广州市天河区元岗路310号

(注:其他校区咨询老师)


千锋互联一直秉承“用良心做教育”的理念,全力打造互联网技术型研发人才服务优质平台。现在北京、深圳、上海、郑州、广州、大连、武汉、成都、西安、青岛、杭州、重庆、长沙开设分公司。拥有全国的专业教学以及就业保障团队,成为学员信赖的IT培训机构


以上就是小编简单的介绍,希望对你有所帮助,还有更多相关的讯息,欢迎咨询,惊喜多多,收获多多。

课程咨询

咨询老师:金老师

咨询电话010-64707530

咨询微信:15110074071


千锋Python培训学习靠谱吗


相关推荐


课程 班型 费用
千锋互联UI设计培训班 白天班/晚班/周末班 点击了解
千锋互联python培训班 白天班/晚班/周末班 点击了解
千锋互联HTML5培训班 白天班/晚班/周末班 点击了解
千锋互联软件测试培训班 白天班/晚班/周末班 点击了解
千锋互联大数据培训班 白天班/晚班/周末班 点击了解
千锋互联Linux云计算培训班 白天班/晚班/周末班 点击了解
<上一篇:北京的html5培训机构怎么选更好 >软件测试前景如何 去用友实训看看下一篇:
1V1课程咨询 免费试听课程

编辑推荐