自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 收藏
  • 关注

原创 openssl_公钥加密,数字签名,公钥认证,认证授权,基于PKI授权

openssl学习!为了完成老师布下的实验 ,通过在网上搜集资料,一步一步了解其中的原理我是通过蓝桥云课提供的免费课程学习的 但是其中有一步服务端与客户端的demo中的证书到2021年1月份到期了 导致没法进行实验 所以自己又查阅了一些资料熟悉公钥加密与PKI的概念,实验包含公钥加密,数字签名,公钥认证,认证授权,基于PKI授权等内容,使用openssl 命令行工具或者写程序的方式建立基于PKI的安全信道。实验环境:Centos 7数字证书认证机构(CA)​ 简单地说是负责发放和管理

2021-05-11 17:06:46 1034 12

原创 简单入门Minio

Minio通过b站视频老师学到的一个技术 总结我用到的地方 详细的可以查看链接https://www.bilibili.com/video/BV1AY411N7te?p=1一句话:分布式文件存储系统简介:MinIO是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小, 从几kb到最大5T不等。MinlO是一个非常轻量

2022-04-29 11:07:52 919

原创 分享函数式接口妙用

分享函数式接口妙用业务问题: 通过rpc远程传来一个表示code的int值。 一个表示desc的string字符串。想获取code对应的Type枚举中的三个枚举类型中的desc(其实就是传过来的desc字符串,但是由于是远程传来,不知道是否有对应枚举,所以需要查询一次才会调用查询数据库的sql语句)修改之前的代码内容想要效果:判断传来的 code值Type枚举里有没有,有的话再根据type 去找对应的枚举有没有传来的desc/** * @author zhangan * @date 2022

2022-02-21 20:39:25 251

原创 复习java集合

简单复习一下java的集合

2021-06-18 23:59:21 83

原创 Zookeeper学习笔记

Zookeeper学习ZooKeeper(动物园管理者)简称ZK,一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。ZooKeeper使用Java 所编写,但是支持Java和C两种编程语言。协调服务dubbo框架 springcloud框架 zk 注册中心Hadoop Hbase组件﹐集群架构﹑ zk集群管理者zk实现分布式锁内存数据模型模型结构2.模型的特点每个子目录如/node

2021-06-07 19:45:50 199 4

原创 javaweb_cookie复习

javaweb_cookie复习经过动力节点杜老师的视频讲解总结下来的笔记1、Cookie是什么?Cookie作用?Cookie保存在哪里?Cookie可以保存会话状态,但是这个会话状态是保留在客户端上。只要Cookie清除,或者Cookie失效,这个会话状态就没有了。Cookie是保存在浏览器客户端上的Cookie可以保存在浏览器的缓存中,浏览器关闭Cookie消失Cookie也可以保存在客户端的硬盘文件中,浏览器关闭Cookie还在,除非Cookie失效。2、Cookie只有在j

2021-05-30 23:24:38 70

原创 SSM 文件的上传与下载

文件上传依赖: <!--文件上传--> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.4</version> </dependency>springmvc 配置文件的配置

2021-05-29 23:08:13 337

原创 Spring声明式事务的配置

Spring声明式事务的配置<!--tx : advice标签 作用: 1.根据指定的事务管理器在工厂中创建一个事务的环绕通知对象 2.对业务层方法进行细粒度事务控制--><tx:advice transaction-manager="transactionManager" id="txAdvice"> <!--事务细粒度配置--> <tx:attributes> <!--name 要与servic

2021-05-28 23:24:08 162

原创 spring_AOP 动态代理原理

动态代理原理通过jdk提供的Proxy这个类,动态为现有的业务生成代理类参数一:当前线程类加载器参数二:生成代理类的接口类型参数三:通过代理类对象调用方法时会优先进入参数三中的invoke方Proxy.newProxyInstance(loader, interfaces, h);/返回值就是动态代理对象package dynamicproxy;import staticproxy.UserService;import staticproxy.UserServiceImpl;import

2021-05-27 22:52:14 68

原创 JUC学习

7.JUC经过尚硅谷李贺飞老师的视频讲解 总结下来的笔记volatile关键字-内存可见性package com.zhangan.juc;import org.junit.Test;/** * @Author: 张安 * @Date: 2021/5/25 21:04 * @Description: volatile 关键字 *//* 内存可见性问题 多个线程都有各自的缓存 对于共享数据的操作不可见 synchronized (threadDemo) {

2021-05-26 21:01:27 65

原创 Lambda、函数式接口、方法引用 _java

1.Lambda表达式package com.zhangan.lambda;/** * @Author: 张安 * @Date: 2021/5/24 22:16 * @Description: 学习Lambda语法 */import com.zhangan.entity.Employee;import com.zhangan.service.MyFun;import com.zhangan.service.MyFunction;import com.zhangan.service.M

