Java面试中常问的基础问题

      HTML(Hyper Text Markup Language)
 
     超文本标记语言, 标准通用标记语言下的一个应用,也是一种规范,一种标准,它通过标记符号来标记要显示的网页中各个部分
  超文本就是指页面内可以包含图片、链接,甚至音乐、程序等非文字元素
     超文本标记语言的结构包括头”部分(Head)、和“主体”部分(Body),其中“头”部分提供关于网页的信息 ,“主体”部分提供网页的具体内容
     特点:1.简单性
                2.可扩展性
                3.平台无关性
                4.通用性
 
     JavaScript
     
     直译式脚本语言,是一种动态类型、弱类型、基于原型和广泛用于客户端的语言
     组成部分:1.ECMAScript,描述了该语言的语法和对象
                        2.文本对象模型(DOM),描述 处理网页内容的方法和接口
                        3.浏览器对象模型(BOM),描述与浏览器进行交互的方法和接
     基本特点:1.是一种解释性脚本语言(代码不进行预编译)
                        2.主要用来向HTML页面添加交互行
                        3.可以直接嵌入HTML页面,也可写成单独的js文件有利于结构和行为的分离
                        4.跨平台性
     日常用途:1.嵌入动态文本于HTML页面
                        2.对浏览器事件做出响应
                        3.检测访客的浏览器信息
     特性:1.脚本语言
                 2.基于对象
                 3.简单
                 4.动态性
                 5.跨平台性
 
     JQuery
 
     JQuery是一个快速、简洁的JavaScript框架,JQuery倡导写更少的代码,做更多的事情。它封装JavaScript常用的功能代码,提供一种简便的JavaScript设计模式
     优化HTML文档操作、事件处理、动画设计和AJAX交互
     语言特点:1.快速获取文档元素
                      2.提供漂亮的页面动态效果
                      3.创建AJAX无刷新网页
                      4.提供JavaScript语言的增强
                      5.增强的事件处理
                      6.更改网页内容
 
     XML( Extensible Markup Language)
 
     可扩展性标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言
     它不是超文本标记语言的替代,是对超文本标记语言的补充
     它和超文本标记语言为不同的目的而设计:1.它被设计用来传输和存储数据,其焦点是数据的内容
                                                                            2.超文本标记语言被设计用来显示数据,其焦点是数据的外观
     
     JSon(JavaScript Object Notation)
     
     JSon是一种轻量级的数据交换格式。它基于ECMAScript的一个子集
     JSon语法是JavaScript对象表示语法的子集
     JSon的值可以是数字、字符串、逻辑值、数组、对象、null
     JSon结构有两种结构: 1.对象,对象在js中表示为“{}”括起来的内容
                                             2.数组,数组在js中是中括号“[]”括起来的内容
 
     JSP(Java Server Pages)java服务器页面
 
     JSP是一种动态网页技术,跨平台的
     它实现了HTML语法中的Java扩展(以<%%>形式)。JSP与Servlet一样,实在服务器端执行的。通常返回给客户端的就是
     一个HTML文本,因此客户端只要有浏览器就能浏览
 
     Servlet(Servlet Applet)
 
     用Java编写的服务器端程序。其主要功能在于交互式的浏览和修改数据,生成动态Web内容     
     从原理上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器
     Servlet的主要功能在于交互式的浏览和修改数据,生成动态web内容,这个过程为:
     1.客户端发送请求到服务器端
     2.服务器将请求信息发送至Servlet
     3.Servlet生成响应内容并将其传给服务器。响应内容动态生成,通常取决于客户端的请求
     4.服务器将响应返回给客户端
 
     JSTL(JSP Standard Tag Library)JSP标签库
 
     JSTL是一个不断完善的开放源代码的JSP标签库,是由apache来维护的
      JSTL只能运行在支持JSP1.2和Servlet2.3规范的容器上
     优点:1.在应用程序服务器之间提供了一致的接口,最大程度地提高了WEB应用在各服务器之间的移植
                2.简化了JSP和WEB应用程序的开发
 
     AJAX(Asynchronous JavaScript And XML)
     
     AJAX是一种创建交互式网页应用的网页开发技术
     AJAX=异步JavaScript和XML(标准通用标记语言的子集)
     AJAX可以通过在后台与服务器进行少量数据交换,AJAX可以使网页实现异步更新
 
     MVC(Model View Controller模型-视图-控制器)
     
     MVC是一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,
     在改进和个性化定制界面及用户交互的 同时,不需要重新编写业务逻辑。
     (使用MVC的目的是将M和V实现代码分离,从而同一个程序可以使用不同的表现形式)
     MVC是一个框架模式,他强制性的使应用程序的输入、处理和输出分开。最典型的MVC的就是JSP+Servlet+Javabean的模式
    
    框架和设计模式的区别
    框架通常是代码重用,而设计模式是设计重用,架构则介于两者之间,部分代码重用,部分设计重用,有时分析也可重用。
 
     单例模式
 
     单例模式是一种常用的软件设计模式。在它的核心结构中包含一个被称为单例的特殊类。通过单例模式
     可以保证系统中一个类只有一个实例
     Java中单例模式定义“一个类有且仅有一个实例,并且自行实例化向整个系统提供”;
     单例模式式设计模式中最简单的形式之一 。这一模式的目的是使得类的一个对象成为系统中的唯一实例
 
     工厂模式
 
     工厂模式是我们最常用的实例化对象模式,是用工厂方法代替new操作的一种模式
     工厂模式中有:工厂方法和抽象工厂
 
     Spring(由Rod Johnson创建的一个开源框架)
 
     spring是一个分层的轻量级开源框架,以IoC(控制反转)和AOP(面向切面编程)为核心
     优点:1.方便解耦,简化开发(高内聚低耦合)
                  Spring是一个容器,可以将所有对象创建和依赖关系维护,交给Spring管理
               2.AOP编程的支持
                  Spring提供面向切面编程,可以方便的实现对程序进行权限拦截、运行监控等功能
               3.声明事务的支持
                  只需要通过配置就可以完成对事务的管理,而无需手动编程     
               4.方便程序的测试
                  Spring对Junit4的支持,可以通过注解方便测试Spring程序
               5.方便集成各种优秀框架
                  Spring不排斥各种优秀的开源框架,其内部提供了对各种优秀框架的直接支持
               6.降低JavaEE API的使用难度
                  Spring对Java EE开发中非常难用的一些API(JDBC)都提供了封装,使这些API应用难度大大降低
     
     IoC(inverse of control)
     IOC控制反转:所谓控制反转对象(bean)和维护对象(bean)之间关系的权利转移到Spring容器去了(ApplicationContext.xml)
                              而程序本身不再需要维护了
     DI(dependency injection)依赖注入:自身对象中的内置对象是通过注入的方式进行创建。
 
 
 
     AOP(Aspect Oriented Programing)
     AOP面向切面编程:通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术,AOP是OOP(面向对象编程)
                                   的延续,是Spring框架中的一个重要内容。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得
                                   业务逻辑各部分之间的耦合度降低,提高程序的课重用性,同时提高了开放的效率
     AOP采用了横向抽取机制,取代了传统的纵向继承体系
     经典应用:事务管理、性能监视、缓存、日志等
 
     Mybatis
       Mybatis本来是Apache的一个开源项目IBatis,2010年这个项目由Apache software foundation迁移到了Google code
       并改名为Mybatis。2013年11月迁移到GitHub
       Mybatis是一个J基于Java的持久层框架
       总体流程:1.加载配置并初始化
                       2.接收调用请求 
                       3.处理操作请求
                       
     SpringMvc
    SpringMvc是spring的一个模块 基于MVC的一个框架 无需中间整合层来整合。
     优点: 易于同其他View框架无缝集成
     一般步骤:第一步:用户发起请求到前端控制器(DispatcherServlet)
                     第二步:前端控制器请求处理器映射器(HandlerMappering)去查找处理器(Handle):通过xml配置或者注解进行查找
                     第三步:找到以后处理器映射器(HandlerMappering)像前端控制器返回执行链(HandlerExecutionChain)
                     第四步:前端控制器(DispatcherServlet)调用处理器适配器(HandlerAdapter)去执行处理器(Handler)
                     第五步:处理器适配器去执行Handler
                     第六步:Handler执行完给处理器适配器返回ModelAndView
                     第七步:处理器适配器向前端控制器返回ModelAndView
                     第八步:前端控制器请求视图解析器(ViewResolver)去进行视图解析
                     第九步:视图解析器像前端控制器返回View
                     第十步:前端控制器对视图进行渲染
                     第十一步:前端控制器向用户响应结果
 
 
 
 
 
 
 
原文地址:https://www.cnblogs.com/zhangjianblog/p/6496322.html