您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 招聘面试 > java面试题集(编程方面)
1.用JDBC连接Oracle并读取数据的例子importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;importjava.util.Date;/***用JDBC连接Oracle并读取数据的例子。*@authorJAVA世纪网(java2000.net,laozizhu.com)*/publicclassjdbc{StringdbUrl=jdbc:oracle:thin:@127.0.0.1:1521:orcl;StringtheUser=scott;StringthePw=tiger;Connectionc=null;Statementconn;ResultSetrs=null;publicjdbc(){try{Class.forName(oracle.jdbc.driver.OracleDriver).newInstance();c=DriverManager.getConnection(dbUrl,theUser,thePw);conn=c.createStatement();}catch(Exceptione){e.printStackTrace();}}publicbooleanexecuteUpdate(Stringsql){try{conn.executeUpdate(sql);returntrue;}catch(SQLExceptione){e.printStackTrace();returnfalse;}}publicResultSetexecuteQuery(Stringsql){rs=null;try{rs=conn.executeQuery(sql);}catch(SQLExceptione){e.printStackTrace();}returnrs;}publicvoidclose(){try{conn.close();c.close();}catch(Exceptione){e.printStackTrace();}}publicstaticvoidmain(String[]args){ResultSetrs;jdbcconn=newjdbc();rs=conn.executeQuery(select*fromtest);try{while(rs.next()){System.out.println(rs.getString(id));System.out.println(rs.getString(name));}}catch(Exceptione){e.printStackTrace();}}}2.如果2个对象==,则他们一定equals,hashCode一定相等吗?/***如果2个对象==,则他们一定equals,hashCode一定相等吗?br*这个就是一个例子br*不要告诉我不能这么写,我不是在讨论应该怎么样br*而是在确认这句话是否一定是正确的。br*br*教科书里的东西,让大家都循规蹈矩,br*却没有认识到程序的本质。br*hashCode/equals是否需要,如何写,完全取决于程序员的想法。**@author老紫竹(laozizhu.com)*/classTest{publicstaticvoidmain(Stringargs[]){Testa=newTest();Testb=a;System.out.println(a==b);//trueSystem.out.println(a.equals(b));//falseSystem.out.println(a.hashCode()==b.hashCode());//false}publicbooleanequals(Objectobj){returnfalse;}privatestaticintnum=0;publicinthashCode(){super.hashCode();returnnum++;}}3.下面的程序输出什么?/***下面的程序输出什么?请用脑袋想,不要去编译执行。**@author老紫竹JAVA世纪网(java2000.net)**/publicclassT{publicstaticvoidmain(String[]args){certkiller(four);certkiller(tee);certkiller(to);}publicstaticvoidcertkiller(Stringstr){intcheck=4;if(check=str.length()){System.out.print(str.charAt(check-=1)+);}else{System.out.print(str.charAt(0)+);}}}4.编写一个java程序jse.java,按下面的公式计算自然对数底e的值(n的值取20):e=1+1/1!+1/2!+1/3!+1/4!+…1/n!/***自然对数的底e的计算。br*1+1/1!+1/2!+1/3!+...br**@author老紫竹研究室(laozizhu.com)*/publicclassTest{publicstaticvoidmain(Stringargs[])throwsException{//方法1doublee=1.0;doublet=1.0;for(inti=1;i=20;i++){t/=i;e+=t;}System.out.println(e);//方法2,可惜我没看懂,很精妙e=0.0;for(inti=20;i0;i--){e=(e+1.0)/i;}e++;System.out.println(e);}}5.从字符串”ABCDEFGH”里找出”DEF”来Stringstr1=str.substring(3,6);6.写一个方法,输入任意一个整数,返回它的阶乘唯一注意的,要用long或者更大的用BigDecimal,不要用int/***@authorJAVA世纪网(java2000.net,laozizhu.com)*/publicclassTest{/***获得任意一个整数的阶乘**@paramn*@returnn!*/publiclongfactorial(intn){//递归if(n==1){return1;}returnn*factorial(n-1);}publiclongfactorial2(intn){//非递归longmulti=1;for(inti=2;i=n;i++){multi*=i;}returnmulti;}publicstaticvoidmain(Stringargs[]){Testt=newTest();System.out.println(t.factorial(12));System.out.println(t.factorial2(12));}}7.1000!有几位数?为什么?一个自然数N,它的位数等于lgN+1。lg就是以10为底的对数。例如250=2.5*10^2,则lg250=2+lg2.5,而lg2.5小于1,所以数250的位数约等于lg250+1,忽略小数部分,就等于3。所以1000!的位数约等于lg1000!+1lg1000!=lg1+lg2+lg3+……+lg1000这个求和约等于lgx这条曲线在区间[1,1000]与x轴围成的面积,也就是等于lgx在区间[1,1000]的定积分。这个定积分很好计算,等于(1000ln1000-1000+1)/ln10,ln是自然对数。所以1000!的阶乘的位数是1+(1000ln1000-1000+1)/ln10=25678.什么是模块的独立性?模块独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。衡量软件的模块独立性的度量标准是耦合性和内聚性。一个模块的内聚性越强,则该模块的模块独立性越强。而内聚性是信息隐蔽和局部化概念的自然扩展。面向对象的设计方法与传统的的面向过程的方法有本质不同,它的基本原理是,使用现实世界的概念抽象地思考问题从而自然地解决问题。它强调模拟现实世界中的概念而不强调算法,它鼓励开发者在软件开发的绝大部分中都用应用领域的概念去思考。总体设计过程通常由两个主要阶段组成:系统设计,确定系统的具体实现方案;结构设计,确定软件结构。为确定软件结构,首先需要从实现角度把复杂的功能进一步分解。分析员结合算法描述仔细分析数据流图中的每个处理,如果一个处理的功能过分复杂,必须把它的功能适当地分解成一系列比较简单的功能。9.java.awt.event包中定义的事件适配器类包括哪些?Java语言为一些Listener接口提供了适配器(Adapter)类。可以通过继承事件所对应的Adapter类,重写需要的方法,无关方法不用实现。java.awt.event包中定义的事件适配器类包括以下几个:1、ComponentAdapter,构件适配器。2、ContainerAdapter,容器适配器。3、FocusAdapter,焦点适配器。4、KeyAdapter,键盘适配器。5、MouseMotionAdapter,鼠标运动适配器。6、MouseAdapter,鼠标适配器。7、WindowAdapter,窗口适配器。10.Java对+进行了哪些扩展?Java对+进行了扩展,不仅可以连接字符串,而且还能将字符串与其它类型数据进行连接,结果是字符串。若+的第一个操作数是字符串,Java会自动将后面的操作数类型转换成字符串类型。11.什么是满二叉树?所谓满二叉树是指这样的一种二叉树:除最后一层外,每层上的所有结点都有两个子结点。这就是说,在满二叉树中,每一层上的结点数都达到最大值,即在满二叉树的第K层上有2^(K-1)个结点,且深度为m的满二叉树有2^m-1个结点。在满二叉树中,最后一层的结点个数就是叶子结点的个数,比如深度为5,故叶子结点数为2^(5-1)=2^4=16。12.调式的关键在于推断程序内部的错误位置及原因。其主要的调试方法有哪些?调式的关键在于推断程序内部的错误位置及原因。其主要的调试方法有:强行排错法、回溯法和原因排除法。1强行排错法:是传统的调试方法,其过程可概括为:设置断点、程序暂停、观察程序状态、继续运行程序。这是目前使用较多、效率较低的调试方法。2回溯法:该方法适合于小规模程序的排错。即一旦发现了错误,先分析错误征兆,确定最先发现症状的位置。然后,从发现症状的地方开始,沿程序的控制流程,逆向跟踪源程序代码,直到找到错误根源或确定错误产生的原因。3原因排除法:是通过演绎和归纳,以及二分法来实现的。数据库系统在其内部具有三级模式及二级映射,三级模式分别是概念级模式、内部级模式和外部级模式。13.在先左后右的原则下,根据访问根结点的次序,二叉树的遍历可以分为哪几种?在先左后右的原则下,根据访问根结点的次序,二叉树的遍历可以分为三种:前序遍历、中序遍历和后序遍历。1前序遍历是指在访问根结点、遍历左子树与遍历右子树这三者中,首先访问根结点,然后遍历左子树,最后遍历右子树;并且遍历左、右子树时,仍然先访问根结点,然后遍历左子树,最后遍历右子树。2中序遍历指在访问根结点、遍历左子树与遍历右子树这三者中,首先遍历左子树,然后访问根结点,最后遍历右子树;并且遍历左、右子树时,仍然先遍历左子树,然后访问根结点,最后遍历右子树。3后序遍历指在访问根结点、遍历左子树与遍历右子树这三者中,首先遍历右子树,然后访问根结点,最后遍历左子树;并且遍历左、右子树时,仍然先遍历右子树,然后访问根结点,最后遍历左子树。14.软件的需求分析阶段的工作有哪些?软件的需求分析阶段的工作,可以概括为四个方面:需求获取、需求分析、编写需求规格说明书和需求评审。1需求获取的目的是确定对目标系统的各方面需
本文标题:java面试题集(编程方面)
链接地址:https://www.777doc.com/doc-5352397 .html