JavaEE期末复习知识点总结

Java企业应用开发环境

Maven的基础概念

Maven是一个项目管理工具,可以对 Java 项目进行构建、依赖管理

Maven仓库

Maven 仓库是项目中依赖的第三方库,这个库所在的位置叫做仓库, 是放置所有 JAR 文件的地方

Maven有三个仓库,本地仓库(local),远程仓库(remote),中央仓库(central)

云软件版本管理

working tree、index、head区别

  • 工作区(working tree):当前工作的目录
  • 暂存区(index):准备新提交的暂存区域
  • HEAD代表的是最近的一次commit的信息

revert、reset、rebase的含义

  • git revert 放弃某次提交
  • git reset 是回滚到某次提交
  • git rebase 当两个分支不在一条直线上,需要执行merge操作时,使用该命令操作。

Git进行版本管理的优点

  • 适合分布式开发
  • 速度快,占用空间小
  • 可以离线工作
  • 开发者之间很容易解决冲突
  • 服务器压力和数据量小

JSON基本概念和语法

JSON的定义

  • JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation)
  • 是轻量级的文本数据交换格式,JSON 比 XML 更小、更快,更易解析。

JSON语法

  • 数据在名称/值对中
  • 数据由逗号分隔
  • 大括号 {} 保存对象
  • 中括号 [] 保存数组,数组可以包含多个对象

JSON函数

  • JSON.parse()

    从一个字符串中解析出json(键值对)
  • JSON.stringify()

    从一个对象中解析出字符串

JSON对象的表示方法

{
"name":"javaee" ,
"url":"www.java.com"
}

常见Java数据对象

浏览器数据存储

  • localStorage

    localStorage的生命周期是永久的,关闭页面或浏览器之localStorage中的数据也不会消失,localStorage除非主动删除数据,否则数据永远不会消失
  • sessionStorage

    sessionStorage的生命周期是仅当前会话下有效
  • cookie

    cookie生命周期为只在设置的cookie过期时间之前一直有效,即使关闭浏览器和窗口都有效。

List、Map语法

List:

List<String> list = new ArrayList<String>();
//添加元素
list.add("hello");
list.add("world");
//遍历元素
Iterator<String> ite = list.iterator();
while(ite.hasNext())
System.out.println(ite.next());

Map:

