内容简介:每周10道 Java 面试题由 ImportNew 整理编译自网络,欢迎投稿您面试中遇到过的疑难问题。平台无关实际的含义是“一次编写到处运行”。Java 能够做到是因为它的字节码(byte code)可以运行在任何操作系统上,与底层系统无关。
每周10道 Java 面试题由 ImportNew 整理编译自网络,欢迎投稿您面试中遇到过的疑难问题。
1. 为什么说 Java 是一门平台无关语言?
平台无关实际的含义是“一次编写到处运行”。Java 能够做到是因为它的字节码(byte code)可以运行在任何操作系统上,与底层系统无关。
2. 为什么 Java 不是100%面向对象?
Java 不是100%面向对象,因为它包含8个原始数据类型,例如 boolean、byte、char、int、float、double、long、short。它们不是对象。
3. 什么是 singleton class,如何创建一个 singleton class?
Singleton class 在任何时间同一个 JVM 中只有一个实例。可以把构造函数加 private 修饰符创建 singleton。
4. 什么是多态?
多态简单地说“一个接口,多种实现”。多态的出现使得在不同的场合同一个接口能够提供不同功能,具体地说可以让变量、函数或者对象能够提供多种功能。下面是多态的两种类型:
- 编译时多态
- 运行时多态
编译时多态主要是对方法进行重载(overload),而运行时多态主要通过使用继承或者实现接口。
什么是运行时多态,也称动态方法分配?
在 Java 中,运行时多态或动态方法分配是一种在运行过程中的方法重载。在这个过程中,通过调用父类的变量引用被重载的方法。下面是一个例子:
class Car { void run() { System.out.println(“car is running”); } } class Audi extends Car { void run() { System.out.prinltn(“Audi is running safely with 100km”); } public static void main(String args[]) { Car b= new Audi(); //向上转型 b.run(); } }
5. Java类加载器包括几种?它们之间的关系是怎么样的?
Java 类加载器有:
- 引导类加载器(bootstrap class loader):只加载 JVM 自身需要的类,包名为 java、javax、sun 等开头。
- 扩展类加载器(extensions class loader):加载 JAVA_HOME/lib/ext 目录下或者由系统变量 -Djava.ext.dir 指定位路径中的类库。
- 应用程序类加载器(application class loader):加载系统类路径 java -classpath 或 -Djava.class.path 下的类库。
- 自定义类加载器(java.lang.classloder):继承 java.lang.ClassLoader 的自定义类加载器。
注意: -Djava.ext.dirs 会覆盖 Java 本身的 ext 设置,造成 JDK 内建功能无法使用。可以像下面这样指定参数:
-Djava.ext.dirs=./plugin:$JAVA_HOME/jre/lib/ext。
它们的关系如下:
- 启动类加载器,C++实现,没有父类。
- 扩展类加载器(ExtClassLoader),Java 实现,父类加载器为 null。
- 应用程序类加载器(AppClassLoader),Java 实现,父类加载器为 ExtClassLoader 。
- 自定义类加载器,父类加载器为AppClassLoader。
7. 什么是JDBC驱动?
JDBC Driver 是一种实现 Java 应用与数据库交互的软件。JDBC 驱动有下面4种:
- JDBC-ODBC bridge 驱动
- Native-API 驱动(部分是 Java 驱动)
- 网络协议驱动(全部是 Java 驱动)
- Thin driver(全部是 Java 驱动)
8. 使用 Java 连接数据库有哪几步?
- 注册驱动类
- 新建数据库连接
- 新建语句(statement)
- 查询
- 关闭连接
9. 列举Spring配置中常用的重要注解。
下面是一些重要的注解:
- @Required
- @Autowired
- @Qualifier
- @Resource
- @PostConstruct
- @PreDestroy
10. Spring中的Bean是什么?列举Spring Bean的不同作用域。
They are managed by the Spring IoC container. In other words, a bean is an object that is instantiated, assembled, and managed by a Spring IoC container.
Bean 是 Spring 应用的骨架。它们由 Spring IoC 容器管理。换句话说,Bean 是一个由 Spring IoC 容器初始化、装配和管理的对象。
下面是 Spring Bean 的5种作用域:
- Singleton:每个容器只创建一个实例,也是 Spring Bean 的默认配置。由于非线程安全,因此确保使用时不要在 Bean 中共享实例变量,一面出现数据不一致。
- Prototype:每次请求时创建一个新实例。
- Request:与 prototype 相同,区别在于只针对 Web 应用。每次 HTTP 请求时创建一个新实例。
- Session:每次收到 HTTP 会话请求时由容器创建一个新实例。
- 全局 Session:为每个门户应用(Portlet App)创建一个全局 Session Bean。
关于作者:唐尤华
我喜欢程序员,他们单纯、固执、容易体会到成就感;面对压力,能够挑灯夜战不眠不休;面对困难,能够迎难而上挑战自我。他们也会感到困惑与傍徨,但每个 程序员 的心中都有一个比尔盖茨或是乔布斯的梦想“用智慧开创属于自己的事业”。我想说的是,其实我是一个程序员。(新浪微博: @唐尤华 )
以上所述就是小编给大家介绍的《每周10道Java面试题:面向对象, 类加载器, JDBC, Spring 基础概念》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 面试题:类加载器
- Java面试题:类加载器
- 两道面试题让你透彻解析Java类加载机制
- 面试官对于JVM类加载机制的猛烈炮火,你能顶住吗?
- 介绍同步加载、异步加载、延迟加载[原创]
- .net加载失败的程序集重新加载
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。