java 小知识(转载)

Posted on 2009-11-19 21:58 王之昊 阅读(241) 评论(0)  编辑 收藏 引用
转载自 思念的空间
答案仅共参考。


1.        比较
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.        如何判断一个变量是数字?
答:若是判断一个字符串变量vs是不是整数值:可用:
try{
                        int v = Integer.parseInt(vs);
                     }
                    catch(NumberFormatException e){
                         System.out.println("不是数值。");
                       }
说明:或者使用“正则表达式”亦可。

                       
7.        goto功能如何实现?  
答:使用带标号的break语句。如:break label 实现goto的功能。
理由:JAVA中已取消了goto语句(但保留了goto这个保留字。)goto语句存在的价值是从嵌套较深的循环中一下子跳出来。
(标号必须写在一个循环的前面(如label) 。这个label是修饰这个循环的。 那么break label, 和continue label。是说相对于那个被修饰的循环的break 和continue。)

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)




只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


posts - 26, comments - 7, trackbacks - 0, articles - 17

Copyright © 王之昊