当前位置:文档之家› java面试复习题

java面试复习题

java面试复习题
java面试复习题

逻辑思考题 (1)

Java基础 (1)

面向对象程序设计 (3)

类与方法 (4)

异常及垃圾回收 (5)

容器与范型 (7)

线程 (7)

IO、JDBC (8)

常用英语单词 (9)

逻辑思考题

1、有2根绳子,A能烧完需花费30分钟和B烧完需花费60分钟,怎么样计算出45分钟

A.两头同时点燃烧完是15分钟

B两头同时点燃烧完是30分钟

时间相加就可以计算出来了

2、有X、Y,2个变量,不借助第3个变量,如何实现交换2个变量的值?

A =3 B= 4;

A = A +

B 7

B = A – B 3

A = A -

B 4

3、你有八个球。其中一个有破损,因此比其他球轻了一些。你有一架天平用来比较这些球的重量。如果只称两次,如何找出有破损的那个球?

4、如果你有一个容量为5公斤的水桶和一个容量为3公斤的水桶,怎样准确地量出4公斤的水?

Java基础

1、&和&&的区别。

&是位运算符,

&&是逻辑运算符(add)

2、short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?

Short s1 = 1 s1 = s1+1 (s1 = s1+1 运算结果是int类型需要强制类型转换)

Short s1 = 1 s1 +=1 没有错,可以正确运行

3、Math.round(11.5)等於多少? Math.round(-11.5)等於多少?

Math.round(11.5)==12

Math.round(-11.5)==-11

4、heap和stack有什么区别。

Stack(栈)是一种线性集合,其添加和删除元素的操作需要同一时间完成,Stack按照后进先出的方式进行操作,heap(堆)是stack(栈)的一个组成元素

5、Java有没有goto?

Goto是java中的保留字,没有在java中使用

6、swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?

switch(expr1)中,expr1是一个整式表达式,所以在swtich 和case语句中,只能使用byte,int short ,char 类型,long和String都不能,

7、编程题: 用最有效率的方法算出2乘以8等於几?

2<<3

8、当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?

是值传递,java编程语言中只有值传递,引用传递永远不会改变

9、详细描述java语言的特点;

10、什么是jvm,请解释什么是平台无关性;

Java虚拟机,就是写的运行程序,不用修改就可以在不同的操作系统运行,这就是平台无关性11、什么叫做单继承,详细解释java语言中的单继承;

就是只能继承一个父类,Java语言中,不能多继承,可以继承多接口,,

12、equals与==是代表什么含义,其特点是什么?

Equals是比较对象的内容

= =是一个关系运算符,当被比较者是一个基本类型时,比较对象的内容,当被比较者是引用类型时,比较其是否是同一个引用对象

13、this与super的含义及其使用;

This表示当前对象,也就是指当前类对象

Super表示当前类的父类

14、数组初始化过程是怎样的?数组之间的赋值的特点;

15、描述一下JVM加载class文件的原理机制?

Jvm中类的装载是由ClassLoad及它的子类完成的。它负责在运行时查找和装入类文件的类

16、char型变量中能不能存贮一个中文汉字?为什么?

能,因为java 中以unicode编码一个char占16字节,所以装一个中文没有问题

17、java中会存在内存泄漏吗,请简单描述。

Java中会存在无用但可达的对象,这些对象不能被GC回收,导致消耗内存资源

18、java中实现多态的机制是什么?

Java中实现多态机制的是重载overloading 和重写overriding

重载是一个类中多态性的表现,重写是父类与子类之间多态性的表现

19、简述逻辑操作(&,│,^)与条件操作(&&,││)的区别。

逻辑操作& 不仅可以操作布尔类型,也可以操作数值类型,

条件操作只能操作布尔类型,会产生短路

20、一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制?

可以包含多个类,必须只有一个类名与文件名相同。

21、属性、方法、构造方法以及在被static修饰符修饰的情况下,各部分的初始化顺序是怎样的?

22、描述在java语言中,如何控制语句跳出单循环或多循环?

在最外围添加label标签,然后label:break跳出当前循环

23、break与continue的使用;

continue用于跳出当前1次循环继续下一次循环

Break 结束当前所有循环不再执行

24、变量与属性的定义及其的作用域的区别;

变量是定义在方法体内,只要在方法体内有效

属性是定义在方法体外,系统会自动为其初始化而变量不会

25、在环境变量设置过程中,path与classpath分别代表什么含义?

26、指出下面代码中的错误,并将其改正过来:

有java文件Test.java

class Test{

public void add(double i, double j){

int s = i + j;

return s;

System.out.println(“add(int i, int j)方法被调用!”);

}

public static void main(String arg){

Test test = new Test();

int sum = test.add(1,2);

System.out.println(“sum = ” + sum);

}

}

面向对象程序设计

1、面向对象的特征有哪些方面

有以下几个方面:

1.抽象,就是忽略一个与当前主题无关的那些方面,以便更好的关注与目标有关的那些方面,抽象包括数据抽象与过程抽象。

2.继承:是一种联结类的层次模型,并且允许和鼓励类的重用,一个新类可以从现有的类中派生,这个过程叫类继承.

3. 封装:把数据和过程包围起来,对数据的访问只能通过已定义的界面。

4.多态,多态可以从重写跟重载中体现具有很好的灵活。行为共享、抽象的优势,很好的解决了应用程序函数同名问题

2、Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?

Overload和override都是多态性的不同体现,overriding重写是父类与子类之间多态性的体现,如果子类定义了某方法与其父类有相同的方法名称,参数,我们就说该方法被重写了。

overloading是一个类中多态性的体现,如果一个类中,定义了多个同名的方法。参数个数或参数类型不同,我们就说该方法被重载了、overloaded的方法可以改变返回值的类型

3、抽象类(abstract class)和接口(interface)有什么区别?

4、接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)?

接口可以继承接口,抽象类可以实现接口,抽象类可以继承实体类,前提是,实体类具有明确的构造函数

