02课堂问题整理

一、仔细阅读示例: 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};

}

运行结果:false  false  true  SMALL  MEDIUM  LARGE

结论:①枚举类型是引用类型。②枚举不属于原始数据类型,它的每个具体值都引用一个特定的对象。相同的值则引用同一个对象。③对于枚举类型的变量,“==”和equals()方法执行的结果是等价的。

二、原码就是符号位加上真值的绝对值,即用第一位表示符号,其余位表示值。反码的表示方法是:正数的反码是其本身,负数的反码是在其原码的基础上,符号位不变,其余各个位取反。补码的表示方法是:正数的补码就是其本身,负数的补码是在其原码的基础上,符号位不变,其余各位取反,最后+1。

三、 Java变量遵循“同名变量的屏蔽原则”,请课后阅读相关资料弄清楚相关知识,然后自己编写一些测试代码。

public class CeShi {

int a=1;

public static void main(String agrs[])

{

int a=2;

int i=1;

if(i==1)

{

a=3;

System.out.println(a);

}

System.out.println(a);

}

}

测试结果:3 3

四、查查Java中每个数据类型所占的位数,和表示数值的范围,你能得出什么结论?

Byte 8位带符号整数 -128到127之间的任意整数;Short 16位无符号整数 -32768~32767之间的任意整数 ;Int 32位带符号整数 -2^31到2^31-1之间的任意整数 ;Long 64位带符号整数 -2^63到2^63-1之间的任意整数 ;Float 32位单精度浮点数;Double 64位双精度浮点数。

五、请运行以下代码(TestDouble.java)

public class TestDouble {

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));

}

}

运行结果:

0.05 + 0.01 = 0.060000000000000005

1.0 - 0.42 = 0.5800000000000001

4.015 * 100 = 401.49999999999994

123.3 / 100 = 1.2329999999999999

结论:使用double类型的数值进行计算, 其结果是不精确的。

六、为什么double类型的数值进行运算得不到“数学上精确”的结果?

double类型的数值占用64bit,即64个二进制数,除去最高位表示正负符号的位,在最低位上一定会与实际数据存在误差。

七、以下代码的输出结果是什么?为什么会有这样的输出结果?

int X=100;

int Y=200;

System.out.println("X+Y="+X+Y);

System.out.println(X+Y+"=X+Y");

输出X+Y=100200   300=X+Y

从左至右的运算顺序。

时间: 2024-08-07 05:27:30

02课堂问题整理的相关文章

04课堂问题整理

04课堂问题整理 1.请依据代码的输出结果,自行总结Java字段初始化的规律. public class InitializeBlockDemo { public static void main(String[] args) { InitializeBlockClass obj=new InitializeBlockClass(); System.out.println(obj.field); obj=new InitializeBlockClass(300); System.out.prin

08课堂问题整理

作业归档8 多态 1.运行下列测试代码: package demo; public class TestInstanceof { public static void main(String[] args) { //声明hello时使用Object类,则hello的编译类型是Object,Object是所有类的父类 //但hello变量的实际类型是String Object hello = "Hello"; //String是Object类的子类,所以返回true. System.ou

1109课堂内容整理

选择列表菜单, 应该多注意一下列表, 菜单的选择, 一个不能选择size, 另一个可以, 一个是多行输入文本的样式, 一个是下拉列表 代表多选, multiple="MULTIPLE" 在网页中嵌入一个新的网页<iframe height="300" width="500" src="Untitled-2.html">Untitled-2</iframe> <frameset></fr

字符串及课堂例子整理

编程思路:通过参数传入要加密的字符.凯撒密码器只是通过移动的位数,这里不妨通过命令行参数传入.由于移动的位数为整数,因此使用Integer.parseInt( )方法进行了转换.由于字母表中共26个字符,所以移位前先将移动的位数(key)和26取模.由于Java中字符和整型可自动转换,因此将字符加上一个正整数即代表在字母表中右移多少位.如果移动的位数是负值,则代表在字母表中左移多少位.就得出来了. 编程流程图 : 加密方法: 实验代码: import java.util.Scanner; pub

8086汇编——课堂笔记整理5

JMP(无条件跳转) JMP SHORT OPR(段内跳转)(1byte)(+127~-128) JMP OPR(near jump)(2byte) JMP FAR PTR OPR(段间)(FAR类型,PTR强制类型转换) 标签内: 跳转结束 JMP DONE e.g.1 A word array named ARRAY,N elements,the number of positive  in  DI register,the number of 0 in SI register,the nu

接口与继承课堂例子整理

public class ke { /** * @param args */ public static void main(String[] args) { System.out.println(new A()); } } class A{} [email protected]类的主类

03课堂问题整理

1.分析以下代码,方法square的定义写了static,如果去掉static,就会报错,为什么呢? public class SquareIntTest { public static void main(String[] args) { int result; for (int x = 1; x <= 10; x++) { result = square(x); System.out.println("The square of " + x + " is "

8086汇编——课堂笔记整理4

Logic instructions x XOR 0=0  x XOR 1=x各位取反 x AND 0=0  x AND 1=x x OR 0=x    x OR 1=1 1.ASCII->integer (1)-30H   (2)AND 0FH 2.integer->ASCII (1)+30H  (2)OR 30H 3.A~Z  a~z 41H     61H TEST TEST OPR1,OPR2  :AND OPR1,OPR2,OPR1的data没有改变,改变ZF 循环移位:最快方法计算

Android——数据存储(课堂代码整理:SharedPreferences存储和手机内部文件存储)

layout文件: 1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 xmlns:tools="http://schemas.android.com/tools" 4 android:layout_width="ma