2020年终Java面试题总结,20多类1100道面试题含答案解析

本文汇总了各类Java面试题,覆盖初级到高级知识点,包括OOP、集合、异常、多线程、JVM、数据库及框架等内容,是Java开发者面试前复习的全面指南。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

2020年马上要过去了,总结了各类Java面试题,初中级和中高级都有,包括Java OOP面试题、Java集合/泛型面试题、Java异常面试题、Java种的IO与NIO面试题、Java反射面试题、Java序列化面试题、Java注解面试题、多线程与并发面试题、JVM面试题、MySQL面试题、Redis面试题、Memcached面试题、MongoDB面试题、String面试题、Spring Boot面试题、Spring Cloud面试题、RabbitMQ面试题、Dubbo 面试题、MyBatis 面试题、ZooKeeper 面试题、数据结构面试题、算法面试题、Elasticsearch 面试题、Kafka 面试题、微服务面试题、Linux面试题。

Java OOP面试题108道

1、什么是B/S架构?什么是C/S架构

(1)B/S(Browser/Server),浏览器/服务器程序

(2)C/S(Client/Server),客户端/服务端,桌面应用程序

2、Java都有哪些开发平台?

(1) JAVA SE:主要用在客户端开发

(2)JAVA EE:主要用在web应用程序开发

(3)JAVA ME:主要用在嵌入式应用程序开发

3、什么是JDK?什么是JRE?

(1)JDK:java development kit:java开发工具包,是开发人员所需要安装的环境

(2)JRE:java runtime environment:java运行环境,java程序运行所需要安装的环境

4、Java语言有哪些特点

(1) 简单易学、有丰富的类库

(2) 面向对象(Java最重要的特性,让程序耦合度更低,内聚性更高)

(3)与平台无关性(JVM是Java跨平台使用的根本)

(4) 可靠安全

(5)支持多线程

Java集合/泛型面试题24道

ArrayList和linkedList的区别

Array(数组)是基于索引(index)的数据结构,它使用索引在数组中搜索和读取数据是很快的。

Array获取数据的时间复杂度是O(1),但是要删除数据却是开销很大,因为这需要重排数组中的所有数据,(因为删除数据以后, 需要把后面所有的数据前移)

缺点: 数组初始化必须指定初始化的长度, 否则报错

例如:

int[] a = new int[4];//推荐使用int[] 这种方式初始化int c[] = {23,43,56,78};//长度:4,索引范围:[0,3]

List—是一个有序的集合,可以包含重复的元素,提供了按索引访问的方式,它继承Collection。

List有两个重要的实现类:ArrayList和LinkedList

ArrayList: 可以看作是能够自动增长容量的数组

ArrayList的toArray方法返回一个数组

ArrayList的asList方法返回一个列表

ArrayList底层的实现是Array, 数组扩容实现

LinkList是一个双链表,在添加和删除元素时具有比ArrayList更好的性能.但在get与set方面弱于

ArrayList.当然,这些对比都是指数据量很大或者操作很频繁。

Java异常面试题8道

1、Java中异常分为哪两种?

2、异常的处理机制有几种?

3、如何自定义一个异常

4、try catch fifinally,try里有return,finally还执行么?

5、 Excption与Error包结构

6、Thow与thorws区别

7、Error与Exception区别?

8、error和exception有什么区别

 

Java中的IO与NIO面试题15道

1、Java 中 IO 流?

2、 Java IO与 NIO的区别

3、常用io类有哪些

4、字节流与字符流的区别

5、阻塞 IO 模型

6、非阻塞 IO 模型

7、多路复用 IO 模型

8、信号驱动 IO 模型

9、异步 IO 模型

10、JAVA NIO

11、NIO 的缓冲区

12、NIO 的非阻塞

13、Channel

14、Buffer

15、Selector

Java反射面试题11道

1、除了使用new创建对象之外,还可以用什么方法创建对象?

