中科软java面试

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1.打印乘法口决表:Publicstaticvoidmain(String[]args){for(inti=1;i10;i++){for(intj=1;j=i;j++){System.out.print(j+X+i+=+j*i+\t);if(i=j)System.out.println(\n);}}}递归遍历某个目录sinosoft下的所有java文件publicstaticvoidlisFile(Stringstr){Filefile=newFile(str);if(file.isDirectory()){File[]files=file.listFiles();for(inti=0;ifiles.length;i++){Stringfilename=files[i].getName();if(filename.trim().toLowerCase().endsWith(.java)){System.out.print(files:+files[i].getName()+\t);}if(files[i].isDirectory()){Stringnn=files[i].getPath();lisFile(nn);}}}}2.给出一个JDBC操作的例子,指出不完善的地方,那个例子就不说了,下面列出一个常见的:publicstaticvoidmain(Stringargs[]){Stringurl=jdbc:microsoft:sqlserver://localhost:1433;database=NorthWind;String_uname=dbtest;String_pwd=889988;Connectioncon=null;PreparedStatementpsmt=null;try{Class.forName(com.microsoft.jdbc.sqlserver.SQLServerDriver);System.out.println(类实例化成功!);con=DriverManager.getConnection(url,_uname,_pwd);psmt=con.prepareStatement(insertintotestvalues(?,?));psmt.setString(1,Jianghua);psmt.setString(2,kyle@163.com);psmt.executeUpdate();psmt.setString(1,XuFen);psmt.setString(2,su3@163.com);psmt.executeUpdate();}catch(Exceptionfnot){fnot.printStackTrace();}finally{try{psmt.close();con.close();}catch(Exceptione){e.printStackTrace();}}}3.SQL也不难的,给了两个表,然后对两个表进行查询。问了主键,外键,索引有什么作用主键的作用:1)保证实体的完整性;2)加快数据库的操作速度3)在表中添加新记录时,ACCESS会自动检查新记录的主键值,不允许该值与其他记录的主键值重复。4)ACCESS自动按主键值的顺序显示表中的记录。如果没有定义主键,则按输入记录的顺序显示表中的记录。外键的作用:最根本的就是参照完整性约束,表间数据的完整性衍生出来的作用就是在参照完整性的原则下来表达多对一的关系。索引的作用:第一,通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。第二,可以大大加快数据的检索速度,这也是创建索引的最主要的原因。第三,可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。第四,在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。第五,通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。4.还有以Struts框架为例,向别人介绍MVC模式Struts采用jsp作为MVC的视图,由ActionServlet具体指定的action动作类作为控制器即MVC中的C,负责视图与模型之间的交互。控制器的每个入口点都由名为struts-config.xml的配置文件设置。该文件把来自视图的请求映射为特定的JAVA类以进行相应的处理,控制器还指定下一个视图的位置。Struts中的模型主要指的就是javabean,它是模型的代表,主要封装数据和业务逻辑。m:modelv:viewc:controlstruts中的JSP页面是实现视图层的(view),这里不用多说,struts其实就是用来跳转这些页面,提起/输出JSP页面的参数。。JavaBean类,也就是那个什么纯get/set方法的那个类是业务层的,就是上面所说的model,模型层;control就是写的那些action/actionform,用来控制view和model之间的联系,获取参数,跳转页面。。。5.都熟悉哪些应用服务器?我只知道JBoss,Weblogic,Websphere,OracleApplicationServer,SunApplicationServer.1.Oracle表连接方式有哪些?请举例说明其中一种方式嵌套循环连接,排序合并连接,哈希连接,群集连接,笛卡尔连接嵌套循环连接的内部处理的流程:1)Oracle优化器根据基于规则RBO或基于成本CBO的原则,选择两个表中的一个作为驱动表,并指定其为外部表。2)Oracle优化器再将另外一个表指定为内部表。3)Oracle从外部表中读取第一行,然后和内部表中的数据逐一进行对比,所有匹配的记录放在结果集中。4)Oracle读取外部表中的第二行,再和内部表中的数据逐一进行对比,所有匹配的记录添加到结果集中。5)重复上述步骤,直到外部表中的所有纪录全部处理完。6)最后产生满足要求的结果集。通过查询SQL语句的执行计划可以看出哪个表是外部表,哪个为内部表。如selecta.user_name,b.dev_nofromuser_infoa,dev_infobwherea.user_id=b.user_id;上面的表是外部表,即驱动表下面的表是内部表2.sql语句中的exists和in有区别吗?语句优化有哪些方式?EXISTS:后面可以是整句的查询语句如:SELECT*FROMtitlesIN:后面只能是对单列:SELECTpub_idFROMtitles优化方法:(1)选择最有效率的表名顺序(只在基于规则的优化器中有效):(2)WHERE子句中的连接顺序:(3)SELECT子句中避免使用‘*’:(4)减少访问数据库的次数:(6)使用DECODE函数来减少处理时间(7)整合简单,无关联的数据库访问:8)删除重复记录:(9)用TRUNCATE替代DELETE:。。。3.简述Spring事务管理方法,写出一种配置方式Spring提供的编程式的事务处理Spring提供了几个关于事务处理的类:·TransactionDefinition//事务属性定义·TranscationStatus//代表了当前的事务,可以提交,回滚。·PlatformTransactionManager这个是spring提供的用于治理事务的基础接口,其下有一个实现的抽象类AbstractPlatformTransactionManager,我们使用的事务治理类例如DataSourceTransactionManager等都是这个类的子类。我们使用编程式的事务治理流程可能如下1声明数据源2声明一个事务治理类,例如DataSourceTransactionManager,HibernateTransactionManger,JTATransactionManager等3在我们的代码中加入事务处理代码:TransactionDefinitiontd=newTransactionDefinition();TransactionStatusts=transactionManager.getTransaction(td);try{//dosthtransactionManager.commit(ts);}catch(Exceptione){transactionManager.rollback(ts);}使用spring提供的事务模板TransactionTemplatevoidadd(){transactionTemplate.execute(newTransactionCallback(){pulicObjectdoInTransaction(TransactionStatusts){//dosth}}}TransactionTemplate也是为我们省去了部分事务提交、回滚代码;定义事务模板时,需注入事务治理对象.Spring声明式事务处理Spring声明式事务处理也主要使用了ioc,aop思想,提供了TransactionInterceptor拦截器和常用的代理类TransactionProxyFactoryBean,可以直接对组件进行事务代理。使用TransactionInterceptor步骤1.定义数据源,事务治理类2.定义事务拦截器,sUChas:<beanid=transactionInterceptorclass=org.springframework.transaction.interceptor.TransactionInterceptor><propertyname=transactionManager><refbean=transactionManager/></property><propertyname=transactionAttributeSource><value>com.test.UserManager.*r=PROPAGATION_REQUIRED</value></property></bean>3.为组件声明一个代理类:ProxyFactoryBean4.用Java实现一个快速排序publicclassQuickSort{publicvoidqsort(int[]a,intlow,inthigh){if(low=high){inti=low;intj=high+1;intmid=a[low];while(true){while(i+1a.length&&a[++i]mid);while(j0&&a[--j]mid);if(i=j)break;swap(a,i,j);}a[low]=a[j];a[j]=mid;qsort(a,low,j-1);qsort(a,j+1,high);}}publicvoidswap(int[]t,inta,intb){inttemp=t[a];t[a]=t[b];t[b]=temp;}publicQuickSort(){int[]t={2,3,5,1,4,6};for(inti=0;it.length;i++)System.out.println(t[i]);qsort(t,0,t.length-1);System.out.println(aftersort);for(inti=0;it.length;i++)System.out.println(t[i]);}publicstaticvoidmain(String[]args){newQuickSort();}}publicclassQuickSort{/***快速排序**@paramstrDate*@paramleft*@paramright*/publicvoidquickSort(String[]strDate,intleft,intright){Stringmiddle;StringtempDate;inti,j;i=left;j=right;middle=strDate[(i+j)/2];do{while(strDate[i].compareTo(middle)0&&ir

1 / 24
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功