当前位置: 技术问答>java相关
★几个Java语法上面的问题★
来源: 互联网 发布时间:2015-08-06
本文导语: 我这有几个问题不太明白,大虾们能不能抽点时间帮我解释一下? 1.Code must be written to cause a frame to close on selecting the system close menu 。 True or Not ? (Im my opinion,code need be written to this but not m...
我这有几个问题不太明白,大虾们能不能抽点时间帮我解释一下?
1.Code must be written to cause a frame to close on selecting the system close menu 。
True or Not ?
(Im my opinion,code need be written to this but not must be written to this !)
2.In the following code, which is the earliest statement, where the object originally held in e, may be garbage collected:
1.public class Test {
2. public static void main (String args []) {
3. Employee e = new Employee("Bob", 48);
4. e.calculatePay();
5. System.out.println(e.printDetails());
6. e = null;
7. e = new Employee("Denise", 36);
8. e.calculatePay();
9. System.out.println(e.printDetails());
10. }
11.}
The answer is line 7!
对于垃圾回收的概念,我有点不太明白,老师您能不能给我讲一下?
比如:局部变量引用的对象何时适用于被收集为无用信息?
什么是最终化的工作机制?
gc()方法,finalize()方法到底是怎么工作的?
3.What is the result of executing the following fragment of code:
boolean flag = false;
if (flag = true) {
System.out.println("true");
}else{
System.out.println("false");
}
The output is "true"! Why?
我觉得,flag = true应该是个错误的赋值,因为在if()中,应该是布尔值啊!
但是,这段程序运行后,输出是true,我不太明白。
4.Which methods may cause a thread to stop executing?
The answer is stop() , and sleep(),yield(),wait().
Last 3 are pause a thread , not stop ! Why ?
5.类的名字也能做变量名吗?如Integer.(编译没有错,但是……)
6.Select the correct statements regarding the following piece of code.
File f = new File("c:\large.txt");
这段代码能够在UNIX下编译吗?(路径分隔符不对)
答案是能够!
1.Code must be written to cause a frame to close on selecting the system close menu 。
True or Not ?
(Im my opinion,code need be written to this but not must be written to this !)
2.In the following code, which is the earliest statement, where the object originally held in e, may be garbage collected:
1.public class Test {
2. public static void main (String args []) {
3. Employee e = new Employee("Bob", 48);
4. e.calculatePay();
5. System.out.println(e.printDetails());
6. e = null;
7. e = new Employee("Denise", 36);
8. e.calculatePay();
9. System.out.println(e.printDetails());
10. }
11.}
The answer is line 7!
对于垃圾回收的概念,我有点不太明白,老师您能不能给我讲一下?
比如:局部变量引用的对象何时适用于被收集为无用信息?
什么是最终化的工作机制?
gc()方法,finalize()方法到底是怎么工作的?
3.What is the result of executing the following fragment of code:
boolean flag = false;
if (flag = true) {
System.out.println("true");
}else{
System.out.println("false");
}
The output is "true"! Why?
我觉得,flag = true应该是个错误的赋值,因为在if()中,应该是布尔值啊!
但是,这段程序运行后,输出是true,我不太明白。
4.Which methods may cause a thread to stop executing?
The answer is stop() , and sleep(),yield(),wait().
Last 3 are pause a thread , not stop ! Why ?
5.类的名字也能做变量名吗?如Integer.(编译没有错,但是……)
6.Select the correct statements regarding the following piece of code.
File f = new File("c:\large.txt");
这段代码能够在UNIX下编译吗?(路径分隔符不对)
答案是能够!
|
1. no i think
2.一个对象可以被多个引用来引用 当没有引用来引用它的时候 它可以被收集
gc()建议虚拟机收集无用的对象 finalize()在对象被收集前执行
3.flag= true 这个赋值表达式的值为 和即 a= 5的值为 5
4.后三个只是让线程睡眠一段时间或暂时退出运行或等待它需要的资源(分别用在不同的场合中),并不是让线程停止
5。可以 但Integer在java.lang包里 而java.lang包又是自动import的 所以会有冲突 不信你换成Button试试 一定没问题
6。能够 但读写时会找不到文件 呵呵 可移植不是万能的
2.一个对象可以被多个引用来引用 当没有引用来引用它的时候 它可以被收集
gc()建议虚拟机收集无用的对象 finalize()在对象被收集前执行
3.flag= true 这个赋值表达式的值为 和即 a= 5的值为 5
4.后三个只是让线程睡眠一段时间或暂时退出运行或等待它需要的资源(分别用在不同的场合中),并不是让线程停止
5。可以 但Integer在java.lang包里 而java.lang包又是自动import的 所以会有冲突 不信你换成Button试试 一定没问题
6。能够 但读写时会找不到文件 呵呵 可移植不是万能的
|
只想说两点:
3.每个表达式都是有值的,而 flag= true 这个赋值表达式的值恰恰为 true ,所以会得到 The output is "true"! 。当然了一般不建议在if里用赋值表达式的值,那容易使程序员犯逻辑错误(而非语法错误,因为能通过编译)。有一种建议的方式:true == flag 来作为逻辑表达式,这样当误写为true = flag 时就能被编译器检查到。
5.“类的名字也能做变量名吗?如Integer.(编译没有错,但是……)”,并不是类名能做变量名,而是可以通过类名来访问类的可访问的(一般是public的)静态方法或静态域(static 的)。
3.每个表达式都是有值的,而 flag= true 这个赋值表达式的值恰恰为 true ,所以会得到 The output is "true"! 。当然了一般不建议在if里用赋值表达式的值,那容易使程序员犯逻辑错误(而非语法错误,因为能通过编译)。有一种建议的方式:true == flag 来作为逻辑表达式,这样当误写为true = flag 时就能被编译器检查到。
5.“类的名字也能做变量名吗?如Integer.(编译没有错,但是……)”,并不是类名能做变量名,而是可以通过类名来访问类的可访问的(一般是public的)静态方法或静态域(static 的)。
|
1.不一定,看自己想怎么编写了
2。局部变量的生命期就是在它所在的那个{}内,执行完后就死去了
至于java的垃圾收集,你不要也搞在这里面去理解,java的垃圾收集,是一个很低级的进程,优先级很底,所以你有时为了提高优先级,可以手动杀除
3。看好了flag=true 不是flag==true,所以是flag先为true,然后在判断
我认为这是很简洁高效的写法
4。没有什么不可理解的,你现在就把他们记住
5。在java中,只有类与基本变量,有时候必须要类,所以基本变量必须变成类,所以Integer对应int 等等
6。你如果想在unix下编译,那我劝你去查api,里边有专门的delimiter常量,是自动根据os来转变的;或用条件编译;或自己去修改jdk的某个properties文件,我记得是有这个文件的
2。局部变量的生命期就是在它所在的那个{}内,执行完后就死去了
至于java的垃圾收集,你不要也搞在这里面去理解,java的垃圾收集,是一个很低级的进程,优先级很底,所以你有时为了提高优先级,可以手动杀除
3。看好了flag=true 不是flag==true,所以是flag先为true,然后在判断
我认为这是很简洁高效的写法
4。没有什么不可理解的,你现在就把他们记住
5。在java中,只有类与基本变量,有时候必须要类,所以基本变量必须变成类,所以Integer对应int 等等
6。你如果想在unix下编译,那我劝你去查api,里边有专门的delimiter常量,是自动根据os来转变的;或用条件编译;或自己去修改jdk的某个properties文件,我记得是有这个文件的