2、Java反射创建对象效率高还是通过new创建对象的效率高?

3、java反射的作用

4、哪里会用到反射机制?

5、反射的实现方式:

6、实现Java反射的类:

7、反射机制的优缺点:

8、Java 反射 API

9、反射使用步骤(获取 Class 对象、调用对象方法)

10、获取 Class 对象有几种方法

11、利用反射动态创建对象实例

 

Java序列化面试题10道

1、什么是java序列化,如何实现java序列化?

2、保存(持久化)对象及其状态到内存或者磁盘

3、序列化对象以字节数组保持-静态成员不保存

4、序列化用户远程对象传输

5、Serializable 实现序列化

6、writeObject 和 readObject 自定义序列化策略

7、序列化 ID

8、序列化并不保存静态变量

9、Transient 关键字阻止该变量被序列化到文件中

10、序列化(深 clone 一中实现)

Java注解面试题2道

1、4种标准元注解是哪四种?

2、注解是什么?

多线程与并发面试题108道

1、Java中实现多线程有几种方法

继承Thread类;

实现Runnable接口;

实现Callable接口通过FutureTask包装器来创建Thread线程;

使用ExecutorService、Callable、Future实现有返回结果的多线程(也就是使用了ExecutorService来管理前面的三种方式)。

2、继承 Thread 类

Thread 类本质上是实现了 Runnable 接口的一个实例,代表一个线程的实例。 启动线程的唯一方法就是通过 Thread 类的 start()实例方法。 start()方法是一个 native 方法,它将启动一个新线程,并执行 run()方法。

 

public class MyThread extends Thread {public void run() {System.out.println("MyThread.run()");}}MyThread myThread1 = new MyThread();myThread1.start(); 

3、实现 Runnable 接口。

如果自己的类已经 extends 另一个类,就无法直接 extends Thread,此时,可以实现一个Runnable 接口。

 

public class MyThread extends OtherClass implements Runnable {public void run() {System.out.println("MyThread.run()");}} //启动 MyThread,需要首先实例化一个 Thread,并传入自己的 MyThread 实例:MyThread myThread = new MyThread();Thread thread = new Thread(myThread);thread.start();//事实上,当传入一个 Runnable target 参数给 Thread 后, Thread 的 run()方法就会调用target.run()public void run() {if (target != null) {target.run();}}

JVM面试题87道

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

会。自己实现堆载的数据结构时有可能会出现内存泄露,可参看effective java.

2、64 位 JVM 中,int 的长度是多数?

Java 中,int 类型变量的长度是一个固定值,与平台无关,都是 32 位。意思就是说,在 32 位 和 64 位 的 Java 虚拟机中,int 类型的长度是相同的。

3、Serial 与 Parallel GC 之间的不同之处?

Serial 与 Parallel 在 GC 执行的时候都会引起 stop-the-world。它们之间主要不同 serial 收集器是默认的复制收集器,执行 GC 的时候只有一个线程,而parallel 收集器使用多个 GC 线程来执行。

4、32 位和 64 位的 JVM,int 类型变量的长度是多数?

32 位和 64 位的 JVM 中,int 类型变量的长度是相同的,都是 32 位或者 4个字节。

5、Java 中 WeakReference 与 SoftReference 的区别?

虽然 WeakReference 与 SoftReference 都有利于提高 GC 和 内存的效率,但是 WeakReference ,一旦失去最后一个强引用,就会被 GC回收,而软引用虽然不能阻止被回收,但是可以延迟到 JVM 内存不足的时候。

6、JVM 选项 -XX:+UseCompressedOops 有什么作用?为什么要使用

当你将你的应用从 32 位的 JVM 迁移到 64 位的 JVM 时,由于对象的指针从32 位增加到了 64 位,因此堆内存会突然增加,差不多要翻倍。

