首页 > 代码库 > JAVA语法基础(课堂ppt问题总结)

JAVA语法基础(课堂ppt问题总结)

一:运行源代码EnumTest.java,分析运行结果。

代码如下:

public class EnumTest {    public static void main(String[] args) {        Size s=Size.SMALL;        Size t=Size.LARGE;        //s和t引用同一个对象?        System.out.println(s==t);  //        //是原始数据类型吗?        System.out.println(s.getClass().isPrimitive());        //从字符串中转换        Size u=Size.valueOf("SMALL");        System.out.println(s==u);  //true        //列出它的所有值        for(Size value:Size.values()){            System.out.println(value);        }    }} enum Size{SMALL,MEDIUM,LARGE};

结果截图:

技术分享

枚举类型(Enumerated Type) 很早就出现在编程语言中,它被用来将一组类似的值包含到一种类型当中。而这种枚举类型的名称则会被定义成独一无二的类型描述符,在这一点上和常量的定义相似。不过相比较常量类型,枚举类型可以为申明的变量提供更大的取值范围。

二:原码,反码,补码的区别辨析

原码就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值,
正数的反码是其本身
负数的反码是在其原码的基础上, 符号位不变,其余各个位取反.
补码的表示方法是:
正数的补码就是其本身
负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1. (即在反码的基础上+1)
示例程序:
public class qq {	/**	 * @param args	 */	public static void main(String[] args) {		// TODO Auto-generated method stub					  System.out.println(0xffffffff);			}	}

 得到结果为-1

java中数据使用的是反码表示的。

 三:通过原始类型的包装类完成类型转换

源代码:

public class qq {    public static void main(String args[]) {        System.out.println("0.05 + 0.01 = " + (0.05 + 0.01));        System.out.println("1.0 - 0.42 = " + (1.0 - 0.42));        System.out.println("4.015 * 100 = " + (4.015 * 100));        System.out.println("123.3 / 100 = " + (123.3 / 100));    }}

 截图:

技术分享

四:Java变量遵循“同名变量的屏蔽原则”


Java变量是有作用域的。如果两个作用域完全不同的变量同名,不会引起冲突。
举一个简单的例子:一班有一个学生叫小明,二班也有一个学生叫小明,在一班和二班分开上课的时候,点名就不会有冲突。
验证代码:
public class qq {	/**	 * @param args	 */	private static int code=12;	public static void main(String[] args) {		// TODO Auto-generated method stub		int code=-10;		System.out.println(code);	}}

 结果截图:

技术分享

五:为什么double类型的数值进行运算得不到“数学上精确”的结果?
这个涉及到二进制与十进制的转换问题。
N进制可以理解为:数值×基数的幂,例如我们熟悉的十进制数123.4=1×10²+2×10+3×(10的0次幂)+4×(10的-1次幂);其它进制的也是同理,例如二进制数11.01=1×2+1×(2的0次幂)+0+1×(2的-2次幂)=十进制的3.25。
double类型的数值占用64bit,即64个二进制数,除去最高位表示正负符号的位,在最低位上一定会与实际数据存在误差(除非实际数据恰好是2的n次方)。
六:java中输出格式
源代码如下:
public class qq {	/**	 * @param args	 */	public static void main(String[] args) {		// TODO Auto-generated method stub		int X=100;		int Y=200;		System.out.println("X+Y="+X+Y);		System.out.println(X+Y+"=X+Y");			}}

 结果截图:

技术分享

因为+X+Y表示只是输出X和Y的值,X+Y表示输出X+Y的值。

JAVA语法基础(课堂ppt问题总结)