999kao.com
java自学Java经典面试题 (1)

下列关于Java程序结构的描述中,不正确的是( )。

A.一个Java源文件中可以包括一个package语句

B.一个Java源文件中可以包括多个类定义,但是只能有一个public类

C.一个Java源文件中可以有多个public类

D.源文件名与程序类名必须一致


正确答案:C
解析:一个Java源文件中最多只能有一个public类,并且源文件名必须和public类名相同。


( 19 )下列叙述中,错误的是

A ) Java 中,方法的重载是指多个方法可以共草同一个名字

B ) Java 中,用 abstract 修饰的类称为抽象类厂它不能实例化

C ) Java 中,接口是不包含成员变量和方法实现省勺抽象类

D ) Java 中,构造方法可以有返回值


正确答案:D


下列叙述中,错误的是

A.Java中,方法的重载是指多个方法可以共享同一个名字

B.Java中,用abstract修饰的类称为抽象类,它不能实例化

C.Java中,接口是不包含成员变量和方法实现的抽象类

D.Java中,构造方法可以有返回值


正确答案:D
解析:Java中,方法重载指的是多个方法可以具有相同的名称,但这些方法的参数必须不能完全相同,要么是参数的类型不同,要么是参数的个数不同,程序可以按照参数决定调用对象方法。因此,选项A的说法正确。
  Java中,用abstract修饰的类称为抽象类,在其中的方法称为抽象方法。abstract类必须被继承,abstract方法必须被重写,abstract类不能实例化。因此,选项B的说法是正确的。
  Java中,接口是不包含成员变量和方法实现的抽象类,它只包含常量和方法的定义。
  因此,选项C的说法是正确的。
  构造方法是一种特殊的方法,是为对象初始化操作编写的方法,用它来定义对象的初始状态。Java中的每个类都有构造方法,它也是由方法名、参数和方法体组成的。构造方法的名字必须与类名相同,并且构造方法不返回任何数据。因此,选项D的说法是错误的。


以下关于继承的说法,正确的是( )。

A.继承可以避免代码复制和相关的代码维护等问题

B.Java语言中一个子类可以继承多个基类(多重继承)

C.Java语言不允许实现多个接口

D.子类可以继承父类的方法,但不能重新改写父类的方法


参考答案:A


对于类的说法中,不正确的一项是______。

A.类中的每个方法都由方法头和方法体构成

B.一般类体的域包括常量、变量、数组等独立的实体

C.Java程序中可以有多个类,但是公共类只有一个

D.Java程序可以有多个公共类


正确答案:D


