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

关于java的一些小知识(课程作业02)

时间:2017-10-08 00:54:26      阅读:253      评论:0      收藏:0      [点我收藏+]

标签:局部变量   main   作业02   直接   带来   img   byte   编译器   简单   

1,在java源代码中加空格注释不会影响程序的编译速度。

2,一个java类文件中真的只能有一个公有类吗?

技术分享

技术分享

技术分享

技术分享

 

 技术分享

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

技术分享

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

技术分享

编译出错

技术分享

运行出错

技术分享

改了之后编译没错

技术分享

运行出错

4,为什么java规定作为程序入口点的main()方法是静态的?

main函数其实也是所在类的一个方法,就比如一个类是test,那么该类的main其实就是test.main(String[] args),众所周知如果一个方法不是静态的,则要先实例化该类,比如要这样 test t=new test(); 然后才能调用 test.main(); 而这对于运行一个程序的主函数来说是不现实的,所以比如把main函数定义为static,使test.main()可以直接被调用。

5,

技术分享

技术分享

技术分享

全局与局部变量

6,

技术分享

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

7,

技术分享

技术分享

技术分享

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

8,

技术分享

 

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

9,

代码:

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型,遇到这种情况默认了转化,产生了如此结果,而第二个就是简单的输出,没有让计算器产生“误解”。

关于java的一些小知识(课程作业02)

标签:局部变量   main   作业02   直接   带来   img   byte   编译器   简单   

原文地址:http://www.cnblogs.com/chch157/p/7636275.html

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