




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
自己的面试经历题正大科技1、java中的类型有哪些?基本类型: byte,short,int,float,double,long,char,boolean;引用类型:String,(类)class、interface、(数组)Array,Map2、java中做精度计算的是什么类?Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算3、list与set的区别?1)List是有序的Collection,使用此接口能够精确的控制每个元素插入的位置。用户能够使用索引(元素在List中的位置,类似于数组下标)来访问List中的元素,这类似于Java的数组。2)Set是一种不包含重复的元素的Collection,即任意的两个元素e1和e2都有e1.equals(e2)=false,Set最多有一个null元素。4、HashSet如何实现两次遍历?1. clone出一个新的HashSet,再用iterator2. toArray创建一个新数组,再用for循环5、list和set遍历的区别?List遍历的时候可以用for循环来遍历,set不能用for遍历;因为set没有get()方法6、Oracle中表的连接形式、分别显示的内容?1. 内连接(自然连接)2. 外连接(1)左外连接 (左边的表不加限制)保留左边表的信息,右边表的信息写“null”(2)右外连接(右边的表不加限制)保留右边表的信息,左边表的信息写“null”(3)全外连接(左右两表都不加限制)保留两表中的所有信息3. 自连接(同一张表内的连接)inner join 表示内连接;left join表示左外连接;right join表示右外连接;full join表示完全外连接;7、Oracle中知道一个子节点怎么查询父节点的信息?使用Oracle提供了递归查询(又叫树型查询)select t.*,level as 层次 -level,oracle数据库中的关键字,表示层次from 表 twhere 普通条件 -也可以用于限制levelstart with 子ID=? -开始的节点connect by prior 子ID=父ID -子ID=父ID 往下查 父ID子ID 往上查例如: 显示每个节点的信息和它所处的层次(level)select t.*,level as 层次from type_tree tstart with t.type_id=100connect by prior t.type_id=t.parent_type8、请概述一下冒泡排序?1. 比较相邻的元素。如果第一个比第二个大,就交换他们两个。2. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。3. 针对所有的元素重复以上的步骤,除了最后一个。4. 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。5.9、Oracle中如何建立索引?create index 索引名 on 表名(建索引的列名)昂码信息科技1、String, StringBuffer StringBuilder的区别?String的长度是不可变的字符串。StringBuffer的长度是可变的字符串,如果你对字符串中的内容经常进行操作,特别是内容要修改时,那么使用StringBuffer,如果最后需要String,那么使用StringBuffer的toString()方法。它是线程安全的。StringBuilder是从 JDK 5 开始,为StringBuffer该类补充了一个单个线程使用的等价类,通常应该优先使用 StringBuilder 类,因为它支持所有相同的操作,但由于它不执行同步,所以速度更快。2、什么是构造方法?在Java语言中可以通过构造方法实现对对象成员变量的初始化。构造方法是在类中定义的方法。但不同于其他的方法,构造方法的定义有如下两点规则:1.构造方法的名称必须与类名同名。2.构造方法没有返回值,但也不能写void。3、构造代码块、静态代码块、构造方法的执行,区别?静态代码块在构造代码块之前执行(静态代码块构造代码块构造方法)。静态代码块只在第一次new执行一次,之后不再执行,而构造代码块在每new一次就执行一次。构造代码块可在普通方法中定义(不过作用不大);而静态代码块不行。4、什么是抽象类?用abstract关键字修饰的类称为抽象类。抽象类不能实例化,抽象类的意义在于“被继承”。抽象类为其子类“抽象”出了公共的部分,通常也定义了子类所必须具体实现的抽象方法。5、abstract class和interface有什么区别?1.从语法角度abstract class方法中可以有自己的数据成员,也可以有非abstract的成员方法,并赋予方法的默认行为,而在interface方式中一般不定义成员数据变量,所有的方法都是abstract,方法不能拥有默认的行为2. 从编程的角度abstract class在java语言中表示的是一种继承关系,一个类只能使用一次继承关系。而一个类可以实现多个interface3. 从问题域角度abstract class在Java语言中体现了一种继承关系,要想使得继承关系合理,父类和派生类之间必须存在is a关系,即父类和派生类在概念本质上应该是相同的。对于interface 来说则不然,并不要求interface的实现者和interface定义在概念本质上是一致的,仅仅是实现了interface定义的契约而已。6、List、Map有何异同?1)List是有序的Collection,使用此接口能够精确的控制每个元素插入的位置。用户能够使用索引(元素在List中的位置,类似于数组下标)来访问List中的元素,这类似于Java的数组。2)Map接口 :请注意,Map没有继承Collection接口,Map提供key到value的映射。7、线程中常用的方法?1.start()启动线程的方法;start()方法是在主线程(main方法)中调用的,调用start()方法时JVM自动调用run()方法,执行run()方法中内容。2.run()继承Thread类或实现implement接口重写的方法,此方法必须要实现,方法中是线程要执行的代码3.sleep()是线程睡眠方法;调用sleep()方法是让该线程处于停止状态,等睡眠的时间一到该线程就处于就绪状态,可以重新被调用。4.wait()方法必须在同步语句块中,其他地方不可使用wait()方法,调用此方法是可能会出现异常,所以必须处理异常问题try-catch。调用wait()方法时线程释放对象锁、线程被放到对象等待池中,只有在其他线程调用notifyAll()方法时,所有在对象等待池中的线程都会被放到对象锁池中竞争对象5.yield()让步yield()方法是让调用此方法的线程处于暂停状态,让优先级高的线程运行,如果没有比该线程优先级高的线程则继续运行。6.join()方法是在一个线程中插入另一个线程,如在A线程中插入B线程时,我们可以在A线程中调用B.join(),等B线程运行完之后A线程继续运行。7notify()和notifyAll()notifyAll使所有原来在该对象上等待被notify的线程统统退出wait的状态,变成等待该对象上的锁,一旦该对象被解锁,他们就会去竞争。notify则文明得多他只是选择一个wait状态线程进行通知,并使它获得该对象上的锁,但不惊动其他同样在等待被该对象notify的线程们,当第一个线程运行完毕以后释放对象上的锁此时如果该对象没有再次使用notify语句,则即便该对象已经空闲,其他wait状态等待的线程由于没有得到该对象的通知,继续处在wait状态,直到这个对象发出一个notify或notifyAll,它们等待的是被notify或notifyAll,而不是锁。8、Oracle中表的连接形式、分别显示的内容?1. 内连接(自然连接)2. 外连接(1)左外连接 (左边的表不加限制)保留左边表的信息,右边表的信息写“null”(2)右外连接(右边的表不加限制)保留右边表的信息,左边表的信息写“null”(3)全外连接(左右两表都不加限制)保留两表中的所有信息3. 自连接(同一张表内的连接)inner join 表示内连接;left join表示左外连接;right join表示右外连接;full join表示完全外连接;9、谈谈对存储过程的理解?存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。 存储过程是SQL 语句和可选控制流语句的预编译集合,以一个名称存储并作为一个单元处理。存储过程存储在数据库内,可由应用程序通过一个调用执行,而且允许用户声明变量、有条件执行以及其它强大的编程功能。存储过程在创建时即在服务器上进行编译,所以执行起来比单个SQL语句快。10、JSP的内置对象及方法?request表示HttpServletRequest对象。它包含了有关浏览器请求的信息,并且提供了几个用于获取cookie, header, 和session数据的有用的方法。response表示HttpServletResponse对象,并提供了几个用于设置送回 浏览器的响应的方法(如cookies,头信息等)out对象是javax.jsp.JspWriter的一个实例,并提供了几个方法使你能用于向浏览器回送输出结果。pageContext表示一个javax.servlet.jsp.PageContext对象。它是用于方便存取各种范围的名字空间、servlet相关的对象的API,并且包装了通用的servlet相关功能的方法。session表示一个请求的javax.servlet.http.HttpSession对象。Session可以存贮用户的状态信息applicaton 表示一个javax.servle.ServletContext对象。这有助于查找有关servlet引擎和servlet环境的信息config表示一个javax.servlet.ServletConfig对象。该对象用于存取servlet实例的初始化参数。page表示从该页面产生的一个servlet实例exception:只有当isErrorPage=true时,才能使用,可以调用该对象的方法来获得jsp运行时产生的异常信息。11、jsp有哪些动作?作用分别是什么?JSP共有以下6种基本动作 jsp:include:在页面被请求的时候引入一个文件。jsp:useBean:寻找或者实例化一个JavaBean。jsp:setProperty:设置JavaBean的属性。jsp:getProperty:输出某个JavaBean的属性。jsp:forward:把请求转到一个新的页面。jsp:plugin:根据浏览器类型为Java插件生成OBJECT或EMBED标记。12、谈谈你对spring、hibernate、struts2的理解?struts2是一个标准的Web层的MVC框架,主要控制的是用户的请求程序的处理程序的返回这个流转过程。 hibernate是一个持久层的框架,他在JDBC上进行的轻量级的封装,是用户可以直接用面向对象的方式来操作关系型数据库。例如,如果你想保存一个学生信息,以前可能需要写一个insert语句,用了hibernate就只用调用它的save方法就行了。 spring是一个多元化的框架,它有类似struts的MVC。但是他最主要的功能是依赖注入和面向切面编程。所谓依赖注入就是说以前你需要一个对象的话需要new一个,这样势必造成代码写死到程序中了,这样不利于改动。依赖注入可以把你需要的对象自动生成了给你,这样用起来就很灵活了。AOp就是在程序需要进行统一处理的地方进行处理,但是又不用写死在程序中。13、简述hibernate的缓存机制?Hibernate中的一级缓存机制(也叫做事务内的缓存)是与Session绑定在一起的。当一个Session开启,一级缓存创建;当一个Session关闭,一级缓存销毁。Hibernate中的二级缓存特点如下:a. 二级缓存被称为SessionFactory级别缓存. 生命周期与SessionFactory对象相关b. 二级缓存空间可以被不同的Session对象访问 共享.c. 二级缓存默认是关闭状态.如果遇到某个数据对象被多个不同的Session频繁访 问,可以开启.Hibernate中的查询缓存:前面的一级和二级缓存,缓存的时load,get出来的数据对象.不能缓存一个结果集.查询缓存可以缓存查询语句和结果集,当重复执, 同一个查询语句时,只取数据库查询一次,后续都是将缓存中的结果集取出。适用于频繁的执行同一个查询语句,而且查询结果集很少发生变化的情况。14、例举至少5个struts2的标签?1.form-用于生成表单元素2.textfield -文本框标签, 生成input文本框3.password -用于生成密码框的4.submit -用于生成提交按钮,不常用。5.textarea -文本域标签, 生成textarea框6.checkbox -用于生成单个值的复选框,常用于布尔类型的字段。7. checkboxlist -用于生成复选框8.radio-单选框的标签9.select-用于生成下拉选,用法类似于checkboxlist.15、拦截器的作用?拦截器适合封装一些共通处理,便于重复利用.例如请求参数给Action属性,日志的记录,权限检查, 事务处理等.拦截器是通过配置方式调用,因此使用方法比较灵活,便于维护和扩展。16、sping控制反转?控制反转,和依赖注入是同一个意思;而所谓的依赖就是对象之间的一种关系,比如a对象依赖于b对象,那么a类中就会有b类的引用(简单理解就是拥有b类的这么一个属性),也就是说a对象要想执行一个完整的功能,必须建立一个前提a对象中的b类属性已经实例话,并且拥有b类的一切功能;现在可以去了解什么是依赖注入了,就像前面说过的,a对象想完成一个完整的功能,要先为自己的b类属性实例化,而在MVC模式中,这种现象很常见,为了简化这种实例化的工作,spring容器就产生了,它可以统一管理这种实例化频繁的操作,就是说这种本来应由自己实例化的工作交给Spring容器去控制了,也就是说控制反转了,实现的方案之一是在上述a类中提供一个关于b类的setter方法,这个方法会被Spring容器控制。指点通(北京)信息科技1、说出数据连接池的工作机制是什么?J2EE服务器启动时会建立一定数量的池连接,并一直维持不少于此数目的池连接。客户端程序需要连接时,池驱动程序会返回一个未使用的池连接并将其表记为忙。如果当前没有空闲连接,池驱动程序就新建一定数量的连接,新建连接的数量有配置参数决定。当使用的池连接调用完成后,池驱动程序将此连接表记为空闲,其他调用就可以使用这个连接。2、JavaSE和javaEE理解?javase是java平台标准版的简称,用于开发和部署桌面、服务器以及嵌入设备和实时环境中的java应用程序。javase包括用于开发javaweb服务的类库,同时,javase为javaee提供了基础。javase(javaplatform,standardedition,java标准版)就是基于jdk和jre的。javaee是java平台企业版的简称(javaplatform,enterpriseedition),用于开发便于组装、健壮、可扩展、安全的服务器端java应用。javaee建立于javase之上,具有web服务、组件模型、以及通信api等特性,这些为面向服务的架构(soa)以及开发web2.0应用提供了支持。javaee基于javase,此外新加了企业应用所需的类库。3、struts2的循环、判断、输出标签是什么?1)输出-value属性中写的是OGNL表达式假设Action中有userName属性2)循环-value属性中写的是OGNL表达式,该表达式访问的是Action中的集合属性。3)控制-test属性中写的是OGNL表达式。4、谈谈你对spring、hibernate、struts2的理解?struts2是一个标准的Web层的MVC框架,主要控制的是用户的请求程序的处理程序的返回这个流转过程。 hibernate是一个持久层的框架,他在JDBC上进行的轻量级的封装,是用户可以直接用面向对象的方式来操作关系型数据库。例如,如果你想保存一个学生信息,以前可能需要写一个insert语句,用了hibernate就只用调用它的save方法就行了。 spring是一个多元化的框架,它有类似struts的MVC。但是他最主要的功能是依赖注入和面向切面编程。所谓依赖注入就是说以前你需要一个对象的话需要new一个,这样势必造成代码写死到程序中了,这样不利于改动。依赖注入可以把你需要的对象自动生成了给你,这样用起来就很灵活了。AOO就是在程序需要进行统一处理的地方进行处理,但是又不用写死在程序中。5、Spring 实现的两个核心技术1)IoCInversion of Control中文翻译为 控制反转 ,在 Spring 里的实现是 Dependency Injection ( 依赖注入 ),就是说对象之间的依赖关系在后期通过配置文件(典型为 XML 文件)生成, Spring 里实现了两种注入方式:构造函数注入、 Setter 方法注入。我们可以这样理解这种技术带来的好处,前期我们只需要关注单个对象(组件)的功能实现,具体的业务实现是通过后期配置出来的,不同的配置可以产生不同的业务功能。2)AOPAspect-oriented programming面向方面的编程 ,但我觉得翻译为 面向切面的编程 更容易理解一些。 AOP 大大降低了对象之间的耦合程度,与 IoC 一样,能够通过后期的配置动态为对象增加新的特性,甚至能够为对象动态增加方法。在 Spring 下, AOP 的实现不需要借助专门的 AOP 定义语言,只需要普通的 Java 对象和 XML 配置文件即可。6、Hibernate与JDBC的区别?JDBC与Hibernate在性能上相比,JDBC灵活性有优势。而Hibernate在易学性,易用性上有些优势。当用到很多复杂的多表联查和复杂的数据库操作时,JDBC有优势。相同点:两者都是JAVA的数据库操作中间件。两者对于数据库进行直接操作的对象都不是线程安全的,都需要及时关闭。两者都可以对数据库的更新操作进行显式的事务处理。不同点:使用的SQL语言不同:JDBC使用的是基于关系型数据库的标准SQL语言,Hibernate使用的是HQL(Hibernate query language)语言操作的对象不同:JDBC操作的是数据,将数据通过SQL语句直接传送到数据库中执行,Hibernate操作的是持久化对象,由底层持久化对象的数据更新到数据库中。数据状态不同:JDBC操作的数据是“瞬时”的,变量的值无法与数据库中的值保持一致,而Hibernate操作的数据是可持久的,即持久化对象的数据属性的值是可以跟数据库中的值保持一致的。7、Hibernate工作原理及为什么要用?原理:1.读取并解析配置文件2.读取并解析映射信息,创建SessionFactory3.打开Sesssion 4.创建事务Transation 5.持久化操作 6.提交事务7.关闭Session 8.关闭SesstionFactory 为什么要用: 1. 对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。 2. Hibernate是一个基于JDBC的主流持久化框架,是一个优秀的ORM实现。他很大程度的简化DAO层的编码工作 3. hibernate使用Java反射机制,而不是字节码增强程序来实现透明性。 4. hibernate的性能非常好,因为它是个轻量级框架。映射的灵活性很出色。它支持各种关系数据库,从一对一到多对多的各种复杂关系。8 、谈谈你对Oracle的理解?OR
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中国工业氧气行业市场发展现状及投资规划建议报告
- 红油压差表行业深度研究分析报告(2024-2030版)
- 2019-2025年中国乳品添加剂行业市场前景预测及投资战略研究报告
- 2025年中国烟草RFID市场运行动态及行业投资潜力预测报告
- 2024-2030年中国菠萝深加工行业发展前景预测及投资战略咨询报告
- 2025年中国电脑夹行业市场发展前景及发展趋势与投资战略研究报告
- 2025年中国冰晶石行业市场全景评估及发展战略规划报告
- 2025年中国农业机械化行业市场深度分析及发展前景预测报告
- 中国特种气体辅助设备市场发展前景预测及投资战略咨询报告
- 2024-2030年中国智能跑步机行业市场深度研究及发展趋势预测报告
- 基坑工程土方开挖支护与降水监理实施细则
- 江苏徐州市深地科学与工程云龙湖实验室社会招考聘用9人模拟试卷【附答案解析】
- 土方回填施工记录表
- 植物根茎叶课件
- 反生产行为讲稿
- 施工现场消防安全技术交底
- 冀教版二年级语文下册看图写话专项加深练习题含答案
- 焊接工艺评定及焊接工艺技术评定管理标准
- 洗衣房各岗位工作流程
- 基于SWOT分析的义乌市现代物流业发展研究
- 基于自适应滤波对音频信号的处理详解
评论
0/150
提交评论