今天给各位分享java中jdbc的面试题的知识,其中也会对java笔试面试题进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
1、java常用框架面试题?2、Java面试题:获得一个类的类对象有哪些方式3、java常用api面试题有哪些?4、Java面试中都会遇到哪些问题5、请懂java中JDBC的朋友进来一下吧?有问题,急啊!6、上海久雅Java面试题
java常用框架面试题?
1、什么是Spring?
Spring是个Java企业级应用的开源开发框架。Spring主要用来开发Java应用,但是有些扩展是针对构建J2EE平台的web应用。Spring框架目标是简化Java企业级应用开发,并通过POJO为基础的编程模型促进良好的编程习惯。
2、Spring框架有哪些不同的模块?
核心容器模块、应用上下文模块Application context、AOP模块、JDBC抽象和DAO模块、O/R映射整合模块、Web模块、MVC框架模块。
3、一个简单的Spring应用程序包括什么?
这些应用程序像任何Java应用程序。它们是由多个类组成,每个类执行应用程序内的一个特定的功能。这些类的配置是通过一个XML文件向对方导入依赖。此XML文件描述如何配置类,称为Spring配置文件。
4、如何给Spring容器提供配置元数据?
有三种重要的方法给Spring 容器提供配置元数据:XML配置文件、基于注解的配置、基于Java的配置。
5、在Spring中如何注入一个Java集合?
Spring提供以下几种集合的配置元素:
类型用于注入一列值,允许有相同的值。
类型用于注入一组值,不允许有相同的值。
类型用于注入一组键值对,键和值都可以为任意类型。
类型用于注入一组键值对,键和值都只能为String类型。
6、在Spring框架中如何更有效地使用JDBC?
使用Spring JDBC框架,资源管理和错误处理的代价都会被减轻。所以开发者只需statements和queries从数据存取数据,JDBC也可以在Spring框架提供的模板类的帮助下更有效地被使用,这个模板叫JDBC Template 。
7、如何通过HibernateDaoSupport将Spring和Hibernate结合起来?
用Spring的SessionFactory调用LocalSessionFactory。集成过程分三步:
配置the Hibernate Session Factory、继承HibernateDaoSupport实现一个DAO、在AOP支持的事务中装配。
8、解释一下Spring MVC框架及其控制器
Spring配备构建Web应用的全功能MVC框架。Spring可以很便捷地和其他MVC框架集成,如Struts、Spring的MVC框架用控制反转把业务对象和控制逻辑清晰地隔离。它也允许以声明的方式把请求参数和业务对象绑定。
控制器提供一个访问应用程序的行为,此行为通常通过服务接口实现。控制器解析用户输入并将其转换为一个由视图呈现给用户的模型。Spring用一个非常抽象的方式实现了一个控制层,允许用户创建多种用途的控制器。
Java面试题:获得一个类的类对象有哪些方式
给你介绍3种获得类对象方式:
第一种方式:通过类本身来获得对象
Class classname = this .getClass();
第二种方式:通过子类的实例获取父类对象
ClassName cn = new ClassName();
UserClass = cn.getClass();
Class SubUserClass = UserClass.getSuperclass();
第三种方式:通过类名加.class获取对象
Class ForClass = **.**.ClassName. class ;(类在包中的路径加. class )
第四种方式:通过类名的字符串获取对象
Class ForName = Class.forName( “**.**.ClassName” );
这种方式在jdbc中常用到。
java常用api面试题有哪些?
Java常用API的面试题包括Java面向对象的基础知识,重点和易考点是关于Java集合、Java IO,比如:
Java集合分成哪几类?
HashSet和TreeSet有什么区别?
IO流怎么分类?缓冲流有什么用?
Buffer是干什么的?
这些是Java最常用的内容,另外Java数据库编程(JDBC)也是常考的内容。你看一下疯狂java讲义的内容,这些知识都有系统的讲解。
Java面试中都会遇到哪些问题
JAVA面试精选题
各位准程序猿们,能不能找到一份好工作,就看你知不知道这,66道最基本的JAVA面试题,请耐心看完,说不定这10分钟,会影响你一辈子
面试题NO.01-NO.05
问题:如果main方法被声明为private会怎样?
答案:能正常编译,但运行的时候会提示”main方法不是public的”。
问题:Java里的传引用和传值的区别是什么?
答案:传引用是指传递的是地址而不是值本身,传值则是传递值的一份拷贝。
问题:如果要重写一个对象的equals方法,还要考虑什么?
答案:hashCode。
问题:Java的”一次编写,处处运行”是如何实现的?
答案:Java程序会被编译成字节码组成的class文件,这些字节码可以运行在任何平台,因此Java是平台独立的。
问题:说明一下public static void main(String args[])这段声明里每个关键字的作用
答案:public: main方法是Java程序运行时调用的第一个方法,因此它必须对Java环境可见。所以可见性设置为pulic.
static: Java平台调用这个方法时不会创建这个类的一个实例,因此这个方法必须声明为static。
void: main方法没有返回值。
String是命令行传进参数的类型,args是指命令行传进的字符串数组。
面试题NO.06-NO.10
问题:==与equals的区别
答案:==比较两个对象在内存里是不是同一个对象,就是说在内存里的存储位置一致。两个String对象存储的值是一样的,但有可能在内存里存储在不同的地方 .
==比较的是引用而equals方法比较的是内容。public boolean equals(Object obj) 这个方法是由Object对象提供的,可以由子类进行重写。默认的实现只有当对象和自身进行比较时才会返回true,这个时候和==是等价的。String, BitSet, Date, 和File都对equals方法进行了重写,对两个String对象 而言,值相等意味着它们包含同样的字符序列。对于基本类型的包装类来说,值相等意味着对应的基本类型的值一样。
问题:如果去掉了main方法的static修饰符会怎样?
答案:程序能正常编译。运行时会抛NoSuchMethodError异常。
问题:为什么oracle type4驱动被称作瘦驱动?
答案:oracle提供了一个type 4 JDBC驱动,被称为瘦驱动。这个驱动包含了一个oracle自己完全用Java实现的一个TCP/IP的Net8的实现,因此它是平台独立的,可以在运行时由浏览器下载,不依赖任何客户端 的oracle实现。客户端连接字符串用的是TCP/IP的地址端口,而不是数据库名的tnsname。
问题:介绍一下finalize方法
答案: final: 常量声明。 finally: 处理异常。 finalize: 帮助进行垃圾回收。
接口里声明的变量默认是final的。final类无法继承,也就是没有子类。这么做是出于基础类型的安全考虑,比如String和Integer。这样也使得编译器进行一些优化,更容易保证线程的安全性。final方法无法重写。final变量的值不能改变。finalize()方法在一个对象被销毁和回收前会被调用。finally,通常用于异常处理,不管有没有异常被抛出都会执行到。比如,关闭连接通常放到finally块中完成。
问题:什么是Java API?
答案:Java API是大量软件组件的集合,它们提供了大量有用的功能,比如GUI组件。
面试题NO.11-NO.15
问题:GregorianCalendar类是什么东西?
答案:GregorianCalendar提供了西方传统日历的支持。
问题:ResourceBundle类是什么?
答案:ResourceBundle用来存储指定语言环境的资源,应用程序可以根据运行时的语言环境来加载这些资源,从而提供不同语言的展示。
问题:为什么Java里没有全局变量?
答案:全局变量是全局可见的,Java不支持全局可见的变量,因为:全局变量破坏了引用透明性原则。全局变量导致了命名空间的冲突。
问题:如何将String类型转化成Number类型?
答案:Integer类的valueOf方法可以将String转成Number。下面是代码示例:
问题:SimpleTimeZone类是什么?
答案:SimpleTimeZone提供公历日期支持。
面试题NO.16-NO.20
问题:while循环和do循环有什么不同?
答案:while结构在循环的开始判断下一个迭代是否应该继续。do/while结构在循环的结尾来判断是否将继续下一轮迭代。do结构至少会执行一次循环体。
问题:Locale类是什么?
答案:Locale类用来根据语言环境来动态调整程序的输出。
问题:面向对象编程的原则是什么?
答案:主要有三点,多态,继承和封装。
问题:介绍下继承的原则
答案:继承使得一个对象可以获取另一个对象的属性。使用继承可以让已经测试完备的功能得以复用,并且可以一次修改,所有继承的地方都同时生效。
问题:什么是隐式的类型转化?
答案:隐式的类型转化就是简单的一个类型赋值给另一个类型,没有显式的告诉编译器发生了转化。并不是所有的类型都支持隐式的类型转化。
代码示例:
面试题NO.21-NO.25
问题:sizeof是Java的关键字吗?
答案:不是。
问题:native方法是什么?
答案:native方法是非Java代码实现的方法。
问题:在System.out.println()里面,System, out, println分别是什么?
答案:System是系统提供的预定义的final类,out是一个PrintStream对象,println是out对象里面一个重载的方法。
问题:封装,继承和多态是什么?
答案:简单来说,多态是指一个名字多种实现。多态使得一个实体通过一个通用的方式来实现不同的操作。具体的操作是由实际的实现来决定的。
多态在Java里有三种表现方式:方法重载通过继承实现方法重写通过Java接口进行方法重写。
问题:显式的类型转化是什么?
答案:显式的类型转化是明确告诉了编译器来进行对象的转化。
代码示例:
面试题NO.26-NO.30
问题:什么是Java虚拟机?
答案:Java虚拟机是能移植到不同硬件平台上的软件系统。
问题:类型向下转换是什么?
答案:向下转换是指由一个通用类型转换成一个具体的类型,在继承结构上向下进行。
问题:Java的访问修饰符是什么?
答案:访问权限修饰符是表明类成员的访问权限类型的关键字。使用这些关键字来限定程序的方法或者变量的访问权限。它们包含:
public: 所有类都可以访问 protected: 同一个包内以及所有子类都可以访问 private: 只有归属的类才能访问默认: 归属类及相同包下的子类可以访问。
问题:所有类的父类是什么?
答案:Object.
问题:Java的基本类型有哪些?
答案:byte,char, short, int, long, float, double, boolean。
面试题NO.31-NO.40
问题:静态类型有什么特点?
答案:静态变量是和类绑定到一起的,而不是类的实例对象。每一个实例对象都共享同样一份静态变量。也就是说,一个类的静态变量只有一份,不管它有多少个对象。类变量或者说静态变量是通过static这个关键字来声明的。类变量通常被用作常量。静态变量通常通过类名字来进行访问。当程序运行的时候这个变量就会创建直到程序结束后才会被销毁。类变量的作用域和实例变量是一样的。它的初始值和成员变量也是一样的,当变量没被初始化的时候根据它的数据类型,会有一个默认值。类似的,静态方法是属于类的方法,而不是类对象,它的调用并不作用于类对象,也不需要创建任何的类实例。静态方法本身就是final的,因为重写只会发生在类实例上,静态方法是和类绑定在一起的,不是对象。父类的静态方法会被子类的静态方法屏蔽,只要原来方法没有声明为final。非静态方法不能重写静态方法,也就是说,你不能在子类中把一个静态方法改成实例方法。
非静态变量在每一个对象实例上都有单独的一份值。
问题:操作符和操作符有什么区别?
答案:当一个表达式在求值的时候,两个操作数都会被求值,更像是一个操作符的快捷方式。当一个表达式求值的时候,先计算第一个操作数,如果它返回true才会计算第二个操作数。如果第一个操作数取值为fale,第二个操作数就不会被求值。
问题:Java是如何处理整型的溢出和下溢的?
答案:Java根据类型的大小,将计算结果中的对应低阶字节存储到对应的值里面。
问题:public static void写成static public void会怎样?
答案:程序正常编译及运行。
问题,声明变量和定义变量有什么不同?
答案:声明变量我们只提供变量的类型和名字,并没有进行初始化。定义包括声明和初始化两个阶段String s;只是变量声明,String s = new String(“bob”); 或者String s = “bob”;是变量定义。
面试题NO.41-NO.45
问题:Java支持哪种参数传递类型?
答案:Java参数都是进行传值。对于对象而言,传递的值是对象的引用,也就是说原始引用和参数引用的那个拷贝,都是指向同一个对象。
问题:对象封装的原则是什么?
答案:封装是将数据及操作数据的代码绑定到一个独立的单元。这样保障了数据的安全,防止外部代码的错误使用。对象允许程序和数据进行封装,以减少潜在的干涉。对封装的另一个理解是作为数据及代码的保护层,防止保护层外代码的随意访问。
问题:你怎么理解变量?
答案:变量是一块命名的内存区域,以便程序进行访问。变量用来存储数据,随着程序的执行,存储的数据也可能跟着改变。
问题:数值提升是什么?
答案:数值提升是指数据从一个较小的数据类型转换成为一个更大的数据类型,以便进行整型或者浮点型运算。在数值提升的过程中,byte,char,short值会被转化成int类型。需要的时候int类型也可能被提升成long。long和float则有可能会被转换成double类型。
问题:Java的类型转化是什么?
答案:从一个数据类型转换成另一个数据类型叫做类型转换。Java有两种类型转换的方式,一个是显式的类型转换,一个是隐式的。
面试题NO.46-NO.50
问题:main方法的参数里面,字符串数组的第一个参数是什么?
答案:数组是空的,没有任何元素。不像C或者C++,第一个元素默认是程序名。如果命令行没有提供任何参数的话,main方法中的String数组为空,但不是null。
问题:怎么判断数组是null还是为空?
答案:输出array.length的值,如果是0,说明数组为空。如果是null的话,会抛出空指针异常。
问题:程序中可以允许多个类同时拥有都有main方法吗?
答案:可以。当程序运行的时候,我们会指定运行的类名。JVM只会在你指定的类中查找main方法。因此多个类拥有main方法并不存在命名冲突的问题。
问题:静态变量在什么时候加载?编译期还是运行期?静态代码块加载的时机呢?
答案:当类加载器将类加载到JVM中的时候就会创建静态变量,这跟对象是否创建无关。静态变量加载的时候就会分配内存空间。静态代码块的代码只会在类第一次初始化的时候执行一次。一个类可以有多个静态代码块,它并不是类的成员,也没有返回值,并且不能直接调用。静态代码块不能包含this或者super,它们通常被用初始化静态变量。
问题:一个类能拥有多个main方法吗?
答案:可以,但只能有一个main方法拥有以下签名:
否则程序将无法通过编译。编译器会警告你main方法已经存在。
面试题NO.51-NO.60
问题:简单的介绍下JVM是如何工作的?
答案:JVM是一台抽象的计算机,就像真实的计算机那样,它们会先将.java文件编译成.class文件(.class文件就是字节码文件),然后用它的解释器来加载字节码。
问题:如果原地交换两个变量的值?
答案:先把两个值相加赋值给第一个变量,然后用得到的结果减去第二个变量,赋值给第二个变量。再用第一个变量减去第二个变量,同时赋值给第一个变量。代码如下:
使用异或操作也可以交换。第一个方法还可能会引起溢出。异或的方法如下: int a=5,b=10;a=a+b; b=a-b; a=a-b;
问题:什么是数据的封装?
答案:数据封装的一种方式是在类中创建set和get方法来访问对象的数据变量。一般来说变量是private的,而get和set方法是public的。封装还可以用来在存储数据时进行数据验证,或者对数据进行计算,或者用作自省(比如在struts中使用javabean)。把数据和功能封装到一个独立的结构中称为数据封装。封装其实就是把数据和关联的操作方法封装到一个独立的单元中,这样使用关联的这些方法才能对数据进行访问操作。封装提供的是数据安全性,它其实就是一种隐藏数据的方式。
问题:什么是反射API?它是如何实现的?
答案:反射是指在运行时能查看一个类的状态及特征,并能进行动态管理的功能。这些功能是通过一些内建类的反射API提供的,比如Class,Method,Field, Constructors等。使用的例子:使用Java反射API的getName方法可以获取到类名。
问题:JVM自身会维护缓存吗,是不是在堆中进行对象分配,操作系统的堆还是JVM自己管理的堆?为什么?
答案:是的,JVM自身会管理缓存,它在堆中创建对象,然后在栈中引用这些对象。
面试题NO.61-NO.66
问题:虚拟内存是什么?
答案:虚拟内存又叫延伸内存,实际上并不存在真实的物理内存。
问题:方法可以同时即是static又是synchronized的吗?
答案:可以。如果这样做的话,JVM会获取和这个对象关联的java.lang.Class实例上的锁。这样做等于:
问题:String和StringTokenizer的区别是什么?
答案:StringTokenizer是一个用来分割字符串的工具类。
问题:transient变量有什么特点?
答案:transient变量不会进行序列化。例如一个实现Serializable接口的类在序列化到ObjectStream的时候,transient类型的变量不会被写入流中,同时,反序列化回来的时候,对应变量的值为null。
问题:哪些容器使用Border布局作为它们的默认布局?
答案:Window, Frame, Dialog。
问题:怎么理解什么是同步?
答案:同步用来控制共享资源在多个线程间的访问,以保证同一时间内只有一个线程能访问到这个资源。在非同步保护的多线程程序里面,一个线程正在修改一个共享变量的时候,可能有另一个线程也在使用或者更新它的值。同步避免了脏数据的产生。
以上回答转载自求职类公众号圈里求职,里面还有更多求职面试经,程序猿也要学起来~
请懂java中JDBC的朋友进来一下吧?有问题,急啊!
1: PreparedStatement()是采用预编译的方式执行sql的,这种sql写的形式一般参数是用?代替,然后在下面将参数填入执行. CreatStatement 是直接执行;
差别: 直接执行就是将sql语句直接提交给数据库执行,其实数据库执行sql的时候,也是要将sql编译后再执行的,每种数据库的编译方式应该不同,比如说oracle和sqlserver,(至于怎么不同我也不清楚,没研究过), 这样这种方式的执行就是数据库每次执行都要将sql编译一次. 而预编译方式就是数据库第一次执行这句sql的时候,会编译一次,然后第二次执行的话,就不会编译,只是替换个参数就直接执行,这样并发大量sql的时候会提高效率.
推荐做项目的时候尽量采用预编译方式.
2 呵呵,预编译方式的sql是 在creatStatement中就传入了,因为要’预先编译’ 也就是说可以不知道参数是什么,这句话执行的时候sql其实已经预先编译好了,执行时候只许替换参数即可. 而第一种在 executeQuery的时候传入sql语句,这个时候才会编译sql并执行之.
3 Statement l_sta = con.createStatement(); 这句代码和下面代码等同:
Statement l_sta = new Statement();
l_sta = con.createStatement();
明白了吧.只new Statement() 实例化的没有数据库连接的…
4 是接口(interface),但是后面肯定还有个Impl的方法去实现这个接口的.对外的只是给出接口,开发人员只管拿着接口去使用即可,不用关心后面是如何实现的.
5 返回 ResultSet 类型.
ResultSet rs = null;
Statement stmt = null;
stmt = conn.create……..;
rs = stmt.executeQuery(“select * from xx where xxxx”);
while (rs.next())
{
out.println(rs.getString(1));
}
rs.close();
上海久雅Java面试题
久雅科技面试题 【JAVA软件工程师】
1、基本集合类有哪些,各自的特点?
集合类型主要有3种:set(集)、list(列表)和map(映射)。
List 关心的是索引,与其他集合相比,List特有的就是和索引相关的一些方法:get(int index) 、 add(int index,Object o) 、 indexOf(Object o) 。
Set关心唯一性,它不允许重复。
Map关心的是唯一的标识符。他将唯一的键映射到某个元素。当然键和值都是对象。
2、下面代码的运行结果:(A)
public class Foo {
public static void main(String[] args) {
String s;
String.out.println(“s=”+s);
}
}
A.由于String s没有初始化,代码不能编译通过 B.代码得到编译,输出结果为”s=”
C.代码得到编译,并输出”s=null” D.代码得到编译,但捕获到NullPointException异常
3、请说明equal和==的区别。
int i=1;int j=1;
在一个判断条件中使用i==j是否为true?
如果i和j是integer呢?
==操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地址是否相同,即栈中的内容是否相同。
equals操作表示的两个变量是否是对同一个对象的引用,即堆中的内容是否相同。
==比较的是2个对象的地址,而equals比较的是2个对象的内容。
4、编写一个方法用于奇偶数判定。
int num=0;
System.out.println(“请输入一个整数:”);
Scanner inputScanner=new Scanner(System.in);
num=inputScanner.nextInt();
if(num%2==0){
System.out.println(num+”为偶数”);
}else{
System.out.println(num+”为奇数”);
}
5、以下这段代码是否正确:
String[] name={“tom”,”dick”,”harry”};
for(i=0;i=name.length;i++){
System.out.print(name[i]+’\n’);
}
这段代码错误,会触发“ArrayIndexOutOfBoundsException”异常,这是代码在尝试访问不在数组的索引取值范围内的元素时会显示的运行时错误消息。
6、以下两个打印,分别输出什么结果:
double amount1=2.0;
double amount2=1.1;
double amount3=0.9;
System.out.println(amount1-amount2==amount3);
BigDecimal damount1=newBigDecimal(“2.0”);
BigDecimal damount2=newBigDecimal(“1.1”);
BigDecimal damount3=newBigDecimal(“0.9”);
System.out.println(damount1.subtract(damount2).equals(damount3));
7、jsp和servlet有何区别?
jsp在本质上就是servlet但是两者的创建方式不一样。
servlet完全是Java程序代码构成擅长于流程控制和事务处理,而通过jsp来生成动态网页;jsp由HTML代码和JSP标签构成,可以方便地编写动态网页。
因此在实际应用中采用servlet来控制业务流程,而采用JSP来生成动态网页。在struts框架中,jsp位于MVC设计模式的视图层,而servlet位于控制层。
8、以下说法错误的是?(A)
A.session存在服务器,cookie存在硬盘
B.session机制采用的是服务器端保持状态,但是在应用过程中借助于cookie机制来达到保存标识的目的,从而实现用户登录
C.cookie只与你的主机(域)有关,与select和jsp页面无关
D.cookie中不能直接存取java对象,session中可以存对象
9、下面关于forward和redirect的描述,不正确的是?(D)
A.执行forward时,浏览器不知道服务器发送的内容从何而来,地址栏还是原来的地址
B.执行forward时,服务器端告诉浏览器重新去请求地址
C.forward是内部重定向,redirect是外部重定向
D.forward是服务器将控制权转交给另一个内部服务器对象,由新的对象来全权负责响应用户的请求
10、http请求中,get和post的区别?
(1)get是从服务器上获取数据,post是向服务器传送数据。 在客户端,Get方式在通过URL提交数据,数据在URL中可以看到;POST方式,数据放置在HTML HEADER内提交。
(2)对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据。
(3) GET方式提交的数据最多只能有1024字节,而POST则没有此限制。
(4)安全性问题。正如在(1)中提到,使用 Get 的时候,参数会显示在地址栏上,而 Post 不会。所以,如果这些数据是中文数据而且是非敏感数据,那么使用 get;如果用户输入的数据不是中文字符而且包含敏感数据,那么还是使用 post为好。
11、Spring和Hibernate整合过程中各对象(BO为业务模型)注入的顺序是?(C)
A.DateSource-SessionFactory-Biz-DAO B.SessionFactory-DateSource-DAO-BO
C.DateSource-SessionFactory-DAO-BO D.SessionFactory-DateSource-Biz-DAO
12、所有通过英语六级考试的学生都参加了学校的英语俱乐部,王进参加了英语俱乐部,所以他一定通过了英语六级考试。以下哪项最好的指出了上述论证的逻辑错误?(C)
A.部分通过英语六级考试的学生没有参加英语俱乐部
B.王进参加英语俱乐部是因为他符合加入俱乐部的基本条件
C.有些参加英语俱乐部的学生还没有通过英语六级考试
D.王进曾经获得过年级英语演讲比赛第一名
13、Spring实现ioc是基于何种底层java技术?
基于java的反射机制 , 在spring初始化的时候 , 初始化所有bean , 然后在应用程序需要的时候 , 通过反射机制来获取。
14、为什么有时需要连接池?列出一个连接池的实例,举例说明使用连接池的好处。
使用连接池是为了提升操作数据库的效率,使用连接池就好比一些东西已经造好等着你来用就行了,不使用连接池就像是你在用他们之前还要先造好然后再拿去用,这比不用连接池要耗费更多的时间。
package test;
import java.sql.*;
import java.util.*;
public class DBConnpool
{
private int inUse = 0;
private VectorConnection connections = new VectorConnection();
private String poolname = “dbconnpool”;
private String dbid = “jdbc:mysql://www.easyaq.com:3306/teasystem”;
private String drivername = “com.mysql.jdbc.Driver”;
private String username = “root”;
private String password = “123”;
private int maxconn = 5000;
public DBConnpool(){ }
public void setdbid(String dbid)
{ this.dbid = dbid; }
public void setusername(String username)
{ this.username = username; }
public void setpassword(String password)
{ this.password = password; }
public void setmaxconn(int maxconn)
{ this.maxconn = maxconn; }
public String getdbid()
{ return dbid; }
public String getusername()
{ return username; }
public String getpassword()
{ return password; }
public int getmaxconn()
{ return maxconn; }
//将连接返还给连接池
public synchronized void reConnection(Connection conn)
{ Connection con = conn;
connections.addElement(con);
inUse–;
}
//从连接池获取一个连接
public synchronized Connection getConnection()
{
Connection con = null;
if(connections.size()0)
{
con = (Connection)connections.elementAt(0);
connections.removeElementAt(0);
try{
if(con.isClosed())
{ con = getConnection(); }
}catch(Exception e){
e.printStackTrace();
}
}else if(maxconn == 0||inUsemaxconn)
{ con = newConnection(); }
if(con != null)
{ inUse++; }
return con;
}
private Connection newConnection()
{
Connection con = null;
try{
Class.forName(drivername);
con = DriverManager.getConnection(dbid,username,password);
}catch(Exception e){
e.printStackTrace();
return null;
}
return con;
}
public synchronized void closeConn()
{
Enumeration allConnections = connections.elements();
while(allConnections.hasMoreElements())
{
Connection con = (Connection)allConnections.nextElement();
try{
con.close();
}catch(SQLException e){
e.printStackTrace();
} } } }
使用连接池,把暂时不使用的链接放入连接池,到需要使用的时候,从连接池中取出链接使用。
15、以下给定的数组,如何最简单的把每个值都打印出来?
String[] arry=new String[]{“john”,”Marry”,”Bob”};
System.out.println(Array.toString(arry));
16、java项目中引入了一个第三方库,运行到某段代码过程中抛出NoClassDefFoundError或NoSuchMethodError,这个问题如何产生的,你如何解决这个问题?
17、有一个字符串需要判断,条件如下:必须有至少1位数字,有1位字母,10位以上。你用何种技术实现这种判断?
if(/^\d+$/.test(str)) { 全为数字,执行… }当然你也可以用isNaN来判断if(isNaN(str)){ str是个数字,执行…}
18、Chrome浏览器用于调试的快捷键是什么?
F12
19、Chrome浏览器调试面板中,Elemets,Network,Resources分别是什么用途?
Elements 是页面html元素,
Network 是页面加载的时候网络资源加载情况
Resource 是网站的网页资源文件,包括css、js等
20、Eclipse中,让一个java程序看起来更易读的快捷键是什么?
Ctrl+Shift+F
21、简单说说什么是stack trace。
stack trace叫做堆栈轨迹:如果你需要打印出某个时间的调用堆栈状态,你将产生一个堆栈轨迹。
stack trace 中包括三部分,分别为:.bss .text .data
bss: 表示程序中未初始化的全局变量的一块内存区域
text: 表示程序中已初始化的全局变量的一块内存区域
data:表示存放程序执行代码的一块内存区域
java中jdbc的面试题的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java笔试面试题、java中jdbc的面试题的信息别忘了在本站进行查找喔。