JAVA面试常考系列八

题目一

JDBC是什么?

JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,可以用来构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序,同时不必关心特定数据库的底层细节。

题目二

Driver在JDBC中有哪些作用?

JDBC驱动提供了特定厂商对JDBCAPI接口类的实现,驱动必须要提供java.sql包下面这些类的实现:Connection,Statement,PreparedStatement,CallableStatement,ResultSet和Driver。

题目三

解释一下Class.forName方法?

Class.forName方法是一个静态方法,用于加载将建立到数据库的连接的驱动程序,返回与给定的字符串名称相关联类或接口的Class对象。

该方法有两种形式:Class.forName(String name, boolean initialize, ClassLoader loader)和 Class.forName(String className)。第一种形式的参数name表示的是类的全名;initialize表示是否初始化类;loader表示加载时使用的类加载器。第二种形式则相当于设置了参数 initialize的值为 true,loader的值为当前类的类加载器。

题目四

PreparedStatement优于Statement的优点是什么?

优点一

用PreparedStatement来代替Statement会使代码多出几行,但这样的代码无论从可读性还是可维护性上来说.都比直接用Statement的代码高很多档次

优点二

PreparedStatement是预编译语句,尽最大可能提高了性能。预编译语句有可能被重复调用,语句在被编译器编译后的执行代码被缓存下来,下次调用时只要是相同的预编译语句就不需要编译,只要将参数直接传入编译过的语句执行代码中就会得到执行。

优点三

极大地提高了安全性,可以有效的避免SQL注入。

优点四

PreparedStatement对象可以重复使用不同的输入值到他们的查询。

题目五

CallableStatement是什么,有哪些作用?

CallableStatement 对象为所有的DBMS提供了一种以标准形式调用已储存过程的方法。已储存过程储存在数据库中。对已储存过程的调用是CallableStatement对象所含的内容。这种调用是用一种换码语法来写的,有两种形式:一种形式带结果参,另一种形式不带结果参数。结果参数是一种输出(OUT) 参数,是已储存过程的返回值。两种形式都可带有数量可变的输入(IN参数)、输出(OUT参数)或输入和输出(INOUT参数)的参数。问号将用作参数的占位符。

存储过程由数据库存储和提供,存储过程可能会从用户获取输入值,并可能返回结果。存储过程的使用受到高度鼓励,因为它提供了安全性和模块性。

题目六

连接池是什么,有哪些作用?

与数据库的交互可能是昂贵的,关于数据库连接的打开和关闭。特别是当数据库客户端数量增加时,这个代价非常高,消耗了大量的资源。应用服务器在启动时获得一个数据库连接池,并保存在一个池中。连接请求由驻留在池中的连接提供。在连接结束时,请求将返回到池中,并可用于满足将来的请求。

题目七

连接池的工作原理是什么,有什么优点?

工作原理

当应用启动的时候,就初始化一些连接放在池中,如果客户端请求连接,则先判断池中是否还有连接。

如果有就返回客户端。

如果没有,判断当前连接数有没有超过系统允许的最大连接个数。没有的话则创建并返回连接,若超最过则出错。

当用户用完连接之后,再将连接放回池中。

优点

可以实现连接的复用。

题目八

RMI是什么?

RMI(Remote Method Invocation,远程方法调用)是用Java在JDK1.1中实现的,它大大增强了Java开发分布式应用的能力,是开发百分之百纯Java的网络分布式应用系统的核心解决方案之一。

Java远程方法调用(Java RMI)是一种执行远程过程调用(RPC)的面向对象的Java API,支持直接传输序列化的Java类和分布式垃圾收集。远程方法调用(RMI)也可以看作是在远程运行的对象上激活方法的过程。

题目九

如何使用RMI开发?

使用RMI开发主要分为六个步骤:

1.定义一个远程接口,远程接口必须继承接口,每个方法必须抛出远程异常,方法参数和方法返回值都必须是可序列化的。

2.实现远程接口。

3.定义使用远程对象的客户程序。

4.产生远程访问对象的桩和框。

5.注册远程对象。

6.运行服务器和客户程序。

题目十

什么是RMI架构的基本原理?

RMI体系结构是基于一个非常重要的行为定义和行为实现相分离的原则。RMI允许定义行为的代码和实现行为的代码相分离,并且单独运行在不同的JVM上。

程序员面试】是IT求职神器,提供海量C++、JAVA、前端等职业笔试题库,在线进行一线互联网名企笔试面试模拟考试练习,天天刷题,和牛人一起讨论经典试题,全面提升你的编程能力,海量高薪职位信息等着你!永远为下个月离职做好准备!年薪百万的码农都已关注!

觉得这些资讯有帮助?请转发给更多人

长按下图,关注程序员面试

本文来自企鹅号 - 全球大搜罗媒体

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏FreeBuf

缓冲区溢出攻击初学者手册(更新版)

说明 之前版本翻译质量不佳,本人赵阳在这里对本文的读者表示深深的歉意。由于本人的疏忽和大意导致您不能很好的读完这篇文章,同时也对原文内容进行了破坏,也对IDF和...

2809
来自专栏郭霖

Android数据库高手秘籍(五)——LitePal的存储操作

经过前面几篇文章的学习,我们已经把LitePal的表管理模块的功能都很好地掌握了,相信大家都已经体会到了使用LitePal来创建表、升级表、以及建立表关联所带来...

3379
来自专栏鹅厂少年的奇妙之旅

Go内存模型

Go语言中内存分配大致有3种模式:Stack、Heap、Fixed Size Segment。

6805
来自专栏大内老A

WCF技术剖析之二十一:WCF基本异常处理模式[中篇]

通过WCF基本的异常处理模式[上篇], 我们知道了:在默认的情况下,服务端在执行某个服务操作时抛出的异常(在这里指非FaultException异常),其相关的...

20310
来自专栏老马寒门IT

Node入门教程(13)第十一章:mocha单元测试+should断言库+istanbul覆盖率测试+art-template

声明: 以下为老马的全栈视频教程的笔记,如果需要了解详情,请直接配合视频学习。视频全部免费,视频地址:https://ke.qq.com/course/2945...

1510
来自专栏何俊林

Android Multimedia框架总结(十一)CodeC部分之AwesomePlayer到OMX服务

前言:上篇文《Android Multimedia框架总结(十)》总结了音视频的输出过程,从今天开始分析Codec部分,今天分析的是AwesomePlayer到...

2538
来自专栏H2Cloud

C++中消息自动派发之一 About JSON

1. 闲序   游戏服务器之间通信大多采用异步消息通信。而消息打包常用格式有:google protobuff,facebook thrift, 千千万万种自定...

2523
来自专栏前端达人

JavaScript基础——回调(callback)是什么

上篇文章《JavaScript基础——你真的了解JavaScript吗?》,我们明白了JavaScript是一个单线程、非阻塞、异步、解释性语言,清楚了什么是单...

2087
来自专栏FreeBuf

如何把SQLMap里的功能移植到自己的程序中?

不知道各位有没有听过不要重复造轮子?因为有些开源的工具,它们经过时间和众人的捶打,其实会比我们自己一个人造出来的轮子考虑的更加周到和全面。可是有时候有些开源工具...

2057
来自专栏高爽的专栏

Hession反序列化导致CPU占用飙高

背景 今天发布一个线上服务,暂且称之为O,发布完后,依赖O服务的2个服务C和W大量Time报警,并且这两个服务的CPU占用都飙到了40%左右,平时只有10%的样...

3890

扫码关注云+社区

领取腾讯云代金券