5、构造器Constructor(构造方法)是否可被override?

构造器Constructor不能被继承,所以不能被overriding(重写)但是可以重载(overloading)

6、构造方法的调用,

7、向上转型与向下转型是怎样实现的?并以接口与实现类为例详细说明。

8、描述以数组作为参数传递给一个方法的过程;

9、什么是方法的重载,解释方法重载的参数自动向上转型?

一个类中定义了同名的方法,他们有不同的参数个数或返回类型,则称为方法的重载。Overloading方法可以改变返回值的类型

10、以接口为类型定义一个对象,并产生该接口的实现类的实例,该对象的使用特点是怎样的?

11、描述方法的调用过程,包括同类中、不同类中、不同类子类中、static方法;

12、java语言中的四种访问权限是什么,详细说明。

Public

Property

Private

13、什么是static,它有什么作用?

类与方法

1、解释以下几个开发包主要包含的内容是什么?

java.util

https://www.doczj.com/doc/b812601964.html,ng

java.awt

java.io 输入、输出

java.sql 数据库

java.text

java.swing

https://www.doczj.com/doc/b812601964.html,

2、什么叫做包装类?包装类的作用是什么?

基础数据类型的包装、

3、final, finally, finalize的区别。

Final 声明属性、方法、类的,声明的属性不能修改,声明的方法不能覆盖,声明的类不能继承

Finally 是异常的统一出口,表示总是被执行

Finalize 垃圾回收前的收尾工作,由object类定义

4、String是最基本的数据类型吗?

不是,string是final类,表示不能继承

5、String s = new String("xyz");创建了几个String Object?

创建了2个对象,一个是”xyz”另一个是“xyz”的引用对象“s”

6、int 和Integer 有什么区别

Int 是基本数据类型,

Integer是java 为int提供的封装类

封装类首先是个类,而基本数据类型不是,

它们的行为和语义完全不同,缺省值也不同

7、String 和StringBuffer的区别:

String 和stringbuffer 都可以存储和操作字符串

String类提供了数值不可改变的字符串,

而stringbuffer类提供了数值可以改变的字符串,当你要进行字符串改变的时候就用stringbuffer 8、数组有没有length()这个方法? String有没有length()这个方法?

没有length()这个方法,有length()这个属性,string有length()这个方法

9、是否可以继承String类,为什么?

不能,因为string类是final类,故不能继承

10、说出一些常用的类,包,接口,请各举5个

类:bufferedReader bufferedWriter FileReader FileWriter String

包:java.sql java.io https://www.doczj.com/doc/b812601964.html,ng java.awt java.util

接口:Map List Set Docment remote

11、Static Nested Class 和Inner Class的不同。

是被声明的静态内部类可以不依赖与外部类被实例化而普通内部类需要外部类实例化后才能实例化

异常及垃圾回收

1、运行时异常与一般异常有何异同?

异常表示程序在运行过程中非正常状态,运行时异常表示虚拟机通常操作中可能遇到的异常,是一种常见的运行错误,java编译器要求方法必须抛出可能发生的非运行时异常,但是不必要去必须抛出未被捕获的运行时异常

2、Error和Exception有什么区别?

3、解释下列异常类的含义

ArithmeticException:算术异常

ClassCastException:类转型异常

IndexOutOfBoundsException,:数组越界异常

ClassNotFoundException:类未找到异常;

ClassLoader 类中的loadClass 方法。

DataFormatException:数据格式不正确异常;

IOException:输入输出异常,由失败或中断的输入输出操作引起;

SQLException:数据库异常

FileNotFoundException:文件未找到异常;

UnknownHostException:IP地址无法确定异常;

NullPointerException:空指针异常;

4、详细解释下列异常抛出的原因:

1、Exception in thread "main" java.sql.SQLException: [Microsoft][SQLServer

2000 Driver for JDBC]Error establishing socket.

2、Exception in thread "main" java.sql.SQLException: [Microsoft][SQLServer

2000 Driver for JDBC][SQLServer]无法打开登录 'tet' 中请求的数据库。登录失败。

3、Exception in thread "main" java.sql.SQLException: No suitable driver

found for jdbc:microsoft:sqlserve://127.0.0.1:1433;DatabaseName=test

4、Exception in thread "main" java.sql.SQLException: [Microsoft][SQLServer

2000 Driver for JDBC][SQLServer]用户 'sa1' 登录失败。

5、Exception in thread "main" java.sql.SQLException: [Microsoft][SQLServer

2000 Driver for JDBC]Invalid call to ResultSet.Relative because there is no current row.

6、Exception in thread "main" java.sql.SQLException: [Microsoft][SQLServer

2000 Driver for JDBC]Invalid operation for the current cursor position.

5、try {}里有一个return语句,那么紧跟在这个try后的finally {}里的代码会不会被执行,什么时候被执行,在return前还是后?

会执行,在return之前

6、采取try{}catch(){}方式与throws方式有什么区别?

7、详细解释关键字throwable、throws、throw;

8、在继承关系的重写方法上进行异常抛出的规定:

9、throws , throw , try , catch ,finally分别代表什么意义?在try块中可以抛出异常吗?

10、GC是什么? 为什么要有GC?

垃圾回收,

11、垃圾回收器的基本原理是什么?

12、垃圾回收器会的启动,可以通过程序启动进行垃圾回收吗?垃圾回收器启动后是否会回收所有的“垃圾”?

13、什么样的对象被称为垃圾,并将会被回收?

容器与范型

1、说出ArrayList,Vector, LinkedList的存储性能和特性

2、Collection 和Collections的区别。

3、HashMap和Hashtable的区别。

4、List, Set, Map是否继承自Collection接口?

5、Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?

6、HashSet、TreeSet、HashMap、TreeMap、ArrayList、LinkedList、Vector、Deque的特点分别是什么?

7、什么是范型,产生一个String的List?

8、详细描述Map中key与value的访问方式。HashMap与TreeMap的不同点是什么?

