- 面向对象的特征有哪些方面?
- 访问修饰符
public
、private
、protected
以及不写(默认)时的区别? String
是最基本的数据类型吗?float f=3.4;
是否正确?short s1 = 1; s1 = s1 + 1;
有错吗?short s1 = 1; s1 += 1;
有错吗?- Java有没有
goto
? int
和Integer
有什么区别?&
和&&
的区别?- 解释内存中的栈(stack)、堆(heap)和静态区(static area)的用法。
Math.round(11.5)
等于多少?Math.round(-11.5)
等于多少?switch
是否能作用在byte
上,是否能作用在long
上,是否能作用在String
上?- 用最有效率的方法计算2乘以8?
- 数组有没有
length()
方法?String
有没有length()
方法? - 在Java中,如何跳出当前的多重嵌套循环?
- 构造器(constructor)是否可被重写(override)?
- 两个对象值相同(
x.equals(y) == true
),但却可有不同的hash code,这句话对不对? - 是否可以继承
String
类? - 当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?
String
和StringBuilder
、StringBuffer
的区别?- 重载(Overload)和重写(Override)的区别。重载的方法能否根据返回类型进行区分?
- 描述一下JVM加载class文件的原理机制?
char
型变量中能不能存贮一个中文汉字,为什么?- 抽象类(abstract class)和接口(interface)有什么异同?
- 静态嵌套类(Static Nested Class)和内部类(Inner Class)的不同?
- Java中会存在内存泄漏吗,请简单描述。
- 抽象的(abstract)方法是否可同时是静态的(static),是否可同时是本地方法(native),是否可同时被
synchronized
修饰? - 阐述静态变量和实例变量的区别。
- 是否可以从一个静态(static)方法内部发出对非静态(non-static)方法的调用?
- 如何实现对象克隆?
String s = new String("xyz");
创建了几个字符串对象?- 接口是否可继承(extends)接口?抽象类是否可实现(implements)接口?抽象类是否可继承具体类(concrete class)?
- 一个
.java
源文件中是否可以包含多个类(不是内部类)?有什么限制? - Anonymous Inner Class(匿名内部类)是否可以继承其它类?是否可以实现接口?
- 内部类可以引用它的包含类(外部类)的成员吗?有没有什么限制?
- Java中的
final
关键字有哪些用法? - 数据类型之间的转换:
- 如何实现字符串的反转及替换?
- 怎样将
GB2312
编码的字符串转换为ISO-8859-1
编码的字符串? - 日期和时间:
- 打印昨天的当前时刻。
- 比较一下Java和JavaSciprt。
- 什么时候用断言(assert)?
Error
和Exception
有什么区别?try{}
里有一个return
语句,那么紧跟在这个try
后的finally{}
里的代码会不会被执行,什么时候被执行,在return
前还是后?- Java语言如何进行异常处理,关键字:
throws
、throw
、try
、catch
、finally
分别如何使用? - 运行时异常与受检异常有何异同?
- 列出一些你常见的运行时异常?
- 阐述
final
、finally
、finalize
的区别。 List
、Set
、Map
是否继承自Collection
接口?- 阐述
ArrayList
、Vector
、LinkedList
的存储性能和特性。 Collection
和Collections
的区别?List
、Map
、Set
三个接口存取元素时,各有什么特点?TreeMap
和TreeSet
在排序时如何比较元素?Collections
工具类中的sort()
方法如何比较元素?Thread
类的sleep()
方法和对象的wait()
方法都可以让线程暂停执行,它们有什么区别?- 线程的
sleep()
方法和yield()
方法有什么区别? - 当一个线程进入一个对象的
synchronized
方法A之后,其它线程是否可进入此对象的synchronized
方法B? - 请说出与线程同步以及线程调度相关的方法。
- 编写多线程程序有几种实现方式?
synchronized
关键字的用法?- 举例说明同步和异步。
- 启动一个线程是调用
run()
还是start()
方法? - 什么是线程池(thread pool)?
- 线程的基本状态以及状态之间的关系?
- 简述
synchronized
和java.util.concurrent.locks.Lock
的异同? - Java中如何实现序列化,有什么意义?
- Java中有几种类型的流?
- 写一个方法,输入一个文件名和一个字符串,统计这个字符串在这个文件中出现的次数。
- 如何用Java代码列出一个目录下所有的文件?
- 用Java的套接字编程实现一个多线程的回显(echo)服务器。
- XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式?
- 你在项目中哪些地方用到了XML?
- 阐述JDBC操作数据库的步骤。
Statement
和PreparedStatement
有什么区别?哪个性能更好?- 使用JDBC操作数据库时,如何提升读取数据的性能?如何提升更新数据的性能?
- 在进行数据库编程时,连接池有什么作用?
- 什么是DAO模式?
- 事务的ACID是指什么?
- JDBC中如何进行事务处理?
- JDBC能否处理Blob和Clob?
- 简述正则表达式及其用途。
- Java中是如何支持正则表达式操作的?
- 获得一个类的类对象有哪些方式?
- 如何通过反射创建对象?
- 如何通过反射获取和设置对象私有字段的值?
- 如何通过反射调用对象的方法?
- 简述一下面向对象的”六原则一法则”。
- 简述一下你了解的设计模式。
- 用Java写一个单例类。
- 什么是UML?
- UML中有哪些常用的图?
- 用Java写一个冒泡排序。
- 用Java写一个折半查找。
- 阐述Servlet和CGI的区别?
- Servlet接口中有哪些方法?
- 转发(forward)和重定向(redirect)的区别?
- JSP有哪些内置对象?作用分别是什么?
- get和post请求的区别?
- 常用的Web服务器有哪些?
- JSP和Servlet是什么关系?
- 讲解JSP中的四种作用域。
- 如何实现JSP或Servlet的单线程模式?
- 实现会话跟踪的技术有哪些?
- 过滤器有哪些作用和用法?
- 监听器有哪些作用和用法?
- web.xml文件中可以配置哪些内容?
- 你的项目中使用过哪些JSTL标签?
- 使用标签库有什么好处?如何自定义JSP标签?
- 说一下表达式语言(EL)的隐式对象及其作用。
- 表达式语言(EL)支持哪些运算符?
- Servlet3中的异步处理指的是什么?
- 如何在基于Java的Web项目中实现文件上传和下载?
- 服务器收到用户提交的表单数据,到底是调用Servlet的
doGet()
还是doPost()
方法? - JSP中的静态包含和动态包含有什么区别?
- Servlet中如何获取用户提交的查询参数或表单数据?
- Servlet中如何获取用户配置的初始化参数以及服务器上下文参数?
- 如何设置请求的编码以及响应内容的类型?
- 解释一下网络应用的模式及其特点。
- 什么是Web Service(Web服务)?
- 概念解释:SOAP、WSDL、UDDI。
- Java规范中和Web Service相关的规范有哪些?
- 介绍一下你了解的Java领域的Web Service框架。
- 什么是ORM?
- 持久层设计要考虑的问题有哪些?你用过的持久层框架有哪些?
- Hibernate中
SessionFactory
是线程安全的吗?Session
是线程安全的吗(两个线程能够共享同一个Session
吗)? - Hibernate中
Session
的load
和get
方法的区别是什么? Session
的save()
、update()
、merge()
、lock()
、saveOrUpdate()
和persist()
方法分别是做什么的?有什么区别?- 阐述
Session
加载实体对象的过程。 Query
接口的list
方法和iterate
方法有什么区别?- Hibernate如何实现分页查询?
- 锁机制有什么用?简述Hibernate的悲观锁和乐观锁机制。
- 阐述实体对象的三种状态以及转换关系。
- 如何理解Hibernate的延迟加载机制?在实际应用中,延迟加载与
Session
关闭的矛盾是如何处理的? - 举一个多对多关联的例子,并说明如何实现多对多关联映射。
- 谈一下你对继承映射的理解。
- 简述Hibernate常见优化策略。
- 谈一谈Hibernate的一级缓存、二级缓存和查询缓存。
- Hibernate中
DetachedCriteria
类是做什么的? @OneToMany
注解的mappedBy
属性有什么作用?- MyBatis中使用
#
和$
书写占位符有什么区别? - 解释一下MyBatis中命名空间(namespace)的作用。
- MyBatis中的动态SQL是什么意思?
- 什么是IoC和DI?DI是如何实现的?
- Spring中Bean的作用域有哪些?
- 解释一下什么叫AOP(面向切面编程)?
- 你是如何理解”横切关注”这个概念的?
- 你如何理解AOP中的连接点(Joinpoint)、切点(Pointcut)、增强(Advice)、引介(Introduction)、织入(Weaving)、切面(Aspect)这些概念?
- Spring中自动装配的方式有哪些?
- Spring中如何使用注解来配置Bean?有哪些相关的注解?
- Spring支持的事务管理类型有哪些?你在项目中使用哪种方式?
- 如何在Web项目中配置Spring的IoC容器?
- 如何在Web项目中配置Spring MVC?
- Spring MVC的工作原理是怎样的?
- 如何在Spring IoC容器中配置数据源?
- 如何配置配置事务增强?
- 选择使用Spring框架的原因(Spring框架为企业级开发带来的好处有哪些)?
- Spring IoC容器配置Bean的方式?
- 阐述Spring框架中Bean的生命周期?
- 依赖注入时如何注入集合属性?
- Spring中的自动装配有哪些限制?
- 在Web项目中如何获得Spring的IoC容器?
- 大型网站在架构上应当考虑哪些问题?
- 你用过的网站前端优化的技术有哪些?
- 你使用过的应用服务器优化技术有哪些?
- 什么是XSS?什么是SQL注入?什么是CSRF?
- 什么是领域模型(domain model)?贫血模型(anaemic domain model)和充血模型(rich domain model)有什么区别?
- 谈一谈测试驱动开发(TDD)的好处以及你的理解。