这也会对 CPU缓存(容量比内存小很多)的数据产生不利的影响。因为,迁移到 64 位的 JVM主要动机在于可以指定最大堆大小,通过压缩OOP 可以节省一定的内存。通过-XX:+UseCompressedOops 选项,JVM 会使用 32 位的 OOP,而不是 64 位的 OOP。

7、怎样通过 Java 程序来判断 JVM 是 32 位 还是 64位?

你可以检查某些系统属性如 sun.arch.data.model 或 os.arch 来获取该信息。

MySQL面试题83道

1、数据库存储引擎

数据库存储引擎是数据库底层软件组织,数据库管理系统(DBMS)使用数据引擎进行创建、查询、更新和删除数据。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎,还可以 获得特定的功能。现在许多不同的数据库管理系统都支持多种不同的数据引擎。存储引擎主要有: 1. MyIsam , 2. InnoDB, 3. Memory, 4. Archive, 5. Federated 。

2、InnoDB(B+树)

InnoDB 底层存储结构为B+树, B树的每个节点对应innodb的一个page, page大小是固定的,一般设为 16k。其中非叶子节点只有键值,叶子节点包含完成数据

适用场景:

1)经常更新的表,适合处理多重并发的更新请求。

2)支持事务。

3)可以从灾难中恢复(通过 bin-log 日志等)。

4)外键约束。只有他支持外键。

5)支持自动增加列属性 auto_increment。

3、TokuDB( Fractal Tree-节点带数据)

TokuDB 底层存储结构为 Fractal Tree,Fractal Tree 的结构与 B+树有些类似, 在 Fractal Tree中, 每一个 child 指针除了需要指向一个 child节点外,还会带有一个 Message Buffer ,这个Message Buffer 是一个 FIFO 的队列,用来缓存更新操作。

例如,一次插入操作只需要落在某节点的 Message Buffer 就可以马上返回了,并不需要搜索到叶子节点。这些缓存的更新会在查询时或后台异步合并应用到对应的节点中。

TokuDB 在线添加索引,不影响读写操作, 非常快的写入性能, Fractal-tree 在事务实现上有优势。 它主要适用于访问频率不高的数据或历史数据归档。

Redis面试题50道

1、什么是 Redis?

Redis 是完全开源免费的,遵守 BSD 协议,是一个高性能的 key-value 数据库。

Redis 与其他 key - value 缓存产品有以下三个特点:

Redis 支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。

Redis 不仅仅支持简单的 key-value 类型的数据,同时还提供 list,set,zset,hash 等数据结构的存储。

Redis 支持数据的备份,即 master-slave 模式的数据备份。

Redis 优势

性能极高 – Redis 能读的速度是 110000 次/s,写的速度是 81000 次/s 。丰富的数据类型 – Redis 支持二进制案例的 Strings, Lists, Hashes,Sets 及Ordered Sets 数据类型操作。

原子 – Redis 的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多个操作也支持事务,即原子性,通过 MULTI 和 EXEC指令包起来。

丰富的特性 – Redis 还支持 publish/subscribe, 通知, key 过期等等特性。

2、Redis 与其他 key-value 存储有什么不同?

Redis 有着更为复杂的数据结构并且提供对他们的原子性操作,这是一个不同于其他数据库的进化路径。Redis 的数据类型都是基于基本数据结构的同时对程序员透明,无需进行额外的抽象。Redis 运行在内存中但是可以持久化到磁盘,所以在对不同数据集进行高速读写时需要权衡内存,因为数据量不能大于硬件内存。在内存数据库方面的另一个优点是,相比在磁盘上相同的复杂的数据结构,在内存中操作起来非常简单,这样 Redis可以做很多内部复杂性很强的事情。同时,在磁盘格式方面他们是紧凑的以追加的方式产生的,因为他们并不需要进行随机访问。

3、Redis 的数据类型?

Redis 支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及 zsetsorted set:有序集合)。

我们实际项目中比较常用的是 string,hash 如果你是 Redis 中高级用户,还需要加上下面几种数据结构 HyperLogLog、Geo、Pub/Sub。

