什么是重载,构造器是否可以重载
可以
什么是默认构造器,它是从哪里来的
无参构造器 编译器自动创建。
this代表什么:当前对象的引用
this的 作用:
a。调用本类当前的属性和方法
b。调用重载的构造器
创建对象的过程是怎么样对的
答:类由一个抽象的蓝图变化为一个具体的对象,同时对象的属性已经赋值
什么是默认构造器:
没有参数的构造器
默认构造器从哪里来:
编译器给我们自动添加的,当我们定义了一个或者多个构造器时,这个默认的构造器就不在自动添加。
第七章
什么是包,包的作用?
包可以是类、接口和子包的集合
包允许将类组合成较小的单元
有助于避免命名冲突
包允许在更广的范围内保护类、数据和方法
如何导入一个包的类?
包名.路径名
使用import关键字引入其它包中的类
什么是封装?
隐藏(管理)一个类的实现细节(属性和方法)
.访问权限操作符有哪些,他们的访问权限有哪些?
private ,default, protected, public
private只能用在同一类中,default用在同一类中和同一包中的类
protected 用在同一类中和同一包中的类、不同包中的子类
public所有的类中都能使用,不同类中的子类也能用
public > protected > friendly > private
什么是方法重写
对从父类中继承来的方法进行改造,在子类继承父类时发生
方法重写的规则
a 要有继承(子类于父类之间发生的)
b 方法名称相同
c 参数列表相同
d 返回值类型匹配
e 子类覆盖方法的访问权限要不小于父类中被覆盖方法的访问权限
作用
a 对父类方法的改进
b 扩展性
怎样向上转型
子类转换为父类,自动转换
向上转型的结果:
向上转换损失了子类新扩展的属性和方法,仅可以使用从父类中继承的属性和方法
什么是多态?
同一类型对象(父类类型)相同的行为(被重写的行为)不同表象-----多态性
多态形成的条件?
要有继承,或实现;要有重写;父类引用指向子类对象
static可以修饰哪些成员?
属性、代码块、方法。
static修饰成员的特点?
a。 类名.直接访问
b。 类加载时加载
final修饰哪些成员?
类;变量;方法
final修饰的成员的特点?
a 手动初始化后不能被修改
b 方法不能被重写
c final类不能被继承,方法能被继承
什么是抽象方法?
只有方法声明,没有方法实现的方法
抽象方法定义的语法:
[访问权限修饰符] abstract 返回值类型 抽象方法名 (参数列表) ;
什么是抽象类?
是抽象方法和非抽象方法的集合
创建抽象类的语法:
[访问权限修饰符] abstract class 类名 { }
抽象类的作用:
用来被继承的
什么是接口
类的行为规范或者行为协议
定义接口的语法:
[访问权限修饰符] interface 接口名 {
接口的成员
}
接口成员的特点:
a 属性--共有的静态的常量
b 方法--共有的抽象方法;
接口的作用:
用来被实现的
第八章
什么是异常
一种可逆的错误,可以解决的问题
什么是错误
不可逆,无法解决问题
Java中异常可以分为哪两大类
a 检查性异常:能够被编译器检测出的异常,必须处理,否则无法通过编译。;
b 非检查异常:可以正常通过编译,在程序运行时发生的异常(BUG)
他们的区别
若系统运行时可能产生该类异常,则必须写出相应的处理代码,否则无法通过编译
若系统运行时可能产生该类异常,则不必在程序中声明对该类异常的处理,就可以编译执行
ClassNotFoundException是什么异常
检查性异常:找不到类文件
NullPointerException是什么异常
非检查性异常:空指针异常(访问空的引用 )
ArrayIndexOutOfBoundsException是什么异常
非检查异常:数组越界异常
第九章
Objiect的特点
唯一一个没有父类的类
是所有类的父类
Objiect类的方法有哪些
public boolem equals(Object obj);
public int hashCode();
public String toString()
Object的enquals方法的作用
比较引用类型的内存地址是否相等
==和equals的区别
equals()只能比较引用类型,"=="既能比较引用类型又能比较基本类型。
equals()方法从Object类继承,即比较对象引用的值
一般都被子类方法覆盖,不再比较引用的值
"=="运算符:比较基本数据类型:相当于算术等号
比较引用数据类型:比较引用的值,不能被覆盖。
什么是包装类
java中基本数据类型对应的引用类型
包装类和基本数据类型的关系
对应的关系
什么是自动包装箱,什么是自动拆箱
自动将基本数据类型转换成包装类;( int i=100;
Integer it1=i;)
自动将包装类转换成基本数据类型(Integer it2=new Integer(2);
int i2=it2;)
sprng boot课程
ioc是什么
控制反转(一种程序设计思想),创建对象的过程反转了
类名 变量名=new 构造器();//常规情况下创建了对象,程序员自己动手创建
创建对象的过程反转了:不再是自己创建对象,ioc容器创建并管理对象。
ioc的作用
a 提高效率
b 易于维护和扩展
c 解耦
怎么使用ioc
在项目中引入spring依赖(jar包)
配置spring容器
beanFactory applicationContext的作用
都是ioc容器;管理javabean
beanFactory和applicationContext的区别---(可能考试)
beanFactory:尽可能晚的创建,适用对内存要求较高的程序
applicationContext:尽可能早的创建对象
什么是javabean
一个java对象,被容器加载并管理的对象
实例化javaBean
javaBena实例的初始化,即通过ioc注入其依赖性
javabean的生命周期是----可能考试
实例化bean
(Javabean实例的初始化,即通过ioc注入其依赖性
基于spring应用对Javabean实例的使用
ioc容器销毁javabean实例)
什么是bean之间的依赖
用于创建bean实例的构造器参数及属性值,bean之间的关系,即协协作(或者依赖)
javabean如何实现延迟加载
在XML配置文件中,延迟初始化将通过<bean>元素中的lazy-int属性来进行控制(bean lazy-int=“ture”)。
什么是依赖注入
将调用者为完成某个功能所依赖的实现类,在程序运行期间,由容器自动填充给调用者,这个就是依赖注入的核心。
依赖注入的方式有哪三种?
构造函数注入: – 所需信息通过构造函数参数注入
属性注入:所需信息通过属性的set方法注入
接口注入:实现接口,所需信息通过接口定义的方法注入。如EJB方式。
AutoWrite注解和Resource注解的作用
都可以进行依赖注入
AutoWrite和Resource的区别是
a 来源不同 :AutoWrite是Spring注解,Resource是jdk注解
b 查找依赖的方式不同:AutoWrite默认按类型装配,Resource默认按名称装配
当一个接口有两个及以上个数的实现类时怎么使用AutoWrite实现依赖注入
@qulifier直接指定依赖对象的名称。
当一个接口有两个及以上个数的实现类时怎么使用Resource实现依赖注入
使用name属性指定依赖对象的名称
spring中组件注解有哪些?
dao层组件:@Repository
service层组件:@Service
控制层组件:@Controller
通用组件:@Component
@service\@repository\@componemt的含义
@Service:业务层组件;
@Repository:数据访问层组件;
@Component:通用组件,
如何使用组件注解
a 在组件对应的类上使用@注解名称----标注组件类
b 使用组件扫描标签扫描组件----让组件注解无效,把组件对象放入Spring对象管理
什么是切面
横切的业务(支线任务)
什么是切入点
一个匹配链接点的逻辑表达式
什么是织入
根据目标对象创建代理对象的过程
基注注解的aop编程的实现步骤
a 使用@aspect定义切面类
b 在aspect定义Pointcut和advice
c 启用AspectJ对源数据注解的支持(添加sechma)
d 将Aspect类和目标对象配置到IOC容器中。
=====搭建maven项目
1. 配置maven本地仓库及柜内镜像(阿里云 清华云)
2. new--project--maven--maven--atype-webApp
3.选择maven根目录
4.补全项目结构--scr--main--java\resources
5.在项目设置中设置文件夹属性--java(source)\resources(resources)
6.pro.xml 带入mybatisjar的坐标。
什么是mybatis
一种持久框架,orm关系映射型框架(把实体类和SQL语句之间建立了映射关系,半自动)
mybatis框架的优势
1.基于SQL语法,简单易学。
2.能了解底层组装过程。
3.SQL语句封装在配置文件中,便于统一管理与维护,降低了程序的耦合度。
4.程序调试方便。
mybatis和jdbc的优点
减少了代码量
最简单的持久化框架
架构级性能增强
SQL代码从程序代码中彻底分离,可重用
增强了项目中的分工
增强了移植性
mybatis框架分层?
API接口层
数据处理层
基础支撑层
mybatis框架的工作流程---(可能的考点)
(1)加载配置并初始化
(2)接收调用请求
(3)处理操作请求
(4)返回处理结果
mapper代理开发规范
a 在mapper.xml中namespace等于mapper接口地址
b mapper.java接口中的方法输入和mapper.xml中的setname的id一致
c mapper.java接口中的方法输入参数类型和mapper.xml中的setname的parameterType指定的类型一致
d mapper.java接口中的方法和返回值类型和mapper.xml中statement的resulttype指定的类型一致
=========任务使用mapper代理开发dao层,完成参数查询,增加,修改,删除(逻辑删除)========
1. 在TuserMapper接口中定义方法
2. 在TuserMapper映射文件中配置sql语句
3. 调用先获取sqlSessionFactory,sqlSession TuserMapper tuserMapper=sqlSession.getMapper(TuserMapper.class);//获取代理对象
什么是mybatis逆向工程
一个根据数据库表自动生成Mybatis执行所需要的代码(mapper.xml mapper.java、pojo)的插件
怎么使用逆向工程
a.引入jar
b.配置配置文件
c.调用
什么是动态sql,实现原理
根据sql标签的条件动态的拼接sql的过程
实现原理:ognl表达式
where标签的特点
a.会在写入where元素的地方输出一个where
b.如果所有的条件都不满足,那么MyBatis就会查出所有的记录
c.如果输出后是and开头的,MyBatis会把第一个and忽略
d.如果是or开头的,MyBatis也会把它忽略
e.在where标签中不需要考虑空格的问题,MyBatis会智能的加上
set标签的特点
当update语句中没有使用if标签时,如果有一个参数为null,都会导致错误。当在update语句中使用if标签时,如果前面的if没有执行,则会导致逗号多余错误。使用set标签可以在包含的语句前输出一个set,然后如果包含的语句是以逗号结束的话将会把该逗号忽略。
resultType属性的作用
resultType是直接表示返回类型的(对应着我们的model对象中的实体)
resultMap属性的作用
指的是外部map的引用----自定义的结果集类型
什么是一对一关联查询
在查询数据过程中,数据来自两张或者以上的表,每张表的数据都存在一一(主外键关联)对应的关系
Torde(订单)---Tuser(用户)
一个订单对应一个用户
一对一关联查询时在mapper中使用的标签是哪些
assosicition
一对一关联查询实现步骤
创建pojo类
配置映射文件
配置结果集映射
定义接口方法
测试
一对多关联查询
一个实体类关联多个实体,一个用户对应多个订单
mybatis如何实现一对多关联查询?
a.pojo类----在一的一方添加多方的引用(list集合)
list<Torder> lsit;作为一个属性---get/set
b.配置文件---resultMap<connection>
a.创建实体类
b.定义接口方法
c.配置映射文件
d.测试
什么是mybatis关联查询的延迟加载
当我们使用到关联的对象时才查询该关联对象,不使用就不查询
mybaits mybatis关联查询的延迟加载的优点:
提高效率
实现mybatis延迟加载的步骤
a.配置延迟加载的开关----mybatis的全局配置 settings
b.配置关联的结果集(assiocition/connection)----colum关联的列 select关联的查询
c.在主查询中使用结果集
d.测试
什么是mybatis的一级缓存,作用
sqlsession----数据库会话(一次数据库链接)级别缓存
作用:减轻数据库压力
什么时候查询缓存:如果在同一个会话中,多次查询相同的数据时,第二次开始都是查询的缓存
什么是mybatis的二级缓存
超出sqlsession的缓存(全局),第三方的缓存
ehcache\mongDb\redis
mybatis继承ehcache的步骤
a.pom导包:
b.配置mapper中cache中的type为ehcache对cache接口的实现类
<cache type="ong.mybatis.caches.ehcacahe.EhcacheCache"></cache>
c.在类路径下配置ehcache.xml的配置文件
<----磁盘缓存位置----->
<diskStore path="D:\develop\ehcache">
d.被缓存的实体类要序列化
-----public class Tuser implements Serializable
e.测试--1 两个session\2 session、关闭才会写入缓存
第一章
1.什么是SpringMVC
Spring MVC是一个基于MVC的web框架,Spring MVC 分离了控制器、模型对象、过滤器以及处理程序对象的角色,这种分离让它们更容易进行定制。
2、SpringMVC框架的工作流程?
(1)首先用户发送请求——>DispatcherServlet
(2)DispatcherServlet——>HandlerMapping
(3)DispatcherServlet——>HandlerAdapter
(4)HandlerAdapter——>处理器
(5)DispatcherServlet——> ViewResolver
(6)DispatcherServlet——> View
(7)由DispatcherServlet返回响应给用户
3、SpringMVC组件有哪些?
前端控制器、处理器映射器、处理器适配器、处理器Handler、视图解析器、视图View
4.SpringMVC项目搭建步骤
(1)maven导包
(2)新建springMVC.xml
(3)在web.xml中配置disparcharServlet
(4)在web-info导入lib
(5)新建controller---new ModeAndView---返回一个视图
(6)在SpringMVC..xml中配置映射规则<bean class=helloController>
什么是自定义异常?
为了区别不同的异常通常根据异常类型自定义类
一定是某个异常类的子类
自定义一个类 继承异常类
java中异常的处理方法有哪些
自行处理try---catch--finaly
回避(抛出异常)throws
springmvc如何处理自定的异常
springmvc提供全局异常处理器(一个系统只有一个异常处理器)进行统一异常处理
springmvc处理自定的异常的步骤
定义自定义异常类
定义异常处理器
配置异常处理器
编写异常信息文件
异常类应用
什么是springmvc的拦截器
一种拦截请求的工具
拦截器的作用
对处理器进行预处理和后处理。
怎么实现一个自己的拦截器
自定义一个类 实现拦截器接口
拦截器的三个方法是什么作用
a.执行前处理
b.执行时处理
c.执行后处理
form中表单的文件域是什么
<input type ="file" name="uphoto">
表单中文件上传时的编码属性是什么
编码属性 encotype=“mulltipart”
springmvc文件上传的步骤
a.导入jar包
b.创建虚拟目录
c.配置解析器
d.编写controller代码
e.编写页面代码
什么是json
是一种轻量级的数据交互格式,键值对形势的数据格式(key1:value1,key2:vaule2)
什么是ajax
页面刷新技术,异步请求,httpXmlRequest
@responsebody注解的作用
将java对象转换成json输出到页面,作用在controller方法的返回值上
将方法的返回值以特定的格式写入到esponse的body区域,进而将数据返回给客户端
@requestbody注解的作用
将页面传递到方法的参数,转换成java对象
springmvc实现json数据交互的步骤
a.导包
b.配置<mvc:cannotation-driven/>
c.在juery中编写ajax,对controller发起请示
controller的方法中使用@requestbody将java对象转换成json。
在页面的ajax的jssuccess回调函数中使用json。
1.bootstarp美化页面
a.在项目中webapp中添加css\js、font文件夹
b.<linl rel="stylesheet" href="css/bootstrap.css">
c.在标签上写class样式
使用模态框实现添加
a.给按钮绑定jquery事件,开发模态框
b.模态框编写表单 action method enctype name
c.controller requestMapping接收请求 方法的形参绑定参数Tuser Ttuservice.add---转发到查询列表的请求//allTuser
springMVC删除功能
a.<a href="http//localhost:8081.my_mb_060321/rm?uid=${tuser.uid}">
<input type="button" calss"btn btn-danger rm" value="删除修改">
b.在controller创建路径为rm的方法,形参绑定uid===
c.tuservice.remoce()---.impl--->tusermapper.rm<tuserMapper>updelete tuser set isdelete=1 where uid=#(uid)
什么是restful风格
软件架构风格
restful风格的url的特点
简洁、动作+资源 get请求+/tuser 查询
post+/tuser 注册
@RequestMapping(vaule="/findltemsByid/{id}"):