java初学问题

2025-06-27 21:51:38
推荐回答(2个)
回答1:

1和2:
本地系统就是本地服务器,本地容器。如果是单机就是你自己的机子
java的变量只有两种:基本变量和引用变量,看你说的情况可能你的书把引用变量说成了本地变量.
所谓基本变量是指这8种:byte,int,long,short,char,boolean,float,double
其余的都是引用变量

3,初始化很简单的比如你例子的:today
初始化可以这样:today=new Date();
//当遇到new运算符的时候,java虚拟机就在内存创建一个Date类的对象,并将这个对象的引用赋给today这个引用变量.

问题二:
1.
System.out.println(Object x)
这是jdk系统内部的一个方法,当然他还有其他的重载方式,例如
System.out.println(int x),System.out.println(long x),
System.out.println(boolean x).....这都是系统定义好的了!

按你的要求我只讨论System.out.println(Object x)
首先你要知道在java类中,所有的类都是Object类的子类,这是默认的,你不必显示的用extends Object来说明他们的继承关系.equals(),hashCode(),wait(),toString()等等方法都定义在这个Object类中.

按sun公司的解释:
该方法会把你的引用变量引用的对象,强制变为Object类的对象,然后使用String类的静态方法valueOf()变为一个字符串,进行打印.

System.out.println(new Date());
你的Date对象传递进去后,就用String.valueOf()进行转变为字符串,所以和先调用toString方法得到的打印结果一样.

2.
请看他们的执行过程:

new Date().toString()
在内存中新建一个Date对象,然后调用toString方法获得它的字符常量串的形式.这时候没有一个引用变量引用新建的Date对象,所以它将会被垃圾收集器收回,这样使用只是要临时使用某个类的某个方法而已,而且这个对象不需要在其他地方使用.

tomorrow=new Date();
在内存中新建一个Date对象,并将对象的引用赋给引用变量tomorrow,这时垃圾收集器不将其收回,因为有tomorrow引用它,它还可以在其他地方通过引用变量tomorrow使用.

tomorrow.toString()
获得tomorrow引用对象的字符串形式.

回答2:

晕哦,不知道,太难了!