课程知识点总结
不做打字机
这个作者很懒,什么都没留下…
展开
-
Java基础:注解:JDK提供5个基础注解 5个元注解 不够用,我们还要自定义注解
注解 可以扩充我原来代码的功能!(利用反射技术)注解的分类:1.JDK自带注解 5个 : @Override @Deprecated @SuppressWarnings(“deprecation”) @SafeVarargs @FunctionallInterface2.元注解(描述注解的注解) 5个 : @Target @Retention @Inherited @Documented @Repeatable3.自定义注解元注解:@Ta原创 2020-10-14 14:16:48 · 311 阅读 · 0 评论 -
Java基础:设计模式:单例设计模式:以Runtime这个类的底层源码为例---饿汉式 和 懒汉式
设计模式一共有23种,(java出生30多年了,才总结出这23种!)设计模式是前辈们总结程序中发生的各种问题,为解决这些问题,而设计出的规章制度,方式方法,都是智慧的结晶。首先说说单例设计模式: (一个类中只能创建出一个这个类的类对象)体现单例设计模式最经典的地方,就是在Runtime这个类的底层代码中:1.首先,Runtime这个类把它的构造方法给private了,这样别人就没法随意去创建Runtime类型的对象了。但也不能闭关锁国,别人要真想用一下Runtime的对象,咋整呢?2.Runt原创 2020-10-14 10:40:52 · 355 阅读 · 0 评论 -
Java基础知识:线程池的种类(5种)
JDK的线程池,它是预先创建好一些线程,放在池中。用的时候从池中取线程,用完放回池中。避免了创建,销毁线程的开销。与数据库连接池是同样的道理。1.固定数量的线程池 newFixedThreadPool作用:这是一个线程数固定的,线程可以重用的线程池,用共享的无界队列方式运行这些线程。如果所有的核心线程都在忙,这时又有新的任务来,这个新的任务会去队列中等待。如果一个线程在半路突然中止了,那么会有一个新的线程代替它执行后续的任务。一个线程在被关闭之前,它会一直在线程池中等待被调用。(下班前,要一直在原创 2020-10-13 12:25:21 · 1822 阅读 · 0 评论 -
Java基础知识:创建线程的3种方式
1.新建一个类ThreadSon1,继承Thread类,重写它的run(),没有返回值新建ThreadSon1对象,用它去.start(),开启线程。2.新建一个类ThreadSon2,实现Runable接口,实现其run(),没有返回值新建ThreadSon2对象再新建Thread对象(带参数,参数就是ThreadSon2对象),用Thread对象去.start()方法,开启线程、3.新建一个类ThreadSon3,实现Callable<泛型>接口,实现其call(),返回值类型为原创 2020-10-13 09:42:25 · 137 阅读 · 0 评论 -
Java中的设计模式和原则
1.JDK中几个常用的设计模式单例模式:对象被创建一次后,放入池中,用的时候从池中取。节省系统开销。工厂模式:(简单工厂,抽象工厂)为了解耦,eg:SqlsessionFactory观察者模式:对象A依赖着对象B,对象C,对象D…,当对象A改变时,对象B,对象C,对象D都会收到通知,并自动更新。外观模式(不太了解):提供一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层的接口,让子系统更容易使用。模板方法模式(不太了解):模板方法 使得子类可以在不改变算法结构的情况下,重新定义算法的原创 2020-10-12 09:17:25 · 1334 阅读 · 0 评论 -
IO 的 一些小结
IO流数据流:往内存中输入,或从内存中输出的数据。IO流: 一组有顺序,有起点,有终点的字节的集合。按照流向分:输入流(把磁盘中的数据读取到内存中)输出流(把内存中的数据写入到磁盘中)按照数据单位的不同分:字节流(每次读/写 一个字节,当遇到中文时,会有乱码,因为一个中文是2个字节)字符流(每次读/写 两个字节,遇到中文,也能正确显示)按照流的角色划分:节点流:向一个特定的地方(节点)读写数据。eg:FileInputStream处理流:是对一个已存在的流的连接和封原创 2020-10-12 09:16:43 · 91 阅读 · 0 评论 -
关于缓存Redis的知识点总结
1 Redis缓存目前最新的Redis版本是6.0.7,但经采坑发现,安装时有问题。所以可以考虑用更稳妥的5.0.4的版本。1.1 配置缓存的目的缓存机制的主要目的:降低用户访问物理设备(比如后端真实的数据库)的频次;提高用户查询数据(“读”)的效率;1.2 配置缓存要考虑的要素缓存使用什么格式存储数据的? K-V开发缓存应该用什么语言?缓存的目的就是快速地反馈用户查询的结果,要快,所以就要用C语言开发缓存技术。应该把缓存程序放到哪里运行(即缓存服务的运行环境是哪里)?原创 2020-10-10 13:07:54 · 184 阅读 · 0 评论 -
项目练手-AloneWay-Part1-创建前端Vue项目
10.11.1 从前端Vue项目开始此次共要创建2个项目:前端aloneway_vue项目后端aloneway_main项目先从创建前端Vue项目开始干!1.1.1 通过Vue框架的脚手架@vue/cli(以前叫vue cli),搭建Vue.js项目先得知道两个概念:前后端分离:前端页面通过ajax技术异步调用后端的restful api,向后端发送数据,以及从后端获取数据。单页面应用(single page web application SPA):只有一张页面,用户在于后端服务原创 2020-10-10 13:12:55 · 208 阅读 · 0 评论 -
Lesson 19 京淘项目 微服务--Dubbo框架---用户单点登录注册(SSO)---购物车(CART)---前端页面(WEB)---后台管理(MANAGE)
1 用户模块1.1 用户登出操作(SSO)要达成的效果就是:用户在jt-web主页面点击了退出之后,跳转回jt-web主页面,并且不再显示用户的名称。隐含的过程是:浏览器:要删除用户上次登录时的cookie信息(即作废ticket);服务器:要删除用户上次登录存入的登录的redis缓存信息(因为redis中的记录是根据ticket来记录的,ticket的value就是redis中的key。ticket作废了,redis中这条数据也就作废了)1.1.1 当前情况分析点击了“退出”后,浏览器地址原创 2020-10-10 13:15:45 · 1027 阅读 · 0 评论 -
Lesson18 Dubbo框架的学习 --Part 2 用户登录---信息回显 TODO
1.Dubbo相关知识的介绍2.将京淘项目改造成Dubbo项目3.完成用户注册信息的入库4.完成用户的单点登录SSO5.完成用户信息的回显原创 2020-10-10 13:16:08 · 324 阅读 · 0 评论 -
Lesson17 微服务框架Dubbo框架的学习 Part1
1 微服务框架介绍1.1 远程调用浏览器解析客户端发起的ajax跨域请求.请求虽然可以被B服务器正确的调用并处理,但是浏览器可以监控用户的这次发的ajax请求的所有的参数及返回值.在一些特定的条件下该操作不安全.一般使用跨域的请求都是用来获取其他服务器的数据(查询操作),如果遇到了POST需要提交的参数应该使用更加安全的请求方式实现.1.2 HttpClient介绍HTTP 协议可能是现在 Internet 上使用得最多、最重要的协议了,越来越多的 Java 应用程序需要直接通过 HTTP 协议来原创 2020-10-10 13:17:04 · 196 阅读 · 0 评论 -
Lesson16 京淘项目---单点登录系统SSO的搭建
京淘 单点登录系统 SSO1 现状分析当前在京淘前台页面中,点击“登录”和“免费注册”这两个按钮,跳转的网页地址分别为:http://www.jt.com/user/login.htmlhttp://www.jt.com/user/register.html显然这是个伪静态的用法,实际上要访问的资源为:要想展现对应的页面,客户端势必要发送两次ajax请求。那么对应的controller中难道也一定得写2个方法去接收吗?不需要,用restful风格,一个方法搞定1.1 编辑UserCon原创 2020-10-10 13:17:15 · 348 阅读 · 0 评论 -
Lesson16 实现跨域请求的两种方式:JSONP 和 CORS
1.什么是跨域2.JSONP跨域方式3.CORS跨域方式4.基于跨域思想,校验用户信息5.微服务RPC/SOA思想原创 2020-10-10 13:16:18 · 128 阅读 · 0 评论 -
Lesson15 京淘前台系统的搭建
1 京淘项目前台的搭建1.1 京淘项目架构图设计在分布式的条件下,由web服务器从后端的业务服务器获取服务器,通过HTTP请求协议,利用远程调用的方式获取业务数据。将来采用更加通用的json字符串的方式返回数据。实现跨系统之间的数据访问。并且每个节点根据用户访问量的不同,搭建不同规模的集群,从而实现用户的高并发的访问。tomcat服务器在未经调优时,只能支持150次/s到240次/s 的访问量。但在调优以后,可以达到大约1000次/s 的访问量1.2 创建jt-web子项目注意:要在jt父原创 2020-10-10 13:16:32 · 196 阅读 · 0 评论 -
Lesson7 京淘项目---借助nginx的反向代理功能实现-----文件上传
前言在新增商品,修改商品界面都有“上传图片”的功能。目前,点击“开始上传”会显示 上传失败,因为在项目代码中我还没写这部分功能,并且也还没配置nginx。原创 2020-10-10 13:13:23 · 107 阅读 · 0 评论 -
Lesson14 Redis集群的搭建
1 为什么要搭建Redis集群Redis的分片机制能对Redis数据库进行扩容,但由于每个Redis分片中的内容都是自己独有的,所以万一有一个宕机了,用户就可能查不到数据了。没法做到高可用。Redis的哨兵机制能让Redis能监控主机的状态,保证Redis的高可用。但是每个主机和从机中保存的数据都是相同的。存储这些相同的海量的缓存数据相当浪费内存。怎么才能做到二者兼得呢?那就是 Redis集群采用redis集群,可以保证数据分散存储,同时保证数据存储的一致性.并且在内部实现高可用的机制(不用引原创 2020-10-10 13:14:50 · 298 阅读 · 0 评论 -
Lesson13 Redis分片机制 & Redis哨兵机制
1.springboot整合redis分片2.redis哨兵机制(实现redis高可用)3.redis集群原创 2020-10-10 13:11:50 · 244 阅读 · 0 评论 -
Lesson12 京淘项目:借助AOP,实现redis缓存,以及redis分片-----springboot项目引入redis--第二步
1 用AOP的形式 实现Redis缓存的服务3 Redis的分片机制 (为Redis的集群做铺垫)原创 2020-10-10 13:12:29 · 210 阅读 · 0 评论 -
Lesson10 京淘项目中整合Redis数据库(通过查redis展现商品类目的tree)
1.SpringBoot中整合redis2.京淘项目中配置redis3.利用AOP形式实现商品分类缓存(Redis代码与业务代码混在一起,不好,要用AOP技术优化)原创 2020-10-10 13:13:49 · 391 阅读 · 0 评论 -
Lesson11 Linux中 Redis缓存的配置
1 服务缓存1.1 为什么有服务器缓存这个东西?缓存机制主要的目的就是降低用户访问物理设备的频次.提供用户的查询的效率.衍生: 可以利用缓存服务器有效的降低用户访问数据库的压力.缓存数据存在于内存中。1.2 搭建一个缓存服务器要考虑的要素1.缓存用什么样的结构存储数据? K-V2.缓存服务的开发用什么语言? C语言3.缓存服务运行的环境? 让缓存服务运行在内存中。4.缓存的数据都在内存中,万一断电,就将丢失。 要序列化(持久化到磁盘中)5.内存大小有限,而缓存数原创 2020-10-10 13:14:22 · 193 阅读 · 0 评论 -
Lesson8 Linux系统中,京淘数据库的优化(主库与从库)--Part2--主从复制,读写分离,高可用
# 1.实现mysql数据库的主从复制# 2.实现mysql数据库读写分离# 3.实现mysql数据库高可用原创 2020-10-10 13:11:24 · 162 阅读 · 0 评论 -
Lesson8 Linux系统中,京淘数据库的优化(主库与从库)--Part1--配置从库
配置第2台数据库作为从数据库原创 2020-10-10 13:14:12 · 104 阅读 · 0 评论 -
Lesson6 【LINUX】Linux系统快速上手
1 什么是Linux操作系统现在三大常用的系统:Windows,Linux,IOSLinux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。Linux第一次正式向外公布的时间1991.10.5我们通常说的Linux其实表示的是Linux内核。人们基于Linux内原创 2020-10-10 13:11:38 · 159 阅读 · 0 评论 -
Lesson9 【LINUX】将京淘项目发布到Linux系统上
1.Linux中配置JDK2.Linux中配置MariaDB3.将打包好的项目发布到Linux4.配置nginx原创 2020-10-10 13:15:31 · 232 阅读 · 0 评论 -
CGBIV-JT项目-lession4-jt项目正式开启-下
由于上一篇太长了,所以有了这篇《CGBIV-JT项目-lession4-jt项目正式开启-下》1 商品的删除 DELETE这个模块的难点在于,要支持同时删除多个商品Item。有两个方法:方法1.通过MP中的deleteBatchIds()方法。需注意的是这个方法的参数规定是要List,而客户端传过来的是数组[ ],所以要先将数组—>List,而JDK中的Arrays.asList( )方法就能实现这个目的。方法2.不用MP,自己手写sql,并且需要写的是动态sql。这是难点!需要手写s原创 2020-10-10 13:15:14 · 763 阅读 · 0 评论 -
CGBIV-JT项目-lession4-jt项目正式开启-上
1 京淘项目总体架构图这个项目中用到了分布式思想。下面介绍一下分布式思想。1.1 分布式思想1.1.1 概念说明:将大型项目按照特定的规则进行拆分.目的:减少项目架构的耦合性. (化整为零 拆! )思考:单体项目存在什么问题?如果在一个大型项目中,将所有的功能模块(eg:登录模块,权限模块,订单模块······)都写在一个服务器上,将来如果其中一个模块出现了问题,gg了,那么整个项目都会gg掉。而项目如果做成“分布式”架构,即使一个模块gg了,其他模块不受影响,还能继续原创 2020-10-10 13:10:57 · 1156 阅读 · 0 评论 -
JAVA基础知识点:继承
这是一个零散的JAVA基础知识点:继承问题引出:我写了这么一个类BasePojopackage com.jt.pojo;import java.io.Serializable;import java.util.Date;import com.baomidou.mybatisplus.annotation.FieldFill;import com.baomidou.mybatisplus.annotation.TableField;import lombok.Data;import lo原创 2020-09-01 21:59:03 · 186 阅读 · 0 评论 -
CGBIV-JT项目-lession3-jt项目热身
动态WEB资源要打War包1.SpringBoot整合Web资源1.1创建项目1.2 手动加webapp文件夹目录1.3手动将课前资料中的WEB-INF资源CV过来1.4 修改pom文件1.5 需求:用户输入:http://localhost:8090/findAll 跳转到userList.jsp页面中,并且展现user表中全部的数据1.6...原创 2020-10-10 13:09:43 · 164 阅读 · 0 评论 -
CGBIV-JT项目-lesson1&2
1.win7中怎么查看电脑中有哪些网卡?为什么会写这个?因为听说VMware安装完后,会在电脑里生成两个网卡。啥?啥卡?之前安装时没注意过啊。现在这么找。点击“更改适配器设置”。就能看到电脑中的所有网卡了。安装完VMware后,会自动的安装上这两个网卡。2.用PowerDesigner物理模型图去展现,编辑表与表之间的关系时如果不小心把类似这样的工具栏删掉了,可以找回来。点击倒数第三个“工具”需要什么工具,把前面的勾上即可。3.表与表之间的关系 (从 从表 往原创 2020-10-10 13:09:26 · 441 阅读 · 0 评论