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的值。

posted @ 2016-10-07 22:20  Java民工陆小凤  阅读(575)  评论(0编辑  收藏  举报