如果你说还玩过 Redis Module,像 BloomFilter,RedisSearch,Redis-ML,面试官的眼睛就开始发亮了。

Memcached面试题24道

1、Memcached 是什么,有什么作用?

Memcached 是一个开源的,高性能的内存绶存软件,从名称上看 Mem 就是内存的意思,而 Cache 就是缓存的意思。Memcached 的作用:通过在事先规划好的内存空间中临时绶存数据库中的各类数据,以达到减少业务对数据库的直接高并发访问,从而达到提升数据库的访问性能,加速网站集群动态应用服务的能力。

2、Memcached 服务分布式集群如何实现?

特殊说明:Memcached 集群和 web 服务集群是不一样的,所有 Memcached 的数据总和才是数据库的数据。每台 Memcached 都是部分数据。(一台 memcached 的数据,就是一部分 mysql 数据库的数据)

a、程序端实现

程序加载所有 mc 的 ip 列表,通过对 key 做 hash (一致性哈希算法)

例如:web1 (key)===>对应 A,B,C,D,E,F,G…..若干台服务器。(通过哈希算法实现)

b、负载均衡器

通过对 key 做 hash (一致性哈希算法)一致哈希算法的目的是不但保证每个对象只请求一个对应的服务器,而且当节点宕机,缓存服务器的更新重新分配比例降到最低。

MongoDB面试题95道

1、mongodb是什么?

MongoDB 是由 C++语言编写的,是一个基于分布式文件存储的开源数据库系统。 在高负载的情况下,添加更多的节点,可以保证服务器性能。 MongoDB 旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。

MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。 MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。

2、mongodb有哪些特点?

(1)MongoDB 是一个面向文档存储的数据库,操作起来比较简单和容易。

(2)你可以在 MongoDB 记录中设置任何属性的索引 (如: FirstName="Sameer",Address="8 Gandhi Road")来实现更快的排序。

(3)你可以通过本地或者网络创建数据镜像,这使得 MongoDB 有更强的扩展性。

(4)如果负载的增加(需要更多的存储空间和更强的处理能力) ,它可以分布在计算机网络中的其他节点上这就是所谓的分片。

(5)Mongo 支持丰富的查询表达式。查询指令使用 JSON 形式的标记,可轻易查询文档中内嵌的对象及数组。

(6)MongoDb 使用 update()命令可以实现替换完成的文档(数据)或者一些指定的数据字段 。

(7)Mongodb 中的 Map/reduce 主要是用来对数据进行批量处理和聚合操作。

(8)Map 和 Reduce。 Map 函数调用 emit(key,value)遍历集合中所有的记录,将key与value传给Reduce 函数进行处理。

(9)Map 函数和 Reduce 函数是使用 Javascript 编写的,并可以通过 db.runCommand 或mapreduce 命令来执行 MapReduce 操作。

(10) GridFS 是 MongoDB 中的一个内置功能,可以用于存放大量小文件。

(11) MongoDB 允许在服务端执行脚本, 可以用 Javascript 编写某个函数,直接在服务端执行,也

可以把函数的定义存储在服务端,下次直接调用即可。

Spring面试题131道

1、不同版本的 Spring Framework 有哪些主要功能?

2、什么是 Spring Framework?

Spring 是一个开源应用框架,旨在降低应用程序开发的复杂度。它是轻量级、松散耦合的。它具有分层体系结构,允许用户选择组件,同时还为 J2EE 应用程序开发提供了一个有凝聚力的框架。它可以集成其他框架,如 Structs、Hibernate、EJB 等,所以又称为框架的框架。

3、列举 Spring Framework 的优点。

由于 Spring Frameworks 的分层架构,用户可以自由选择自己需要的组件。Spring Framework 支持 POJO(Plain Old Java Object) 编程,从而具备持续集成和可测试性。由于依赖注入和控制反转,JDBC 得以简化。它是开源免费的。

