一、关于Switch
代码:
结果:
2
3
4
分析:
少了break;所以2以下的case和default都执行了一遍。
switch case 原理是:1.当遇到匹配的项后如有break,则结束,不再执行后面的语句,如果没有break,则执行完匹配的项后,后面的语句不管是否匹配一律执行;2.如果一直没有匹配的项会执行default
二、Equals和==运算符
代码:
结果:
x+y equals z:true
a == z:false
x == hello:true
a == helloworld:true
a == x+y:false
分析:
1.String.equals()方法比较的是字符串的内容,所以(x + y).equals(z)为true.
2.“==”比较的是 String 实例的引用,很明显 a 和z 并不是同一个 String 实例,所以(a == z)为false.
3.根据常量池的知识,容易得知(x == "hello")和(a == "hello" + "world")都为true.
(常量池指的是在编译期被确定并被保存在已编译的.class 文件中的一些数据。它包含了
关于方法、类、接口等,当然还有字符串常量的信息。也就是所谓的持久代。)
4.那么(a == (x + y))为什么是false呢?这点暂点有点不大清楚。初步认为是x+y是引用相加,不能放入常量池。
三、Override覆盖
代码:
结果:
parent static say
child say
分析:
1.我们创建了一个Parent类的实例。变量 p 的数据类型为 Parent 类 但是它仍旧是 Child 类的一个实例。因为Child类覆盖了Parent类的方法say2(),所以p.say2()调用为子类的方法。
2.为什么p.say()却是调用父类Parent的方法呢?因为Java中规定“实例方法被覆盖,静态方法被隐藏”.
关于Override的一些规则:
用子类的静态方法隐藏父类中同样标识的实例方法是不合法的,编译器将会报错;
用子类的实例方法覆盖父类中同样标识的静态方法也是不合法的,编译器同样会报错;
带关键字 final的方法(静态和实例方法)都不能被覆盖;
实例方法能够被覆盖;
抽象方法必须在具体类中被覆盖。
四、Java强类型
代码:
结果:
7.0
分析:
Java 是强类型的 strongly type,它支持8 种基本数据类型。通过对这些基本数据类型用法的严格检查 Java 编译器能够及时地在开发过程中捕捉到许多简单细微的错误。基本数据类型的转换可以隐性地发生,所以转换时会有精度损失。由于1/4和3/4发生隐性类型转换,精度损失,不会生成0.25和0.75,所以有分号的数都为0。
五、假构造函数
代码:
结果:
The value of c :0
分析:
public void Constructor()并不是一个真正的构造函数,而是一个方法。所以c的值为默认值0.
六、提前引用
代码:
结果:
first = 0
分析:
由于在初始化second之前test方法就访问了它,那么方法得到的是second的默认值,即 0。 因此输出结果first= 0,而不是2。假如你使用方法调用来初始化静态变量,那么你必须保证 这些方法并不依赖于在它们之后声明的其它静态变量。静态变量以及静态初始化块是在类被加载进 JVM 时执行初始化操作的。Java 语言规范8.5节指出“静态初始化块和静态变量是按照其在代码中出现的顺序依次执行初始化操作的,而不能在类变量声明出现之前就引用它”。
七、对象引用
代码:
结果:
ab,b
ab,ab
分析:
大家来分析一下这题,我还没有完全理解。
我的分析,可能是错的,哈哈,算是抛砖引玉。
1.a.append(b);-->ab 。因为a是引用,所以调用a的方法,相当于直接调用jvm中的a,所做的append也相当于直接在对象上操作,生效。
2.append方法中第一次b=a,-->b。因为a,b都为main方法内局部变量,跨append方法作用域b对a的引用不生效。
3.main方法中第二次b=a,-->ab。因为在同一作用域方法中,b对a的引用生效,。
http://blog.csdn.net/lifuxiangcaohui/article/details/8109833
相关推荐
JAVA中易混淆的概念
12123............................................................
收集的中易六套ttf字体,可用于xetex+ctex的中文配置。 包括:宋体、仿宋、黑体、楷体、隶书、幼圆
今天我们将深入探讨的“中易V9 仿7540北辰8782模板.zip”便是应运而生的产物,它不仅具备了中易V9系统操作简便的特色,还融入了7540北辰8782的设计风格,让使用者在建设广告展示网站时如虎添翼。 中易V9系统作为一...
在一级消防工程师的备考过程中,有些关键知识点容易被忽视,这些细节对于考试至关重要。以下是针对一级消防工程师考试中常被忽略的知识点的详细解析: 1. 建筑高度分类: - 21 米相当于7层,27米是多层与高层建筑...
《中易广告联盟系统v3.3:深度解析与应用指南》 中易广告联盟系统v3.3是一款专为互联网广告行业设计的高效管理软件,它集成了丰富的功能,旨在帮助广告主、媒体和联盟成员实现更智能、更精准的广告投放与收益管理。...
中易广告联盟作为网络营销领域的一项创新,通过推出3.31版本,为广告主和联盟成员提供了一个全新的平台体验。随着互联网营销策略的不断演进,中易广告联盟成功地将传统广告模式与现代互联网技术相结合,特别强调了...
浅谈招标过程中易出现的问题及处理方式.pdf
由于中易后台有域名限制.这时我们通过修改hosts的方法使用我朋友已授权的域名来绕过域名限制进入后台. 用记事本 打开你的电脑 C:\WINDOWS\system32\drivers\etc 里的hosts文件. 添加以下两条记录(备注:127.0.0.1...
在必修一中,面试题目涉及了《沁园春》、《雨巷》、《再别康桥》等诗词的朗读和理解,如要求分析《大堰河——我的保姆》中“紫色的灵魂”的含义,以及对《荆轲刺秦王》中易水送别的场景进行赏析。此外,还考察了《烛...
【标题】:“百度数据-中易广告联盟-红色版.rar”这一标题暗示了这是一个与百度数据相关、涉及中易广告联盟的项目,其中可能包含了该联盟的红色主题设计元素或版本。在IT行业中,广告联盟通常指的是多个网站或应用...
铝合金模板施工过程中易出现的问题及处理措施.doc
下面将对Java中的变量、数据类型以及数据运算中的一些易混知识点进行详细解释。 首先,我们来谈谈Java中的变量。变量可以看作是程序中存储数据的容器,它有特定的名称(标识符)和类型。在Java中,声明变量时需要...
跨平台性: Java 通过JVM 实现了跨平台技术, Java 源代码(*.java)经过 Java的编译器 编译成,Java字节码(*.class),执行Java字节码, Java字节码经过JVM的解释为具体平台 的具体指令,并执行; 高性能:...
在IT行业中,模板被广泛应用于各种领域,如网页设计、文档编写、数据分析等,它们能够帮助用户快速构建出符合特定需求的设计或结构。"中易模板 4套"的资源包含两个RAR压缩文件:中易精美模版.rar和中易模板_68104....
中易广告联盟v9黑色高端网站模板 简洁大气的广告联盟平台模板 中易v9传媒黑色模板:一站式广告平台模板。丰富的广告模式提升用户的收益转化、最佳的流量变现方案(通栏、插屏、跳转)、丰富的网络广告。投放经验帮助...
- **避免C++中易出错的部分**: 如多重继承、运算符重载等。 **2.3 面向对象** Java完全基于面向对象的思想构建,所有Java程序都是由对象组成。这使得Java非常适合于构建大型、复杂的软件系统。 **2.4 分布式** ...