重庆网站建设优化排名,企业网站建设存在的不足与困难,有口碑的南昌网站制作,一般做网站转载自 总结Java常见面试题和答案
int和Integer有什么区别? 答#xff1a;int是java的原始数据类型#xff0c;Integer是java为int提供的封装类#xff0c;java为每个原始数据类型都提供了封装类。String和StringBuffer的区别? 答#xff1a;String是不可变的对象int是java的原始数据类型Integer是java为int提供的封装类java为每个原始数据类型都提供了封装类。String和StringBuffer的区别? 答String是不可变的对象每次对String类型进行改变都相当于产生了一个新的对象StringBuffer是可变的字符序列所以如果要经常改变某个字符串的话建议使用StringBuffer。list、set、map问题? 答set 不允许重复无序 list 允许重复有序 map 成对的数据结构键值必须具有唯一性Servlet和CGI的区别? 答Servlet与CGI的区别在于Servlet处于服务器进程中它通过多线程方式允许其service方法一个实例可以服务于多个请求并且其实例一般不会被销毁而CGI对每个请求都产生新的进程服务完后就销毁所以效率上低于Servlet。面向对象的特征? 答1封装通过定义类并且给类的属性和方法加上访问控制 2继承子类继承父类子类可以拥有父类中已定义的方法并且子类可以修改父类中的方法使其更适合特殊需求。 3多台不同对象对统一消息作出不同响应称之为多态 4抽象忽略与当前主题无关的那些方面将注意力集中在与当前目标有关的方面运行时异常和一般异常有何异同? 答运行时异常时JVMjava虚拟机在运行过程中发生的问题比如内存溢出等问题。这类异常没法要求程序员去一一捕获并抛出一般异常是Java类库或程序员自己写的代码发生的错误这类异常可以由我们去一一捕获并抛出。多线程几种实现方法同步? 答多线程有两种实现方法一种是继承Thread类或者实现Runnable接口。同步就是在方法返回类型后面加上synchronized。c#中的委托事件是不是委托? 答委托就是将方法作为一个参数带入另一个方法叫做委托事件是一种特殊的委托。应用程序域? 答应用程序域可以理解为一种轻量级的进程起到安全的作用占用资源小。Class.forName作用? 答调用该访问返回一个以字符串指定类名的类对象。JDO? 答JDO是java对象持久化的新的规范为java data object的简称也是一个用于存取某种数据仓库中的对象的标准化API。CORBA? 答CORBA标准是公共对象请求代理结构用途为用不同的程序设计语言书写在不同的进程中运行为不同的操作系统开发。xml解析技术? 答常用的DOM、SAX等 DOM处理大型文件时性能下降的非常厉害适合对xml的随机访问 SAX事件驱动型的xml解析方法适合对xml的顺序访问jsp常用动作? 答jsp:include 引入一个文件 jsp:useBean 实例化JavaBean jsp:setProperty 设置JavaBean属性 jsp:getProperty 输出JavaBean属性 jsp:forward 转发CTS、CLS、CLR分别作何解释? 答CTS 通用类型系统、CLS 通用语言规范、CLR 公共语言运行时。Struts1和Struts2原理和区别? 答Struts1和Struts2是两个完全不同的框架Struts1以ActionServlet作为核心控制器由ActionServlet负责拦截用户的所有请求。Struts2以核心控制器FilterDispatcher为基础包含了框架内部的控制流程和处理机制。Hibernate工作原理Hibernate数据持久化? 答Hibernate工作原理 1读取并解析映射信息创建SessionFactory 2打开Session 3创建事物 4持久化操作 5提交事务 6关闭Session 7关闭SessionFactory Hibernate持久化Hibernate根据定义的映射规则将对象持久化保存到数据库这就实现了对象的持久化。Spring由那几个模块组成? 答Spring主要由7个模块组成 1Spring核心容器提供了Spring框架的基本功能 2Spring AOP通过配置管理特性 3Spring ORMSpring框架集成了若干ORM框架 4Spring DAO打开关闭数据库连接 5Spring WEB为基于WEB服务的应用程序提供上下文服务 6Spring Context向Spring框架提供上下文信息 7Spring MVC分离模型、视图、控制器、以便更容易定制折构函数和虚函数? 答折构函数式销毁一个类的函数虚函数是为了C的动态绑定而设计的。描述你的编程风格? 答类名首字母大写常量一般全部大写给自己的代码加注释。控制流程? 答控制流程一般使用if判断条件。有第二分支多分支循环结构。循环本质上也是通过判断来实现的。多形与继承? 答多形一个类中多个同名方法。继承子类继承父类。jsp内置对象? 答request 用户端请求 response 回应 pageContext 网页属性 session 会话 out 输出 page 当前网页 exception 错误网页 application servlet正在执行的内容 config servlet构架部件Struts模型驱动? 答封装请求参数。简述JDBC? 答JDBC数据库连接是一种用于执行SQL语句的Java API可以为多种关系型数据库提供统一访问。什么情况下不建议使用Hibernate? 答当数据量大并且表关系复杂的时候不建议使用。sleep()和wait()有什么区别? 答sleep()是线程类的方法导致此线程暂停执行指定时间给执行机会给其他线程但监控状态依然保持到时候会自动恢复。 wait()是Object类的方法对此对象调用了wait方法导致本线程放弃对象锁进入等待锁定池只有针对此对象发出notify方法后本线程才进入对象锁定池准备获得对象锁进入运行状态。同步和异步在什么情况下分别使用? 答如果数据将在线程间共享。例如正在写的数据以后可能被另一个线程读到或者正在读的数据可能已经被另一个线程写过了那么这些数据就是共享数据必须进行同步存取。 当应用程序在对象上调用了一个需要花费很长时间来执行的方法并且不希望让程序等待方法的返回时就应该使用异步。在很多情况下采用异步往往更有效率。数据库三大范式? 答1确保每列都是不可分割的原子值 2确保每列都和主键相关 3确保每列都和主键直接相关而不是间接相关单例模式有哪些好处? 答单例模式是一种比较常见的设计模式带给我们以下好处 1控制资源的使用 2控制实例的产生数量 3让多个不相关的两个线程或进程之间实现通信为什么要用spring? 答1、主要将各个框架有效的联系起来缩短实际编程时间。 2、可以将各个框架进行有效的管理和控制让数据传输安全。spring的IOC和DI? 答控制反转和依赖注入是spring的两大基础作用。主要是将所有组件在spring提供的外部容器中加载。提高安全性减低耦合性使各个框架或者类之间的依赖性降低。什么是声明式的事务管理?为什么要用?spring如何实现声明式的事务管理? 答声明式的事务管理主要是将在进行对数据库中数据的添加或者修改时需要执行事务管理主要是为了避免在执行添加或修改的时候添加或修改不完全正确导致数据丢失。spring使用AOP面向切面的思想进行事务管理的。spring和Hibernate继承后定义事务管理特性的时候查询为什么要定义为read-only 答因为添加、删除和更新都涉及到了数据库的修改而查询并未涉及到数据库修改所以只需要定义只读这样可以提高效率进行更加方便的事务管理。请你谈谈对Hibernate OR映射的理解? 答将数据库中的每一张表都映射成一个实体。配置了lazytrue一定会懒加载吗? 答不一定如果在配置中你也使用了fetch属性的话此时lazy就会失效。Hibernate数据库标识与主键之间的认识? 答标识是为了方便和简介映射文件主键是为了让数据不会重复。为什么每次请求都要创建一个Action对象? 答Struts2每次请求的时候都会创建一个action实例这样会保证线程的安全。Struts1只是在第一次请求的时候创建一个action实例以后每次相同的请求都直接从内存中去读取它是单例模式安全性较差。Struts2是如何实现MVC模式的? 答在Struts2里面是将每次页面的请求进行处理然后将请求需要输出的数据转发到需要做数据显示的页面。Struts2只是起到一个数据接收和转接的功能就是Controller控制器而传来数据的页面叫view显示层Struts2将数据提交给进行处理的类叫Model模型层专门进行数据处理和数据库的连接。heap和stack有什么区别? 答栈是一种线形集合其添加和删除元素的操作应在同一段完成栈按照后进先出的方式进行处理。堆是栈的一个组成元素。EJB和JavaBean的区别? 答EJB不是一般的JavaBeanEJB是企业级的JavaBeanEJB一共分为3种实体Bean消息Bean会话Bean。书写EJB要遵循一定的规范另外要运行EJB你需要有相应的EJB容器比如WebLogic、jboss等而JavaBean不需要只需要安装Tomcat就可以了。EJB用于服务端的应用开发而JavaBean用于客户端应用开发。触发器? 答触发器是一种特殊的存储过程主要通过事件来触发而被执行。什么是存储过程?用什么调用? 答存储过程是一个预编译的SQL语句优点是允许模块化的设计。就是说只需要创建一次以后再程序中就可以调用多次。使用存储过程比单纯的SQL语句要快可以用一个命令对象来调用存储过程。索引优缺点? 答索引可以提高对数据库中数据的检索缺点是减慢了数据录入速度同时也增加了数据库的尺寸大小。什么是事务?什么是事锁? 答事务就是被绑定在一起作为一个逻辑单元执行的SQL语句。如果任何一个操作失败那么整个就失败。共同失败或共同成功。锁可以保证事务的完整性和并发性。什么是视图?游标是什么? 答视图是一种虚拟的表具有和物理表相同的功能。游标是对查询出来的结果集作为一个单元来有效的处理可以对结果集的当前行做修改。select执行顺序? 答from where group by having select order byCollection和Collections的区别? 答Collection是集合类的父类继承它的主要由set和list Collections是针对集合类的帮助类它提供了一系列针对集合的搜索排序线程安全化等操作。final、finally、finalize的区别? 答final用于声明属性方法和类分别表示属性不可变方法不可覆盖类不可继承。 finally是异常处理语句的一部分表示总是执行。 finalize是Object的一个方法在垃圾收集器执行的时候会调用被回收对象的此方法。assert是什么?什么时候用到? 答断言可以将断言看成是异常处理的一种高级形式可以用来判断某个特定的表达式或值是否为真。接口是否可以继承接口?抽象类是否可以实现接口?抽象类是否可以继承实体类? 答接口可以继承接口抽象类可以实现接口抽象类可以继承实体类。引用传递和值传递? 答引用传递形参改变影响实参 值传递形参改变不影响实参当一个线程进入一个对象的synchronized方法后其他线程是否可进入此对象的其他方法? 答其他方法前是否加了synchronized关键字如果没加则能。说出servlet生命周期? 答servlet实例化时调用init方法得到请求时调用service方法service方法自动派遣doget或dopost方法最后当实例销毁时调用destroy方法。error和exception有什么区别? 答error是指错误通常程序员不能通过代码来解决。底层环境或硬件问题。 exception是指异常可以通过代码来解决的问题。forward和redirect的区别? 答forward是转发浏览器跳转后不显示新的地址。 redirect是重定向浏览器跳转后显示新的地址。 对比之下forward更加高效并且它有助于隐藏实际地址但是有些情况则必须使用redirect否则会报异常。jsp中动态include和静态include的区别? 答动态include用jsp:include实现适用于动态页面可以携带参数 静态include用include伪码实现适用于静态页面math.round(11.5)等于多少?math.round(-11.5)等于多少? 答Math.round()对数字进行四舍五入 Math.round(11.5)12 Math.round(-11.5)11String snew String(xyz);创建了几个String Object? 答创建了两个String对象一个保存的引用地址一个保存实际的值。数组有没有length()这个方法?String呢? 答数组里面没有length()方法而是length属性。String有length()这个方法。swtich()能否作用在byte、long、String上? 答swtich()传递的应该是一个整数表达式所以它的值只能是int、short、char、byte所以long和String都不能作用在swtich()上。jsp和servlet之间的联系? 答jsp前段动态页面servlet是纯java类 jsp被编译之后会转换为servlet执行java基本数据类型有哪些?String是不是基本数据类型,他们有何区别? 答基本数据类型8种int、short、byte、long、float、double、char、boolean String不是基本数据类型引用数据类型。 区别基本数据类型比较实用“”引用数据类型实用equest,并且引用数据类型存放的是地址而不是具体的值。写一个方法实现字符串的替换如输入bbbwlirbbb输出bbbhhtccc? 答String sbbbwlirbbb; s.replaceAll(wlirbbb,hhtccc);如何将数值型字符转换为数字(Integer,Double)? 答可以用Integer.parseInt()和Double.parseDouble()方法如何将数字转换为字符? 答可以使用String的valueOf()方法。如何取得1970到现在的毫秒数? 答可以用getTime()方法。如何格式化日期? 答可以用SimpleDateFormat dfnew SimpleDateFormat(yyyy-MM-dd);判断是否有子文件?判断是否有子目录?判断文件是否存在? 答判断是否有子文件使用file.isFile() 判断是否有子目录使用file.isDirectory() 判断文件是否存在使用file.exists()继承、重载、覆盖问题? 答继承子类继承父类子类可以拥有父类中已定义的方法并且子类可以修改父类中的方法使其更适合特殊需求。 重载在一个类中方法名和返回类型相同参数不同。 覆盖在子类中覆盖父类的某个方法要求方法名相同参数类型相同。Statement和PreparedStatement之间的区别? 答Statement比PreparedStatement速度慢 PreparedStatement是预编译插入时速度高于Statement Statement创建速度很慢常用选择PreparedStatementSession机制? 答session机制是一种服务器端机制服务器使用一种类似于散列表的结构来保存信息。jsp和servlet中的请求转发分别如何实现? 答jsp可以使用jsp:forward标签转发 servlet可以使用request.getRequestDispatcher()实现转发介绍j2ee、j2se、j2me的区别? 答j2ee企业版主要用于企业web开发 j2se标准版主要用于web开发但缺少企业版的一些特性 j2me微小版主要用于手机开发J2ee提供的技术? 答j2ee提供的技术有EJB、servlet、jsp等。什么是Application Server? 答Application Server 应用服务器简单介绍连接池的优点和原理? 答数据库连接和关闭是比较花费时间的一件事而连接池可以提高我们的工作效率。 刚开始创建一定数量的池连接当需要时从池连接中拿出一个用完之后再把这个连接重新放回连接池。Web.xml的作用? 答Web.xml会在程序启动时执行如果想在程序刚启动的时候执行一些方法的话可以配置在Web.xml中。简单介绍您所了解的MVC? 答在项目中使用MVC模式会使项目分工更加明确结构更加清晰 M model 模型层JavaBean V view 视图层jsp html C controller 控制层servlet简单介绍你所了解的XML? 答XML可扩展标记语言可以用来标记数据定义数据结构是一种允许用户自定义标记的语言简单介绍您所了解的structs、spring和hibernate? 答struts:控制层Action,页面标签和Model数据,调用业务层 Spring:Aop管理事务控制IOC管理各个组件的耦合 Hibernate:负责数据库和对象的映射负责Dao层