Spring Boot面试题92道

1、什么是 Spring Boot?

多年 来, 随着 新功 能的 增加 ,spring 变得 越来 越复 杂。 只需 访问官网页面 ,我们 就会 看到 可以 在我 们的 应用 程序 中使 用的所有 Spring 项目 的不 同功 能。 如果 必须 启动 一个 新的 Spring 项目 ,我 们必 须添加构 建路 径或 添加 Maven 依赖关系 ,配置应用程 序服 务器,添加 spring 配置 。因此 ,开始 一个新的 spring项目需要很多努力 ,因为我们现在必须从头开始做所有事 情。

Spring Boot 是解 决这 个问 题的 方法 。Spring Boot 已经 建立 在现 有 spring 框架之上 。使用 spring 启动 ,我们避免了之前我 们必须做 的所 有样 板代 码和 配置 。因此, Spring Boot 可以 帮助 我们 以最少的 工作量, 更加 健壮地使用现有的 Spring功能

2、为什么要用SpringBoot

Spring Boot 优点非常多,如:

(1)独立运行

Spring Boot而且内嵌了各种servlet容器,Tomcat、Jetty等,现在不再需要打成war包部署到容器中,Spring Boot只要打成一个可执行的jar包就能独立运行,所有的依赖包都在一个jar包内。

(2)简化配置

spring-boot-starter-web启动器自动依赖其他组件,简少了maven的配置。

(3)自动配置

Spring Boot能根据当前类路径下的类、jar包来自动配置bean,如添加一个spring-boot-starter-web启动器就能拥有web的功能,无需其他配置。

(4)无代码生成和XML配置

Spring Boot配置过程中无代码生成,也无需XML配置文件就能完成所有配置工作,这一切都是借助于条件注解完成的,这也是Spring4.x的核心功能之一。

(5)应用监控

Spring Boot提供一系列端点可以监控服务及应用,做健康检测

内容太多就不一一展示了,后面还有Spring Cloud面试题35道、RabbitMQ面试题32道、Dubbo 面试题40道、MyBatis 面试题28道、ZooKeeper 面试题49道、数据结构面试题8道、算法面试题21道、Kafka 面试题25道、Elasticsearch 面试题24道、、微服务面试题50道、Linux面试题48道。


这些面试题都整理成了一个pdf文档,总共有200多页。

欢迎关注公众号:程序员追风,回复003领取这份整理的Java面试题手册。

最后

希望能帮助到你面试前的复习且找到一个好的工作,也节省你在网上搜索资料的时间来学习。