2021-05-25 21:11:32 90

原创 Node学习

Node学习1.提示信息cnpm install --save-dev @types/nodenpm config set registryhttps://registry.npm.taobao.org2.Node中的JavaScriptEcmaScript没有 DOM 、BOM核心模块第三方模块用户自定义模块核心模块Node为服务器提供了很多服务器级别的API,这些API被包装到一个具名的核心模块中。eg :fs http path osvar fs = requ

2021-05-23 21:01:06 254

原创 简单复习Mysql(下)

简单复习Mysql事务一个完整的业务逻辑单元 不可再分和事务有关的语句只有DML语句(insert delete update) 事务的存在是为了保证数据的完整性,安全性只有一条DML语句 无需事务机制3.5、关于事务之间的隔离性事务隔离性存在隔离级别,理论上隔离级别包括4个:第一级别:读未提交(read uncommitted)对方事务还没有提交,我们当前事务可以读取到对方未提交的数据。读未提交存在脏读(Dirty Read)现象:表示读到了脏的数据。第二级别:读己

2021-05-22 23:57:50 93 1

原创 简单复习Mysql(上)

简单复习Mysqlemp表+-------+--------+-----------+------+------------+---------+---------+--------+| EMPNO | ENAME | JOB | MGR | HIREDATE | SAL | COMM | DEPTNO |+-------+--------+-----------+------+------------+---------+---------+--------+|

2021-05-21 21:36:32 97

原创 二分查找_java实现

二分查找经过尚硅谷韩顺平老师的视频讲解 总结下来的笔记有序数组!!!二分查找:请对一个有序数组进行二分查找{1,8,10,89,1000,1234]},输入一个数看看该数组是否存在此数,并且求出下标,如果没有就提示"没有这个数”。二分查找的思路分析Ⅰ1.首先确定该数组的中间的下标mid= (left+right) / 22.然后让需要查找的数findval和arr[mid]比较---- findval > arr[mid],说明你要查找的数在mid的右边,因此需要递归的向右查找-

2021-05-19 20:30:27 249

原创 克鲁斯卡尔算法_java实现

