JAVA面试问题(1)

 

基本语法
1.      访问修饰符“ public/private/protected/ 缺省的修饰符”的使用有什么不同?
答: 区别如下:
作用域            当前类        同一 package  子孙类        其他 package
public           
                                        
protected       
                                           ×
friendly         
                               ×             ×
private          
              ×                   ×            ×
不写时默认为 friendly
2.       
    用关键字 final 分别修饰类、方法、变量时,有何意义?
答: final 修饰的类不能被继承, final 修饰的方法不能被子类重写, final 修饰的变量 ( 成员变量或局部变量 ) 即成为常量,只能赋值一次, final 修饰的成员变量必须在声明的同时或在该类的构造方法中显示赋值,然后才能使用。
2 JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗?
Java通过面向对象的方法进行异常处理,把各种不同的异常进行分类,并提供了良好的接口。在Java中,每个异常都是一个对象,它是Throwable类或其它子类的实例。当一个方法出现异常后便抛出一个异常对象,该对象中包含有异常信息,调用这个对象的方法可以捕获到这个异常并进行处理。Java的异常处理是通过5个关键词来实现的:try、catch、throw、throws和finally。一般情况下是用try来执行一段程序,如果出现异常,系统会抛出(throws)一个异常,这时候你可以通过它的类型来捕捉(catch)它,或最后(finally)由缺省处理器来处理。
用try来指定一块预防所有"异常"的程序。紧跟在try程序后面,应包含一个catch子句来指定你想要捕捉的"异常"的类型。
throw语句用来明确地抛出一个"异常"。
throws用来标明一个成员函数可能抛出的各种"异常"。
Finally为确保一段代码不管发生什么"异常"都被执行一段代码。
可以在一个成员函数调用的外面写一个try语句,在这个成员函数内部写另一个try语句保护其他代码。每当遇到一个try语句,"异常"的框架就放到堆栈上面,直到所有的try语句都完成。如果下一级的try语句没有对某种"异常"进行处理,堆栈就会展开,直到遇到有处理这种"异常"的try语句。
3.      Object ( 或者其子类 ) finalize() 方法在什么情况下被调用?
在对象被当成垃圾从内存中释放前调用。
4.      一个“ .java ”源文件中是否可以包括多个类(不是内部类)?有什么限制?
可以,但只有与文件名相同的类是 public 的。
5.      内部类可以引用他的包含类的成员吗?有没有什么限制?
6.      写一段代码,遍历一个 List 中的元素。
7.        垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?
8.       java 中会存在内存泄漏吗,请简单描述。
9.      java 中实现多态的机制是什么?
10.  112 、说出一些常用的类,包,接口,请各举 5
常用的类: BufferedReader  BufferedWriter  FileReader  FileWirter  String  Integer
常用的包: java.lang  java.awt  java.io  java.util  java.sql
常用的接口: Remote  List  Map  Document  NodeList
11.   overload( 重载 ) override( 重写 ) 有什么区别 ?
12.   java 中有几种类型的流? JDK 为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类?
答: 字节流,字符流。字节流继承于 InputStream OutputStream ,字符流继承于 InputStreamReader OutputStreamWriter 。在 java.io 包中还有许多其他的流,主要是为了提高性能和使用方便。
13.  静态变量和实例变量的区别:
static i = 10; // 常量
  class A a;  a.i =10;//
可变
14.  105 、什么是 java 序列化,如何实现 java 序列化
序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。序列化是为了解决在对对象流进行读写操作时所引发的问题。
序列化的实现:将需要被序列化的类实现 Serializable 接口,该接口没有需要实现的方法, implements Serializable 只是为了标注该对象是可被序列化的,然后使用一个输出流 ( 如: FileOutputStream) 来构造一个 ObjectOutputStream( 对象流 ) 对象,接着,使用 ObjectOutputStream 对象的 writeObject(Object obj) 方法就可以将参数为 obj 的对象写出 ( 即保存其状态 ) ,要恢复的话则用输入流。
106 、是否可以从一个 static 方法内部发出对非 static 方法的调用?
不可以 , 如果其中包含对象的 method() ;不能保证对象初始化 .
107 、写 clone() 方法时,通常都有一行代码,是什么?
Clone 有缺省行为, super.clone(); 他负责产生正确大小的空间,并逐位复制。
108 、在 JAVA 中,如何跳出当前的多重嵌套循环 break; return 方法。
109 List Map Set 三个接口,存取元素时,各有什么特点
List 以特定次序来持有元素,可有重复元素。 Set 无法拥有重复元素 , 内部排序。 Map 保存 key-value 值, value 可多值。
15.    如何判断一个对象是否是一个已知类的对象,可以写一段代码说明。
16.     JAVA 中,如何跳出当前的多重嵌套循环?
17.   Swing 中实现一个 table 需要用到哪些类?其中哪些作 M ,哪些作 V 哪些作 C                      
18.   Vector 中对象的存取有几种方法?它们有何不同之处?                                                       
19.   如何对一个 ArrayList 进行快速排序?                                                                                     
20.   UML 图中,对象之间有几种关系?它们分别用什么符号来表示?          
21.   聚合与组合有什么区别?
22.   Java 有那些基本数据类型, String 是不是基本数据类型,他们有何区别。
Integer literals,Floating-point literals,character literals,Boolean literal,String iteral.String 不是基本数据类型
23.   字符串的操作:
写一个方法,实现字符串的反转,如:输入 abc ,输出 cba
   
public static String reverse(String s){
        int length=s.length();
        StringBuffer result=new StringBuffer(length);
        for(int i=length-1;i>=0;i--)
            result.append(s.charAt(i));
        return result.toString();
    }
写一个方法,实现字符串的替换,如:输入 bbbwlirbbb ,输出 bbbhhtccc
24.   数据类型之间的转换
如何将数值型字符转换为数字( Integer Double
如何将数字转换为字符
如何去小数点前两位,并四舍五入。
25.   日期和时间
如何取得年月日,小时分秒
Date dat=new Date();
dat.getYear();dat.getMonth();dat.getDay();dat.getHours();...

如何取得从 1970 年到现在的毫秒数 long now=dat.getTime();
如何获取某个日期是当月的最后一天
如何格式化日期
DateFormate df=DateFormate.getInstance();
df.Format(dat);
26.   数组和集合
27.   文件和目录( I/O )操作
如何列出某个目录下的所有文件
如何列出某个目录下的所有子目录
判断一个文件或目录是否存在
如何读写文件
28.  Java 多态的实现(继承、重载、覆盖)
29.  编码转换,怎样实现将 GB2312 编码的字符串转换为 ISO-8859-1 编码的字符串。
import java.io.*;
public calss InputReader
{
      public static void main(Sting[] args) throws Exception
      {
      InputStreamReader isr = new InputStreamReader(System.in,”iso8859-1”);
      BufferedReader br = new BufferedReader(isr);
      String strLine = br.readLine();
for(int i = 0;i < strLine.length();i++)
{
      System.out.println((Integer.toHexString(int)strLine.chatAt(i)));
      isr.close();
      System.out.println(strLine);
}
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值