码迷,mamicode.com
首页 > 编程语言 > 详细

Java语言基础相关问题

时间:2015-10-02 12:33:58      阅读:230      评论:0      收藏:0      [点我收藏+]

标签:

      有时我会想我什么也不会,编写程序无从下手,再简单的操作也会出现问题等等问题。通过《大道至简》的阅读和老师的讲解我懂得那是应为缺乏自信,正所谓“书山有路勤为径,学海无涯苦作舟”,在编写程序时应找到正确的方法,学会问题的分类和分析问题。应学会自己记录总结,每次安装都应该有详细的总结,在各种环境下尝试自己动手安装,出现问题,应先自行解决,若请教别人,则需详细记录解决的步骤。编程应该掌握四个编程步骤:第一部在写代码之前用自然语言描述设计思路。二部根据设计思路画出程序流程图。第三写伪代码,利用半程序语言和自然语言混合的描述方式,书写解决过程。第四,在编程调试完成后及时总结,汇小集大。

*动手动脑1

问题1:   仔细阅读示例: EnumTest.java,运行它,分析运行结果?

源代码:

public class EnumTest {

    public static void main(String[] args) {

       Size s=Size.SMALL;

       Size t=Size.LARGE;

       //st引用同一个对象? 

       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

问题二:你能得到什么结论?你掌握了枚举类型的基本用法了吗?

枚举类型的常量以字符串的形式顺序储。源代码中st不是原始数据类型。getCLass():取得当前对象所属的Class对象 ;isPrimitive:用来判断指定的Class类是否为一个基本类型;因此s.getClass().isPrimitive()用来判断s是否是基本类型。Size u=Size.valueOf("SMALL");用来转化数据类型。Size.value()可遍历Size中的所有元素。使用“==”和equals()方法直接比对枚举变量的值。

*动手动脑2

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

float double类型主要是为科学计算和工程计算而设计的,他们执行二进制浮点运算,这两种类型在计算机中的储存分为三部分:符号位、指数为、尾数部分。数据以二进制存储在计算机时,会出现无线循环系列,在数据转化中会出现错误。十进制不能准确的表示1/3,同样二进制不能精确的表示1/10

*动手动脑3

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

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

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

语句一输出中“+”连接字面量,计算结果是将XY将两数据连接。

语句二输出中“+”是运算符,对XY求和。

*课后练习:

      阅读相应教材,或者使用互联网搜索引擎,弄清楚反码、补码跟原码这几个概念,然后编写示例程序,对正数、负数进行各种位操作,观察输出结果,与手工计算的结果进行比对,看看Java中的数是采用上述哪种码表示的。

原码:原码就是符号位加上真值的绝对值即用第一位表示符号其余位表示值.

反码:正数:正数的反码与原码相同。负数:负数的反码,符号位为“1”,数值部分按位取反。可见如果一个反码表示的是负数人脑无法直观的看出来它的数值通常要将其转换成原码再计算.

补码:正数的补码就是其本身。负数的补码是在其原码的基础上符号位不变其余各位取反最后+1. (即在反码的基础上+1)。对于负数补码表示方式也是人脑无法直观看出其数值的通常也需要转换成原码在计算其数值.

 

*课后作业1

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 +"\n"+

               "The difference is "+ difference +"\n"+

               "The product is "+product+"\n"+

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

                JOptionPane.PLAIN_MESSAGE );

         System.exit( 0 );

 

   }    

}

运行结果:

技术分享

 技术分享

 

Java语言基础相关问题

标签:

原文地址:http://www.cnblogs.com/ddccc/p/4852059.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!