java综合面试题_JAVA 综合面试题 PDF 下载
主要內(nèi)容:
Java面試題整理
Java面向?qū)ο?/p>
1. super()與this()的區(qū)別?
This():當(dāng)前類的對象,super父類對象。Super():在子類訪問父類的成員和行為,
必須受類繼承規(guī)則的約束而this他代表當(dāng)前對象,當(dāng)然所有的資源都可以訪問. 在構(gòu)
造函數(shù)中,如果第一行沒有寫super(),編譯器會自動插入.但是如果父類沒有不帶參數(shù)
的構(gòu)造函數(shù),或這個函數(shù)被私有化了(用private修飾).此時你必須加入對父類的實例化
構(gòu)造.而this就沒有這個要求,因為它本身就進行實例化的構(gòu)造. 而在方法中super和
this使用的方法就差不多了.只不過super 要考慮是否能訪問其父類的資源.
2. 作用域public,protected,private,以及不寫時的區(qū)別?
Public:不同包、同一包、類內(nèi)都可用
Private:類內(nèi)
Protected: 不同包的子類、同一包、類內(nèi)都可用
不寫時:同一包內(nèi)、類內(nèi)
3. 編程輸出如下圖形。
* * * * *
* * * *
* * *
* *
*
代碼如下:
public class Print {
public static void main(String[] args) {
for (int i = 0; i < 5; i++) {
for (int j = 5; j > i; j--) {
System.out.print("*");
}
System.out.println();
}
} }
4. JAVA的事件委托機制和垃圾回收機制
java 事件委托機制的概念,一個源產(chǎn)生一個事件并將它送到一個或多個監(jiān)聽器那里。
在這種方案中,監(jiān)聽器簡單的等待,直到它收到一個事件。一旦事件被接受,監(jiān)聽
器將處理這個事件,然后返回。垃圾回收機制垃圾收集是將分配給對象但不再使用
的內(nèi)存回收或釋放的過程。如果一個對象沒有指向它的引用或者其賦值為null,則次
對象適合進行垃圾回收
5. 在JAVA中,如何跳出當(dāng)前的多重嵌套循環(huán)?
用break; return 方法。
6. 什么是java序列化,如何實現(xiàn)java序列化?(寫一個實例)
序列化: 處理對象流的機制,所謂對象流也就是將對象的內(nèi)容進行流化。可以對流
化后的對象進行讀寫操作,也可將流化后的對象傳輸于網(wǎng)絡(luò)之間。序列化是為了解
決在對對象流進行讀寫操作時所引發(fā)的問題。序列化的實現(xiàn):將需要被序列化的類
實現(xiàn)Serializable接口,該接口沒有需要實現(xiàn)的方法,implements Serializable
只是為了標(biāo)注該對象是可被序列化的,然后使用一個輸出流(如:FileOutputStream)
來構(gòu)造一個ObjectOutputStream(對象流)對象,接著,使用ObjectOutputStream對
象的writeObject(Object obj)方法就可以將參數(shù)為obj的對象寫出(即保存其狀態(tài)),
要恢復(fù)的話則用輸入流。
7. 一個".java"源文件中是否可以包括多個類(不是內(nèi)部類)?有什么限制?
可以。如果這個類的修飾符是public,其類名與文件名必須相同。
8. 排序都有哪幾種方法?請列舉。用JAVA實現(xiàn)一個快速排序?
排序的方法有:插入排序(直接插入排序、希爾排序),交換排序(冒泡排序、快
速排序),選擇排序(直接選擇排序、堆排序),歸并排序,分配排序(箱排序、
基數(shù)排序)快速排序的偽代碼。
package com.njzb.test.student.tb;
import java.util.Random;
public class MySort {
private int []myArray;
private int size;
public MySort(int size){
myArray = new int[size];
this.size =size;
init();
}
private void init(){
Random rand=new Random();
for(int i=0;i
myArray[i]=rand.nextInt(1000);
} }
public void quick(int low,int high){//快速排序
int lo=low;//最小值
int hi=high;//最大值
if(lo>=hi){return;}
boolean flag= false;
while(lo
if(myArray[lo]
int temp= myArray[lo];
myArray[lo]=myArray[hi];
myArray[hi]=temp;
flag=!flag;
}
if(flag){
lo++;
}else{
hi--; } }
lo--;hi++;
quick(low,lo);
quick(hi,high);
}
public void pop(){//冒泡排序
for (int i=0;i
for(int j=0;j
if(myArray[j]<=myArray[j+1]){
int temp = myArray[j];
myArray[j] = myArray[j+1];
myArray[j+1]=temp;
} } } }
public void opt(){//選擇排序
for(int i=0;i
int max=i;
for (int j=i+1;j
if(myArray[max]
max=j;
} }
int temp = myArray[max];
myArray[max] = myArray[i];
myArray[i]=temp;
} }
public void insert(){//插入排序
for(int i=1;i
int temp = myArray[i];
int pos = i-1;
//下標(biāo)大于0并且你的temp比pos的值大
while(pos>=0 && temp>myArray[pos]){
myArray[pos+1]=myArray[pos];
pos--; }
myArray[pos+1]=temp;
} }
public void dis(){
for (int i:myArray){
System.out.print(i+":");
}
System.out.println();
}
public void disss(int month){
if(month<=12){
System.out.println(month);
disss(++month);
} }
public static void main(String[] args) {
MySort ms = new MySort(10);
// ms.disss(1);
ms.dis();
// long time =System.currentTimeMillis();
// ms.insert();
//ms.pop();
//ms.opt();
ms.quick(0, 9);
// System.out.println(System.currentTimeMillis()-time);
ms.dis();
} }
總結(jié)
以上是生活随笔為你收集整理的java综合面试题_JAVA 综合面试题 PDF 下载的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java读取文件 16进制_Java对文
- 下一篇: java小数点的代码_java小数位的例