- 博客(52)
- 收藏
- 关注
原创 SpringSecurity学习笔记
文章目录SpringSecurity入门基本原理认证控制实现案例认证功能加入数据库授权控制用户自定义403页面注解简化开发(不建议使用)注销或退出登录自动登录RememberMeCSRF跨站请求SpringSecurity微服务实现Oauth协议认证过程单点登录SSO总结:SpringSecurity入门Shiro是轻量级的安全框架,而随着springboot的流行,现在是整合springsecurity,因为是spring家族的组件,整合非常的方便。SpringSecurity本质上是一个过滤器
2021-08-13 18:13:26
566
原创 MYSQL优化自学笔记
文章目录MYSQL的数据结构为什么是b+树平衡二叉树(间接学习一下)索引SQL语句性能分析索引优化索引失效索引面试题小测*查询优化ORDER BY 优化慢查询日志Mysql锁机制表锁(myisam存储引擎)行锁 (InnoDB存储引擎)索引失效行锁变表锁间隙锁主从复制MYSQL的数据结构为什么是b+树为什么不是Hash哈希表存储:Hash结构,不利于范围查找,Hash存储方式本来就是无序的。为什么不是平衡二叉树存储:平衡二叉树虽然保证了左右子树的高度差,防止出现没有某一边子树的极端查找
2021-08-06 21:53:07
496
原创 SpringBoot原理个人总结
SpringBoot原理分析总结自动配置特性认识springboot特有的注解自动配置源码分析静态资源源码分析总结REST映射使用和源码分析请求处理源码分析响应数据源码分析响应页面源码分析拦截器原理自动配置特性每一个starter场景jar包都依赖于spring-boot-starter包,而这个包内部又依赖于一个关键的自动配置包 spring-boot-autoconfiguration 这个里面有所有场景的自动配置类*autoconfiguration的类名就是,我们pom里面导入了什么场景启
2021-07-09 11:44:46
304
原创 多线程 二
文章目录五.共享模型之内存1、Java 内存模型(JMM)2、可见性大致就是JIT即时编译器的优化让线程没办法获取到最新的主内存的数据的变化3.有序性4、volatile 原理**5.double-checked locking6.Happens-before7.练习总结五.共享模型之内存1、Java 内存模型(JMM)JMM 即 Java Memory Model,它定义了主存(共享内存)、工作内存(线程私有)抽象概念,底层对应着 CPU 寄存器、缓存、硬件内存、 CPU 指令优化等。JMM
2021-07-01 20:26:27
589
1
原创 JAVA多线程一
多线程 一一.概念进程与线程并行和并发多线程应用Slf4j的使用二.Java线程创建线程线程运行线程运行原理线程上下文切换常见方法线程状态三.并发之共享模型线程共享数据因为分时系统带来的问题阻塞式的解决方案 synchronized Lock变量的线程安全分析四.Monitor锁概念五.synchronized原理进阶一.概念进程与线程程序由指令和数据组成,但这些指令要运行,数据要读写,就必须要把程序加载到CPU内存,这就开启了一个进程一个进程之内可以分为多个线程,一个线程就是一个指令流,将指令
2021-06-30 22:55:26
711
原创 JVM自学笔记(二)
JVM自学笔记前言五 类加载反编译Class文件图解方法执行流程通过字节码指令分析代码构造方法方法调用多态原理异常处理异常处理编译器处理的语法糖类加载-加载类加载-链接类加载-初始化六 类加载器双亲委派机制启动类加载器拓展类加载器 ExtClassLoader应用程序类加载器 AppClassLoader自定义类加载器七 JIT即时编译器优化运行期优化反射优化八 Java内存模型CASSynchronized优化前言续上上一篇的笔记五 类加载首先获得.class字节码文件在文本文档里写入jav
2021-06-19 16:30:16
472
原创 JVM学习笔记(一)
JVM学习笔记前言一.JVM内存结构程序计数器虚拟机栈本地方法栈Head堆方法区运行时常量池Stringtable串池直接内存二.垃圾回收如何判断对象可以回收?垃圾回收算法分代垃圾回收JVM的参数GC分析垃圾回收器三.G1垃圾回收器执行流程G1 Full GCG1 跨代引用G1 并发标记阶段G1 重新标记阶段G1 字符串去重G1 类卸载四.GC垃圾回收调优前言JVMJVM+基础类库 = JRE java运行环境JVM+基础类库+编译工具 = JDK java开发工具包学习笔记规划.
2021-06-19 16:13:53
119
原创 RabbitMQ学习
RabbitMQMQ消息队列的特点RabbitMQ简介RabbitMQ的安装与配置RabbitMQ之简单模式RabbitMQ之WrokQueues单队列模式RabbitMQ之Pub/Sub订阅模式RabbitMQ之Routing路由模式RabbitMQ之Topics通配符模式Spring整合RabbitMQ生产者消费者Springboot整合RabbitMQ生产者消费者RabbitMQ高级特性一.消息可靠性投递二.Consumer ACK三.消费端限流四.TTL五.死信队列*六.延迟队列*七.日志与监控八.
2021-05-25 14:08:46
672
原创 Redis学习
Redis自学笔记NoSQL简介Redis简介常用五大数据类型Redis字符串Redis列表Redis集合Redis哈希Redis有序集合Redis6配置文件详解Redis6的发布和订阅Redis6新数据类型 BitmapsRedis6新数据类型 HyperLogLogRedis6新数据类型 GeospatialJedis操作Redis6*Redis与Springboot整合Redis事务和锁机制事务的冲突问题Redis事务秒杀案例Redus6持久化操作之 RDBRedus6持久化操作之 AOF
2021-05-25 12:44:53
578
1
原创 Linux常用命令
Linux基础Linux简介Linux的目录结构Linux远程操作1 Xshell: Linux的终端模拟软件2 Xftp:文件传输软件vi和vimLinux中的用户管理Linux中的组管理实操指令文件和目录操作命令Linux中过于日期和时间的操作命令:linux中关于搜索文件或者目录的命令:find压缩与解压命令Linux文件与组Linux中文件或者目录的权限管理进程管理Linux中的服务管理Linux软件包管理Linux中搭建Javaee环境安装Tomcat安装mysqlLinux简介电脑 = 硬
2021-05-25 11:03:36
447
原创 maven高级应用之ssm模块分离
文章目录Maven学习maven基础回顾Maven工程导入jar包冲突锁定jar包的版本Maven内置的tomcat执行Maven工程拆分和聚合的思想父子工程创建工程和模块的关系模块之间的互相连接启动方式私服ssm项目分离实现建立parent项目,在pom.xml中加入所有的jar包配置Dao层配置Service层配置Web层Maven学习自动下载jar包 + 内置tomcat服务器maven基础回顾Maven是一个项目管理工具依赖管理:maven对项目中jar包放置在电脑的仓库中,项目内部只
2021-05-06 11:54:11
147
原创 ssm整合大法好
文章目录SSM整合搭建环境编写Spring编写Springmvc整合spring和springmvc编写MyBatis整合Spring和MyBatis调用总测试SSM整合SpringMVC表现层Spring业务层MyBatis持久层搭建环境创建maven工程,在pom.xml中传入jar包<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncodin
2021-05-06 11:29:24
83
原创 Mybatis
文章目录Mybatis入门mybatis概述mybatis环境搭建mybatis入门案例mybatis基于注解的入门案例自定义mybatis的流程分析XML方式的CRUD操作XML方式解决实体类与数据库列名不对应注解方式的单表增删改查方法注解方式解决实体类与数据库列名不对应Mybatis中的延迟加载注解方式实现多对一的操作注解方式一对多的查询配置Mybatis入门学过的对持久层的解决方案有:JDBC技术 Spring的JdbcTemplate Apache的DBUtils以上都不是框架JD
2021-05-06 11:15:36
91
原创 SpringMVC
文章目录SpringMVC入门HelloWorldSpringMVC执行过程源代码分析RequestMapping注解请求参数的绑定请求参数绑定实体类配置解决中文乱码的过滤器请求参数绑定集合类型自定义类型转换器常用注解@RequestParam@RequestBody@PathVariable@RequestHeader@CookieValue@ModelAttribute@SessionAttribute响应数据和结果视图String返回值的controller方法Void返回值的controller方法
2021-05-06 11:00:39
122
原创 Spring-AOP,JDBCTemplate,事务管理
文章目录AOP底层原理与代码实现AOP(AOP术语)AOP操作(准备)*AOP操作(AsectJ注解方式)AOP操作(AsectJ配置文件方式)JDBCTemplate准备工作JdbcTemplate操作数据库(添加)JdbcTemplate操作数据库(修改和删除)JdbcTemplate操作数据库(三种查询)JdbcTemplate操作数据库(批量操作)事务事例:银行的转账事务操作过程在spring配置文件中配置事务管理器在spring配置文件,开启事务注解在service类的方法上面添加事务注解@Tra
2021-05-06 10:18:59
469
1
原创 Spring-IOC_注解
文章目录基于注解方式的bean管理什么是注解:Spring针对Bean管理中创建对象提供注解基于注解方式实现对象的创建开启组件扫描细节配置基于注解方式属性的注入@AutoWired:@Qualifier@Resource@Value完全注解开发基于注解方式的bean管理上一篇写的是xml方式的bean实例化和属性注入的方法的总结,xml方式在开发的时候会产生复杂的xml文件,所有我们要脱离xml文件,就需要利用注解开发来生成bean对象优点:把类的创建和属性注入都写在类和属性上面,就不用复杂的xm
2021-04-28 19:27:03
79
原创 Spring-IOC_xml
文章目录概述入门案例IOC容器(IOC底层原理)IOC(接口)AppliactionContext接口的常用实现类IOC操作bean管理基于xml方式的bean管理(1)DI依赖注入-set和构造器两种方法Xml注入其他类型的属性(2)注入属性-外部bean(3)注入属性-内部bean和级联赋值Xml注入集合属性FactoryBean 工厂beanBean的作用域Bean的生命周期Xml自动装配引入外部属性文件概述Spring是开源的J2EE应用程序框架目的是解决企业应用开发的复杂性Sprin
2021-04-28 19:25:24
85
原创 JavaWeb-书城项目总结
文章目录JavaWeb-书城项目总结在数据库内创建需要的对象对应的表建立Bean对象建立Jdbc.Util工具类建立BaseDao类建立操作各个数据库表格数据的Dao层代码建立各个功能的Service,实现对各个Dao对象的功能调用建立各个功能的Servlet程序,实现对Service的方法调用加入Filter优化项目需要的jar包开发功能实现的流程图JavaWeb-书城项目总结这是web的项目结构,目前还没利用到框架,开发流程就是:在数据库内创建需要的对象对应的表如图分为储存:书信息:
2021-04-28 19:22:51
1053
原创 JavaWeb-Filter,Json,Ajax
文章目录FilterFilter过滤器Filter初体验生命周期FilterConfig类FilterChain过滤器链Filter的拦截路径JsonJSON在js中的使用JSON的访问JSON的两个常用方法Java中JSON和JavaBean的转化AJAX请求局部更新,异步请求jQuery内的ajaxFilterFilter过滤器三大组件之一:serlet程序,Listener监听器,Filter过滤器作用:拦截请求,过滤响应常用的应用场景:1权限检查2日记操作3事务管理Filte
2021-04-28 18:44:06
127
1
原创 JavaWeb-Cookie,Session
文章目录前言Cookie的创建Cookie的获取Cookie的工具类修改Cookie值浏览器查看CookieCookie的生命控制Cookie有效路径Path的设置练习:Cookie免用户名登录Session会话Session创建和获取前言javaweb有四个域对象,都可以传入值当作存储数据,分别为:PageContext : pageConext 存放的数据在当前页面有效。开发时使用较少。ServletRequest: request 存放的数据在一次请求(转发)内有效。使用非常多。Htt
2021-04-28 18:21:39
65
原创 JavaWeb-Tomcat,Servlet重点
文章目录Tomcat目录介绍打开与测试停止Tomcat部署web工程到Tomcat中项目t添加jar包ServletServlet加入流程Servlet生命周期请求的分发处理ServletConfigserveltContentHTTP协议请求响应协议格式HttpServletRequestRequest请求的转发*HttpServletRsponseResponse请求重定向*Base标签Web中斜杠的不同意义Tomcat目录介绍Bin 存放Tomcat服务器的可执行程序Conf
2021-04-28 17:50:17
89
原创 Spring-IOC_xml
文章目录概述入门案例IOC容器(IOC底层原理)IOC(接口)AppliactionContext接口的常用实现类IOC操作bean管理基于xml方式的bean管理(1)DI依赖注入-set和构造器两种方法Xml注入其他类型的属性(2)注入属性-外部bean(3)注入属性-内部bean和级联赋值Xml注入集合属性FactoryBean 工厂beanBean的作用域Bean的生命周期Xml自动装配引入外部属性文件概述Spring是开源的J2EE应用程序框架目的是解决企业应用开发的复杂性Sprin
2021-04-27 22:50:44
165
原创 JavaWeb-jQuery和xml
文章目录前期使用准备$核心函数dom对象和jQuery对象的区别选择器基本选择器层级选择器过滤选择器元素的筛选前期使用准备$核心函数<script type="text/javascript"> $(function (){ //表示页面加载完成之后,相当于onload事件 $就是一个函数 var $btn = $("#btn"); //表示按id查询标签对象 $btn.click(function (){
2021-04-15 15:50:51
140
2
原创 JavaWeb-JavaScript
文章目录使用方法变量类型逻辑运算数组函数自定义对象事件正则表达式使用方法<!--使用script引入外部的js文件来执行 src 可以是相对路径,也可以是绝对路径 script标签可以用来定义js代码,也可也用来引入js文件 但是,只能二选一,不能同时使用两个功能 --> <script type="text/javascript" src="1.js"></script> <script type=
2021-04-15 14:51:36
68
原创 JavaWeb:HTML与CSS
文章目录HTML头部常用的标签font字体标签常用的特殊字符h1标题标签a超链接标签ol列表标签img图片标签table表格标签iframe标签*form表单标签其他标签CSScss结合html方法id选择器class选择器HTML头部<!DOCTYPE html> <!--声明--><html lang="zh_CN" xmlns="http://www.w3.org/1999/html"> <!--表示中文--><head> &
2021-04-11 12:48:49
83
原创 SORM框架总结
文章目录介绍使用方法介绍这个sorm框架是跟b站的java300集学的,主要功能是封装java与数据库之间的连接和查询增删等操作,方便客户使用java与数据库之间的数据交互。项目分为四个包:po包是存映射数据库表信息出来的数据对象,属性就是表的一些字段。bean包内是对字段信息,表信息,getset方法的封装,还有存取资源文件的配置信息Query接口:负责查询core包内的比较重要:DBManager是把资源文件的数据存取在生成的配置信息类,方便后面使用,
2021-04-09 18:27:41
869
原创 JDBC笔记
MySQL常用命令:SHOW DATABASES; //查看数据库CREATE DATABASE yuan; //创建库USE yuan; //在建表之前要先选中数据库SHOW TABLES;//创建表格CREATE TABLE student (id INT(20) COMMENT ‘学号’,studentname VARCHAR(20) COMMENT ‘姓名’,score FLOAT DEFAULT 0 COMMENT ‘成绩’)CREATE TABLE
2021-04-05 22:05:52
402
原创 洛谷习题3
文章目录P1563 [NOIP2016 提高组] 玩具谜题P1563 [NOIP2016 提高组] 玩具谜题题目描述小南有一套可爱的玩具小人, 它们各有不同的职业。有一天, 这些玩具小人把小南的眼镜藏了起来。 小南发现玩具小人们围成了一个圈,它们有的面朝圈内,有的面朝圈外。如下图:这时singersinger告诉小南一个谜題: “眼镜藏在我左数第3个玩具小人的右数第11个玩具小人的左数第22个玩具小人那里。 ”小南发现, 这个谜题中玩具小人的朝向非常关键, 因为朝内和朝外的玩具小人的左右方
2021-03-31 16:01:02
247
原创 23种设计模式(自学笔记)
文章目录单例模式工厂模式简单工厂模式工厂方法模式抽象工厂模式建造者模式原型模式单例模式最大特定:私有构造器,只能存在一个对象。在类内已经生成一个对象,提供getInstance方法获取对象。分为 饿汉式,懒汉式,枚举式,静态内部类。主要列举饿汉式和懒汉式:区别在于:饿汉式在提供的类已经事先new好了对象,这样在调用的时候就效率高,缺点就是可能会浪费资源,因为如果不用用到,而调用又很耗费内存,这样就造成了浪费资源。懒汉式一开始不创建对象,在用户调用getInstance的时候才new对象,优
2021-03-30 22:31:20
175
原创 手写WebServer
手写WebServer提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录手写WebServer前言反射1.获取class对象 三种方式* 2.可以动态创建对象XML解析解析步骤:数据处理前言java高淇300集的251 - 269 知识整理反射反射:把java类中的各种结构(方法,属性,构造器,类名)映射成一个个的java对象反射是框架设计的灵魂1.获取class对象 三种方式//三种方式获取class对象 //1 getClass Iphone iphon
2021-03-21 17:35:57
444
1
原创 网络编程----TCP实现聊天室项目
文章目录前言客户端服务端服务端的源代码:实现效果前言在学TCP的时候就做了一个多用户登录并得到响应的一个小项目,这个聊天室也是基于TCP通信原理的交互,在服务端对接收的Socket对象封装成线程类,开启多线程实现多用户同时接发数据。不同的点是:客户端对接收和发送的代码进行了封装,封装成独立出来的两个线程类,就可以实现读写分离,不再是请求响应式的交流。public class Client { public static void main(String[] args) throws Un..
2021-03-19 20:07:46
512
1
原创 网络编程----TCP协议
文章目录前言TCP基本流程TCP实现双向交互TCP实现多用户同时操作前言UDP的发送优点是快速,不过不安全,不一定发的到目的地。TCP的优点是安全,先建立好连接,然后才发送数据连接需要建立IO流,在客户端那边要用数据输出流写入数据,服务器端则要开数据输入流读入数据TCP基本流程客户端1.建立连接:使用Socket创建客户端 ,指定服务器的地址和端口2.操作:输入输出流3.释放资源public class Cilent { public static void main(Strin
2021-03-19 17:17:57
87
原创 网络编程入门
文章目录前言基本概念IP端口URL网络爬虫传输协议前言网络编程关注的是底层对数据的传输,要学习协议,不同资源之间交流的基础就是需要依据一个协议栈,常见的协议有tcp和udp,tcp相当于打电话,需要先建立连接才能传输,不过比较安全。udp相当于写信,直接写直接送,不需要先建立连接,缺点就是不安全,容易丢失。基本概念IP常用类 InetAddress区分计算机InetAddress in = InetAddress.getLocalHost(); //返回本机 System.out..
2021-03-19 16:34:07
77
原创 多线程——安全并发
文章目录前言一.线程安全二.锁块三.高级容器CopyOnWriteArrayList四.死锁附加知识前言一.线程安全同一个,同时,多个 则线程会不安全synchronized 锁对象,不是锁方法目标不对锁定失败,选好要锁的对象,不是提款机,是提款人Public synchronized void test(){if(accont.money - drawingMoney<0){ Return;}}Public void run() { test();}二.锁块/
2021-03-19 16:22:51
67
原创 多线程--基础方法
文章目录一.线程概念二.创建线程方式三.lambda简化线程建立四.终止线程五.暂停线程 sleep六.礼让线程 yield七.插队线程 join八.线程状态state九.优先级 Priority十.守护线程Daemon一.线程概念一个程序对应一个进程,一个进程对应多个线程二.创建线程方式方式一:1.创建:继承thread +重写run2.启动:创建子类对象+start例子:public class TDownload extends Thread { //继
2021-03-19 16:08:30
280
1
原创 洛谷习题
P1025 [NOIP2001 提高组] 数的划分 dfs解法将整数nn分成kk份,且每份不能为空,任意两个方案不相同(不考虑顺序)。例如:n=7n=7,k=3k=3,下面三种分法被认为是相同的。1,1,51,1,5;1,5,11,5,1;5,1,15,1,1.问有多少种不同的分法。输入格式n,kn,k (6<n \le 2006<n≤200,2 \le k \le 62≤k≤6)输出格式11个整数,即不同的分法。package luogu;import java.ut
2021-03-15 20:53:23
705
1
原创 java算法——完全背包
之前学习的01背包代码的递归数组用的是二维的,今天学到可以优化成一维数组,代码如下:for(int i=1;i<=m;i++) for(int j=t;j>=a[i];j--) 改变的是j的循环判断,要大于当前选择的编号的重量 f[j] = Math.max(f[j], f[j-a[i]]+b[i]); System.out.println(f[t]);01背包是指每种物品只能选择一个,而完全背包指的是每种物品可以选择无限个,这样的话最优解可能是只包含一种物品,代码如下:
2021-03-04 21:12:30
260
1
原创 java算法———背包问题2
之前做的背包问题都是选最合适的一条路,今天做到的一道是满足条件就记录的。P1164关键代码如下:在相等的时候做个+1的行为是可以成立,所以算一种方法,所以+1在大于的时候不再是去洛两条路之间是最大,而是两条路都加起来,因为只需要满足条件即可 for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) { if(j==a[i])f[i][j]=f[i-1][j]+1; if(j&
2021-03-01 21:25:04
117
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人