java练习题
2015-10-08 07:37
344 查看
一.
分析程序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};
运行结果:
结论:可以看出,枚举类型可以定义几种类型,并从中选择其中一种进行赋值。当判断两个赋值是否相同时,输出结果只能是ture或false。当输出value时,需要Size value:Size.values()循环类型的数量的次数。enum Size{SMALL,MEDIUM,LARGE};语句可以写在程序的最后,也可以写在前面,但必须自己引用。枚举的赋值可以有两种表示方法:1.Size s=Size.SMALL; 2.Size t=Size.valueof(“SMALL”)。
二.阅读相应教材,或者使用互联网搜索引擎,弄清楚反码、补码跟原码这几个概念,然后编写示例程序,对正数、负数进行各种位操作,观察输出结果,与手工计算的结果进行比对,看看Java中的数是采用上述哪种码表示的。
反码:机器数的反码可由原码得到。如果机器数是正数,则该机器数的反码与原码一样;如果机器数是负数,则该机器数的反码是对它的原码(符号位除外)各位取反而得到的。设有一数X,则X的反码表示记作〔X〕反。
补码:机器数的补码可由原码得到。如果机器数是正数,则该机器数的补码与原码一样;如果机器数是负数,则该机器数的补码是对它的原码(除符号位外)各位取反,并在未位加1而得到的。设有一数X,则X的补码表示记作〔X〕补。
原码:原码表示法是机器数的一种简单的表示法。其符号位用0表示正号,用:表示负号,数值一般用二进制形式表示。设有一数为x,则原码表示可记作〔x〕原。
三.
Java变量遵循“同名变量的屏蔽原则”,请课后阅读相关资料弄清楚相关知识,然后自己编写一些测试代码,就象本示例一样,有意识地在不同地方定义一些同名变量,看看输出的到底是哪个值。
public class Test1 {
public static int value = 1;
public static void main(String[] args) {
// TODO Auto-generated method stub
int value = 2;
System.out.println(value);
}
}
结果为:2
public class Test1 {
public static int value = 5;
public static void main(String[] args) {
// TODO Auto-generated method stub
int value = 3;
System.out.println(value);
}
}
结果为:3
public class Test1 {
public static int value = 4;
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(value);
}}
结果为:4
得出结论:在函数里面的赋值优先于在函数外赋值,函数外的赋值可以赋给类中的多个函数,如果函数里面没有重复的赋值,那么函数的值为函数外的。
四.
看着这个图,再查查Java中每个数据类型所占的位数,和表示数值的范围,你能得出什么结论?
实线代表无精度损失,虚线代表有精度损失,一般来说在实线两端都是由低精度指向高精度的类型,所占的位数从低到高,范围从小到大,所以可得出,低精度向高精度转化不丢失精度,反之,从高精度传向低精度则会损失。
n 五.以下代码的输出结果是什么?
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
n 为什么会有这样的输出结果?
因为输出的是字符串,所以前一个分别输出两个字符串,而后一个表示用字符串输出两个整形的和。
分析程序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};
运行结果:
结论:可以看出,枚举类型可以定义几种类型,并从中选择其中一种进行赋值。当判断两个赋值是否相同时,输出结果只能是ture或false。当输出value时,需要Size value:Size.values()循环类型的数量的次数。enum Size{SMALL,MEDIUM,LARGE};语句可以写在程序的最后,也可以写在前面,但必须自己引用。枚举的赋值可以有两种表示方法:1.Size s=Size.SMALL; 2.Size t=Size.valueof(“SMALL”)。
二.阅读相应教材,或者使用互联网搜索引擎,弄清楚反码、补码跟原码这几个概念,然后编写示例程序,对正数、负数进行各种位操作,观察输出结果,与手工计算的结果进行比对,看看Java中的数是采用上述哪种码表示的。
反码:机器数的反码可由原码得到。如果机器数是正数,则该机器数的反码与原码一样;如果机器数是负数,则该机器数的反码是对它的原码(符号位除外)各位取反而得到的。设有一数X,则X的反码表示记作〔X〕反。
补码:机器数的补码可由原码得到。如果机器数是正数,则该机器数的补码与原码一样;如果机器数是负数,则该机器数的补码是对它的原码(除符号位外)各位取反,并在未位加1而得到的。设有一数X,则X的补码表示记作〔X〕补。
原码:原码表示法是机器数的一种简单的表示法。其符号位用0表示正号,用:表示负号,数值一般用二进制形式表示。设有一数为x,则原码表示可记作〔x〕原。
三.
Java变量遵循“同名变量的屏蔽原则”,请课后阅读相关资料弄清楚相关知识,然后自己编写一些测试代码,就象本示例一样,有意识地在不同地方定义一些同名变量,看看输出的到底是哪个值。
public class Test1 {
public static int value = 1;
public static void main(String[] args) {
// TODO Auto-generated method stub
int value = 2;
System.out.println(value);
}
}
结果为:2
public class Test1 {
public static int value = 5;
public static void main(String[] args) {
// TODO Auto-generated method stub
int value = 3;
System.out.println(value);
}
}
结果为:3
public class Test1 {
public static int value = 4;
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(value);
}}
结果为:4
得出结论:在函数里面的赋值优先于在函数外赋值,函数外的赋值可以赋给类中的多个函数,如果函数里面没有重复的赋值,那么函数的值为函数外的。
四.
看着这个图,再查查Java中每个数据类型所占的位数,和表示数值的范围,你能得出什么结论?
实线代表无精度损失,虚线代表有精度损失,一般来说在实线两端都是由低精度指向高精度的类型,所占的位数从低到高,范围从小到大,所以可得出,低精度向高精度转化不丢失精度,反之,从高精度传向低精度则会损失。
n 五.以下代码的输出结果是什么?
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
n 为什么会有这样的输出结果?
因为输出的是字符串,所以前一个分别输出两个字符串,而后一个表示用字符串输出两个整形的和。
相关文章推荐
- Java 基本类型 long 的一些使用陷阱
- eclipse 报错 import ... cannot be resolved 处理方法
- java-web-j2e学习建议路线
- 一个牛人给java初学者的建议
- Dalvik VM (DVM) 与Java VM (JVM)之间有哪些区别?
- JAVA部分关键字简析
- Java 身份证工具类
- 对象(含有java.util.Date),集合等转换成json
- 15个易遗忘的Java问题
- Java
- Java开发中的23种设计模式详解(转)
- ElyarAnwar的Java笔记(一)分享是最好的记忆
- Spring入门到精通<一> 依赖注入
- 打包Spring Boot工程
- Axis1,Axis2,Xfire,CXF区别
- java中标签的作用
- java正则表达式 前后查找
- JavaWeb三层结构实例
- java 多线程学习笔记
- Java类加载及变量初始化过程