Java编程技巧:为什么没有goto语句?true、false、null是关键字吗?
单击上面的“ Java编程选择”,然后选择“公共帐户”

在关键时刻,请尽快发送!
1。在Java中,没有任何声明。由于大量的goto语句可以降低程序的可读性和维护,因此Java语言取消了GOTO的使用。同时,为了避免程序员自己使用的混乱,Java语言仍然将Goto定义为关键字,但并未定义任何语法,因此称为“保留单词”。
2 True,False和Null在IDE中以不同的颜色显示,但它们不是关键字,而是“字面常数”,就像字符串类型ABC一样。
3定义名称时,请避免尽可能多地使用$,因为当编译器编译.java文件时,“ $”将编译为顶层和基础类型的连接器中。请参阅以下示例:
包com.javastack.test;
uplyclassouter $ inner {
publicStaticVoid Main(String [] args){
外o = newouter();
outer.inner i = o.newinner();
i.innerprint();
classouter {
classinner {
void innerprint(){){
system.out.println(“内部打印!”);
编译时(Javac test3.java),编译器将报告以下错误:test.java:12:错误:class recople:com.javastack.test.test.test.test.inner class class inner { ^ ^ ^ ^ ^ ^ ^ ^ ^
4在解析程序之前,Unicode的运输字符处理很早。例如:
// char c1 ='u00a';
// char c2 ='u00d';
在程序中,这两行代码编译并报告错误。这两个Unicode代码表示“更改”和“ Enter”,因此,当编译器编译时,代码就是这样:
// char c1 ='
';
// char c2 ='
';
5 Unicode代码由16位字符编码,并由Java中的Char类型表示。现在,Unicode已将其扩展到100万个字符,并且已成为16位限制的补充角色。所有补充字符不能由字符常数表示。
6当简短,字节,炭接参加操作时,结果是int类型,与较高类型不同。如果变量为字节,短字节,当给出编译周期的常数并且常数不超过变量的值范围时,则可以隐式收缩编译器。这种隐式收缩转换是安全的,因为收缩转换仅适用于变量的分配,而不适用于方法调用语句,即当方法调用不适用时的参数传输。 (有关详细信息,请参见Java中的默认类型转换)
7注意Char类型,这是一种非符号类型。因此,char和short或char和字节之间的转换必须显示类型转换。从字节到char到扩展收缩转换的转换,转换是特殊的,也就是说,字节扩展是首先转换为int,然后转换为char。
8在整数数据之间的扩展转换中,如果操作的数量是char类型(非符号类型),则执行未签名的扩展名,并且扩展名为0。如果操作数为字节,短或INT(使用符号类型),然后执行扩展名,扩展名是变量的符号位。
9整数数据之间的收缩转换仅被切断并丢弃高水平,而无需任何其他处理。
10 0.1+ 0.2不等于0.3.System.out.println(double)0.1+(double)0.2);此语句的输出结果为0.30000000000000004。由于计算机使用二进制数据存储数据,因此许多小数无法准确使用二进制文件来指示(实际上,大多数小数是相似的),就像使用小数小数的使用无法准确表明该分数的1/3是如此的分数如此像这样。本质大多数浮动 - 点类型仅存储其值在计算机中,不像整数那样准确。另一个例子,这是一个死周期:for(float f = 10.1f; f!= 11; f+= 0.1f){}
11个浮点类型可以保留7到8个有效数字,并且双重类型可以保留15至16个有效数字。因此,当int或长类型值比双重或浮点有效数字更有效时,该值的最低有效位置将丢失,从而导致准确性损失。目前,IEEE754将用于放弃最近,以提取最接近整数值的浮点值。尽管整数转换为浮动点类型是扩展转换,但是当值大或小(绝对值很大)时,丢失了一定精度。
如何计算12i +++ J? (这个问题在C/C ++中)讨论并不重要,因为C/C ++取决于实现的硬件结构,并且不同的环境结果将有所不同。但是,在Java中,此结果是固定的,不受其运行的硬件环境和平台的影响)答案:根据贪婪的规则,前++比后++更好,结果是(i ++)+J +j
13i ++和++ i实际上是+1,然后分配一个值。 ++我,没有什么可说的。 i ++,使用j = i ++;例如,底部的实现是:temp = i; i = i+1; j = test;因此,i = 15; i = i ++;这个表达;该表达式结果为15。
14 +0和-0在浮点类型变量存储中,符号不同。当-0和+0参与浮点类类型的相关操作(例如剥夺和服从)时,可以产生不同的结果。
15浮动点相与删除其余计算和整数不同。当划分为0时,浮动点操作将不会产生算术感受异常。
16String类是一个非突出类,一旦创建对象,就无法破坏。似乎修改字符序列的方法实际上是返回新创建的字符串对象,而不是修改自己的对象。
17由于字符串对象没有变化,因此具有线程安全性并可以自由实现共享。
18在字符串类中,字符阵列(char [])用于维护字符序列。字符串的最大长度是字符阵列的最大长度。从理论上讲,INT类型的最大最大长度,即2147483647。实际上,可以获得的最大值小于理论最大值。
就性能而言,19main()方法基本上与其他方法相同。它可以重新加载。它被称为,继承,隐藏,也可以使用类型参数抛出异常。我们还可以在程序中反射调用主要方法(或其他方法)。
20当两个或多个方法的名称相同,并且参数列表不同时,这些方法会构成重负载。可以根据与参数数量相对应的参数列表的类型来区分重负载方法。但是,参数名称的名称,返回方法的方法,方法的方法和类型参数不能用作区分重载方法的条件。
21选择哪种方法是订单,顺序为:
22重写和隐藏之间的本质区别是:重写是动态绑定。根据在运行时指向对象的对象的实际类型,确定相关类的成员。隐藏是静态绑定,并且根据编译过程中引用的静态类型确定呼叫的相关成员。换句话说,如果子类重写父类方法,则当父类的引用指向子类对象时,sub -class方法由父类调用。如果孩子类隐藏了父类方法(成员变量),则父类仍在调用父类方法(成员变量)。
23构造函数被递归地称为。子类的构造函数将调用父类构造函数,直到调用对象类的构造函数为止。
24个构造函数不会创建对象。在创建新对象时,系统调用构造函数。为了顺序,首先创建一个对象,然后调用构造函数。 (构造函数不会产生新对象)
25默认构造函数不是空的。构造函数将调用父级构造函数,并可以执行实例的成员变量的初始化。因此,默认的构造函数至少调用父构造函数,并且可能会更有效,包括用于声明初始化和实例初始化块的实例变量,这些块在构造函数中执行。
26当操作员操作员的两个操作类型是基本数据类型,而另一个是将包装类的类型参考类型转换为基本数据类型,然后比较了该包装类型两种基本数据类型。值是否相等。
27在Java中,数组也是类,数组语句的参考变量指向数组类型的对象。所有数组都继承对象类,并实现Java.lang.cloble和Java.io.serializable接口。数组的成员包括变量长度(隐藏存在)和从对象类继承的成员。可克隆和可序列化是两个标记的接口,这两个接口中没有成员。
28个接口是一个完全抽象的设计,无法本能。由新创建的借口类型实际创建了一个匿名类,该类实现了接口类型。
29如果两个接口声明相同的变量x,当某个接口同时继承了这两个接口,或者是这两个接口的某种类型的实现,则将通过简单的名称访问来编译汇编错误。
30如果两个接口中的同名M的方法以及两种方法不构成重载,那么当某个接口可以同时继承这两个接口,或者某些类型可以继承这两个接口,时间,必须有一个必须存在的。该方法的签名使两个M方法的签名的签名同时签名,并且就方法的返回类型而言,必须有一种类型允许此类型返回两种类型的替换类型M方法同时。