zoukankan      html  css  js  c++  java
  • Java语言基本问题整理

    一、课堂动手实验一:

    main()方法的返回值由 void 改为 int ,程序能编译通过吗?能运行吗?

    验证结果:

    二、动手动脑:

    仔细阅读示例: 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

    枚举类型仅适用于JDK 5.0及更新的版本.

    枚举可用于switch语句中。

    枚举不属于原始数据类型,它的每个具体值都引用一个特定的对象。相同的值则引用同一个对象。

    可以使用“==”和equals()方法直接比对枚举变量的值,换句话说,对于枚举类型的变量,“==”和equals()方法执行的结果是等价的。

    三、动手动脑实验:

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

    请通过互联网查找资料,或者是阅读相关计算机教材,解决这个问题。

    提示:

    这个问题,与浮点数在计算机内部的表示方法有关系。可以使用这个知识在搜索引擎中查找相关资料

    java中double类型数据是用64位来表示的,精度肯定是有限的,在需要更高精度的运算过程中,有两种方法可供参考:

    1. 自己用超过64位来表示一个double类型,比如用100个byte[]来表示一个double(800bytes);这样的话,double的加减乘除就需要自己实现一遍了。很多IT公司有这样的面试题。

    2. 用java自带的BigDecimal类可以方便做高精度的运算。(c++中是没有BigDecimal这种方面的类的,所以只能用第一种方法)

    四、动手动脑:

    例:package com;

     

    class Test {

    private static int value=1;

    public static void main(String[] args){

    int value=2;

    System.out.println(value);

    }

    }

    输出结果:2

    五、以下代码输出什么?

    以下代码的输出结果是什么?

    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

    为什么会有这样的输出?

    在语句一中,“+”是连接量;在语句二中,“+”是运算符,进行求和运算。

    六、课后作业

    1、编写一个程序,用户输入两个数,求出其加减乘除,并用消息框显示计算结果。

    源代码:


    import java.util.Scanner;

    import javax.swing.JOptionPane;// import class JOptionPane

    public class Operation {

     public static void main( String args[] ){

            Scanner input=new Scanner(System.in);

            System.out.println("请输入两个整数:");

            double a,b;

            a=input.nextDouble();      //输入第一个数

            b=input.nextDouble();      //输入第二个数

     

            double sum,difference,product,quotient;

            sum=a+b;                   

           difference=a-b;

           product=a*b;

           quotient=a/b;

            //输出对话框显示结果

          JOptionPane.showMessageDialog(

             null, "The sum is " + sum +" "+

                   "The difference is "+ difference +" "+

                "The product is "+product+" "+

                   "The quotient is "+quotient,"Results",

          JOptionPane.PLAIN_MESSAGE );

     System.exit( 0 );

     

     }    

    }

    运行结果:

     

     

     

     

  • 相关阅读:
    ORACLE 查找数据库中有记录的表
    [原]Asp.Net 错误:无法连接到Asp.Net Developement server
    中国移动手机话费查询号码1008611
    动手修改VS2008的解决方案文件,以让VS2005打开它
    [转]飞秋使用说明与常见问题解决方法
    微软发布Fix it 修复Windows 7等系统0day漏洞
    Oracle DECODE 函数应用示例
    [转]C#实现访问网络共享文件夹
    c#保留小数点后位数的方法
    [转]微软紧急修复高危漏洞 30万网民PC已遭攻击
  • 原文地址:https://www.cnblogs.com/cn123456/p/4860221.html
Copyright © 2011-2022 走看看