Java 软件工程师面试资料大整合 1 Java 面霸 1 1. int 和 Integer 有什么区别? 8 2. String 和StringBuffer的区别 8 3. 运行时异常与一般异常有何异同? 8 4. 说出ArrayList,Vector,LinkedList的存储性能和特性 8 5. EJB是基于哪些技术实现的?并说出SessionBean和EntityBean的区别,StatefulBean和StatelessBean的区别。 9 6. Collection 和 Collections的区别。 9 7. &和&&的区别。 9 8. HashMap和Hashtable的区别。 10 9. final, finally, finalize的区别。 10 10. sleep() 和 wait() 有什么区别? 10 11. Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型? 10 12. error和exception有什么区别? 11 13. 同步和异步有何异同,在什么情况下分别使用他们?举例说明。 11 14. 简述synchronized和java.util.concurrent.locks.Lock的异同 ? 11 15. 当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法? 11 16. abstract class和interface有什么区别? 12 17. abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized? 12 18. 接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)? 12 19. heap和stack有什么区别。 13 20. forward 和redirect的区别 13 21. EJB与JAVA BEAN的区别? 13 22. Static Nested Class 和 Inner Class的不同。 13 23. JSP中动态INCLUDE与静态INCLUDE的区别? 14 24. List, Set, Map区别 14 25. 集合类都有哪些?主要方法? 14 26. 简述逻辑操作(&,|,^)与条件操作(&&,||)的区别。 14 27. XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式? 14 28. JSP和Servlet有哪些相同点和不同点,他们之间的联系是什么? 15 29. Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)? 15 30. 构造器Constructor是否可被override 15 31. try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后? 16 32. 应用服务器与WEB SERVER的区别? 16 33. BS与CS的联系与区别。 16 34. 启动一个线程是用run()还是start()? 17 35. 当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递? 18 36. swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上? 18 37. 一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制? 18 38. 比较truncate和delete 命令 18 39. 解释$ORACLE_HOME 和$ORACLE_BASE的区别? 19 40. session与cookie的区别和联系? 19 41. Statement和PrepareStatement的区别 19 42. JSP的内置对象及方法。 19 43. JSP的常用指令 20 44. 四种会话跟踪技术 20 45. Request对象的主要方法: 21 46. jsp有哪些动作?作用分别是什么? 21 47. 两种跳转方式分别是什么?有什么区别? 22 48. get和post的区别? 22 49. JDK,JRE,JVM的区别? 22 50. Java中常见类,方法,接口 23 51. 多线程 23 51.1. 线程的基本概念 23 51.2. Java中的线程有四种状态 23 51.3. 多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么? 24 51.4. 线程同步的方法。 24 51.5. java中有几种方法可以实现一个线程?用什么关键字修饰同步方法? stop()和suspend()方法为何不推荐使用? 25 52. 数据连接池 25 52.1. 连接池的基本原理: 25 52.2. 连接池的工作机制 25 52.3. 建立连接池 26 52.4. 连接池内连接的使用与释放 26 52.5. 配置连接池 26 52.6. 配置tomcat 6.0.10连接池 26 52.7. Hibernate实现数据库的连接不同方式: 28 52.8. 有几种开源的数据库连接池: 29 53. 描述一下JVM加载class文件的原理机制? 30 54. socket编程 30 54.1. 什么是TCP/IP、UDP? 30 54.2. Socket在哪里呢? 31 54.3. Socket是什么呢? 32 54.4. socket的实现步骤 37 55. Servlet 38 55.1. Servlet工作流程 38 55.2. servlet的生命周期 38 55.3. Servlet执行时一般实现哪几个方法? 38 56. 会话跟踪 39 56.1. Cookie 39 56.2. session 39 56.2.1. Session 生命周期 39 57. EJB的几种类型 39 58. 排序都有哪几种方法?请列举。用JAVA实现一个快速排序。 40 59. 请对以下在J2EE中常用的名词进行解释(或简单描述) 40 59.1. web 容器 40 59.2. EJB容器 40 59.3. JNDI 40 59.4. JMS 41 59.5. JTA 41 59.6. JAF 41 59.7. RMI/IIOP 41 60. JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗? 41 61. MVC的各个部分都有那些技术来实现?如何实现? 42 62. java中实现多态的机制是什么? 42 63. 垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收? 42 63.1. 判断该对象是否是时候可以收集方法 43 63.1.1. 引用计数 43 63.1.2. 对象引用遍历 43 63.2. 几种垃圾回收机制 43 63.2.1. 标记-清除收集器 43 63.2.2. 标记-压缩收集器 43 63.2.3. 复制收集器 44 63.2.4. 增量收集器 44 63.2.5. 分代收集器 44 63.2.6. 并发收集器 44 63.2.7. 并行收集器 44 63.3. Sun HotSpot 1.4.1 JVM堆大小的调整 44 63.4. BEA JRockit JVM的使用 45 63.4.1. Bea JRockit JVM支持4种垃圾收集器: 46 63.5. 如何从JVM中获取信息来进行调整 46 63.6. Pdm系统JVM调整 47 63.6.1. 服务器:前提内存1G 单CPU 47 63.6.2. 客户机:通过在JNLP文件中设置参数来调整客户端JVM 47 64. 什么时候用assert。 47 65. 什么是java序列化,如何实现java序列化? 48 65.1. java序列化、反序列化 48 65.2. 对象的序列化主要有两种用途: 48 65.3. 对象序列化包括如下步骤: 49 65.4. 对象反序列化的步骤如下: 49 66. 反射机制 49 66.1.1. 传统的类型转换。 49 66.1.2. 通过Class对象来获取对象的类型。 49 66.1.3. 通过关键字instanceof或Class.isInstance()方法 49 67. 说出一些常用的类,包,接口,请各举5个 50 68. XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式? 51 69. jdbc 51 69.1. 简述 51 69.2. JDBC调用数据库的基本步骤 52 69.3. JDBC URL 52 70. MVC设计模式 53 71. Hibernate 54 71.1. Hibernate 介绍 54 71.2. Hibernate 实现原理 55 71.3. Hibernate 优点 56 71.4. Hibernate 的缓存体系 56 71.4.1. 一级缓存: 56 71.4.2. 二级缓存: 56 71.4.3. 缓存管理 56 71.5. Hibernate 中Java对象的状态 58 71.5.1. 临时状态 (transient) 58 71.5.2. 持久化状态(persisted) 58 71.5.3. 游离状态(detached) 58 71.5.4. hibernate的三种状态之间如何转换 59 71.6. Hibernate并发机制,并发问题的处理。 59 71.6.1. Hibernate并发机制 59 71.6.2. 并发问题解决方案 59 71.7. Hibernate是如何延迟加载? 60 71.8. Hibernate中怎样实现类之间的关系?(如:一对多、多对多的关系) 60 71.9. 说下Hibernate的缓存机制 60 71.10. Hibernate的查询方式 60 71.11. 如何优化Hibernate? 61 71.12. Hibernate和spring中常出现的几个异常 61 71.13. Hibernate与jdbc的联系 62 71.14. Hibernate与Spring的联系 62 71.15. Hibernate自带的分页机制是什么?如果不使用Hibernate自带的分页,则采用什么方式分页? 62 71.16. hibernate中一对多配置文件返回的是什么? 63 71.17. hibernate拒绝连接、服务器崩溃的原因?最少写5个 63 71.18. Hibernate主键介绍 63 71.18.1. Assigned 63 71.18.2. Hilo 63 71.18.3. Increment 64 71.18.4. Identity 64 71.18.5. Sequence 64 71.18.6. Native 64 71.18.7. UUID 64 71.18.8. Foreign GUID 65 71.19. Hibernate源码中几个包的作用简要介绍 65 72. struts 66 72.1. struts 简介 66 72.2. STRUTS的应用(如STRUTS架构) 66 72.3. 请写出Struts的工作原理、工作机制 67 72.4. struts的处理流程。 67 72.5. Struts 2框架的大致处理流程如下: 68 72.6. Struts体系结构中的组件 69 72.7. struts如何实现国际化 70 72.8. struts2.0的常用标签 71 72.9. action是单实例还是多实例,为什么? 73 72.10. Struts的validate框架是如何验证的? 74 72.11. dispatchAction是用什么技术实现的? 74 72.12. struts2.0的mvc模式?与struts1.0的区别? 74 72.13. struts1.2和struts2.0的区别?如何控制两种框架中的单例模式? 74 73. Spring 75 73.1. Spring 简介 75 73.2. 为什么要用Spring? 76 73.3. spring工作机制或工作原理 76 73.4. Spring是什么?根据你的理解详细谈谈你的见解。 76 73.5. 项目中如何体现Spring中的切面编程,具体说明。 77 73.6. 项目中用到的Spring中的切面编程最多的地方:声明式事务管理。 77 73.7. spring的事务如何配置 77 73.8. transaction有那几种实现(事务处理)(Spring) 79 73.9. Spring IoC 79 73.10. Spring AOP面向方面编程 82 74. 项目中为什么使用SSH 85 75. Spring在SSH中的作用 86 76. weblogic 86 76.1. 如何给weblogic指定大小的内存? 86 76.2. 如何设定的weblogic的热启动模式(开发模式)与产品发布模式? 86 76.3. 如何启动时不需输入用户名与密码? 86 76.4. 在weblogic管理制台中对一个应用域(或者说是一个网站,Domain)进行jms及ejb或连接池等相关信息进行配置后,实际保存在什么文件中? 86 76.5. 在weblogic中发布ejb需涉及到哪些配置文件 87 76.6. 如何在weblogic中进行ssl配置与客户端的认证配置或说说j2ee(标准)进行ssl的配置 87 76.7. 如何查看在weblogic中已经发布的EJB? 87 76.8. 说说在weblogic中开发消息Bean时的persistent与non-persisten的差别 87 77. tomcat 87 77.1. 解决端口冲突导致tomcat无法启动的问题 87 77.2. 修改java虚拟机内存 88 77.3. 修改tomcat连接数 88 77.4. 禁止列出目录下的文件 88 77.5. 设置session失效的时间 89 77.6. 设置MIME响应类型 89 77.7. 设置tomcat的默认访问页面 89 77.8. 设置tomcat管理用户 89 77.9. 附录 90 78. websphere 90 79. 常见异常 90 79.1. nullpointerexception 90 79.2. classnotfoundexception 90 79.3. arithmeticexception 90 79.4. arrayindexoutofboundsexception 91 79.5. illegalargumentexception 91 79.6. illegalaccessexception 91 80. 异常机制 97 81. 异常的分类 97 82. 异常的使用方法 98 83. JAVA代码查错 101 83.1. 判断 101 83.2. 判断 102 83.3. 判断 102 83.4. 判断 102 83.5. 判断 102 83.6. 判断 103 83.7. 判断 103 83.8. 判断 103 83.9. 判断 104 83.10. 判断 104 83.11. 判断 105 84. 编码 106 84.1. 写出一个单例模式 106 84.2. 我们在web应用开发过程中经常遇到输出某种编码的字符,如iso8859-1等,如何输出一个某种编码的字符串? 106 84.3. 设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。以下程序使用内部类实现线程,对j增减的时候没有考虑顺序问题。 107 84.4. 现在输入n个数字,以逗号”,”分开;然后可选择升或者降序排序;按提交键就在另一页面显示按什么排序,结果为,提供reset 108 84.5. 金额转换,阿拉伯数字的金额转换成中国传统的形式如:(¥1011)->(一千零一拾一元整)输出。 109 84.6. 内部类的实现方式? 112 84.7. 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉的半个”。 113 84.8. 将一个键盘输入的数字转化成中文输出(例如:输入1234567,输出:一百二拾三万四千五百六拾七),请用java语言编一段程序实现! 114 84.9. 题目1:用1、2、2、3、4、5这六个数字,用java写一个main函数,打印出所有不同的排列,如:512234、412345等,要求:"4"不能在第三位,"3"与"5"不能相连. 117 84.10. 写一个方法,实现字符串的反转,如:输入abc,输出cba 119 84.11. 请用java写二叉树算法,实现添加数据形成二叉树功能,并以先序的方式打印出来. 119 84.12. 请写一个java程序实现线程连接池功能? 122 84.13. 编一段代码,实现在控制台输入一组数字后,排序后在控制台输出; 122 84.14. 列出某文件夹下的所有文件; 123 84.15. java调用系统命令实现删除文件的操作; 123 84.16. java实现从文件中一次读出一个字符的操作; 124 84.17. 列出一些控制流程的方法; 124 84.18. 编写了一个服务器端的程序实现在客户端输入字符然后在控制台上显示,直到输入"END"为止,让你写出客户端的程序; 124 84.19. 用jdom解析xml文件时如何解决中文问题?如何解析? 127 84.20. Jquery ajax 实现异步 129
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值