9、什么是迭代器?在java语言中Iterator迭代器所提供的方法有哪些,其含义是什么?

线程

1、sleep() 和wait() 有什么区别?

2、同步和异步有何异同,在什么情况下分别使用他们?举例说明。

3、启动一个线程是用run()还是start()? .

4、说出数据连接池的工作机制是什么?

5、请说出你所知道的线程同步的方法。

6、线程的基本概念、线程的基本状态以及状态之间的关系

7、java中有几种方法可以实现一个线程?用什么关键字修饰同步方法? stop()和suspend()方法为何不推荐使用?

8、sleep的作用是什么?

9、什么是synchronized,其作用是什么?

IO、JDBC

1、java中有几种IO流?JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类?

2、什么是输入输出流缓冲类,举出一个最常用的的输出流缓冲类,并解释其作用?

3、请解释java.io.Serializable类,什么是序列化?

4、描述输出、输入操作的过程是怎样的?

5、什么是jdbc

6、使用jdbc进行数据库访问的流程

7、jdbc进行数据库访问有几种方式,其特点是什么

8、如何使用jdbc-odbc桥的形式进行数据库的访问,其优缺点是什么?

9、怎样ResultSet结果集进行访问?结果集是否可以随意访问,应该如何操作?

10、PreparedStatement类的作用是什么,怎么使用举例说明。其与Statement类有什么区别?

11、结果中获取数据的方法通常为getXXXX(),描述相应的访问方式?

12、数据库操作分为几类?对于数据库的更新与查找操作分别使用什么方法?

13、在访问数据库时需要用到Class.forName(参数),详细说明该过程;

14、怎样批量的对数据库进行操作,详细描述该过程;

15、当一个数据库连接使用完后,不进行关闭是否会抛出异常?

16、对于带参数的createStatement(参数)的作用是什么?给出一个例子说明;常用英语单词

abstract 抽象

add 添加

access 访问

active 活跃的

activity 活动

array 数组

attempt 试图

affect 影响,作用

block 阻塞

certain 确定

choice 选择

choice 选择

code 代码

collection 容器、收集、收藏品compare 比较,对照compile 编译

contract 合约

constructor 构造方法connection 连接

contain 包含

correct 正确

create 创建

current 当前的

condition 条件

cursor 游标、光标determin 决定definite 明确的

derive 源自于、子类different 不同的

driver 驱动、司机describe 描述

dynamic 动态的

element 元素

equal 等于

establish 创建

example 例子

excute 执行

exit 逃离、退出extend 扩展、延伸、继承exception 异常

false 假

final 最终

following 紧接着的,接下来的,guarantee 保证

generat 产生

general 通常、一般的happen 发生

Hashcode 哈希编码

index 索引

intput 输入

iterator 迭代

interface 接口

list 列表

method 方法

modifier 修饰词multiple thread 多线程

map 映射

memory 记忆、内存never 从不

override 重写

output 输出

overflow 溢出operation 操作

public 公共

private 私有

protect 保护

produce 产生

program 程序

privilege 权限、特权prepared 有准备的

port 端口、港口position 位置

query 询问,问ResultSet 结果集reference 引用

require 需求

refer to 涉及

remain 保持,仍然result 结果

read 读

return 返回

run 运行

set 集合

socket 套接字、插座、suitable 合适的

static 静态

state 状态

same 相同的statement 语句,陈述select 选择

sleep 睡觉、休眠store 存贮

sort 排序

suspend 悬挂、挂起superclass 超类、父类subclass 子类switch 切换

synchronize 同步

true 真

thus 所以,于是

thread 线程

update 更新

version 版本

visit 访问

write 写

wait 等待

which 哪一个

JVM(Java Visual Machine)

java虚拟机

JDBC(Java Database Connectivity)java数据库连接

OOP(Object Oriented Programming) 面向对象的程序设计

API (Application Programming Interface) 应用编程接口

JRE (Java Runtime Enviroment)

Java 运行时环境

JDK (Java Development Kit)

Java开发工具包

JVM (Java Virtual Machine)

Java虚拟机

JNI (Java Native Interface)

Java本地接口

AWT (Abstract Windows Toolekit)

抽象窗口工具箱

JAVA面试题汇总

目录 概念题 ---------------------------------------------------------------------------------错误!未定义书签。 一、JAVA基础 ------------------------------------------------------------------------------ 错误!未定义书签。 1)面向对象的特征 --------------------------------------------------------------------------------------- 错误!未定义书签。 2)什么是OOP?什么是类?请对比类和对象实例之间的关系。 ----------------------- 错误!未定义书签。 3)简述类与对象的概念 -------------------------------------------------------------------------------- 错误!未定义书签。 4)什么是属性与方法? -------------------------------------------------------------------------------- 错误!未定义书签。 5)什么是封装? ------------------------------------------------------------------------------------------ 错误!未定义书签。 6)描述一下JVM加载class文件的原理机制 --------------------------------------------------- 错误!未定义书签。 7)Java程序怎么优化? -------------------------------------------------------------------------------- 错误!未定义书签。 8)一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制?----- 错误!未定义书签。 9)char型变量中能不能存贮一个中文汉字 ----------------------------------------------------- 错误!未定义书签。 10)逻辑操作符(&,|,^)与条件操作符(&&,||)的区别--------------------------------------- 错误!未定义书签。 11)Math.round(11.5)等於多少? Math.round(-11.5)等於多少? ------------------------- 错误!未定义书签。 12)Java有没有goto?-------------------------------------------------------------------------------- 错误!未定义书签。 13)int 和Integer 的区别 --------------------------------------------------------------------------- 错误!未定义书签。 14)如何将数值型字符转换为数字?如何去小数四舍五入保留小数点后两位。错误!未定义书签。 15)short s1 = 1; s1 = s1 + 1;和short s1 = 1; s1 += 1;有什么错误 -------------------------- 错误!未定义书签。 16)float f=3.4是否正确? ----------------------------------------------------------------------------- 错误!未定义书签。 17)String 和StringBuffer的区别 ------------------------------------------------------------------ 错误!未定义书签。 18)String是否是最基本的数据类型,能否被继承 ----------------------------------------- 错误!未定义书签。 19)String s = new String("xyz");创建了几个String Object? ------------------------------- 错误!未定义书签。 20)数组有没有length()这个方法? String有没有length()这个方法? ---------------- 错误!未定义书签。 21)排序都有哪几种方法?用JAVA实现一个快速排序 ----------------------------------- 错误!未定义书签。 22)swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上--- 错误!未定义书 签。 23)在JAVA中,如何跳出当前的多重嵌套循环? ------------------------------------------ 错误!未定义书签。 24)关于日期和时间的几个问题------------------------------------------------------------------- 错误!未定义书签。 25)一个对象被当作参数传递到一个方法,是值传递还是引用传递----------------- 错误!未定义书签。 26)什么时候用assert?------------------------------------------------------------------------------ 错误!未定义书签。 27)GC是什么? 为什么要有GC? ---------------------------------------------------------------- 错误!未定义书签。 28)垃圾回收的优点和原理 ------------------------------------------------------------------------- 错误!未定义书签。 29)垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?错误!未定义书 签。 30)java中会存在内存泄漏吗,请简单描述 -------------------------------------------------- 错误!未定义书签。 31)java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,他们分别是哪些 类?错误!未定义书签。 32)文件和目录(I/O)操作 ------------------------------------------------------------------------ 错误!未定义书签。 33)什么是java序列化?如何实现java序列化?------------------------------------------- 错误!未定义书签。

