Java面试真题集

Posted 朗沃IT学习

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java面试真题集相关的知识,希望对你有一定的参考价值。

匠匠接着<>

继续为大家分享Java面试真题

快来领走属于你们的福利吧


01

继承时候类的执行顺序问题,一般都是选择题,问你将会打印出什么?

父类:

package test;

public class FatherClass

{

public FatherClass()

{

System.out.println("FatherClass Create");

}

}


子类:

package test;

import test.FatherClass;

public class ChildClass extends FatherClass

{

public ChildClass()

{

System.out.println("ChildClass Create");

}

public static void main(String[] args)

{

FatherClass fc = new FatherClass();

ChildClass cc = new ChildClass();

}

}


输出结果:

C:>java test.ChildClass

FatherClass Create

FatherClass Create

ChildClass Create


02

内部类的实现方式?

示例代码如下:

package test;

public class OuterClass

{

private class InterClass

{

Public Interlass()

{

System.out.println("InterClass Create");

}

}

public OuterClass()

{

InterClass ic = new InterClass();

System.out.println("OuterClass Create");

}

public static void main(String[] args)

{

OuterClass oc = new OuterClass();

}

}


输出结果:

C:>java test/OuterClass

InterClass Create

OuterClass Create


03

用JAVA实现一种排序,JAVA类实现序列化的方法?

JAVA类实现序例化的方法是实现java.io.Serializable接口

04

如在 COLLECTION 框架中,实现比较要实现什么样的接口?

Collection框架中实现比较要实现Comparable 接口和 Comparator 接口

05

如何用插入法进行排序代码?

package test;

import java.util.*;

class InsertSort

{

ArrayList al;

public InsertSort(int num,int mod)

{

al = new ArrayList(num);

Random rand = new Random();

System.out.println("The ArrayList Sort Before:");

for (int i=0;i<num ;i++ )

{

al.add(new Integer(Math.abs(rand.nextInt()) % mod + 1));

System.out.println("al["+i+"]="+al.get(i));

}

}

public void SortIt()

{

Integer tempInt;

int MaxSize=1;

for(int i=1;i<al.size();i++)

{

tempInt = (Integer)al.remove(i);

if(tempInt.intValue()>=((Integer)al.get(MaxSize-1)).intValue())

{

al.add(MaxSize,tempInt);

MaxSize++;

System.out.println(al.toString());

} else {

for (int j=0;j<MaxSize ;j++ )

{

if

(((Integer)al.get(j)).intValue()>=tempInt.intValue())

{

al.add(j,tempInt);

MaxSize++;

System.out.println(al.toString());

break;

}

}

}

}

System.out.println("The ArrayList Sort After:");

for(int i=0;i<al.size();i++)

{

System.out.println("al["+i+"]="+al.get(i));

}

}

public static void main(String[] args)

{

InsertSort is = new InsertSort(10,100);

is.SortIt();

}

}


06

编程:编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。但是要保证汉字不被截半个,如"我ABC"4,应该截为"我AB",输入"我ABC DEF",6,应该输出为"我ABC"而不是"我ABC+汉的半个"。

代码如下:

public static void split(String source,int num) throws Exception

{

int k=0;

String temp="";

for (int i = 0; i <source.length(); i++)

{

byte[] b=(source.charAt(i)+"").getBytes();

k=k+b.length;

if(k>num)

{

break;

}

temp=temp+source.charAt(i);

}

System.out.println(temp);

}

07

Java 编程,打印昨天的当前时刻

public class YesterdayCurrent{

public void main(String[] args){

Calendar cal = Calendar.getInstance();

cal.add(Calendar.DATE, -1);

System.out.println(cal.getTime());

}

}


08

文件读写,实现一个计数器

public int getNum(){

int i = -1;

try{

String stri="";

BufferedReader in = new BufferedReader(new FileReader(f));

while((stri=in.readLine())!=null){

i = Integer.parseInt(stri.trim());

}

in.close();

}catch(Exception e){

e.printStackTrace();

}

return i;

}

public void setNum(){

int i = getNum();

i++;

try{

PrintWriter out=new PrintWriter(new BufferedWriter(new

FileWriter(f,false)));

out.write(String.valueOf(i)); //可能是编码的原因,如果直接写入int 的

话,将出现java编码和windows编码的混乱,因此此处写入的是String

out.close() ;

}catch(Exception e){

e.printStackTrace();

}

}


09

指出下面程序的运行结果。

class A{

static{

System.out.print("1");

}

public A(){

System.out.print("2");

}

}

class B extends A{

static{

System.out.print("a");

}

public B(){

System.out.print("b");

}

}

public class Hello{

public static void main(String[] ars){

A ab = new B(); //执行到此处,结果: 1a2b

ab = new B(); //执行到此处,结果: 1a2b2b

}

}

注:类的static 代码段,可以看作是类首次加载(被虚拟机加载)执行的代码,而对于类的加载,首先要执行其基类的构造,再执行其本身的构造。


10

抽象类和接口的区别?

  • 接口可以被多重implements,抽象类只能被单一extends

  • 接口只有定义,抽象类可以有定义和实现

  • 接口的字段定义默认为:public static final, 抽象类字段默认是"friendly"(本包可见),当功能需要累积时用抽象类,不需要累积时用接口。


今天的面试题就分享到这里

下周一匠匠与你不见不散

朗沃IT学习

更多资讯请扫描左侧二维码获取


以上是关于Java面试真题集的主要内容,如果未能解决你的问题,请参考以下文章

JAVA面试真题集

BAT大厂Java面试真题锦集干货整理,细节爆炸

十多家大厂Java面试真题锦集干货整理,透彻分析源码

十多家大厂Java面试真题锦集干货整理,建议收藏

BAT大厂Java面试真题锦集干货整理,相关资料参考

搞来一套大厂内部资料(内含C++面试真题集)