![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
zhang'an
这个作者很懒,什么都没留下…
展开
-
简单入门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 · 1143 阅读 · 0 评论 -
分享函数式接口妙用
分享函数式接口妙用 业务问题: 通过rpc远程传来一个表示code的int值。 一个表示desc的string字符串。想获取code对应的Type枚举中的三个枚举类型中的desc(其实就是传过来的desc字符串,但是由于是远程传来,不知道是否有对应枚举,所以需要查询一次才会调用查询数据库的sql语句) 修改之前的代码内容 想要效果:判断传来的 code值Type枚举里有没有,有的话再根据type 去找对应的枚举有没有传来的desc /** * @author zhangan * @date 2022原创 2022-02-21 20:39:25 · 260 阅读 · 0 评论 -
复习java集合
简单复习一下java的集合原创 2021-06-18 23:59:21 · 100 阅读 · 0 评论 -
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 · 74 阅读 · 0 评论 -
SSM 文件的上传与下载
文件上传依赖: <!--文件上传--> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.4</version> </dependency> springmvc 配置文件的配置原创 2021-05-29 23:08:13 · 351 阅读 · 0 评论 -
Spring声明式事务的配置
Spring声明式事务的配置 <!--tx : advice标签 作用: 1.根据指定的事务管理器在工厂中创建一个事务的环绕通知对象 2.对业务层方法进行细粒度事务控制 --> <tx:advice transaction-manager="transactionManager" id="txAdvice"> <!--事务细粒度配置--> <tx:attributes> <!--name 要与servic原创 2021-05-28 23:24:08 · 167 阅读 · 0 评论 -
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 · 73 阅读 · 0 评论 -
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 · 70 阅读 · 0 评论 -
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 · 95 阅读 · 0 评论 -
二分查找_java实现
二分查找 经过尚硅谷韩顺平老师的视频讲解 总结下来的笔记 有序数组!!! 二分查找: 请对一个有序数组进行二分查找{1,8,10,89,1000,1234]},输入一个数看看该数组是否存在此数,并且求出下标,如果没有就提示"没有这个数”。 二分查找的思路分析Ⅰ 1.首先确定该数组的中间的下标mid= (left+right) / 2 2.然后让需要查找的数findval和arr[mid]比较 ---- findval > arr[mid],说明你要查找的数在mid的右边,因此需要递归的向右查找 -原创 2021-05-19 20:30:27 · 253 阅读 · 0 评论 -
克鲁斯卡尔算法_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 · 141 阅读 · 0 评论 -
贪心算法_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 · 167 阅读 · 0 评论 -
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 · 135 阅读 · 0 评论 -
选择排序_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 · 64 阅读 · 1 评论 -
插入排序_java实现
插入排序 经过尚硅谷韩顺平老师的视频讲解 总结下来的笔记 插入排序法思想: 插入排序(Insertion Sorting)的基本思想是:把n个待排序的元素看成为一个有序表和一个无序表,开始时有序表中只包含一个元素,无序表中包含有n-1个元素,排序过程中每次从无序表中取出第一个元素,把它的排序码依次与有序表元素的排序码进行比较,将它插入到有序表中的适当位置,使之成为新的有序表。 拆开分析 public static void main(String[] args) { int[]原创 2021-05-14 19:45:05 · 57 阅读 · 0 评论 -
快速排序_java实现
快速排序 经过尚硅谷韩顺平老师的视频讲解 总结下来的笔记 快速排序(Quicksort)是对冒泡排序的一种改进。基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列 package com.zhangan.sort; import java.util.Arrays; public class QuickSort { public s原创 2021-05-13 23:01:47 · 79 阅读 · 0 评论 -
二叉排序树_java实现
二叉排序树 经过尚硅谷韩顺平老师的视频讲解 总结下来的笔记 二叉排序树介绍 二叉排序树:BST: (Binary Sort(Search) Tree),对于二叉排序树的任何一个非叶子节点,要求左子节点的值比当前节点的值小,右子节点的值比当前节点的值大。 特别说明:如果有相同的值,可以将该节点放在左子节点或右子节点 package com.zhangan.tree.binarysorttree; public class BinarySortTreeDemo { public static原创 2021-05-12 22:46:02 · 299 阅读 · 0 评论 -
二分查找(非递归)
二分查找(非递归) 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 · 92 阅读 · 1 评论 -
基数排序_java实现
基数排序 经过尚硅谷韩顺平老师的视频讲解 总结下来的笔记 基数排序 基数排序(桶排序)介绍: 1)基数排序(radixsopt)属于“分配式排序”(distribution sort),又称“桶子法”(bucket sort)或bin sort,顾名思义,它是通过键值的各个位的值,将要排序的元素分配至某些“桶”中,达到排序的作用 2)基数排序法是属于稳定性的排序,基数排序法的是效率高的稳定性排序法 3)基数排序(Radix Sort)是桶排序的扩展 4)基数排序是1887年赫尔曼·何乐礼发明的。它是这样原创 2021-05-09 21:34:12 · 54 阅读 · 0 评论 -
图的深度优先遍历与广度优先遍历_java实现
图的遍历 图遍历介绍 所谓图的遍历,即是对结点的访问。一个图有那么多个结点,如何遍历这些结点,需要特定策略,一般有两种访问策略: 深度优先遍历 广度优先遍历 深度优先遍历 基本思想 图的深度优先搜索(Depth First Search)。 1)深度优先遍历,从初始访问结点出发,初始访问结点可能有多个邻接结点,深度优先遍历的策略就是首先访问第一个邻接结点,然后再以这个被访问的邻接结点作为初始结点,访问它的第一个邻接结点,可以这样理解:每次都在访问完当前结点后首先访问当前结点的第一个邻接结点。 2)我们可原创 2021-05-08 20:55:15 · 352 阅读 · 0 评论 -
二叉树的前中后序遍历_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 · 183 阅读 · 0 评论 -
数组模拟栈,链表模拟栈_java实现
栈 栈的英文为(stack) 栈是一个先入后出(FILO-First In Last Out)的有序列表。 栈(stack)是限制线性表中元素的插入和删除只能在线性表的同一端进行的一种特殊线性表。允许插入和删除的一端,为变化的一端,称为栈顶(Top),另一端为固定的一端,称为栈底(Bottom)。 根据栈的定义可知,最先放入栈中元素在栈底,最后放入的元素在栈顶,而删除元素刚好相反,最后放入的元素最先删除,最先放入的元素最后删除 应用场景 子程序的调用:在跳往子程序前,会先将下个指令的地址存到堆栈中,直原创 2021-05-06 22:33:00 · 59 阅读 · 0 评论 -
链表(单链表,双向链表,单向环形链表)_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 · 85 阅读 · 0 评论 -
数组模拟队列以及环形队列_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 · 87 阅读 · 0 评论 -
稀疏数组与队列_java实现
稀疏数组与队列 稀疏数组 当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组。 稀疏数组的处理方法是: 1)记录数组一共有几行几列,有多少个不同的值 2)把具有不同值的元素的行列及值记录在一个小规模的数组中,从而缩小程序的规模 二维数组转稀疏数组的思路 1.遍历原始的二维数组,得到有效数据的个数sum 2.根据sum就可以创建稀疏数组sparseArr int[sum+1][3] 3.将二维数组的有效数据数据存入到稀疏数组 稀疏数组转原始的二维数组的思路 1.先读取稀疏数组的原创 2021-05-03 21:58:46 · 63 阅读 · 0 评论