目录Java面试题整理- 6 -Java面向对象- 6 -1.super()与this()的区别?- 6 -2.作用域public,protected,private,以及不写时的区别?- 6 -3.编程输出如下图形。- 6 -4.JAVA的事件委托机制和垃圾回收机制- 6 -5.在JAVA中,如何跳出当前的多重嵌套循环?- 6 -6.什么是java序列化,如何实现java序列化?(写一个实例)- 6 -7.一个.java源文件中是否可以包括多个类(不是内部类)?有什么限制?- 7 -8.排序都有哪几种方法?请列举。用JAVA实现一个快速排序?- 7 -9.Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?- 7 -10.Final类有什么特点?- 7 -11.继承时候类的执行顺序问题,一般都是选择题,问你将会打印出什么?- 7 -12.内部类的实现方式?- 8 -13.用JAVA实现一种排序,JAVA类实现序列化的方法(二种)?- 8 -14.如在COLLECTION框架中,实现比较要实现什么样的接口?- 8 -15.用插入法进行排序代码如下- 8 -16.编程:编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 但是要保证汉字不被截半个,如我ABC4,应该截为我AB,输入我ABC汉DEF,6,应该输出为我ABC而不是我ABC+汉的半个。- 9 -15、Java编程,打印昨天的当前时刻- 9 -16、文件读写,实现一个计数器- 10 -17、指出下面程序的运行结果。- 10 -18、抽象类和接口的区别?- 10 -19、什么是类的返射机制?- 11 -20、类的返射机制中的包及核心类?- 11 -21、得到Class的三个过程是什么?- 11 -22、如何唤起类中的一个方法?- 11 -23、如何将数值型字符转换为数字(Integer,Double)?- 11 -24、官网爱辅助网:www.aifuzhu.top- 11 -25、如何去小数点前两位,并四舍五入。- 11 -26、如何取得年月日,小时分秒?- 11 -27、如何取得从1970年到现在的毫秒数- 11 -28、如何获取某个日期是当月的最后一天?- 11 -29、如何格式化日期?- 12 -30、编码转换,怎样实现将GB2312编码的字符串转换为ISO-8859-1编码的字符串。- 12 -32、String s = new String(xyz);创建了几个String Object?- 12 -33、float型float f=3.4是否正确?- 12 -35、说出一些常用的类,包,接口,请各举5个- 12 -36、java中会存在内存泄漏吗,请简单描述。- 12 -37、java中实现多态的机制是什么?- 13 -38、垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?- 13 -39、静态变量和实例变量的区别?- 13 -41、是否可以从一个static方法内部发出对非static方法的调用?- 13 -42、写clone()方法时,通常都有一行代码,是什么?- 13 -43、JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗?- 13 -45、冒泡排序法- 13 -46、String and StringBuffer的区别?- 14 -47、用java代码编写堆栈- 14 -48、集合的作用是什么?- 15 -49、集合的通用方法有那些?通用方法是什么?(操作)- 15 -50、说出ArrayList,Vector, LinkedList的存储性能和特性HashMap和Hashtable的区别- 15 -51、Collection 和 Collections的区别。- 15 -52、Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用=还是equals()? 它们有何区别?用contains来区分是否有重复的对象。还是都不用。- 15 -53、List, Set, Map是否继承自Collection接口?- 16 -54、面向对象的特征有哪些方面- 16 -55、String是最基本的数据类型吗?- 16 -56、int 和 Integer 有什么区别?- 16 -57、运行时异常与一般异常有何异同?- 16 -58、&和&的区别?- 16 -59、final, finally, finalize的区别?- 16 -62、heap和stack有什么区别?- 16 -63、Static Nested Class 和 Inner Class的不同?- 16 -64、什么时候用assert?- 17 -65、GC是什么? 为什么要有GC?- 17 -66、short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?- 17 -67、Math.round(11.5)等於多少? Math.round(-11.5)等於多少?- 17 -68、Java有没有goto?- 17 -69、给我一个你最常见到的runtime exception- 17 -70、接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)?- 17 -71、abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized?- 17 -72、数组有没有length()这个方法? String有没有length()这个方法?- 18 -73、构造器Constructor是否可被override?- 18 -74、是否可以继承String类?- 18 -75、swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?- 18 -76、try 里有一个return语句,那么紧跟在这个try后的finally 里的code会不会被执行,什么时候被执行,在return前还是后?- 18 -77、编程题: 用最有效率的方法算出2乘以8等於几?- 18 -78、两个对象值相同(x.equals(y) = true),但却可有不同的hash code,这句话对不对?- 18 -79、当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?- 18 -80、四种会话跟踪技术- 18 -81、编程题: 写一个Singleton出来。- 18 -83、Java中的异常处理机制的简单原理和应用。- 19 -84、垃圾回收的优点和原理。并考虑2种回收机制。- 19 -85、描述一下JVM加载class文件的原理机制?- 19 -86、char型变量中能不能存贮一个中文汉字?为什么?- 19 -88、写一个程序,从文件(c:test.txt)中查出字符串”mobnet”出现的次数?- 19 -java基础类库(io流,集合类,线程,Socket,AWT,Swing,sql)- 20 -1、java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类?- 20 -2、启动一个线程是用run()还是start()?- 20 -3、线程的基本概念、线程的基本状态以及状态之间的关系- 20 -4、多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么? 用什么关键字修饰同步方法? stop()和suspend()方法为何不推荐使用?- 20 -用synchoronized修饰同步方法。- 20 -5、集合框架有什么?- 20 -12、设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序- 21 -13、同步和异步有和异同,在什么情况下分别使用他们?举例说明。- 21 -14、sleep() 和 wait() 有什么区别?- 22 -15、当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法?- 22 -17、输入输出流的理解:- 22 -18、请写一个程序的读写,要求用两种方式一种是低层流另一种是高层流。- 22 -19、如何列出某个目录下的所有文件- 23 -Socket- 24 -20、用socket通讯写出客户端和服务器端的通讯,要求客户发送数据后能够回显相同的数据?- 24 -23、介绍JAVA中的Collection FrameWork(包括如何写自己的数据结构)?- 25 -24、请说出你所知道的线程同步的方法- 25 -jdbc数据访问技术- 25 -1、JDBC如何做事务处理?- 25 -2、写出几个在Jdbc中常用的接口- 25 -3、简述你对Statement,PreparedStatement,CallableStatement的理解- 25 -4、Java中访问数据库的步骤?- 26 -5、JDBC中的核心类及其作用是什么?- 26 -6、执行存储过程用那一个类,如何操作输出参数?(操作)- 26 -8、可能会让你写一段Jdbc连Oracle的程序.- 26 -9、Class.forName的作用?为什么要用?- 26 -10、Jdo是什么?- 26 -11、在ORACLE大数据量下的分页解决方法。一般用截取ID方法,还有是三层嵌套方法- 27 -Web编程Jsp&Servlet技术- 27 -1、简单说说tomcat的配置?- 27 -2、JSP中动态INCLUDE与静态INCLUDE的区别?- 27 -3、forward和redirect的区别?- 27 -4、Servlet的体系结构是什么?- 28 -Servlet- 28 -5、如何实现一个自定义的servlet?- 28 -6、Servlet的生命周期是什么?- 28 -7、jsp就是一个servlet是否正确?- 28 -8、请罗列jsp中的脚本、指令及动作?- 28 -9、JSP的内置对象及方法- 28 -10、说出在JSP页面里是怎么分页的?- 28 -11、include的两种实现方式的区别?- 30 -12、jsp页面中两种跳转方式分别是什么?有什么区别?- 30 -13、描述JSP和Servlet的区别、共同点、各自应用的范围- 30 -14、在JSP中如何读取客户端的请求,如何确定某个Jsp文件的真实路径?- 30 -15、描述Cookie和Session的作用,区别和各自的应用范围,Session工作原理。- 30 -16、说明Jsp中errorPage的作用,应用范围。- 31 -17、介绍在Jsp中如何使用JavaBeans- 31 -19、简单介绍

