1. 比较
a) 1L <<35;
b) 1<<35;
c) 1<<4
的大小?
2. Class Student{
private String name;public Boolean nameDuplicate(Student student){
if(this.name == student.name){
return true;
}else return false;
}
}
问nameDuplicate方法中能否直接调用student的name私有字段?
3. short 类型需要几个字节?
4. 双精度指的是什么?精度有多少?
5. 三个特殊的浮点数是什么?
6. 如何判断一个变量是数字?
7. goto功能如何实现?
8. 一个源文件中public类数量是否有限制?
9. 是否存在私有类?
10. 有没有一种情况可以访问另一个类的私有字段?
11. 是否可以定义与构造器同名的方法?
12. Java的参数传递是哪种?传值,传地址,基本数据类型传值、对象传地址?
a) 通过Java参数传递,是否可以改变基本数据类型的值?
b) 是否可以改变对象的状态?
c) 是否可以创建对象?
13. 只写一个类不写main方法,能否像控制台输出“Hello World”。
14. Java程序对final实例字段有何要求?
15. 如何利用Java反射机制创建一个“实例化时需要参数的”对象?
16. protected的实例字段的可见范围?
17. 深度克隆和浅克隆的区别?
18. 何谓方法的隐式参数和显示参数?
19. Date类跟GoreignCalendar类的关键区别?String和StringBuffer?
20. 如何编写判断两个对象的方法?
a) 1L <<35;
b) 1<<35;
c) 1<<4
的大小?
2. Class Student{
private String name;public Boolean nameDuplicate(Student student){
if(this.name == student.name){
return true;
}else return false;
}
}
问nameDuplicate方法中能否直接调用student的name私有字段?
3. short 类型需要几个字节?
4. 双精度指的是什么?精度有多少?
5. 三个特殊的浮点数是什么?
6. 如何判断一个变量是数字?
7. goto功能如何实现?
8. 一个源文件中public类数量是否有限制?
9. 是否存在私有类?
10. 有没有一种情况可以访问另一个类的私有字段?
11. 是否可以定义与构造器同名的方法?
12. Java的参数传递是哪种?传值,传地址,基本数据类型传值、对象传地址?
a) 通过Java参数传递,是否可以改变基本数据类型的值?
b) 是否可以改变对象的状态?
c) 是否可以创建对象?
13. 只写一个类不写main方法,能否像控制台输出“Hello World”。
14. Java程序对final实例字段有何要求?
15. 如何利用Java反射机制创建一个“实例化时需要参数的”对象?
16. protected的实例字段的可见范围?
17. 深度克隆和浅克隆的区别?
18. 何谓方法的隐式参数和显示参数?
19. Date类跟GoreignCalendar类的关键区别?String和StringBuffer?
20. 如何编写判断两个对象的方法?
比如这道:
双精度指的是什么?精度有多少? 谁记这个啊? 大学女生才有可能在这个条目下划红线.我都不是做Java的人,答对你这些问题的一半也觉得很有把握,但是我觉得答对全部的人,也未必就说明问题,因为这些题目不怎么样.
这个我没看懂,没有main怎么执行呢?
放在静态方法里 然后system.exit(0)? 好像是这样 括号里有没有0忘了
static {
System.out.print("no main");
System.exit(0);
}
}
哈哈,记住这些是不行的,关键要吃透,就比如写一个没有main还能跑的java application一样
我们的口号是:学习java,从《java核心技术》开始
核心技术写的很细,要看很多遍的。
今天是清明...你还是别拜我了...
}
用 java 5的动态代理也可以,不过复杂多了! 呵呵!
4. 双精度指的是什么?精度有多少? :double类型,精度:8 -1.7E308~1.7E308
5. 三个特殊的浮点数是什么? :不知道
6. 如何判断一个变量是数字? :好象在lang包里有个方法可以判断
7. goto功能如何实现? :goto是关键字可以用break label实现goto的功能
8. 一个源文件中public类数量是否有限制? :不知道
9. 是否存在私有类? :有,内部类就是
10. 有没有一种情况可以访问另一个类的私有字段? :给它个PUBLIC 的GET方法
11. 是否可以定义与构造器同名的方法? :这个到没试过
12. Java的参数传递是哪种?传值,传地址,基本数据类型传值、对象传地址? :值传递
a) 通过Java参数传递,是否可以改变基本数据类型的值? :不可以吧
b) 是否可以改变对象的状态? :不可以
c) 是否可以创建对象? :可以
13. 只写一个类不写main方法,能否像控制台输出“Hello World”。 :JSP就可以
14. Java程序对final实例字段有何要求? :必须初始化
15. 如何利用Java反射机制创建一个“实例化时需要参数的”对象? :不知道
16. protected的实例字段的可见范围? :继承的可以访问
17. 深度克隆和浅克隆的区别? :听说过这个词,但不清楚
18. 何谓方法的隐式参数和显示参数? :是不是用THIS调用出来是前者,反之是后者
19. Date类跟GoreignCalendar类的关键区别?String和StringBuffer? :GregorianCalendar 是
Calendar 的一个具体子
类提供了世界上大多数国家使用的标准日历系。
20. 如何编写判断两个对象的方法? :用equest方法
以上是我个人的回答,还不知道正不正确,请各位DX多多指教
就是实现方法多了去了
楼主想法很好,可是这些问题还是很浮躁啊,不如直接考编译原理和数据结构好了。从底层(基础知识如数据结构和编译原理)看楼主问的问题都只是表象、细节而已,大部分都不需要记忆,碰到问题的时候知道到哪里找就可以了。
另外我比较感兴趣的是:12. Java的参数传递是哪种?传值,传地址,基本数据类型传值、对象传地址? 我确定一定以及肯定清楚答案,但是我很怀疑楼主也清楚。
15. 如何利用Java反射机制创建一个“实例化时需要参数的”对象? 在反射包中有一个专门的处理构造器的类,只要给定参数模板就可以通过这个构造器类实例化新的对象出来。
a) 1L < <35;
b) 1 < <35;
c) 1 < <4
的大小?
答:a最大。b最小。c中间大。理由:1L<<35等同于1L<<(35%64);1<<35等同于1<<(35%32)即1<<32. Class Student{
private String name; public Boolean nameDuplicate(Student student){
if(this.name == student.name){
return true;
}else return false;
}
}
问nameDuplicate方法中能否直接调用student的name私有字段?
答:当然可以。理由:private是在类的层次而不是对象的层次进行保护的。3. short 类型需要几个字节?
答:2个。理由:JAVA中就这么规定的。
4. 双精度指的是什么?精度有多少?
答:double类型,保证15位有效数字的精度。5. 三个特殊的浮点数是什么?
答:正无穷Double.POSITIVE_INFINITY,负无穷Double.NEGATIVE_INFINITY ,保持 double 类型的非数字值Double.NaN
6. 如何判断一个变量是数字?
答:若是判断一个字符串变量vs是不是整数值:可用:
try{
int v = Integer.parseInt(vs);
}
catch(NumberFormatException e){
System.out.println("不是数值。");
}
说明:或者使用“正则表达式”亦可。
7. goto功能如何实现?
答:使用带标号的break语句。如:break label 实现goto的功能。
理由:JAVA中已取消了goto语句(但保留了goto这个保留字。)goto语句存在的价值是从嵌套较深的循环中一下子跳出来。
8. 一个源文件中public类数量是否有限制?
答:当然有。只能有一个。
理由:JAVA源程序取名时,扩展名是 .java,但文件名必须与public类的类名相同。故最多只能定义一个(最少0个。)。
若没有public类则文件名可从源程序中的类名随便取一个来用。9. 是否存在私有类?
答:如:对内部类的定义。
10. 有没有一种情况可以访问另一个类的私有字段?
答:当然可以。典型情况:非static型内部类就可以访问外部类的一切成员。(含:private型)这也是内部类存在的价值之一。
11. 是否可以定义与构造器同名的方法?
答:当然可以。12. Java的参数传递是哪种?传值,传地址,基本数据类型传值、对象传地址?
答:值传递机制
a) 通过Java参数传递,是否可以改变基本数据类型的值?
答:不能。 理由:值传递机制b) 是否可以改变对象的状态?
答:可以。 理由:对象的状态是由其数据成员表达的。而数据成员的值是可以用方法来修改的。
c) 是否可以创建对象?
答:可以。
13. 只写一个类不写main方法,能否像控制台输出“Hello World”。
答:当然可以。理由:用类的初始化块 static{ System.out.println("Hello World");}14. Java程序对final实例字段有何要求?
答: 一定要初始化。最好在定义的同时就进行初始化。
15. 如何利用Java反射机制创建一个“实例化时需要参数的”对象?
答:若一个类MyClass定义了一个带有int类型参数的构造器:
public MyClass(int i)
{...}
则用反射机制创建一个“实例化时需要参数的”对象如下:
Class cls = Class.forName("MyClass");
Constructor cl= cls.getConstructor(int.class);
MyClass t12=(MyClass)cl.newInstance(20);
16. protected的实例字段的可见范围?
答:子类或同一个包。 17. 深度克隆和浅克隆的区别?
答:浅克隆只复制对象自身的二进制位图。源对象与克隆产生的对象都引用相同的其它资源。
深度克隆不仅是复制对象自身,而且源对象所引用的其它对象(或资源)都要递归地进行克隆复制。
18. 何谓方法的隐式参数和显示参数?
答:this是隐含传递给对象的方法的(类方法是不隐含传递的)。显式参数:程序员自己明确定义的方法参数。
19. Date类跟GoreignCalendar类的关键区别?String和StringBuffer?
答:1)Date类跟GoreignCalendar类的关键区别是:国际化。Date类不易国际化。而GregorianCalendar 是
Calendar 的一个具体子类,提供了世界上大多数国家使用的标准日历系统。
2)String和StringBuffer:String是一个字符串常量。可能产生修改串的操作都会生成一个新的String对象。
而:StringBuffer是可以进行插入、删除、修改等操作,都是在自身上进行的。不产生新的StringBuffer对象。
20. 如何编写判断两个对象的方法?
答:obj1.equals(obj2)
答:若是判断一个字符串变量vs是不是整数值:可用:
try{
int v = Integer.parseInt(vs);
}
catch(NumberFormatException e){
System.out.println("不是数值。");
}
说明:或者使用“正则表达式”亦可。
c) 是否可以创建对象?
答:可以。
19. Date类跟GoreignCalendar类的关键区别?String和StringBuffer?
答:1)Date类跟GoreignCalendar类的关键区别是:国际化。Date类不易国际化。而GregorianCalendar 是
Calendar 的一个具体子类,提供了世界上大多数国家使用的标准日历系统。
2)String和StringBuffer:String是一个字符串常量。可能产生修改串的操作都会生成一个新的String对象。
而:StringBuffer是可以进行插入、删除、修改等操作,都是在自身上进行的。不产生新的StringBuffer对象。
20. 如何编写判断两个对象的方法?
答:obj1.equals(obj2) 除了以上几个,都比较准确。
答:可以。 不一定可以。若类的构造器定义为private呢?
不对。即使定义为private,还是不能阻止在本类自身中按需要再去创建对象啊。
我觉得这个无法实现 goto是随意跳转 break 或continue能跳转到的位置都是有限的
话不能这么讲, 有的时候用goto, 代码反而会简洁, 那这个时候就该用goto.
麻烦你告诉我这种用break continue如何实现 int[][] num=new int[10][10];
num[3][2]=432;
num[3][8]=54;
num[2][6]=83;
num[2][9]=792;
int i,j,k;//还有N多
for(i=0;i<10;i++){
aa:
if(num[i][5]==0&&num[i][7]==0){
num[i][5]=234;
num[i][7]=395;
}
}
for(j=0;j<10;j++){
bb:
if(num[j][6]==0&&num[j][8]==0){
num[j][6]=425;
num[j][8]=624;
break;
}else{
num[i][5]=0;
num[i][7]=0;
i++;
goto aa;
}
}
for(k=0;k<10;k++){
cc:
if(num[k][3]==0&&num[4][k]==0){
num[k][3]=52;
num[4][k]=974;
break;
}else{
num[j][6]=0;
num[j][8]=0;
j++;
goto bb;
}
}
……………………
num[3][2]=432;
num[3][8]=54;
num[2][6]=83;
num[2][9]=792;
int i,j,k;
for(i=0;i<10;i++){
aa:
if(num[i][5]==0&&num[i][7]==0){
num[i][5]=234;
num[i][7]=395;
}
}
for(j=0;j<10;j++){
bb:
if(num[j][6]==0&&num[j][8]==0){
num[j][6]=425;
num[j][8]=624;
break;
}
if(j==9){
num[i][5]=0;
num[i][7]=0;
i++;j=0;
goto aa;
}
}
for(k=0;k<10;k++){
cc:
if(num[k][3]==0&&num[4][k]==0){
num[k][3]=52;
num[4][k]=974;
break;
}
if(k==9){
num[j][6]=0;
num[j][8]=0;
j++;k=0;
goto bb;
}
}
对于对象的getter方法(俗称:对象访问器)如果对象的一个field的类型为GoreignCalendar,那么这个访问器的方法应该如何实现?为什么?
10. 有没有一种情况可以访问另一个类的私有字段?
也就这道题有点儿技术含量。
我知道有两种,一种是授予特权(privliage)的方式,我不会写,在网上看到过代码,应该能找得到。
第二种是JNI,在本地代码里可以任意访问。
static{
System.out.println("你好!");
System.exit(0);
}
}
这样也不能向控制台输出数据吧,没main方法怎么执行啊,真是的,只能编译,编译又输出不了数据
从设计上讲,访问器要返回不可变对象,否则使用访问器的客户获得了GoreignCalendar以及StringBuffer这样的对象的句柄后,就可以不用通过setter(设置器)就可以改变包含GoreignCalendar类型field的对象的状态,相当于打破了封装。这个道理跟J2EE1.4里面的客户端可以获得EJBObject(EJB Bean代理)的效果是类似的。大家知道String是不可变的,是单独放在常量池中维护的。加入在程序中写道:String x = "Hello";
String y = "Hello";那么(x == y)表达式将为真。因为由于常量池的管理,使得变量x和y都指向常量池中的“Hello”对象。如果我们返回了这样的对象,即使调用者更改了返回值,也没有更改被调用对象的状态。所以从设计上讲,关键的差别在于,StringBuffer和GoreignCalendar可变,而String和Date不可变.
一样不懂设计!所以请新手注重基础,注重设计!
1)自反性:对于任何非空引用x, x.equals(x)将返回true;
2)对称性:对于任何引用x和y,当且仅当y.equals(x)返回true时,x.equals(y)返回true;
3)传递性:对于任何引用x、y和z,如果x.equals(y)返回true并且,y.equals(z)也返回true,那么x.equals(z)应该返回true;
4)一致性:如果x和y引用的对象没有改变,那么x.equals(y)的重复调用应该返回统一结果;
5)对任何非空引用x,x.equals(null)应该返回false.
谁来归纳一下所有的正确答案,能总结对的,我就结贴加分了,虽然没多少分!
a) 1L < <35;
b) 1 < <35;
c) 1 < <4
的大小? a > c > b
2. Class Student{
private String name; public Boolean nameDuplicate(Student student){
if(this.name == student.name){
return true;
}else return false;
}
}
问nameDuplicate方法中能否直接调用student的name私有字段? 可以。(ps. 这题有点弱)3. short 类型需要几个字节? 2个。4. 双精度指的是什么?精度有多少? 浮点数由符号位+阶码+尾数组成,浮点数的精度是由尾数的位数决定的,可以通过增加浮点数尾数的位数来提升精度。java的float型是32位,布局是1+8+23,而double型是64位,布局是1+11+52,尾数位数增加了2倍多,因此叫双精度。5. 三个特殊的浮点数是什么?Double.POSITIVE_INFINITY,Double.NEGATIVE_INFINITY,Double.NaN
6. 如何判断一个变量是数字?这题不好答。
如果一个简单变量是数字,声明的时候我就知道了,而且它永远是数字,如果我要把它当作别的什么,编译器不允许,所以我永远知道它是数字,不存在判断。
如果要判断一个Object型的变量是否是Integer,Byte,Short,Float或Double中的一种,用o instanceof Number来判断即可。
如果是判断一个String是否是数字格式,用正则表达式来判断。或者用parseXXX系列函数转换,再通过捕获异常来判断。
7. goto功能如何实现? 通过分支结构结合label来实现。8. 一个源文件中public类数量是否有限制?有,限制为一个。(这题也有点弱)
9. 是否存在私有类?存在。
10. 有没有一种情况可以访问另一个类的私有字段?有。反射。
11. 是否可以定义与构造器同名的方法?可以。12. Java的参数传递是哪种?传值,传地址,基本数据类型传值、对象传地址? 基本数据类型传值、对象传地址。a) 通过Java参数传递,是否可以改变基本数据类型的值?
不可以。
b) 是否可以改变对象的状态?
可以。
c) 是否可以创建对象?
不可以。13. 只写一个类不写main方法,能否像控制台输出“Hello World”。
可以。写在static { }中即可。但是运行不含main方法的类,会抛出异常。14. Java程序对final实例字段有何要求?
必须显式初始化。要么在定义的同时初始化,要么在构造器中,要么在实例初始化块中。但只能初始化一次。15. 如何利用Java反射机制创建一个“实例化时需要参数的”对象?
先获取所有构造器,再分析每个构造器的参数情况,判断所需参数类型,并传入相应类型的值。如下例:
import java.lang.reflect.*;public class Test {
public static void main(String[] args) throws Exception {
Constructor[] constructors = T.class.getConstructors();
for (int i = 0; i < constructors.length; i++) {
Constructor c = constructors[i];
Class[] parameterTypes = c.getParameterTypes();
Object[] parameters = new Object[parameterTypes.length];
for (int j = 0; j < parameters.length; j++) {
if (parameterTypes[j].isPrimitive())
parameters[j] = 0;
else
parameters[j] = new Object();
}
c.newInstance(parameters);
}
}
}class T {
public T() {
System.out.println("T() invoked.");
}
public T(int i) {
System.out.println("T(int i) invoked.");
}
public T(int i, int j) {
System.out.println("T(int i, int j) invoked.");
}
}16. protected的实例字段的可见范围?本包所有类和包外派生类。(这题也有点弱)17. 深度克隆和浅克隆的区别? 浅克隆只克隆当前对象,这样,对于对象类型的成员变量,只有其引用被克隆。
深度克隆不仅克隆当前对象,还对当前对象中所有对象类型成员变量的引用进行递归克隆。18. 何谓方法的隐式参数和显示参数?显式参数是方法签名中标明的参数,由方法的直接调用者传递。隐式参数是运行时由jvm传递的,如this引用。
19. Date类跟GoreignCalendar类的关键区别?String和StringBuffer? 这题不答了。20. 如何编写判断两个对象的方法?
题没看懂,反复念了20遍,还是没看懂。
a)1L < <35;
b)1 < <35;
c)1 < <4
的大小?
答:a最大。b最小。c中间大。理由:1L < <35等同于1L < <(35%64);1 < <35等同于1 < <(35%32)即1 < <3 2.Class Student{
private String name; public Boolean nameDuplicate(Student student){
if(this.name == student.name){
return true;
}else return false;
}
}
问nameDuplicate方法中能否直接调用student的name私有字段?
答:当然可以。理由:private是在类的层次而不是对象的层次进行保护的。 3.short 类型需要几个字节?
答:2个。理由:JAVA中就这么规定的。
4.双精度指的是什么?精度有多少?
答:double类型,保证15位有效数字的精度。 5.三个特殊的浮点数是什么?
答:正无穷Double.POSITIVE_INFINITY,负无穷Double.NEGATIVE_INFINITY ,保持 double 类型的非数字值Double.NaN
6.如何判断一个变量是数字?
[问题有笔误]:如何判断一个double变量是数字
答:使用Double.isNaN(double)方法
7.goto功能如何实现?
答:使用带标号的break语句。如:break label 实现goto的功能。
理由:JAVA中已取消了goto语句(但保留了goto这个保留字。)goto语句存在的价值是从嵌套较深的循环中一下子跳出来。
8.一个源文件中public类数量是否有限制?
答:当然有。只能有一个。
理由:JAVA源程序取名时,扩展名是 .java,但文件名必须与public类的类名相同。故最多只能定义一个(最少0个。)。
若没有public类则文件名可从源程序中的类名随便取一个来用。 9.是否存在私有类?
答:可以定义私有内部类。
10.有没有一种情况可以访问另一个类的私有字段?
答:当然可以。典型情况:非static型内部类就可以访问外部类的一切成员。(含:private型)这也是内部类存在的价值之一。
11.是否可以定义与构造器同名的方法?
答:当然可以。 12.Java的参数传递是哪种?传值,传地址,基本数据类型传值、对象传地址?
答:值传递机制
a)通过Java参数传递,是否可以改变基本数据类型的值?
答:不能。 理由:值传递机制 b)是否可以改变对象的状态?
答:可以。 理由:对象的状态是由其数据成员表达的。而数据成员的值是可以用方法来修改的。
c)是否可以创建对象?
答:不可以。
13.只写一个类不写main方法,能否像控制台输出“Hello World”。
答:当然可以。理由:用类的初始化块 static{ System.out.println("Hello World");} 。如果再加上System.exit(0);就不会打印异常了。14.Java程序对final实例字段有何要求?
答: 一定要初始化。最好在定义的同时就进行初始化。
15.如何利用Java反射机制创建一个“实例化时需要参数的”对象?
答:先获取所有构造器,再分析每个构造器的参数情况,判断所需参数类型,并传入相应类型的值。如下例: Java codeimport java.lang.reflect.*;public class Test {
public static void main(String[] args) throws Exception {
Constructor[] constructors = T.class.getConstructors();
for (int i = 0; i < constructors.length; i++) {
Constructor c = constructors[i];
Class[] parameterTypes = c.getParameterTypes();
Object[] parameters = new Object[parameterTypes.length];
for (int j = 0; j < parameters.length; j++) {
if (parameterTypes[j].isPrimitive())
parameters[j] = 0;
else
parameters[j] = new Object();
}
c.newInstance(parameters);
}
}
}class T {
public T() {
System.out.println("T() invoked.");
}
public T(int i) {
System.out.println("T(int i) invoked.");
}
public T(int i, int j) {
System.out.println("T(int i, int j) invoked.");
}
}16.protected的实例字段的可见范围?
答:子类或同一个包。 17.深度克隆和浅克隆的区别?
答:浅克隆只复制对象自身的二进制位图。源对象与克隆产生的对象都引用相同的其它资源。
深度克隆不仅是复制对象自身,而且源对象所引用的其它对象(或资源)都要递归地进行克隆复制。
18.何谓方法的隐式参数和显示参数?
答:this是隐含传递给对象的方法的(类方法是不隐含传递的)。显式参数:程序员自己明确定义的方法参数。
19.Date类跟GoreignCalendar类的关键区别?String和StringBuffer?
答:从设计上讲,访问器要返回不可变对象,否则使用访问器的客户获得了GoreignCalendar以及StringBuffer这样的对象的句柄后,就可以不用通过setter(设置器)就可以改变包含GoreignCalendar类型field的对象的状态,相当于打破了封装。这个道理跟J2EE1.4里面的客户端可以获得EJBObject(EJB Bean代理)的效果是类似的。
大家知道String是不可变的,是单独放在常量池中维护的。
加入在程序中写道:
String x = "Hello";
String y = "Hello";
那么(x == y)表达式将为真。因为由于常量池的管理,使得变量x和y都指向常量池中的“Hello”对象。
如果我们返回了这样的对象,即使调用者更改了返回值,也没有更改被调用对象的状态。
所以从设计上讲,关键的差别在于,StringBuffer和GoreignCalendar可变,而String和Date不可变 20.如何编写判断两个对象相等的方法?[问题有笔误]
答:
Java 语言规范要求equals方法具有如下性质:
1)自反性:对于任何非空引用x, x.equals(x)将返回true;
2)对称性:对于任何引用x和y,当且仅当y.equals(x)返回true时,x.equals(y)返回true;
3)传递性:对于任何引用x、y和z,如果x.equals(y)返回true并且,y.equals(z)也返回true,那么x.equals(z)应该返回true;
4)一致性:如果x和y引用的对象没有改变,那么x.equals(y)的重复调用应该返回统一结果;
5)对任何非空引用x,x.equals(null)应该返回false.
以上题目都非常基础,但是没有完全答对(仅包括答上的题目)的,再加上题目笔误(实在抱歉),也没有完全说得清楚的!但是有两人打得相对最完整了!
Dan1980
jiangnaisong
虽然搂主一共也没几分,加给你俩每人20分吧
java反射机制我不了解,麻烦高手指点1-2!Thanks!