java经典面试题汇总

Java基础方面: 1、作用域public,private,protected,以及不写时的区别 答:区别如下: 作用域当前类同一package 子孙类其他package public √√√√ protected √√√ × friendly √√ × × private √ × × × 不写时默认为friendly 2、Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口) 答:匿名的内部类是没有名字的内部类。不能extends(继承) 其它类,但一个内部类可以作为一个接口,由另一个内部类实现 3、Static Nested Class 和 Inner Class的不同 答:Nested Class (一般是C++的说法),Inner Class (一般是JA V A的说法)。Java内部类与C++嵌套类最大的不同就在于是否有指向外部的引用上。注:静态内部类(Inner Class)意味着1创建一个static内部类的对象,不需要一个外部类对象,2不能从一个static内部类的一个对象访问一个外部类对象 4、&和&&的区别 答:&是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and) 5、Collection 和 Collections的区别 答:Collection是集合类的上级接口,继承与他的接口主要有Set 和List. Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作 6、什么时候用assert 答:assertion(断言)在软件开发中是一种常用的调试方式,很多开发语言中都支持这种机制。在实现中,assertion就是在程序中的一条语句,它对一个boolean表达式进行检查,一个正确程序必须保证这个boolean表达式的值为true;如果该值为false,说明程序已经处于不正确的状态下,系统将给出警告或退出。一般来说,assertion用于保证程序最基本、关键的正确性。assertion检查通常在开发和测试时开启。为了提高性能,在软件发布后,assertion检查通常是关闭的 7、String s = new String("xyz");创建了几个String Object 答:两个,一个字符对象,一个字符对象引用对象 8、Math.round(11.5)等於多少? Math.round(-11.5)等於多少 答: Math.round(11.5)==12;Math.round(-11.5)==-11;round方法返回与参数最接近的长整数,参数加1/2后求其floor 9、short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错 答:short s1 = 1; s1 = s1 + 1; (s1+1运算结果是int型,需要强制转换类型)short s1 = 1; s1 += 1;(可以正确编译) 10、Java有没有goto 答:java中的保留字,现在没有在java中使用 11、数组有没有length()这个方法? String有没有length()这个方法 答:数组没有length()这个方法,有length的属性。String有有length()这个方法 12、Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型

百一测评——Java经典面试题 带答案

职业技能题库&在线云笔试平台https://www.doczj.com/doc/b812601964.html, 试卷名称:Java经典面试题带答案 试卷描述:java笔试题目、招聘笔试、微信考试、在线考试 试卷链接:https://www.doczj.com/doc/b812601964.html,/store/open/paperInfo/41651 试卷限时:50分 一.单项选择题 每题分值:2.5分 是否题目乱序:是 是否选项乱序:是 是否可回溯:是 难度:中 1.[单选]Java是从()语言改进重新设计。 A.Ada B.C++ C.Pasacal D.BASIC 答案:B 2.[单选]下列语句哪一个正确() A.Java程序经编译后会产生machine code B.Java程序经编译后会产生byte code C.Java程序经编译后会产生DLL D.以上都不正确

职业技能题库&在线云笔试平台https://www.doczj.com/doc/b812601964.html, 答案:B 3.[单选]下列说法正确的有() A.class中的constructor不可省略 B.constructor必须与class同名,但方法不能与class同名 C.constructor在一个对象被new时执行 D.一个class只能定义一个constructor 答案:C 4.[单选]提供Java存取数据库能力的包是() A.java.sql B.java.awt C.https://www.doczj.com/doc/b812601964.html,ng D.java.swing 答案:A 5.[单选]下列运算符合法的是() A.&& B.<> C.if D.:= 答案:A 6.[单选]执行如下程序代码 a=0;c=0;

职业技能题库&在线云笔试平台https://www.doczj.com/doc/b812601964.html, do{ --c; a=a-1; }while(a>0); 后,C的值是() A.0 B.1 C.-1 D.死循环 答案:C 7.[单选]下列哪一种叙述是正确的() A.abstract修饰符可修饰字段、方法和类 B.抽象方法的body部分必须用一对大括号{}包住 C.声明抽象方法,大括号可有可无 D.声明抽象方法不可写出大括号 答案:D 8.[单选]下列语句正确的是() A.形式参数可被视为localvariable B.形式参数可被字段修饰符修饰 C.形式参数为方法被调用时,真正被传递的参数 D.形式参数不可以是对象

JAVA框架面试题汇总