Map<String,String> map = new HashMap<>();
//添加元素
map.put("name","Alice");
map.put("age","18");
//遍历元素
Iterator<Map.Entry<String,String>> iterator = map.entrySet().iterator();
while(iterator.hasNext()){
Map.Entry<String,String> node = iterator.next();
System.out.println(node.getKey()+":"node.getValue()");
}

Vue基础语法和语法

  • 双花括号

    <any>{{表达式}}</any>

    作用:将表达式执行的结果输出当调用元素的innerHTML中
  • 指令-循环指令

    <any v-for="tmp in array"></any>

    作用:在遍历array这个集合时,将临时变量保存在tmp中,创建多个any标签
  • 指令-选择指令

    <any v-if="表达式"></any>

    <any v-else-if="表达式"></any>

    作用:根据表达式执行结果的真假,来决定是否要将当前的这个元素 挂载到DOM树
  • 指令-事件绑定

    <any v-on:eventName="handleEvent"></any>

    作用:给指定的元素 将handleEvent的方法绑定给指定eventName事件
  • 指令-属性绑定

    <any :myProp="表达式"></any>

    作用:将表达式执行的结果 绑定 到当前元素的myProp属性

Vue表单与数据的关联运用

<div id="app">
<form>
<span>username:</span><input type="text" v-model="username">
<span>password:</span><input type="password" v-model="password">
</form>
</div>
<script>
new Vue({
el: "#app",
data: {
username: "",
password: "",
}
})
</script>

Mybatis原理和应用基础

Sqlsession的作用

Sqlsession相当于JDBC中的Connection对象,代表一个连接资源的启用,有三个作用:

  • 获取Mapping接口
  • 发送SQL给数据库
  • 控制数据库事务

映射器的作用

在Mybatis中,映射器是最重要的组件,它是由一个接口和对应的XML文件(或@注解)构成,有四个作用:

  • 描述映射规则
  • 配置缓存
  • 提供SQL语句,配置SQL参数类型,返回类型,缓存刷新等
  • 提供动态SQL

Mybatis传递参数的方式

  • 使用@Param注解

    List<User> selectByUsernameAndPassword( @Param("username") String username,@Param("password") String password );
  • 使用Map传递参数

    List<User> selectByMapParams(Map params);
  • 使用java bean传递多个参数

    List<User> selectByBeans(User user);

Mybatis映射器及应用开发

映射器开发:

  1. SQL语句配置
 <configuration>
<!-- 使用映射器时会用到,普通方式无需配置 -->
<settings>
<!-- changes from the defaults for testing -->
<setting name="cacheEnabled" value="false" />
<setting name="useGeneratedKeys" value="true" />
<setting name="defaultExecutorType" value="REUSE" />
</settings>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<!-- 配置数据库连接信息 -->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.cj.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/test" />
<property name="username" value="root" />
<property name="password" value="root" />
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/cc/TestMyBaties/mapping/Student.xml"/>
</mappers>
</configuration>
  1. 接口语句
public interface UserMapper {
@insert("insert into user (username,password) values (#{username},#{password})")
void addUser(User user);
@select("select * from user where id = #{id}")
User selectUserById(int id);
}
  1. 主程序
	public void insertStudent(){
SqlSession session = this.getSessionfactory().openSession();
// 直接使用映射器
UserMapper mapper = session.getMapper(UserMapper.class); User user= new User();
user.setUsername("admin");
user.setPassword("admin"); mapper.addUser(user);
session.commit();
} public static void main(String[] args){
UserService service = new UserService();
service.insertUser(); }

复杂的Mybatis应用程序开发

一对一查询

select *
from class c,teacher t
where c.teacher_id = t.id and c.cid=1

一对多查询

select *
from class c,teacher t,student s
where c.teacher_id = t_id and c.c_id=s.class_id and c.c_id=1

Redis数据共享技术

Redis特点

  • Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用
  • Redis是完全在内存中保存数据的数据库,使用磁盘只是为了持久化
  • Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset。hash等数据结构
  • Redis支持数据的备份,即master-slave模式的数据备份

Redis优势

  • 速度快,因为数据存在内存中,读的速度能达到110000次/s,写的速度能达到81000次/s
  • 支持丰富数据类型,支持string,list,set,sorted set,hash
  • 支持事务,操作都是原子性,所谓的原子性就是对数据的更改要么全部执行,要么全部不执行
  • 丰富的特性:可用于缓存,消息,按key设置过期时间,过期后将会自动删除

主要数据类型

  • String:字符串
  • Hash: 散列
  • List:列表
  • Set:集合

List和Set的特点

  • List和Set都是接口继承于Collection接口
  • List有顺序有重复没有排序
  • set无重复有排序

更多关于Redis的操作,请移步:Jedis的基本操作

Spring框架和依赖注入开发

IOC

Ioc—Inversion of Control,即“控制反转”,不是什么技术,而是一种设计思想。在Java开发中,Ioc意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制。所谓IoC,对于spring框架来说,就是由spring来负责控制对象的生命周期和对象间的关系。

Java对象调用另一个Java对象的方法

使用依赖注入(DI-Dependency Injection) 的方式

Spring AOP的基础概念和开发

切面(Aspect)

一个关注点的模块化,这个关注点可能会横切多个对象。事务管理是J2EE应用中一个关于横切关注点的很好的例子。在Spring AOP中,切面可以使用基于模式或者基于@Aspect注解的方式来实现。

连接点(Joinpoint)

在程序执行过程中某个特定的点,比如某方法调用的时候或者处理异常的时候。在Spring AOP中,一个连接点总是表示一个方法的执行。

通知/增强(Advice)

在特定的连接点,AOP框架执行的动作。各种类型的通知包括“around”、“before”和“throws”通知。通知类型将在下面讨论。许多AOP框架包括Spring都是以拦截器做通知模型,维护一个“围绕”连接点的拦截器链。spring aop advice的类型:

  1. 前置通知(before advice),在目标方法执行之前执行。
  2. 返回后通知(after returning advice),在方法正常执行结束之后的通知,可以访问到方法的返回值。
  3. 抛出异常后通知(after throwing advice),在目标方法出现异常时执行的代码,可以访问到异常对象,且可以指定出现特定异常执行此方法。
  4. 后置通知:(after[finally] advice),在目标方法执行之后执行(无论是否发生异常)。
  5. 环绕通知:(around advice),可以实现上述所有功能。

切入点(Pointcut)

指定一个通知将被引发的一系列连接点的集合

织入(Weaving)

组装方面来创建一个被通知对象。这可以在编译时完成(例如使用AspectJ编译器),也可以在运行时完成。Spring和其他纯Java AOP框架一样,在运行时完成织入。

代理(Proxy)

AOP框架创建的对象,包含通知。 在Spring中,AOP代理可以是JDK动态代理或者CGLIB代理。

SpringMvc应用程序开发

Springmvc是一个基于mvc的web框架,它是spring框架的一个模块。

SSM

SSM(Spring+SpringMvc+Mybatis)框架的开发,只涉及 Spring 与 MyBatis 的整合以及 Spring MVC 与 MyBatis 的整合。

SpringMvc常用注解

  • @Controller

    负责注册一个bean到sprng上下文中
  • @RequestMapping

    注解为控制器指定可以处理那些URL请求
  • @RequestBody

    该注解用于读取Request请求的body部分的数据,使用系统默认配置的HttpMessageConvert进行解析,然后把相应的数据绑定到要返回的对象上
  • @ResponseBody

    该注解用于将Controller的方法返回的对象,通过适当的HttpMessageConvert转化为指定格式后,写入到Response对象的body数据区

LayUI Table与SpringMVC综合应用

了解Table的语法

创建一个table实例最简单的方式是,在页面放置一个元素

,然后通过 table.render() 方法指定该容器。

<table id="demo" lay-filter="test"></table>
//引入layui.js
<script src="/layui/layui.js"></script>
<script>
//layui指定加载table模块
layui.use('table', function(){
var table = layui.table;
//第一个实例
table.render({
elem: '#demo'
,height: 312
,url: '/demo/table/user/' //数据接口
,page: true //开启分页
,cols: [[ //表头
{field: 'id', title: 'ID', width:80, sort: true, fixed: 'left'}
,{field: 'username', title: '用户名', width:80}
,{field: 'sex', title: '性别', width:80, sort: true}
,{field: 'city', title: '城市', width:80}
,{field: 'sign', title: '签名', width: 177}
,{field: 'experience', title: '积分', width: 80, sort: true}
,{field: 'score', title: '评分', width: 80, sort: true}
,{field: 'classify', title: '职业', width: 80}
,{field: 'wealth', title: '财富', width: 135, sort: true}
]]
});
});
</script>

需要从后端返回的数据类型:

  "code": 0,
"msg": "",
"count": 1000,
"data": [
{
"id": 10000,
"username": "user-0",
"sex": "女",
"city": "城市-0",
"sign": "签名-0",
"experience": 255,
"logins": 24,
"wealth": 82830700,
"classify": "作家",
"score": 57
},
{
"id": 10001,
"username": "user-1",
"sex": "男",
"city": "城市-1",
"sign": "签名-1",
"experience": 884,
"logins": 58,
"wealth": 64928690,
"classify": "词人",
"score": 27
}
}

SpringMvc前后端数据交互

程序设计

使用ajax进行前后端数据交互

$.ajax({
type: "Get",
url: "/springmvcajax/getUsersInfo",
dataType: "json",
//如果需要向后端发送数据使用
//data: param
success: function(data){
console.log(data.msg);
},
error: function(err){
console.log(err.msg)
}
})

SpringBoot介绍和简单应用

SpringBoot的特点

  • 搭建项目快
  • 测试简单,内置了Junit,Spring Boot Test等多种测试框架
  • SpringBoot让配置变的更简单
  • 内嵌容器,省去了配置Tomcat的繁琐
  • 方便监控,使用Spring Boot Actuator组件提供了应用的系统监控,可以查看应用配置的详细信息

完结

JavaEE期末复习知识点总结的更多相关文章

  1. JavaEE期末复习

    期末复习 基础 jsp技术中嵌入java代码,使用的符号 <%%> 掌握jsp技术中引用其他标签库指令标签的书写 掌握jsp技术中request对象setAttribute( ).setC ...

  2. SCE信号期末复习省流小助手(懒人版)

    XDU-SCE网信院信号期末复习省流小助手(懒人版) 本人根据西安电子科技大学网络与信息安全18年期末考试整理的考点和题型 以下题型代表了信号与系统课程的 精髓 若能掌握以下知识点和题型,80分稳有: ...

  3. JavaEE第一天知识点总结

    JavaEE第一天知识点总结 持久化是将程序中的数据在瞬时状态和持久状态间转换的机制 DAO: 英文全称: Date Access Object(数据存取对象) 位于业务逻辑和持久化数据之间 实现对持 ...

  4. Hadoop期末复习

    Hadoop期末复习 选择题 以下选项中,哪个程序负责HDFS数据存储. B A.NameNode B.DataNode C.Secondary NameNode D.ResourceManager ...

  5. python爬虫期末复习

    python期末复习 选择题 以下选项中合法的是(A). A 爬取百度的搜索结果 B 爬取淘宝的商品数据 C 出售同学的个人信息 D 为高利贷提供技术服务 网站的根目录下有一个文件告诉爬虫哪些内容可以 ...

  6. C#知识点提炼期末复习专用

    根据内部消息称:有三类题型:  程序阅读题:2题  简答题:2题 (主要是对概念的考查)  编程题:暂定2-3题 复习要点: .net framework 通用语言开发环境..NET基础类库..NET ...

  7. now code——处女座的期末复习

    题目描述 快要期末考试了,处女座现在有n门课程需要考试,每一门课程需要花ai小时进行复习,考试的起始时间为bi,处女座为了考试可以不吃饭不睡觉,处女座想知道他能否复习完所有的科目(即在每一门考试之前复 ...

  8. 南京邮电大学 JavaA期末复习要点总结

    南京邮电大学 JavaA复习要点: Chap1 入门 1.  Java应用程序开发过程教材P14~P15 Chap 2 基本语法 1.      标识符的命名规则教材P19 字母下划线美元符号开头,除 ...

  9. [Noip复习知识点][个人向]Zackzh

    只是列列一些要复习的,努力复习吧,有种noip退役的赶脚. 一.模拟 (这你也不会?退役吧) 二.DP 1.基础dp 2.区间dp 3.状压dp 4.树形dp 6.概率(期望)dp 7.环形dp 8. ...

随机推荐

  1. php 23种设计模型 - 模板方法模式

    模板模式 模板模式准备一个抽象类,将部分逻辑以具体方法以及具体构造形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑.不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现.先制 ...

  2. rsync同步文件到远程机器,卡住10多秒--问题解决过程

    背景 以前大体介绍过,我们这边是做运维平台的.如果要形象化理解,那么,比如jenkins这种喜闻乐见的软件大致了解吧,jenkins就经常需要同步文件/版本包到远程机器上,jenkins怎么实现的,没 ...

  3. Grafana镜像在阿里云镜像站首发上线

    阿里云镜像站体验官招募中, 在各大社区平台分享相关内容累计积分就可赢得Airpods耳机和移动硬盘等奖励,银牌体验官的奖励人数不设限哦.立即参与 简介 Grafana是一个跨平台的开源的度量分析和可视 ...

  4. idea创建web项目以及配置Tomcat

    废话不多说,直接上干活: 1.在project中现创建好module,也就是java web项目 2.把路径名写清楚就行了 3.创建在WEB-INF上右击创建classes和lib以存储class编译 ...

  5. matplotlib字体

    matplotlib官方文档 https://matplotlib.org/stable/gallery/index.html 使用以下代码查看 import matplotlib.pyplot as ...

  6. C#拾遗补阙【01】:字符串

    一.string是特殊的引用类型 ​ 众所周知,string是引用类型.为什么string是引用类型,最简单的方法,f12转到string的定义.显而易见,string的本质是类,字符串存储在堆中,而 ...

  7. Kafka03--Kafka消费者使用方式

    前言 与生产者客户端一样,消费者端也由最初的scala版本过渡到现在的Java版本. 正常的消费者逻辑需要以下4个步骤: KafkaConsumer的客户端参数配置和对应实例: 订阅主题 拉取消息并消 ...

  8. kafka的message格式是什么样的?

    一个Kafka的Message由一个固定长度的header和一个变长的消息体body组成 header部分由一个字节的magic(文件格式)和四个字节的CRC32(用于判断body消息体是否正常)构成 ...

  9. char型变量中能不能存贮一个中文汉字?为什么?

    char型变量是用来存储Unicode编码的字符的,unicode编码字符集中包含了汉字,所以,char型变量中当然可以存储汉字啦.不过,如果某个特殊的汉字没有被包含在unicode编码字符集中,那么 ...

  10. Spring框架的事务管理有哪些优点?

    它为不同的事务API  如 JTA,JDBC,Hibernate,JPA 和JDO,提供一个不变的编程模式. 它为编程式事务管理提供了一套简单的API而不是一些复杂的事务API如 它支持声明式事务管理 ...