下列说法中,错误的一项是______。

A.一个Applet可以有多个类,但是继承java.applet.Applet的公有类只有一个

B.一个Applet只能由一个继承java.applet.Applet类的公有类构成 ’

C.Applet继承java.applet.Applet类的公有类名必须和源文件名一致

D.JApplet必须是java.Swing.JApplet的子类


正确答案:B
解析:一个Applet可以有多个类,除了必须有的Applet类的子类还可以有用户自定义的别的类。


基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的

语法,集合的语法,io 的语法,虚拟机方面的语法,其他

1、一个".java"源文件中是否可以包括多个类(不是内部

类)?有什么限制?


正确答案:

 

可以有多个类,但只能有一个public 的类,并且public 的类名必须与文件名相一致。


Overload 和Override 的区别。Overloaded 的方法是否

可以改变返回值的类型?


正确答案:

 

Overload 是重载的意思,Override 是覆盖的意思,也就是重写。

重载Overload 表示同一个类中可以有多个名称相同的方法,但这些方法的参数列表各不相同(即参数

个数或类型不同)。

重写Override 表示子类中的方法可以与父类中的某个方法的名称和参数完全相同,通过子类创建的实

例对象调用这个方法时,将调用子类中的定义方法,这相当于把父类中定义的那个完全相同的方法给覆盖

了,这也是面向对象编程的多态性的一种表现。子类覆盖父类的方法时,只能比父类抛出更少的异常,或

者是抛出父类抛出的异常的子异常,因为子类可以解决父类的一些问题,不能比父类有更多的问题。子类

方法的访问权限只能比父类的更大,不能更小。

至于Overloaded 的方法是否可以改变返回值的类型这个问题,要看你倒底想问什么呢?这个题目很模

糊。如果几个Overloaded 的方法的参数列表不一样,它们的返回者类型当然也可以不一样。但我估计你想

问的问题是:如果两个方法的参数列表完全一样,是否可以让它们的返回值不同来实现重载Override。这

是不行的,我们可以用反证法来说明这个问题,因为我们有时候调用一个方法时也可以不定义返回结果变

量,即不要关心其返回结果,例如,我们调用map.remove(key)方法时,虽然remove 方法有返回值,但是

我们通常都不会定义接收返回结果的变量,这时候假设该类中有两个名称和参数列表完全相同的方法,仅

仅是返回类型不同,java 就无法确定编程者倒底是想调用哪个方法了,因为它无法通过返回结果类型来判

断。


排序都有哪几种方法?请列举。用JAVA实现一个快速

排序。


正确答案:

 

本人只研究过冒泡排序、选择排序和快速排序,下面是快速排序的代码:

public class QuickSort {

/**

* 快速排序

* @param strDate

* @param left

* @param right

*/

public void quickSort(String[] strDate,int left,int right){

String middle,tempDate;

int i,j;

i=left;

j=right;

middle=strDate[(i+j)/2];

do{

while(strDate[i].compareTo(middle)<0&& i<right)

i++; //找出左边比中间值大的数

while(strDate[j].compareTo(middle)>0&& j>left)

j--; //找出右边比中间值小的数

if(i<=j){ //将左边大的数和右边小的数进行替换

tempDate=strDate[i];

strDate[i]=strDate[j];

strDate[j]=tempDate;

i++;

j--;

}

}while(i<=j); //当两者交错时停止

if(i<right){

quickSort(strDate,i,right);//从

}

if(j>left){

quickSort(strDate,left,j);

}

}

/**

* @param args

*/

public static void main(String[] args){

String[] strVoid=new String[]{"11","66","22","0","55","22","0","32"};

QuickSort sort=new QuickSort();

sort.quickSort(strVoid,0,strVoid.length-1);

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

System.out.println(strVoid[i]+" ");

}

}

}

