你想骗过java的编译器吗?

请看上面的代码,我们完美的骗过了编译器,但是运行的时候java可是不会给你留情面的 2333

编译器在检测强制转换的时候会判断子父类关系,基本类型的强制转换除外

但是我们发现上面的Date和dateTimeFormatter.parse( "2019-12-31 23:24:25")没有子父类关系,但是编译却没有报错;

Why?

因为dateTimeFormatter.parse( "2019-12-31 23:24:25")传递的参数是interface的多态

所以编译器迷茫了不知道它是否是一个Date对象,他就交给了运行机制去去处理,当你运行的时候异常就会显示出来了

原文地址:https://www.cnblogs.com/WINDZLY/p/12683441.html

时间: 2024-10-03 01:59:49

你想骗过java的编译器吗?的相关文章

想找一个java版本的twitter的IdWorker的代码

原文:想找一个java版本的twitter的IdWorker的代码 代码下载地址:http://www.zuidaima.com/share/1550463224040448.htm 代码运行结果: uuid的强化版本,保证在同一时空产生的id号是唯一的.uuid请参考百度百科:http://baike.baidu.com/link?url=WrZ_Pr2K5tBgd3olLFH7BScVtAfBDMFoaemIZgDlKUJChjo_Bsi0p7_6Dwkz9wSleOO0fevWbT2izA

对于eclipse写java程序时,想查看一下java源代码,出现Source not found 的原因与解决办法

对于eclipse写java程序时,想查看一下java源代码,出现Source not found 如下图: 原因Eclipse默认设定的自带的JDK是没有源src的,需要引入,点击attach Source...添加jdk的src.zip就可以了

本人零基础想转行转行Java,难度大吗?

一个学员问我本人零基础想转行转行Java,难度大吗?难度不能说没有,但是系统学习一下还是可以的这里给你简单分享一下当下的一些市场行情吧 Java如今的市场不如从前,竞争很大,工资非常高,标准非常高,想要胜任一份高薪的工作不是那么容易,只有掌握最新的行情才能更好的了解Java,才能更好的在这个领取发展,让新手小白了解Java市场行情如下: 行情一:五年后和五年前的区别,在五年我们这个行业不仅仅缺人才,连新手都缺,那个时候公司愿意招聘实习生,培养他们然后给公司干活,但是工资一定不会给开的很高,所以这

[转帖]java的编译器,解释器和即时编译器概念

java的编译器,解释器和即时编译器概念 置顶 2019-04-20 13:18:55 菠萝科技 阅读数 268更多 分类专栏: java jvm虚拟机 操作系统/linux 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/wabiaozia/article/details/89414045 菠萝备注: 我更倾向于周志明对编译器的"分类"的看法,编译过程中有三类比较有有代表性的编

java编写编译器和解释器

 on 2012-07-14 21:24 Bang 阅读(102) 评论(0) 编辑 收藏  续 第二部分 初始后端实现 框架后端支持编译器和解释器.现在框架抽象类Backend有两个极简版实现,一个为编译器另一个为解释器.图2-7 展示了它们的UML类图. 图2-7 子类CodeGenerator和Executor分别是后端的编译器和解析器实现. 编译器 编译器后端做代码生成.backend.compiler包中的类CodeGenerator实现框架抽象类Backend.现在它被最大简化了.清

非计算机专业想要成为Java程序员怎么办

在编程语言中,Java被成为最广泛的编程语言,这可不是浪得虚名的,Java在我们的各个行业中都有它的身影,比如财务.银行.证券等金融行业,移动.电信等通信行业,大型网站以及后台开发等等.当下成为一个Java程序员,不仅好找工作,而且还是高薪工作. 很多非计算机专业的朋友想要成为一名Java程序员,该怎么办呢?Java是门高端编程语言,其他的不用提,计算机基础一定是要有的,专门学过计算机的朋友,可能不需要担心这个问题,但是没有学过计算机的朋友,比较忧心这个问题,担心自己学不好Java. 学不好Ja

分享:想要成为Java程序员都需要掌握哪些技术?

随着<2018年中国大学生就业报告>出炉,计算机相关专业的高就业率引起了人们的关注.为了能够实现高薪,越来越多的非专业人士转行从事编程开发,Java作为最受欢迎的编程语言成为人们的一致选择! 想要成为一名优秀的Java程序员,不能像无头苍蝇一样乱转,一些关键技术的掌握是非常重要的,比如说×××老师分享的这九点: 一.熟练的使用Java语言进行面向对象程序设计,有良好的编程习惯,熟悉常用的JavaAPI,包括集合框架.多线程(并发编程).I/O(NIO).Socket.JDBC.XML.反射等.

想玩转JAVA高并发,这些概念你必须懂

高并发高并发 它是互联网分布式系统架构设计中必须考虑的因素之一,通常是指,保证系统能够同时并行化处理海量请求 同步和异步 同步:发送一个请求,等待返回,然后再发送下一个请求.提交请求 -> 等待服务器处理 -> 处理完返回,此期间客户端浏览器不能干任何事 异步:发送一个请求,不等待返回,随时可以再发送下一个请求.提交请求 -> 服务器处理(这时浏览器仍然可以做其他事情)-> 处理完毕 从上图可以知道,随着实时间的轨迹,同步一步一步的执行着,在异步中,当一个异步过程调用发出后,调用者

想要成为JAVA高手的25个学习目标

本文将告诉你学习Java需要达到的25个目标,希望能够对你的学习及找工作有所帮助.对比一下自己,你已经掌握了这25条中的多少条了呢? 1.你需要精通面向对象分析与设计(OOA/OOD).涉及模式(GOF,J2EEDP)以及综合模式.你应该了解UML,尤其是 class,object,interaction以及statediagrams. 2.你需要学习Java语言的基础知识以及它的核心类库 (collections,serialization,streams,networking,?multit