JAVA基础(面试基础)

1.什么是Java? Java是一种跨平台语言,它能够在不一样的操做系统运行,不受系统的限制 2.面向对象的特征? 继承  封装  多态 其中继承:是子类继承父类,能够进行方法重写     封装:定义一个私有变量,用get,set进行封装,只保留一个对外的接口进行调用,极大的保证了代码的安全性    多态:静态多态:方法重载    (重载Overload是一个类中多态性的一种表现)      动态多态:方法重写    (重写Override是父类与子类之间多态性的一种表现)     多态性的定义:同一事物对不一样消息的作出不一样的反应 3.什么是JDBC? JDBC是一种链接数据库的技术,如同ado.net同样 JDBC链接数据库的步骤: (1)加载JDBC驱动程序                                                                                 (2)提供JDBC链接的URL                                                               (3)建立数据库的链接                                                                                                                                             (4)建立一个Statement                                                           (5)执行SQL语句    (6)处理结果 (7)关闭JDBC   4.什么是三大框架? Spring  struts 2  Hibernate   -- Spring:有两大核心IOC和AOP (1)IOC表明(控制反转,依赖注入) 解决层之间的依赖关系,在须要new对象的时候,注入对象 (2)AOP表明(面向切面,主要做用是它能够把咱们的功能切入到任何想要切入的地方,AOP主要的功能是切入事物,日志,以及异常的处理)标签为 aop:config -- struts2: 基于MVC 模式的框架 它能够拦截请求,处理,分发结果,(主要做用:拦截请求,处理请求,分发请求) -- Hibernate: JDBC作的封装,ORM框架 主要做用数据持久化到数据库(能够链接数据库并使用增删改查) 5.Hibernate的原理: (1).解析配置文件 (2).解析映射文件 (3).建立SessionFactory工厂 (4).调用SessionFactory (5).建立事物 (6).上传事物 (7).关闭链接 6.Hibernate处理对象的关系? 一对多,多对一,多对多     7.hibernate管理对象的状态: 瞬时 持久 游离     获取Session时是瞬时状态,Session初始数据化的时候是持久状态,Session存在的时候处于游离状态 8.三大数据库有什么区别? oracle,mysql是甲骨文公司 || sql server是微软的,而且oracle和my sql没有本身的图形工具,sql server有本身的图形工具 oracle 保存字符串的关键字是 nvacher 2 而SQL server 和 MySQL 是nvacher  oracle 保存整数的关键字是 nuber 而SQL server 和 MySQL 是int 分页的关键字也不一样 oracle 分页的关键字是:rownum SQL server 分页的关键字是:top MySQL 分页的关键字是: limit 端口号不一样 oracle 端口号:1521 SQL server 端口号:1433 MySQL 端口号:3306 9.什么是MVC设计模式? 我的理解MVC设计模式,其中M表明Model  V表明View视图层  C表明Controller控制器 10.My Batis 和 Hibernate 有什么区别? MyBatis相对来讲要比Hibernate灵活简单,它属于半自动化框架,相比起Hibernate安全性上要高上不少。Hibernate主要的优点在于他是一个轻量级全自动化框架,能够不用手写SQL语句而且是基础框架之一, 通过了不少完善,而My Batis很显然比他年轻,就如同,一个是中年(Hibernate),一个是青年(My Batis),各有各的优点优势。 My Batis:简单灵活,安全性高 Hibernate:轻量级全自动化框架 11.什么是JavaScript?什么是jQuery? JavaScript简称js,是属于一种web前端技术,jquery是js封装出来的一种技术(优点:轻量级, 完善的Ajax,开源,出色的DOM操做的封装) ----- 12.五个异常的关键字? throws throw try catch finally 13.find和finally有什么关系? final 表明的是“最终的”是一个常量 finally 是异常关键字之一 ---------------------- 什么是三大框架: Struts主要负责表示层的显示(链接请求,处理请求,分发结果) Hibernate主要是数据持久化到数据库(主要完成数据库的增删改查的效果) Spring利用它的IOC和AOP来处理控制业务(整合) 两大核心功能(控制反转,依赖注入)其中AOP是面向切面编程(能够在代码的任意部位切入日志,事物,异常处理等) AOP:面向切面编程。是目前软件开发中的一个热点,也是Spring框架中容。利用AOP能够对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度下降,提升程序的可重用性,同时提升了开发的效率。主要的功能是:日志记录,性能统计,安全控制,事务处理,异常处理等等。 Hibernate的原理: 1.读取解析配置文件 2.读取解析映射文件 3.建立SessionFactory工厂 4.打开Session 5.建立事物 6.提交事务 7.关闭链接 Hibernate处理对象的关系: 一对多  多对一 多对多 Hibernate管理对象的三个状态:瞬时 游离 持久 struts是一个基于MVC模式设计的框架 (核心:拦截器,过滤器)                      字符     整数 Oracle 大型数据库  nvacher 2  nuber SQL server 中型数据库 nvacher  int My sql 小型数据库  nvacher  int  存储类型不一样 -------------------------------------------- 1.什么是单例模式? 我的理解,单例模式是一个类只提供一个对象 2.单例模式的优势? 单例模式比较节省资源,优化了速度 3.单例模式的缺点? 单例模式没有抽象层,因此可扩展性比较低,何况单例模式的责任太重,在必定程度上违反了单一职责原则 单例模式分为懒汉式,饿汉式 懒汉式是指:在执行方法以前建立出来一个对象,不会占用内存,可是存在线程安全问题 饿汉式是指:提早建立出一个对象,在对象使用时进行调用提升了效率,可是会一直占用内存 4.什么是多线程安全? 我的理解:好比有三个对象,s1,s2,s3  这三个对象都要进行new对象,s1先抢到了CPU的使用权,那他就会先new,建立对象,而后S2又抢到了使用权,这时候S1还在建立对象,因此S2就仅仅只是经过了new,并无建立对象 以此类推,因此有很大的安全隐患,,容易被注入 百度答案:多线程环境下,有1号、2号、3号线程同时执行到了if (s == null)这一步,此时1号线程抢到了CPU的执行权,1号线程就经过了if(s==null)这一步,可是当1号执行s = new  Student()以前,2号线程又抢到了CPU执行权,由于这时候1号尚未建立s指向的对象,因此2号.线程也能经过if(s==null)的验证,来到s = new Student()这一步,从而就会建立两遍s指向的对象。 5.总结 单例模式只能建立一个对象,而饿汉和懒汉模式则各有千秋,因此这个东西要根据实际状况而定 -------------------------------------------------------------------------------------------------------------------------- 面试问题: 面向对象分析   OOA 面向对象思想    OOP 面向对象设计    OOD 2.Struts 2 有几个配置文件? Struts 2有两个核心的配置文件,一共用来配置Action层的映射(struts.xml),一个用来配置字段的属性(struts.properties)  struts.xml文件主要负责管理应用中的Action映射,以及该Action包含的Result定义等 struts.properties文件是一个标准的Properties文件,该文件包含了系列的key-value对象,每一个key就是一个Struts 2属性,该key对应的value就是一个Struts 2属性值。  3.Tomcat怎么设置中文? 打开 tomcat 所在的目录,进入conf文件夹再打开server.xml文件,找到端口号所在的位置,在后面添加一句Encoding="UTF-8"         (首先找到server.xml配置文件,找到端口号坐在位置,而后在后面添加上一句encoding=“utf8”) 4.namespace是什么意思? 命名空间 5.My Batis 有几个配置文件? MyBatis有两个基本的配置文件,一个用来配置环境信息(mybatis.xml),一个用来写SQL语句(xxMapper.xml)。 JSP九大内置对象: session request response page out config application exception pageContext JSP和Servlet的关系: JSP在本质上就是Servlet (Servlet彻底由Java程序代码构成,擅长于流程控制和事务处理,而经过Servlet来生成动态网页很不直观;JSP则能够方便地编写动态网页。在Struts框架中,JSP位于MVC设计模式的视图层,而Servlet位于控制层。) 常见的webserver服务器: Tomcat  Resin  JBoss  WebSphere  WebLogic 存储过程的格式方式: create proc proc_stu as go                  AJAX请求的五个步骤 1.建立xmlHttpRequest对象 2.注册回调函数 3.初始化XMLHttpRequest对象,设置链接信息 4.发送数据,开始和服务器端进行交付 5.定义回调函数,该函数主要负责接收从服务器端传回来的数据,并在页面上显示