java一些问题的思考

简介: 1.思考为什么java规定作为程序入口点的main() 方法静态的?在java中,main()方法是java应用程序的入口方法,也就是说,程序在运行的时候,第一个执行的方法就是main()方法,这个方法和其他的方法有很大的不同,比如方法的名字必须是main,方法必须是public static void类型的,方法必须是接受一个字符串数组的参数等。

1.思考

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

在java中,main()方法是java应用程序的入口方法,也就是说,程序在运行的时候,第一个执行的方法就是main()方法,这个方法和其他的方法有很大的不同,比如方法的名字必须是main,方法必须是public static void类型的,方法必须是接受一个字符串数组的参数等。

 因为main()方法是由Java虚拟机调用的,所以必须是public,虚拟机调用的main()方法的时候,不需要产生任何对象,所以main()方法声明为static,且不需要返回值,所以必须声明为void,最终格式如下所示:    public void main(String[] args)

2.变量的作用域

示例

代码:

package Text;

public class Text1 {

private static int value=1;

public static void main(String[] args)

{

    int value=2;

    System.out.println(value);

}

}

结果截图

 

 

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

这个涉及到二进制与十进制的转换问题。
N进制可以理解为:数值×基数的幂,例如我们熟悉的十进制数123.4=1×10²+2×10+3×(10的0次幂)+4×(10的-1次幂);其它进制的也是同理,例如二进制数11.01=1×2+1×(2的0次幂)+0+1×(2的-2次幂)=十进制的3.25。
double类型的数值占用64bit,即64个二进制数,除去最高位表示正负符号的位,在最低位上一定会与实际数据存在误差(除非实际数据恰好是2的n次方)。

举个例子来说,比如要用4bit来表示小数3.26,从高到低位依次对应2的1,0,-1,-2次幂,根据最上面的分析,应当在二进制数11.01(对应十进制的3.25)和11.10(对应十进制的3.5)之间选择。
简单来说就是我们给出的数值,在大多数情况下需要比64bit更多的位数才能准确表示出来(甚至是需要无穷多位),而double类型的数值只有64bit,后面舍去的位数一定会带来误差,无法得到“数学上精确”的结果。

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

              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

这是因为java的输出的可以使变量相加,+号在第一次输出时代表几个变量依次输出,第二次输出代码代表两个变量相加。

目录
相关文章
|
1月前
|
Java 程序员 C++
【Java】Java与C++:比较与对比
【Java】Java与C++:比较与对比
20 0
|
4月前
|
Java 数据库连接 API
Java是什么?
Java是什么?
29 0
|
7月前
|
Java
学JAVA,从现在开始-day03
每日记录自己学习java的心得和体会~
|
10月前
|
Java
Java之“珠穆朗玛峰”
Java之“珠穆朗玛峰”
50 0
|
存储 缓存 运维
JAVA问答12
JAVA问答12
94 0
|
Oracle Java 关系型数据库
什么是java
什么是java
85 0
|
Java
Java常见的坑(二)
你猜上述程序输出的是什么? 是 ABC easy as 123 吗? 你执行了输出操作,你才发现输出的是 ABC easy as [C@6e8cf4c6 ,这么一串丑陋的数字是什么鬼? 实际上我们知道字符串与任何数值的相加都会变为字符串,上述事例也不例外, numbers输出其实实际上是调用了Object.toString()方法,让numbers转变为'[c' + '@' + 无符号的十六进制数。
54 0
1096 大美数(JAVA)
若正整数 N 可以整除它的 4 个不同正因数之和,则称这样的正整数为“大美数”。本题就要求你判断任一给定的正整数是否是“大美数”。
1096 大美数(JAVA)
|
Java
Java - 9 个小技巧让你的 if else 看起来更优雅(二)
Java - 9 个小技巧让你的 if else 看起来更优雅(二)
188 0
|
Java
java NumFormat
-xiaxiede
83 0