zoukankan      html  css  js  c++  java
  • 01.JAVA语言基础相关解答

    1.首先,第一个问题谈到一个java类文件中真的只能有一个公有类吗?并给出了以下代码。可以看出这个程序里有两个public类:                                                           

     我进行了不同的调试:

                                                                                                            

    可以看出 如果只在第一个public类里面定义实体,或者两个都不定义并没有报错且程序可以运行。确实,每个编译单元(文件)只能有一个public 类。这么做的意思是,每个编
    译单元只能有一个公开的接口,而这个接口就由其public 类来表示。如果能有多个public类,程序就无法识别该从哪里导入程序了。上面这个程序 出现了主类 和一般公共类,第二个类为一般公共类。主要是分清公共类和主类,主类及主函数。ava类文件中并非只能有一个公有类,可以有多个内部类,它可以是共有的。

    其中只能有一个public表示主类,其余的可以表示公共类,但要注意语法。

    2   .                                                   .

                

    编译不能通过。于是我进行了下面的编译:

                                                                       答案如图。

    3.

    static关键字,告知编译器main函数是一个静态函数。也就是说main函数中的代码是存储在静态存储区的,即当定义了类以后这段代码就已经存在了。如果main()方法没有使用static修饰符,那么编译不会出错,但是如果你试图执行该程序将会报错,提示main()方法不存在。因为包含main()的类并没有实例化(即没有这个类的对象),所以其main()方法也不会存。而使用static修饰符则表示该方法是静态的,不需要实例化即可使用。

    4.

                       .

                                                                                                                                                                                                                                                                                     

    5.                                 

    int  short long byte 表示整数,其值是精确的,而float double均为浮点型,表示近似值,所以当整型转换成浮点类型的近似值会有精度损失。而ASCLL都是整数,所以char转换成整型不会有精度损失。

    6          .                

     

    .                                                               

    因为java中十进制与二进制转化时存在问题,double类型的数值占   用64bit,即64个二进制数,除去最高位表示正负符号的位,在最低   位上一定会与实际数据存在误差,简单来说就是我们给出的数值,在   大多数情况下需要比64bit更多的位数才能准确表示出来(甚至是需   要无穷多位),而double类型的数值只有64bit,后面舍去的位数一定会带来误差,无法得到“数学上精确”的结果。

    7. 

     答:在使用BigDecimal(double)构造器时,使用不恰当会出现精确的误差,二进制浮点数的局限性产生类似上述的问题。

     8.

    涉及代码:

    public class Test {

    public static void main(String[] args) {

    int X=100;

    int Y=200;

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

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

    }运行结果:

    当"X+Y="在前时,默认的把int型X,Y转化为String型,"X+Y="使编译器认为X,Y是String型的了,System.out.println()本身的参数默认为String型,遇到这种情况默认了转化,产生了如此结果,而第二个就是简单的输出,没有让计算器产生“误解”。

  • 相关阅读:
    Jmeter测试webservice服务
    【转】webservice 测试地址
    ADB(Android Debug Bridge)小结
    Access computer files on iPad without using iTunes.
    ياخشىمۇ سىز
    网络威胁实时地图(CyberThread Real-time Map)
    π
    基于网络爬虫的小湖知识图谱系统 测试心得
    第一次迭代开发心得
    项目数据库设计心得
  • 原文地址:https://www.cnblogs.com/mm20/p/7630338.html
Copyright © 2011-2022 走看看