7、有数组a[n],用java 代码将数组元素顺序颠倒

package cn.itcast.lecture2;

import java.util.Arrays;

import java.util.Collections;

public class ReverseTest {

public static void main(String [] args)

{

//产生若干0到1000的随机数,作为数组的初始值

int data[] = new int[]{

(int)(Math.random() * 1000),

(int)(Math.random() * 1000),

(int)(Math.random() * 1000),

(int)(Math.random() * 1000),

(int)(Math.random() * 1000),

(int)(Math.random() * 1000),

(int)(Math.random() * 100),

};

System.out.println(Math.random());

System.out.print("交换前的数据:");

System.out.println(

Arrays.toString(data));

reverse(data);

System.out.print("交换后的数据:");

System.out.println(Arrays.toString(data));

}

//方法执行完后,参数data中的数据顺序即被颠倒

//实现思路是第1个和第n个交换,第2个和第n-1个交换,依次类推...

public static void reverse(int[] data)

{

int len = data.length;

for(int i=0;i<len/2;i++)

{

int temp = data[i];

data[i] = data[len-1-i];

data[len-1-i] = temp;

}

}

}

2.金额转换,阿拉伯数字的金额转换成中国传统的形式如:

(¥1011)->(一千零一拾一元整)输出。

public class RenMingBi {

/**

* @param args add by zxx ,Nov 29, 2008

*/

private static final char[] data = new char[]{

'零','壹','贰','叁','肆','伍','陆','柒','捌','玖'

};

private static final char[] units = new char[]{

'元','拾','佰','仟','万','拾','佰','仟','亿'

};

public static void main(String[] args) {

// TODO Auto-generated method stub

System.out.println(

convert(135689123));

}

public static String convert(int money)

{

StringBuffer sbf = new StringBuffer();

int unit = 0;

while(money!=0)

{

sbf.insert(0,units[unit++]);

int number = money%10;

sbf.insert(0, data[number]);

money /= 10;

}

return sbf.toString();

}

}


下面关于继承的叙述正确的是 ( )

A.在Java中类间只允许单一继承

B.在Java中一个类只能实现一个接口

C.在Java中一个类不能同时继承一个类和实现一个接口

D.在Java中一个类可以同时继承多个类


正确答案:A
解析:该题考查的是类的继承。继承分为单继承和多继承两种形式。单继承允许一个类可以有多个子类,但只能有一个父类;多继承则允许一个类不仅可以有多个子类,还可以有多个父类。但需要注意一点,Java只支持单继承,但可以通过接口实现多继承的功能。一个类可以同时继承一个类和实现一个接口。所以选项A是正确的。

更多 “java自学Java经典面试题 (1)” 相关考题
考题 Java源文件中可以有多个类,但只能有一个类是public的。()此题为判断题(对,错)。答案:对

考题 下列关于java程序结果错误的是()A、源文件可以没有import语句B、Package语句必须放在源文件的第一句C、一个源文件可以有多个类定义D、一个源文件可以定义多个public类正确答案:D

考题 Java程序中,一个源文件中可以定义多个非public类型的类。正确答案:正确

考题 判断题Java程序中,一个源文件中可以定义多个非public类型的类。A 对B 错正确答案:对解析:暂无解析

考题 一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制?正确答案:可以。必须只有一个类名与文件名相同。

考题 在Java语言中,下列关于类的继承的描述,正确的是()。A、一个类可以继承多个父类B、一个类可以具有多个子类C、子类可以使用父类的所有方法D、子类一定比父类有更多的成员方法正确答案:B

考题 问答题一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制?正确答案:可以。必须只有一个类名与文件名相同。解析:暂无解析

考题 继承时候类的执行顺序问题,一般都是选择题,问你将会打印出什么?正确答案: 父类: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.ChildClassFatherClass CreateFatherClass CreateChildClass Create

考题 ( 难度:中等)下列关于接口的说法是正确的()。A.Java只支持单重继承,一个类只可以实现一个接口B.Java只支持单重继承,一个类可以实现多个接口C.Java支持多重继承,一个类可以实现多个接口D.Java支持多重继承,但一个类只可以实现一个接口答案:B

考题 多选题下面关于继承的哪些叙述是正确的()。A在java中对类只允许单一继承B在java中一个类只能实现一个接口C在java中一个类不能同时继承一个类和实现一个接口Djava的单一继承使代码更可靠Ejava的类允许使用多继承,即一个类允许有多个父类正确答案:C,B解析:暂无解析