• java练习题


    一.

    分析程序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

     

    为什么会有这样的输出结果?

    因为输出的是字符串,所以前一个分别输出两个字符串,而后一个表示用字符串输出两个整形的和。

  • 相关阅读:
    中国式沟通
    10 表连接优化
    09 优化数据访问
    07 SQL优化技术
    06 执行计划
    04 系统和对象统计信息
    03 找出性能问题
    02 key concept
    Xpert 调优
    JavaWeb_常用功能_01_文件上传
  • 原文地址:https://www.cnblogs.com/xiaosongbiog/p/4859981.html
Copyright © 2020-2023  润新知