克鲁斯卡尔算法经过尚硅谷韩顺平老师的视频讲解 总结下来的笔记package com.zhangan.Algorithm.kruskal;import java.util.Arrays;/** * @Author: zhangan * @Date: 2021/5/11 19:56 * @Description: 克鲁斯卡尔解决修路问题 */public class Kruscal { public static void main(String[] args) {

2021-05-18 21:49:56 136

原创 贪心算法_java实现

贪心算法package com.zhangan.Algorithm.greedy;import java.util.ArrayList;import java.util.HashMap;import java.util.HashSet;/** * @Author: zhangan * @Date: 2021/5/9 15:46 * @Description: 贪心算法解决集合覆盖问题 */public class GreedyAlgorithm { public stat

2021-05-17 23:08:27 165

原创 KMP算法_java实现

KMP算法package com.zhangan.Algorithm.kmp;import java.util.Arrays;/** * @Author: zhangan * @Date: 2021/5/9 11:50 * @Description: kmp算法 */public class KMPAlgorithm { /** * 获取一个字符串的部分匹配值表 * * @param dest 要匹配的模式串 * @return 部分匹

2021-05-16 21:29:28 129

原创 选择排序_java实现

选择排序经过尚硅谷韩顺平老师的视频讲解 总结下来的笔记选择式排序也属于内部排序法,是从欲排序的数据中,按指定的规则选出某一元素,再依规定交换位置后达到排序的目的。选择排序思想:选择排序(select sorting)也是一种简单的排序方法。它的基本思想是:第一次从arr[0]~arr[n-1]中选取最小值,与arr[0]交换,第二次从arr[1]arr[n-1]中选取最小值,与arr[1]交换,第三次从arr[2]arr[n-1]中选取最小值,与arr[2]交换,…,第i次从arr[i-1]a

2021-05-15 21:58:22 61 1

原创 插入排序_java实现

插入排序经过尚硅谷韩顺平老师的视频讲解 总结下来的笔记插入排序法思想:插入排序(Insertion Sorting)的基本思想是:把n个待排序的元素看成为一个有序表和一个无序表,开始时有序表中只包含一个元素,无序表中包含有n-1个元素,排序过程中每次从无序表中取出第一个元素,把它的排序码依次与有序表元素的排序码进行比较,将它插入到有序表中的适当位置,使之成为新的有序表。拆开分析 public static void main(String[] args) { int[]

2021-05-14 19:45:05 53

原创 快速排序_java实现

快速排序经过尚硅谷韩顺平老师的视频讲解 总结下来的笔记快速排序(Quicksort)是对冒泡排序的一种改进。基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列package com.zhangan.sort;import java.util.Arrays;public class QuickSort { public s

2021-05-13 23:01:47 74

原创 二叉排序树_java实现

二叉排序树经过尚硅谷韩顺平老师的视频讲解 总结下来的笔记二叉排序树介绍二叉排序树:BST: (Binary Sort(Search) Tree),对于二叉排序树的任何一个非叶子节点,要求左子节点的值比当前节点的值小,右子节点的值比当前节点的值大。特别说明:如果有相同的值,可以将该节点放在左子节点或右子节点package com.zhangan.tree.binarysorttree;public class BinarySortTreeDemo { public static

2021-05-12 22:46:02 287

原创 二分查找(非递归)

二分查找(非递归)package com.zhangan.Algorithm.binarySearchNoRecurion;/** * @Author: zhangan * @Date: 2021/5/8 20:29 * @Description: 二分查找的非递归实现 */public class BinarySearchNoRecursion { /** * 二分查找的非递归实现 * * @param arr 待查找的数组 默认数组是升序

2021-05-10 23:50:03 86 1

原创 基数排序_java实现

基数排序经过尚硅谷韩顺平老师的视频讲解 总结下来的笔记基数排序基数排序(桶排序)介绍:1)基数排序(radixsopt)属于“分配式排序”(distribution sort),又称“桶子法”(bucket sort)或bin sort,顾名思义,它是通过键值的各个位的值,将要排序的元素分配至某些“桶”中,达到排序的作用2)基数排序法是属于稳定性的排序,基数排序法的是效率高的稳定性排序法3)基数排序(Radix Sort)是桶排序的扩展4)基数排序是1887年赫尔曼·何乐礼发明的。它是这样

2021-05-09 21:34:12 52

原创 图的深度优先遍历与广度优先遍历_java实现

图的遍历图遍历介绍所谓图的遍历,即是对结点的访问。一个图有那么多个结点,如何遍历这些结点,需要特定策略,一般有两种访问策略:深度优先遍历广度优先遍历深度优先遍历基本思想图的深度优先搜索(Depth First Search)。1)深度优先遍历,从初始访问结点出发,初始访问结点可能有多个邻接结点,深度优先遍历的策略就是首先访问第一个邻接结点,然后再以这个被访问的邻接结点作为初始结点,访问它的第一个邻接结点,可以这样理解:每次都在访问完当前结点后首先访问当前结点的第一个邻接结点。2)我们可

2021-05-08 20:55:15 344

原创 二叉树的前中后序遍历_java实现

树二叉树能提高数据存储,读取的效率,比如利用二叉排序树(Binary Sort Tree),既可以保证数据的检索速度,同时也可以保证数据的插入,删除,修改的速度。分析二叉树的前序,中序,后序的遍历步骤1.创建一颗二叉树---2.前序遍历2.1先输出当前节点(初始的时候是root节点)2.2如果左子节点不为空,则递归继续前序遍历2.2如果右子节点不为空,则递归继续前序遍历---3.中序遍历3.1如果当前节点的左子节点不为空,则递归中序遍历,3.2输出当前节点3.2如果当前节点的右子节点

2021-05-07 21:25:19 178

原创 数组模拟栈,链表模拟栈_java实现

栈栈的英文为(stack)栈是一个先入后出(FILO-First In Last Out)的有序列表。栈(stack)是限制线性表中元素的插入和删除只能在线性表的同一端进行的一种特殊线性表。允许插入和删除的一端,为变化的一端,称为栈顶(Top),另一端为固定的一端,称为栈底(Bottom)。根据栈的定义可知,最先放入栈中元素在栈底,最后放入的元素在栈顶,而删除元素刚好相反,最后放入的元素最先删除,最先放入的元素最后删除应用场景子程序的调用:在跳往子程序前,会先将下个指令的地址存到堆栈中,直

2021-05-06 22:33:00 47

原创 链表(单链表,双向链表,单向环形链表)_java实现

链表单链表不考虑排名,直接往最后一个位置插入元素package com.zhangan.linkedlist;public class SingleLinkedListDemo { public static void main(String[] args) { //创建节点 HeroNode hero1 = new HeroNode(1, "宋江", "及时雨"); HeroNode hero2 = new HeroNode(2

2021-05-05 22:20:43 79

原创 数组模拟队列以及环形队列_java实现

数组模拟队列 以及 数组模拟环形队列代码部分package com.zhangan.queue;import java.util.Scanner;public class ArrayQueueDemo { public static void main(String[] args) { ArrayQueue queueDemo = new ArrayQueue(3); char key = ' ';//接收用户输入 Scanner

2021-05-04 21:04:20 73

原创 稀疏数组与队列_java实现

稀疏数组与队列稀疏数组当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组。稀疏数组的处理方法是:1)记录数组一共有几行几列,有多少个不同的值2)把具有不同值的元素的行列及值记录在一个小规模的数组中,从而缩小程序的规模二维数组转稀疏数组的思路1.遍历原始的二维数组,得到有效数据的个数sum2.根据sum就可以创建稀疏数组sparseArr int[sum+1][3]3.将二维数组的有效数据数据存入到稀疏数组稀疏数组转原始的二维数组的思路1.先读取稀疏数组的

2021-05-03 21:58:46 56

原创 Mysql架构学习

Mysql架构!!单一架构主从复制架构核心解决的是数据的冗余备份问题从节点监听主节点的log文件进行同步架构搭建1.集群规划192.168.136.129 主节点192.168.136.130 从节点---2.编辑配置vim /etc/my.cnf加入下面四句#唯一标识 每个节点需要自己修改 不能重复 server-id 1..2..3..#文件名前缀#主节点有变化从节点执行#从节点跳过错误的sql语句server-id=1log-bin=mysql-bin

2021-05-02 20:00:16 59 1

原创 Linux学习总结

Linux!!Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于 POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。伴随着互联网的发展,Linux得到了来自全世界软件爱好梁、组织、公司的支持。它除了在服务器操作系统方面保持着强劲的发展势头以外,在个人电脑、嵌入式系统上都有着长足的进步。目前Linux存在着许多不同的Linux发行版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、台式计算机。Linux出现于199

2021-05-01 21:32:53 164

原创 redis 笔记分享

Redis!!!内存型数据库特点Redis是一个高性能key/value内存型数据库Redis支持丰富的数据类型Redis支持持久化Redis单线程,单进程安装准备环境centos7下载redis安装包redis-6.0.9.tar.gz解压部署解压文件tar -xzvf redis-5.0.10.tar.gz 安装gccyum install -y gcc进入到解压文件夹make MALLOC=libc编译完成后make install

2021-04-30 21:41:04 134 1

原创 jwt学习总结

package com.zhangan.utils;import com.auth0.jwt.JWT;import com.auth0.jwt.JWTCreator;import com.auth0.jwt.JWTVerifier;import com.auth0.jwt.algorithms.Algorithm;import com.auth0.jwt.interfaces.DecodedJWT;import java.security.Signature;import java.uti

2021-04-29 23:07:59 152

原创 nginx学习笔记

Nginx!!!!!!反向代理,负载均衡,动静分离基本介绍Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。作为Web服务器Nginx可以作为静态页面的web 服务器,同时还支持CGI协议的动态语言,比如 perl、php等。但是不支持 java。Java程序

2021-04-28 19:14:21 95

原创 java-io操作学习

IO流什么是流? 概念:内存与存储设备之间传输数据的通道 流的分类 按照方向 输入流:将 存储设备 中的内容读入 内存 中 输出流:将 内存 中的内容写入到 存储设备 中 按单位 字节流: 可以读写所有数据 字符流: 只能读写文本数据 按功能 节点流: 具有实际传输数据的读写功能。 过滤流:在节点流的基础之上增强功能。 字节流字节流的父类(抽象类)..

2021-04-27 16:56:49 64

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除