1.SpringMVC Framework的理解: 1、它是基于组件技术的.全部的应用对象,无论控制器和视图,还是业务对象之类的都是java组件。并且和Spring提供的其他基础结构紧密集成 2、不依赖于Servlet API(目标虽是如此,但是在实现的时候确实是依赖于Servlet的) 3、可以任意使用各种视图技术,而不仅仅局限于JSP 4、支持各种请求资源的映射策略 5、它应是易于扩展的 2.简单的谈一下SpringMVC的工作流程? 流程? 1、用户发送请求至前端控制器DispatcherServlet? 2、DispatcherServlet收到请求调用HandlerMapping处理器映射器。? 3、处理器映射器找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。? 4、DispatcherServlet调用HandlerAdapter处理器适配器? 5、HandlerAdapter经过适配调用具体的处理器(Controller,也叫后端控制器)。? 6、Controller执行完成返回ModelAndView? 7、HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet? 8、DispatcherServlet将ModelAndView传给ViewReslover视图解析器? 9、ViewReslover解析后返回具体View? 10、DispatcherServlet根据View进行渲染视图(即将模型数据填充至视图中)。? 11、DispatcherServlet响应用户 3.如何解决POST请求中文乱码问题,GET的又如何处理呢? 在web.xml中加入: . .CharacterEncodingFilter . .???? .????????encoding .?????? utf-8

Java面试测试题并赋予答案

