撩课-Java每天5道面试题第8天】的更多相关文章

撩课Java+系统架构点击开始学习 96.JDBC操作数据库的步骤 ? .加载数据库驱动 .创建并获取数据库链接 .创建jdbc statement对象 .设置sql语句 .设置sql语句中的参数(使用preparedStatement) .通过statement执行sql并获取结果 .对sql执行结果进行解析处理 .释放资源(resultSet.preparedstatement.connection) 97.JDBC中的Statement 和PreparedStatement的区别? Jav…
撩课Java+系统架构点击开始学习 106.什么是Hibernate的并发机制?怎么去处理并发问题? a.Hibernate的Session对象是非线程安全的, 对于单个请求,单个会话, 单个的工作单元(即单个事务,单个线程), 它通常只使用一次, 然后就丢弃. 如果一个Session 实例允许共享的话, 那些支持并发运行的, 例如Http request,session beans 将会导致出现资源争用. 如果在Http Session中有hibernate的Session的话, 就可能会出现…
撩课Java+系统架构 视频 点击开始学习 81.Servlet的会话机制? HTTP 是一种无状态协议, 这意味着每次客户端检索网页时, 都要单独打开一个服务器连接, 因此服务器不会记录下 先前客户端请求的任何信息. 它与FTP.Telnet等协议不同, FTP等协议可以记住用户的连接信息. 会话(Session)是指一个终端用户 与交互系统进行通信的时间间隔, 通常指从登陆系统到注销系统之间 所经过的时间以及如果需要的话, 可能还有一定操作空间. JSP有四种方式实现会话跟踪功能. Cook…
撩课Java+系统架构 视频 点击开始学习 76.XML技术的作用? XML技术用于数据存储. 信息配置. 数据交换三方面. 可以将数据存储在XML中, 通过节点. 元素内容. 属性标示数据内容及关系. 可以使用XML很方便的做信息配置, 软件的各种配置参数和对象关系 都存贮在XML文件中. 在做数据交换平台时, 将数据组装成XML文件, 然后将XML文件压缩打包加密后 通过网络传送给接收者, 接收解密与解压缩后再同XML文件中 还原相关信息进行处理. 77.XML文档约束有哪几种?有什么区别?…
撩课Java+系统架构 视频 点击开始学习 71.jsp有哪些内置对象?作用分别是什么? Page, pageContext, request, response, session, application, out, config, exception Page指的是JSP被翻译成Servlet的对象的引用. pageContext对象可以用来获得其他8个内置对象, 还可以作为JSP的域范围对象使用. pageContext中存的值是当前的页面的作用范围 request代表的是请求对象, 可以…
撩课Java+系统架构 视频 点击开始学习 61.什么是并发修改异常? 什么是并发修改异常: 当我们在遍历实现了collection接口 与iterator接口的集合时(List.Set.Map), 我们可以通过遍历索引 也可以通过迭代器进行遍历. 在我们使用迭代器进行遍历集合的时候, 会获取到当前集合的迭代对象. 在里面有封装了迭代器的remove方法 与集合自带的remove方法, 如果我们调用迭代器对象的remove方法 是没问题的, 但是当我们调用集合自带的remove方法时, 就会产生…
撩课Java+系统架构 视频 点击开始学习 31.静态变量和实例变量的区别? 静态变量也叫类变量, 这种变量前加了static修饰符. 可以直接用类名调用, 也可以用对象调用, 而且所有对象的同一个类变量 都是共享同一块内存空间. 实例变量也叫对象变量, 这种变量没有加static修饰符. 只能通过对象调用, 而且所有对象的同一个实例变量 是共享不同的内存空间的. 区别在于: 静态变量是所有对象共有的, 某一个对象将它的值改变了, 其他对象再去获取它的值, 得到的是改变后的值: 实例变量则是每一…
116.说下Struts的设计模式 MVC模式: web应用程序启动时 就会加载并初始化ActionServler. 用户提交表单时, 一个配置好的ActionForm对象被创建, 并被填入表单相应的数据, ActionServler根据Struts-config.xml文件 配置好的设置决定是否需要表单验证, 如果需要就调用ActionForm的Validate() 验证后选择将请求发送到哪个Action, 如果Action不存在, ActionServlet会先创建这个对象, 然后调用Act…
151.springMVC和struts2的区别有哪些? .springmvc的入口是一个servlet即前端控制器(DispatchServlet), 而struts2入口是一个filter过虑器(StrutsPrepareAndExecuteFilter). .springmvc是基于方法开发(一个url对应一个方法), 请求参数传递到方法的形参, 可以设计为单例或多例(建议单例), struts2是基于类开发, 传递参数是通过类的属性, 只能设计为多例. .Struts采用值栈存储请求和响…
146.什么是Spring MVC ?简单介绍下你对springMVC的理解? Spring MVC是一个基于MVC架构的 用来简化web应用程序开发的应用开发框架, 它是Spring的一个模块, 无需中间整合层来整合 , 它和Struts2一样都属于表现层的框架. 在web模型中, MVC是一种很流行的框架, 通过把Model,View,Controller分离, 把较为复杂的web应用分成逻辑清晰的几部分, 简化开发,减少出错, 方便组内开发人员之间的配合. 147.SpringMVC的流程…
141.Spring AOP是什么? AOP:面向切面编程 AOP技术利用一种称为“横切”的技术, 解剖封装的对象内部, 并将那些影响了多个类的公共行为 封装到一个可重用模块, 这样就能减少系统的重复代码, 降低模块间的耦合度, 并有利于未来的可操作性和可维护性. AOP把软件系统分为两个部分: 核心关注点 和横切关注点. 业务处理的主要流程是核心关注点, 与之关系不大的部分是横切关注点. 横切关注点的一个特点是, 他们经常发生在核心关注点的多处, 而各处都基本相似. 比如权限认证.日志.事务处…
131.Spring是什么? 他解决的是业务逻辑层和其他各层的松耦合问题, 因此它将面向接口的编程思想 贯穿整个系统应用. Spring是一个轻量级的IoC和AOP容器框架. 目的是解决企业应用开发的复杂性, 使用基本的JavaBean来完成 以前只可能由EJB完成的事情, 并提供了更多的企业应用功能, Spring的用途不仅限于服务器端的开发, 从简单性. 可测试性和松耦合的角度而言, 任何Java应用都可以从Spring中受益. 132.说说Spring 的优点? .spring属于低侵入式…
121.描述Struts2的工作原理 客户端发送请求--> 请求经过一系列过滤器-> FilterDispatcher通过 ActionMapper来决定这个Reques t需要调用哪个Action -> FilterDispatcher把请求的处理交给ActionProxy-> 通过ConfigurationManager询问 Struts配置文件(Struts.xml) 找到需要调用的Action类-> ActionProxy创建一个ActionInvocation的实例…
101.请解释下 ORM? 对象关系映射(Object Relational Mapping)模式 是一种为了解决面向对象与关系数据库 存在的互不匹配的现象的技术. 简单来说, ORM是通过使用描述对象和数据库之间映射的元数据, 将程序中的对象自动持久化到关系数据库中. 传统如何实现持久化: .采用硬编码方式, 为每一种可能的数据库访问 操作提供单独的方法, .ORM提供了对数据库的映射, 不用sql直接编码, 能够像操作对象一样从数据库获得数据. ORM核心原则: .简单: 以最基本的形式建模…
51.HashMap的实现原理 HashMap的主干是一个Entry数组. Entry是HashMap的基本组成单元, 每一个Entry包含一个key-value键值对. HashMap基于hashing原理, 我们通过put()和get()方法储存和获取对象. 当我们将键值对传递给put()方法时, 它调用键对象的hashCode()方法 来计算hashcode, 让后找到bucket位置来储存值对象. 当获取对象时, 通过键对象的equals()方法 找到正确的键值对, 然后返回值对象. H…
41.Iterator.ListIterator 和 Enumeration的区别? 迭代器是一种设计模式, 它是一个对象, 它可以遍历并选择序列中的对象, 而开发人员不需要了解 该序列的底层结构. 迭代器通常被称为“轻量级”对象, 因为创建它的代价小. Java中的Iterator功能比较简单, 并且只能单向移动: (1) 使用方法iterator()要求容器返回一个Iterator. 第一次调用Iterator的next()方法时, 它返回序列的第一个元素. 注意:iterator()方法是…
21.final, finally, finalize的区别 1.final修饰符(关键字). 被final修饰的类, 就意味着不能再派生出新的子类, 不能作为父类而被子类继承. 因此一个类不能既被abstract声明, 又被final声明.将变量或方法声明为final, 可以保证他们在使用的过程中不被修改. 被声明为final的变量必须在声明时给出变量的初始值, 而在以后的引用中只能读取. 被final声明的方法也同样只能使用, 即不能方法重写. 22.finally是在异常处理时 提供fin…
11.面向对象的特征有哪些方面 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面, 以便更充分地注意与当前目标有关的方面. 抽象并不打算了解全部问题,而只是选择其中的一部分, 暂时不用部分细节. 抽象包括两个方面, 一是过程抽象, 二是数据抽象. 2.继承: 继承是一种联结类的层次模型, 并且允许和鼓励类的重用, 它提供了一种明确表述共性的方法. 对象的一个新类可以从现有的类中派生, 这个过程称为类继承. 新类继承了原始类的特性, 新类称为原始类的派生类(子类), 而原始类称为新类的基…
1.简述JDK.JRE.JVM? 一.JDK JDK(Java Development Kit) 是整个JAVA的核心, 包括了Java运行环境(Java Runtime Envirnment), 一堆Java工具(javac/java/jdb等) 和Java基础的类库(即Java API 包括rt.jar). JDK是java开发工具包, 基本上每个学java的人都会先在机器 上装一个JDK, 那他都包含哪几部分呢? 在目录下面有 六个文件夹. 一个src类库源码压缩包. 和其他几个声明文件.…
126.Struts2中的拦截器有什么用?列举框架提供的拦截器名称? )拦截器是struts2核心组成部分, 它提供了一种机制,使得开发者 可以定义一个特定的功能模块, 这个模块会在Action执行之前或者之后执行 也可以在Action执行之前阻止Action执行. )常用的拦截器有: chain:在不同请求之间将请求参数在不同名字件转换, 请求内容不变 fileUpload:提供文件上传. ​i18n:记录用户选择的区域环境 logger:输出Action的名字 params:将请求中的参数设…
86.如何获得高效的数据库逻辑结构? 从关系数据库的表中 删除冗余信息的过程 称为数据规范化, 是得到高效的关系型数据库表的逻辑结构 最好和最容易的方法. 规范化数据时应执行以下操作: 1.将数据库的结构精简为最简单的形式 2.从表中删除冗余值 3.标识所有依赖与其他数据的数据 规范化过程有几个阶段, 分别称作第一范式(1NF). 第二范式(2NF). 第三范式(3NF). 第四范式(4NF) 以及第五范式(5NF). 对于所有的实际应用, 3NF已经足够了. 87.数据库三范式是什么? 第一范…
161.简述一下springMVC当中的视图解析器 请求处理方法执行完成后,最终返回一个 ModelAndView 对象 对于那些返回 String,View 或 ModeMap 等类型的处理方法 Spring MVC 也会在内部将它们装配成一个 ModelAndView 对象 它包含了逻辑名和模型对象的视图 Spring MVC 借助视图解析器(ViewResolver)得到最终的视图对象(View), 最终的视图可以是 JSP 视图的作用是渲染模型数据,将模型里的数据以某种形式呈现给客户 视…
156.mvc:view-controller有什么作用? 当我们发送一个请求时,如果没有找到对应的mapping 则会对配置文件当中匹配mvc:view-controller 注意点:使用时要添加后面的内容 <mvc:annotation-driven/> 157.<mvc:annotation-driven />作用是什么? <mvc:annotation-driven /> 是一种简写形式 会自动注册三个Bean RequestMappingHandlerMapp…
136.请解释Spring Bean的生命周期? 首先说一下Servlet的生命周期: 实例化, 初始init, 接收请求service, 销毁destroy: Spring上下文中的Bean生命周期也类似, 如下: .实例化一个Bean 也就是我们常说的new: .按照Spring上下文 对实例化的Bean进行配置 也就是IOC注入: .如果这个Bean已经实现了BeanNameAware接口, 会调用它实现的 setBeanName(String)方法, 此处传递的就是Spring配置文件中…
111.什么是乐观锁(Optimistic Locking)? 悲观锁,正如其名, 它指的是对数据被外界 包括本系统当前的其他事务, 以及来自外部系统的事务处理 修改持保守态度, 因此,在整个数据处理过程中, 将数据处于锁定状态. 悲观锁的实现, 往往依靠数据库提供的锁机制 也只有数据库层提供的锁机制才能真正保证数据访问的排他性, 否则,即使在本系统中实现了加锁机制, 也无法保证外部系统不会修改数据 乐观锁( Optimistic Locking ) 相对悲观锁而言, 乐观锁假设认为数据 一般情…
91.如何提升数据查询的效率? 1.首先检查表的结构是否合理, 因为采用多表查询的时候, 看主外键的引用关系是否适当. 如果不适当则重新设置表结构. 如果是应用中的系统, 则不需要更改表的字段, 只更改主外键关系. 如果数据库中有较多的数据, 还应采用索引提高查询效率. 2.利用索引(index) 对查询进行优化, index可以避免对表数据的全面扫描, 当你以某个字段建立一个索引的时候, 数据库就会生成一个索引页, 索引页不单单保存索引的数据, 还保存了索引在数据库的 具体的物理地址, 能够很…
一. Python程序中, 文件的处理步骤是什么? 打开 open("文件","模式") 读写 2.1 读 f.read(字节数) 字节数默认是文件内容长度 下标会自动后移 f.readline([limit]) 读取一行数据 limit: 限制的最大字节数 f.readlines() 会自动的将文件按换行符进行处理 将处理好的每一行组成一个列表返回 for in 可以直接遍历 f 本身 也可以遍历行列表 2.2 写 f.write("内容")…
一. 解释下什么是闭包? 有怎样的场景作用? 概念 在函数嵌套的前提下 内层函数引用了外层函数的变量(包括参数) 外层函数, 又把 内层函数 当做返回值进行返回 这个内层函数+所引用的外层变量, 称为 "闭包" 标准格式 def test1(a): b = 其他函数定义代码 def test2(): print(a) print(b) return test2 应用场景 外层函数, 根据不同的参数, 来生成不同作用功能的函数 案例 根据配置信息, 生成不同的分割线函数 def line…
一. 函数的返回值的概念,语法以及注意事项? 场景 当我们通过某个函数, 处理好数据之后, 想要拿到处理的结果 语法 def 函数(): 函数体 return 数据 注意事项 3.1 return 后续代码不会被执行 3.2 只能返回一次 3.3 如果想要返回多个数据, 可先把多个数据包装成一个集合, 整体返回 列表 元组 字典 ... 二. 在实际开发的过程中, 你是如何给一个函数添加描述信息的? 场景 当我们编写三方函数, 为了方便他人使用, 就需要描述清楚我们所写的函数功能以及使用方式等信…
一. 函数的概念是什么? 在Python中如何定义?使用场景是什么? 概念 写了一段代码实现了某个小功能; 然后把这些代码集中到一块, 起一个名字; 下一次就可以根据这个名字再次使用这个代码块, 这就是函数 定义 def 函数名称(参数1, 参数2...): pass # 具体的函数执行代码 return None # 默认, 可以根据需求设置返回值 使用场景 将需要多次执行的重复性代码, 进行封装成函数, 方便代码的重用 def xxx(): print() print() print() 将…