在main(String[] args)方法内是否可以调用一个非静态方法? 1.不能 同一个文件里是否可以有两个public类? 2.不能 方法名是否可以与构造器的名字相同? 3.可以。 public class Test { public Test(String iceboy) { System.out.println(iceboy); } public void Test(String iceboy) { System.out.println(iceboy); } public static void main(String[] args) { Test a = new Test("abc");//输出“abc” a.Test("iceboy");//输出“iceboy” } } 4.初始化了一个没有run()方法的线程类,是否会出错? 4.不会。 第一种方法:直接继承Thread类。 public class Test { public static void main(String[] args) { ThreadClass t = new ThreadClass(); t.start(); System.out.println("end");//输出“end” } } class ThreadClass extends Thread //Thread类已经实现了空的run()方法。 { } 第二种方法:实现Runnable接口 public class Test { public static void main(String[] args)

{ ThreadClass t = new ThreadClass(); Thread thread = new Thread(t); thread.start(); System.out.println("end"); } } class ThreadClass implements Runnable { public void run() //必须有此方法否则编译报错。它是Runnable接口中的抽象方法。 { System.out.println("Threads"); } } 局部内部类是否可以访问非final变量? 不能访问局部的非final修饰的变量,可以访问局部的使用了final修饰的变量,可以访问成员变量(全局的)。 class Out { private String name = "https://www.doczj.com/doc/b812601964.html,"; void print() { final String work = "out.local.work";//若不是final的则不能被Animal 使用. int age=10; class Animal //定义一个局部内部类.只能在print()方法中使用. //局部类中不能使用外部的非final的局部变量.全局的可以. { public void eat() { System.out.println(work);/ /ok //age=20;//error not final,编译时就会出错 System.out.println(name);/ /ok. } } Animal local = new Animal(); local.eat(); }

JAVA程序员笔试面试题汇总及答案

1. 【基础题】请描述访问控制符的各自作用域与区别 答: √√√ √√√ √√ √ 一、名词解释 二、问答题 1. 【中等题】请说出ArrayList与Vector的区别 答: 主要从二方面来说、 同步性:Vector就是线程安全的,也就就是说就是同步的,而ArrayList就是线程序不安全的,不就是同步的 二、数据增长:当需要增长时,Vector 默认增长为原来一培,而ArrayList却就是原来的一半 2. 【中等题】请说出HashMap与Hashtable的区别 答:HashMap与HashT able主要从三方面来说。 一、历史原因:Hashtable就是基于陈旧的Dictionary类的,HashMap就是Java 1、2引进的Map接口的一个实现 二、同步性:Hashtable就是线程安全的,也就就是说就是同步的,而HashMap就是线程序不安全的,不就是同步的 三、值:只有HashMap可以让您将空值作为一个表的条目的key或value 3. 【基础题】Collection 与Collections的区别 答: Collections就是个java、util下的类,它包含有各种有关集合操作的静态方法。

Collection就是个java、util下的接口,它就是各种集合结构的父接口

第十八章输入输出 笔试题 一、填空题 1. 【基础题】File对象的isFile()方法作用就是判断就是否就是文 件,getAbsolutePath() 方法作用就是获取文件或目录的绝对路径。 2. 【基础题】BufferedReader与BufferedWriter以字符流的方式读写文本文件,且效率更高。 3. 【基础题】与以字节流的方式读写文本文件。 二、选择题 1. 【基础题】下列哪个类就是实体类(BC ) A. InputStream B. PrintStream C. Socket D. Reader E. DataInput 2. 【提高题】请选择下列程序的运行结果(A) public class TestIOapp{ public static void main(String [] args) throws IOException{ StringReader stingin = new StringReader("test"); LineNumberReader in = new LineNumberReader(stingin); PrintWriter out = new PrintWriter(System、out); out、println(in、readLine()); out、flush(); } } A. test B. test:1 C. 1:test D. 1 test 3. 【提高题】请选择下列程序的运行结果( B )

javaWeb面试题(含答案)

1、jsp和servlet的区别、共同点、各自应用的围?? JSP是Servlet技术的扩展,本质上就是Servlet的简易方式。JSP编译后是“类servlet”。Servlet和JSP最主要的不同点在于,Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML里分离开来。而JSP的情况是Java和HTML可以组合成一个扩展名为.jsp的文件。JSP侧重于视图,Servlet主要用于控制逻辑。在struts框架中,JSP位于MVC设计模式的视图层,而Servlet位于控制层. 2、cookie和session的作用、区别、应用围,session的工作原理??? Cookie:主要用在保存客户端,其值在客户端与服务端之间传送,不安全,存储的数据量有限。 Session:保存在服务端,每一个session在服务端有一个sessionID作一个标识。存储的数据量大,安全性高。占用服务端的存资源。 3、jstl是什么?优点有哪些?? JSTL(JSP Standard Tag Library ,JSP标准标签库)是一个不断完善的开放源代码的JSP标签库,由四个定制标记库(core、format、xml 和 sql)和一对通用标记库验证器(ScriptFreeTLV 和 PermittedTaglibsTLV)组成。优点有: 1、在应用程序服务器之间提供了一致的接口,最大程序地提高了WEB应用在各应用服务器之间的移植。 2、简化了JSP和WEB应用程序的开发。 3、以一种统一的方式减少了JSP中的scriptlet代码数量,可以达到没有任何scriptlet 代码的程序。在我们公司的项目中是不允许有任何的scriptlet代码出现在JSP中。 4、允许JSP设计工具与WEB应用程序开发的进一步集成。相信不久就会有支持JSTL的IDE 开发工具出现。 4、j2ee的优越性主要表现在哪些方面?MVC模式 a、 J2EE基于JAVA 技术,与平台无关 b、 J2EE拥有开放标准,许多大型公司实现了对该规支持的应用服务器。如BEA ,IBM,ORACLE

华为java笔试面试题

华为Java笔试题+数据库题 一、单项选择题 1.Java是从( B)语言改进重新设计。 A.Ada B.C++ C.Pasacal D.BASIC 2.下列语句哪一个正确(B ) A. Java程序经编译后会产生machine code B. Java程序经编译后会产生byte code C. Java程序经编译后会产生DLL D.以上都不正确 3.下列说法正确的有(C ) A. class中的constructor不可省略 B. constructor必须与class同名,但方法不能与class同名C. constructor在一个对象被new时执行 D.一个class只能定义一个constructor 4.提供Java存取数据库能力的包是( A) A.java.sql B.java.awt C.https://www.doczj.com/doc/b812601964.html,ng D.java.swing 5.下列运算符合法的是( A) A.&& B.<> C.if D.:= 6.执行如下程序代码 a=0;c=0; do{ --c; a=a-1; }while(a>0); 后,C的值是(C ) A.0 B.1 C.-1 D.死循环 7.下列哪一种叙述是正确的( D) A. abstract修饰符可修饰字段、方法和类 B.抽象方法的body部分必须用一对大括号{ }包住 C.声明抽象方法,大括号可有可无 D.声明抽象方法不可写出大括号 8.下列语句正确的是( C) A.形式参数可被视为local variable B.形式参数可被字段修饰符修饰 C.形式参数为方法被调用时,真正被传递的参数 D.形式参数不可以是对象 9.下列哪种说法是正确的(A ) A.实例方法可直接调用超类的实例方法 B.实例方法可直接调用超类的类方法 C.实例方法可直接调用其他类的实例方法 D.实例方法可直接调用本类的类方法 二、多项选择题 1.Java程序的种类有(BCD ) A.类(Class) B.Applet C.Application D.Servlet 2.下列说法正确的有( BCD) A.环境变量可在编译source code时指定

常见的java面试笔试题大汇总

1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。 2.继承: 继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。 3.封装: 封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。 4. 多态性: 多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。 5、String是最基本的数据类型吗? 基本数据类型包括byte、int、char、long、float、double、boolean和short。 https://www.doczj.com/doc/b812601964.html,ng.String类是final类型的,因此不可以继承这个类、不能修改这个类。为了提高效率节省空间,我们应该用StringBuffer类 6、int 和Integer 有什么区别 Java 提供两种不同的类型:引用类型和原始类型(或内置类型)。Int是java的原始数据类型,Integer是java为int提供的封装类。Java为每个原始类型提供了封装类。 原始类型封装类 boolean Boolean char Character byte Byte short Short int Integer long Long float Float double Double 引用类型和原始类型的行为完全不同,并且它们具有不同的语义。引用类型和原始类型具有不同的特征和用法,它们包括:大小和速度问题,这种类型以哪种类型的数据结构存储,当引用类型和原始类型用作某个类的实例数据时所指定的缺省值。对象引用实例变量的

(完整版)2019最新Java面试题,常见面试题及答案汇总

ava最新常见面试题+ 答案汇总 1、面试题模块汇总 面试题包括以下十九个模块:Java 基础、容器、多线程、反射、对象拷贝、Java Web 模块、异常、网络、设计模式、Spring/Spring MVC、Spring Boot/Spring Cloud、Hibernate、Mybatis、RabbitMQ、Kafka、Zookeeper、MySql、Redis、JVM 。如下图所示: 可能对于初学者不需要后面的框架和JVM 模块的知识,读者朋友们可根据自己的情况,选择对应的模块进行阅读。 适宜阅读人群 需要面试的初/中/高级java 程序员 想要查漏补缺的人 想要不断完善和扩充自己java 技术栈的人 java 面试官 具体面试题 下面一起来看208 道面试题,具体的内容。 一、Java 基础 1.JDK 和JRE 有什么区别? 2.== 和equals 的区别是什么? 3.两个对象的hashCode()相同,则equals()也一定为true,对吗? 4.final 在java 中有什么作用? 5.java 中的Math.round(-1.5) 等于多少? 6.String 属于基础的数据类型吗? 7.java 中操作字符串都有哪些类?它们之间有什么区别? 8.String str="i"与String str=new String(“i”)一样吗? 9.如何将字符串反转? 10.String 类的常用方法都有那些? 11.抽象类必须要有抽象方法吗? 12.普通类和抽象类有哪些区别? 13.抽象类能使用final 修饰吗?

14.接口和抽象类有什么区别? 15.java 中IO 流分为几种? 16.BIO、NIO、AIO 有什么区别? 17.Files的常用方法都有哪些? 二、容器 18.java 容器都有哪些? 19.Collection 和Collections 有什么区别? 20.List、Set、Map 之间的区别是什么? 21.HashMap 和Hashtable 有什么区别? 22.如何决定使用HashMap 还是TreeMap? 23.说一下HashMap 的实现原理? 24.说一下HashSet 的实现原理? 25.ArrayList 和LinkedList 的区别是什么? 26.如何实现数组和List 之间的转换? 27.ArrayList 和Vector 的区别是什么? 28.Array 和ArrayList 有何区别? 29.在Queue 中poll()和remove()有什么区别? 30.哪些集合类是线程安全的? 31.迭代器Iterator 是什么? 32.Iterator 怎么使用?有什么特点? 33.Iterator 和ListIterator 有什么区别? 34.怎么确保一个集合不能被修改?

Java经典面试笔试题及答案

1.什么是对象序列化,为什么要使用? 所谓对象序列化就是把一个对象以二进制流的方式保存到硬盘上。好处:方便远程调用。 2.值传递与引用传递的区别? 所谓值传递就是把一个对象的值传给一个新的变量,但是系统会给这个新的变量开辟一个新的内存空间。不会改变原有的值所谓引用传递就是把一个对象在堆中保存的数据传递给一个变量,此时新的变量与原有的变量对应同一个内存存储空间,当新的变量修改对象的属性时,内存中的数据也会修改。 3.接口与抽象类的区别? 1:接口里面不可以实现方法体,抽象类可以实现方法体。 2:接口可以多继承接口,抽象类不可以。 3:接口需要被子类实现,抽象类是要被子类继承(单一继承)。 4:接口中只能有公有的方法和属性而且必须赋初始值,抽象类中可以有私有方法和属性. 5: 接口中不能存在静态方法,但属性可以和final,抽象类中方法中可以有静态方法,属性也可以。 4.谈谈继承,为什么要使用继承? 所谓继承就是找出几个类中共同的部分,提取出来作为父类。而子类只需要继承父类,就可以共享父类的方法。 使用继承能够减少重复的代码。 5.方法重载的好处?

所谓重载就是在一个类中可以定义多个相同的方法,但是方法的参数类型和参数的个数以及顺序要不同。 重载的好处就是能够让我们很快的掌握该方法的功能,我们只要要记住该方法就能很快的理解该方法的参数以及参数的作用 6.项目中印象最深的部分? 我觉得在该项目中我体现到了反射技术的强大之处,原来我一直不清楚反射是一种什么样的技术,只知道一些概念上的知识,经过这个项目之后,终于知道该怎样灵活运用反射,以及在什么时候运用。 谈谈你对面向对象的理解与认识? 我觉得使用面向对象这种思维的方式比较符合我们人类的思想,不需要去学习一些什么新的思考方式,就按照现实生活做的一些故事就能让人理解该内容的知识以及他们的作用。 我的看法就是: 1:当加入新的功能的时候不会修改原有的代码。(面向接口编程) 2: 当我们写的一个类可以重复的运用在其他项目中。(代码的复用性) 3:当写一个新类的时候要考虑到他的可扩展性。(灵活性) 7.谈谈集合框架? 集合框架分为三部分,第一部分是collection接口,第二部分是Map接口、第三部分是collections帮助类 首先说一下collection接口,collection接口下面的接口分为set 接口、list接口,在往下面就是他们一些实现类。

精选最新2020年JAVA笔试面试考核题库完整版588题(含答案)

2020年JAVA笔试面试题库588题 一、简答题 1.将两个表连接在一起时,下面那一项通常是另外一个表的主键A. 外键 B. 总控键 C. 重复的组 D. 主键 答案:A 2.下列关于Java语言的叙述中,正确的是:A. 源文件名其扩展名为.jar B. Java是不区分大小写的 C. 源文件中public类的数据不限 D. 源文件名必须与public类型的类名相同 答案:D 3.在Weblogic中如果部署的应用访问两个数据库并需要进行事务控制时,则需配置 答案:两阶段提交协议 4.关系数据库中,典型的实体关系模型有三个要素? 答案:数据结构、关系操作、完整性约束 5.转发HTTP请求的两个方法 respsonse.sendDirect 和 RequestDispatcher.forward 的区别 答案:RequestDispatcher.forward()方法和HttpServletResponse.sendRedirect()方法的区别是:前者仅是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址;后者则是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接。这样,从浏览器的地址栏中可以看到跳转后的链接地址。所以,前者更加高效,在前者可以满足需要时,尽量使用Request Dispatcher.forward()方法,并且,这样也有助于隐藏实际的链接。在有些情况下,比如,需要跳转到一个其它服务器上的资源,则必须使用HttpServletResponse.sendRequest()方法。 6.下面哪个是合法的布尔值 A. “false” B. false C. 10 答案:B 7.J2EE的三层模型是什么?

面试应聘的JAVA笔试题和答案

一、选择题 1:List, Set, Map是否继承自Collection接口 A:都是,B 都不是 C:List, Set 是 D:Set, Map 是 正确答案 C 2:下面描述哪个是正确的 A:构造器Constructor可被override B:可以继承String类 C:try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code不会被执行D:两个对象值相同(y) == true),那么也有相同的hash code 正确答案 D 3 abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized A:都能 B:都不能 C:可以为static D:可以为native 正确答案 A 4:下面的程序中,temp的最终值是什么? long temo=(int); temp%=2; A: 0 B :1 C :2 D : 3 正确答案 B 5、请在以下选项中选出非基本数据类型的选项 ( ) A: int B:byte C: boolean D:String 正确答案 D 6、阅读下面代码段, 给出以下代码的输出结果 public class Test{ public static void main(String args[]) { String str1 = "abc"; String str = "abc; String str2 = new String("abc"); == str2); == str1); } } A:true,true,true B:true,false,true C:true,true,false D:false,true,true 正确答案 D 7、阅读下面代码段, 给出以下代码的输出结果: int i=1; switch (i) { case 0: "zero");

Java面试笔试题目汇总

算法软件科技Java工程师笔试题 一、选择题(可多选)。 1、Java 之所以可以实现夸平台,是因为Java 程序在运行时使用了: A: JDK ( Java Development Kit ) B: JRE ( Java Runtime Environment ) C: JVM ( Java Virtual Machine ) D: OS ( Operating System ) 2、下列不是Java语言中的关健字的是: A: public B: Static C:main D:void 3、以下程序中最终输出i 的值是: int i = 999; i--; ++i; System.out.println( i++ ); A: 998 B: 999 C:1000 D:1001

4、那个是合法的byte 类型的数据: A: 128 B: 127 C:-129 D: (int)-130 5、以下b 的值是:byte b = (byte)129; A: -126 B: -127 C:-128 D:-129 6、在JDK 1.7 中,对于switch 语句,switch 后面的( ) 中不可以是哪种类型: A: byte B: char C: short D: int E: String F: 枚举G: float H: double 7、对于以下代码,输出结果是: for( int i = 4 ; i > 0 ; i-- ){ int j = 0 ; do{ j++; if( j == 2 ){ break;

} }while( j < i ); System.out.print( j ); A: 4 3 2 1 B: 1 2 2 2 C: 2 2 2 1 D: 2 2 2 2 8、以下声明数组的方式,哪种是正确的: A: int[ 3 ][ 4 ] array; B: int[ 3 ] [] array; C: char [] array [] ; D: String[][] array; E: Object array[][]; F: Object array[][ 3 ]; 9、下列关于package 和import 语句的描述,正确的是: A: 同一个类中package 可以出现1次或多次 B: 同一个类中import 可以出现1 此或多次 C: 对于同一个类中,import 语句必须出现在该类的第一行(不含注释) D: 同一个类中,package 必须出现在该类的第一行(不含注释)

百一测评——Java经典面试题 带答案

试卷名称:Java经典面试题带答案 试卷描述:java笔试题目、招聘笔试、微信考试、在线考试试卷链接:试卷限时:50分 一.单项选择题 每题分值:分 是否题目乱序:是 是否选项乱序:是 是否可回溯:是 难度:中 1.[单选]Java是从()语言改进重新设计。 A.Ada B.C++ C.Pasacal D.BASIC 答案:B 2.[单选]下列语句哪一个正确() A.Java程序经编译后会产生machine code B.Java程序经编译后会产生byte code C.Java程序经编译后会产生DLL D.以上都不正确 答案:B 3.[单选]下列说法正确的有()

A.class中的constructor不可省略 B.constructor必须与class同名,但方法不能与class同名C.constructor在一个对象被new时执行 D.一个class只能定义一个constructor 答案:C 4.[单选]提供Java存取数据库能力的包是() A. B. C. D. 答案:A 5.[单选]下列运算符合法的是() A.&& B.<> C.if D.:= 答案:A 6.[单选]执行如下程序代码 a=0;c=0; do{ --c; a=a-1;

}while(a>0); 后,C的值是() A.0 B.1 C.-1 D.死循环 答案:C 7.[单选]下列哪一种叙述是正确的()A.abstract修饰符可修饰字段、方法和类 B.抽象方法的body部分必须用一对大括号{}包住C.声明抽象方法,大括号可有可无 D.声明抽象方法不可写出大括号 答案:D 8.[单选]下列语句正确的是() A.形式参数可被视为localvariable B.形式参数可被字段修饰符修饰 C.形式参数为方法被调用时,真正被传递的参数D.形式参数不可以是对象 答案:A 9.[单选]下列哪种说法是正确的() A.实例方法可直接调用超类的实例方法 B.实例方法可直接调用超类的类方法

Java经典面试题大全 带答案

Java经典面试题带答案一、单项选择题 1.Java是从()语言改进重新设计。 A.Ada B.C++ C.Pasacal D.BASIC 答案:B 2.下列语句哪一个正确() A.Java程序经编译后会产生machine code B.Java程序经编译后会产生byte code C.Java程序经编译后会产生DLL D.以上都不正确 答案:B 3.下列说法正确的有() A.class中的constructor不可省略 B.constructor必须与class同名,但方法不能与class同名C.constructor在一个对象被new时执行 D.一个class只能定义一个constructor 答案:C 4.提供Java存取数据库能力的包是() A.java.sql B.java.awt C.https://www.doczj.com/doc/b812601964.html,ng D.java.swing 答案:A 5.下列运算符合法的是() A.&& B.<> C.if D.:= 答案:A 6.执行如下程序代码 a=0;c=0; do{ --c; a=a-1; }while(a>0); 后,C的值是() A.0 B.1 C.-1 D.死循环

答案:C 7.下列哪一种叙述是正确的() A.abstract修饰符可修饰字段、方法和类 B.抽象方法的body部分必须用一对大括号{}包住 C.声明抽象方法,大括号可有可无 D.声明抽象方法不可写出大括号 答案:D 8.下列语句正确的是() A.形式参数可被视为localvariable B.形式参数可被字段修饰符修饰 C.形式参数为方法被调用时,真正被传递的参数 D.形式参数不可以是对象 答案:A 9.下列哪种说法是正确的() A.实例方法可直接调用超类的实例方法 B.实例方法可直接调用超类的类方法 C.实例方法可直接调用其他类的实例方法 D.实例方法可直接调用本类的类方法 答案:D 二、多项选择题 1.Java程序的种类有() A.类(Class) B.Applet C.Application D.Servlet 2.下列说法正确的有() A.环境变量可在编译sourcecode时指定 B.在编译程序时,所能指定的环境变量不包括class path C.javac一次可同时编译数个Java源文件 D.javac.exe能指定编译结果要置于哪个目录(directory)答案:BCD 3.下列标识符不合法的有() A.new B.$Usdollars C.1234 D.car.taxi 答案:ACD 4.下列说法错误的有() A.数组是一种对象 B.数组属于一种原生类 C.intnumber=[]={31,23,33,43,35,63} D.数组的大小可以任意改变 答案:BCD 5.不能用来修饰interface的有()

相关主题
文本预览
相关文档 最新文档