自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 面经笔记

JavaJava容器Java多线程TreadLocalJVMMySQL计算机网络http请求头、不同版本间的区别操作系统redis

2020-09-10 16:30:05 329

原创 尚硅谷数据结构和算法Java代码导航

类别标题对应视频链接 链表 Java实现静态链表 [点击](https://blog.csdn.net/weixin_44963741/article/details/104496381) Java实现单向单链表 16~20 点击 ...

2020-03-31 20:56:57 1342

原创 shiro + jwt实现登录及权限认证中发生的405 Method not Allowed bug

描述:调试修改密码接口的时候,即使新密码和旧密码一样,接口也只有第一个可以调用成功,后面返回405 Method not Allowed。问题一问题描述:为了防止修改密码后在别的浏览器依旧可以使用旧密码访问的情况,在修改密码的业务逻辑中清楚了token的缓存信息,第二次访问时原来的token无效了。解决办法:重新登录问题二第二个问题:token无效时返回的是405,不是设定的token无效信息。思路:尝试把请求方式改成GET,可以正常返回token异常信息。进而发现在请求头中不携带token或者

2020-11-23 14:01:41 793 6

原创 计算机网路实验课网站接口文档

一、管理员接口需要管理员权限的操作1,删除用户请求路径:/admin/delete请求方法:POST请求参数:json字段名是否必填idY2,注册管理员账号说明,只有管理员权限或者数据库中没有管理员账号时才可以注册管理员账号请求路径:/admin/register请求方法:POST请求参数:json字段名是否必填idYnameNpasswordY二、用户操作需要登录的操作1,注销请求路径:/logout请求

2020-10-12 21:35:19 169

原创 HR面

1.实习经历2.研究生经历3.为什么选择网易云4.为什么做研发5.优缺点6.学校课余时间做什么7.别人怎么评价自己8.有没有做过超出别人预期的事9.父母对来南方工作怎么看(楼主北方人)10.职业规划11.反问13.如何评价自己的实习情况(是否由需求延期等等)14.有什么优势劣势15.如果你带领一个团队完成一项紧急需求,只有半个月的时间但工作量会有三周左右,你如何处理。...

2020-09-22 11:14:08 157

原创 算法

1,二叉树多个节点的最近公共祖先,时间复杂度2,rand5()转rand7()3,最大栈、最小栈4,最小生成树算法5,根据前序和中序遍历数组求后序遍历数组6,集合的所有子集7,删除字符串中连续相同的字符8,一个无序数组除了一个数都出现偶数次,且相邻出现,比如112334444400,找出单独出现的数字9,二分判断波峰10,大数相加(字符串)11,给定数组,每个元素代表一个木头的长度,木头可以任意截断,从这堆木头中截出至少k个相同长度为m的木块,已知k,求max(m)12,给定数组[1,

2020-09-16 22:49:08 248

原创 操作系统笔记

一 连续内存分配1,内存碎片内部碎片:进程内部碎片外部碎片:进程外部碎片2,内存分配首次匹配:第一次找到的足够大小的内存空间分配给进程优点:简单,易于产生更大的空闲块缺点:外部碎片,不确定性最优匹配:与进程需要的内存空间最合适的内存空间优点:小尺寸进程合适缺点:慢,微小碎片最差匹配:最大的内存空间优点:中等尺寸合适缺点:慢,大进程无法分配二 非连续内存分配1,分段2,分页,每页大小相等由页表完成逻辑地址和真实地址的映射,即页号和帧号页内偏移多级页表:减少存储占用,即没有

2020-09-07 16:03:29 87

原创 springMVC笔记

一 拦截器/** * 当有多个拦截器时 * preHandle:按照拦截器数组的正向顺序执行 * postHandle:按照拦截器数组的反向顺序执行 * afterCompletion:按照拦截器数组的反向顺序执行 * * 多个拦截器中若有一个preHandle返回值为false, * 该拦截器及之前的拦截器的preHandle都会执行 * 所有的postHandle都不会被执行 * 该拦截器之前的afterCompletion都会执行 */public class TestInte

2020-08-30 16:55:49 67

原创 Mybatis笔记

参数赋值方式:KaTeX parse error: Expected 'EOF', got '#' at position 42: …sql,一定要注意单引号问题#̲{}:PrepareState…{},如模糊查询和批量删除不同的参数类型,#{} ${}取值方式不同1、当传输参数为单个String或者基本数据类型及包装类时:#{},可以以任意名字获得参数值,只能以{},只能以,只能以{value} ${_parameter}获取2、当参数为单个JavaBean时#{} 都可以通过属性名直接

2020-08-30 16:55:17 63

原创 spring笔记

一 spring事物@Transactional(propagation = Propagation.REQUIRED,isolation = Isolation.REPEATABLE_READ, timeout = 3, readOnly = false) public void buyBook(Integer pid, Integer bid) { Integer price = dao.getPriceById(bid);

2020-08-30 16:40:54 65

原创 用docker-compose 创建redis cluster集群

redis集群官方教程:https://redis.io/topics/cluster-tutorial参考文章:https://blog.csdn.net/java_Murcielago/article/details/102776182https://blog.csdn.net/qq_39508627/article/details/95967240docker-compose环境已配好。1.创建redis配置文件创建7001,7002,7003,7004,7005,7006六个文件夹,文件

2020-07-15 22:31:32 367

原创 Java synchronized和Lock的区别

1 原始构成synchronized是关键字,基于JVM层面;Lock是具体类(java.util. concurrent.Locks.Lock)是api层面的锁。2 使用方法synchronized不需要用户手动释放锁,当 synchronized代码执行完成后系统会自动让线程释放锁;ReentrantLock需要用户手动释放锁,若没有主动释放,就有可能导致死锁现象。要用lock(),...

2020-04-24 12:56:02 138

原创 Java JUC并发编程笔记

1. volatilevolatile是一个Java的修饰符,用volatile修饰的变量有三个特性:保证可见性、不保证原子性、禁止指令重排。JMM,Java Memory model。Java内存模型,Java内存模型规定所有的变量都是存在主存当中,每个线程都有自己的工作内存。线程对变量的所有操作都必须在工作内存中进行,而不能直接对主存进行操作。并且每个线程不能访问其他线程的工作内存。所以线...

2020-04-22 21:28:13 215

原创 Java生产者消费者模式

package com;class Clerk{ private int proNum; public synchronized void proProduct(){ if(proNum<20){ System.out.println("生产者生产一个产品,剩余产品数量:" + ++proNum); noti...

2020-04-14 12:06:17 86

原创 Java jdk8新特性Stream API

首先创建一个Person类备用:package jdk8;import java.util.ArrayList;public class Person implements Comparable<Person>{ private String name; private int age; private double salary; publ...

2020-04-13 23:14:05 147

原创 Java的TCP和UDP网络

TCPimport org.junit.Test;import java.io.*;import java.net.InetAddress;import java.net.ServerSocket;import java.net.Socket;import java.net.UnknownHostException;public class TCPTest { @Test...

2020-04-13 23:03:35 179

原创 Java注解

元注解可以用来描述其他注解,Java有四个元注解:1,@Retention:注解的生命周期2,@Target:注解可以用的地方3,@Inherited:说明注解可以被继承4,@Documented:说明该注解将被包含在javadoc中import java.lang.annotation.*;import java.util.ArrayList;import java.util.It...

2020-04-13 22:58:45 83

原创 Java枚举类

可以利用枚举类实现单例模式interface Info{ void show();}public enum Season implements Info{ SPRING("春天"){ @Override public void show() { System.out.println(getName()); ...

2020-04-13 22:32:20 85

原创 Java静态代理和动态代理

静态代理://接口interface ClothFactory{ void produce();}//被代理类class Adidas implements ClothFactory{ @Override public void produce() { System.out.println("我生产了一双Adidas运动鞋"); }}/...

2020-04-13 22:28:08 71

原创 Java获取Class实例的四种方式、通过反射调用类的构造器,属性和方法

package reflection;import org.junit.Test;import java.io.FileInputStream;import java.io.InputStream;import java.lang.reflect.Constructor;import java.lang.reflect.Field;import java.lang.reflect....

2020-04-13 22:03:54 231

原创 Java的HashSet和HashMap

在Java中HashSet是用HashMap实现的,在jad8以前HashMap是用数组+链表实现的,在jdk8中变成了数组+链表+红黑树。下面介绍jdk8中HashMap的实现原理。数组扩容几个概念:数组容量:数组的长度,初始值默认为16;负载因子:作为数组扩容的判断条件,默认为0.75;临界值:数组容量*负载因子;1,在new HashMap()的时候不会创建数组,而是在第一次调用...

2020-04-13 21:55:54 141

原创 Java实现迷宫最短路径的BFS算法

利用广度优先遍历算法的特点,由于迷宫每次只能走一格,所以对于任意一个节点,bfs最先到达时一定时最短路径。package recursion;import java.util.ArrayDeque;import java.util.Deque;import java.util.Stack;public class Maze { private class Node{ int x...

2020-03-31 17:36:27 3639 6

原创 Java实现马踏棋盘/骑士周游

尝试了很多方法目前只有这一种能成功。。。package algorithm;import java.awt.Point;import java.util.ArrayList;import java.util.Arrays;import java.util.Comparator;public class TravelChessBoard { int[][] chess; int ...

2020-03-31 17:30:40 193

原创 Java实现Floyd弗洛伊德算法

参考视频:https://www.bilibili.com/video/BV1Ut41197NX算法思路:逐个顶点试探,找出从顶点Vi到顶点Vj所有可能存在的路径中最短的路径。最后二维数组dis中存放的是任意两个顶点间的最短路径,路径可以通过pre数组求出。package algorithm;import java.util.Arrays;public class Floyd { ...

2020-03-31 17:12:25 206

原创 Java实现最短路径算法之Dijkstra迪杰斯特拉算法

有点难理解,参考视频:https://www.bilibili.com/video/BV1mt411i7DX算法思路:将已访问的顶点放入集合s,每次操作找出距离这个集合最近的点k加入集合中,这样可以保证集合s内的点都是确定最短路径的点。然后尝试从起点经过点k到达其他未访问几点的距离,如果比原来dis[k]的距离短,就更新dis[k],这个操作可以保证dis是从起点经过集合s内的顶点到未访问顶点的...

2020-03-31 17:05:06 390

原创 Java实现Kruskal克鲁斯卡尔算法

图论中最小生成树算法之一,Kruskal算法从边出发,Prim算法从点出发。算法思路:将图中所有边按权值从小到大排序,选出不构成回路的最短的边,直到将所有点连通,即选择顶点个数减一的边。判断加入边后是否构成回路的方法:判断边的两个顶点的终点是否一致,不一致就不构成回路。package algorithm;import java.util.ArrayList;import java.uti...

2020-03-31 16:28:54 356

原创 Java实现Prim普利姆算法

最小生成树算法之一,算法思路:从起点开始,找出已访问节点与未访问节点的权值最短的边,并将新的节点加入已访问节点,循环直到所有节点被访问。package algorithm;import java.util.ArrayList;import java.util.Arrays;class Graph{ ArrayList<String> vertex; int[][] ed...

2020-03-31 16:16:21 202

原创 Java贪心算法示例

问题描述:见最少的基站覆盖所有城市,解不一定是最优,但较优。参考视频:https://www.bilibili.com/video/BV1E4411H73v?p=164package algorithm;import java.util.ArrayList;import java.util.HashMap;import java.util.HashSet;import java.ut...

2020-03-31 16:10:36 221

原创 Java实现01背包问题

参考视频:https://www.bilibili.com/video/BV1jt411m7Rcpackage algorithm;import java.util.Arrays;public class Knapsack { /** * 01背包问题 * @param w 物品的重量 * @param v 物品的价值 * @param c 背包的容量 * @re...

2020-03-31 16:07:33 440

原创 Java实现图的广度优先遍历和深度优先遍历

首先构造一个图的基本功能:package binarySortTree;import java.util.ArrayDeque;import java.util.ArrayList;import java.util.Arrays;import java.util.Stack;public class Graph { ArrayList<String> vertex;...

2020-03-27 13:14:04 461

原创 Java实现平衡二叉树AVL

import java.util.Stack;class Node{ int data; Node left; Node right; public Node(int data) { this.data = data; }}public class AVL { Node root; //添加节点 public void add(int value) { this....

2020-03-26 09:53:51 119

原创 Java实现二叉排序树

import java.util.Stack;class Node{ int data; Node left; Node right; public Node(int data) { this.data = data; }}public class BinarySortTree { Node root; //添加节点 public void add(int value...

2020-03-25 16:45:05 97

原创 Java实现哈夫曼数据压缩

1,根据被压缩的内容生成哈夫曼树。2,根据哈夫曼树生成每个字符对应的哈夫曼编码。3,对原文进行压缩。package tree;import java.util.ArrayList;import java.util.Arrays;import java.util.Collections;import java.util.HashMap;import java.util.List;...

2020-03-25 08:30:25 280

原创 Java实现前序、中序、后序线索化二叉树及遍历

1.1 前序线索化二叉树public void turnToPre(ThreadedNode temp) { if(temp == null) { return ; } if(temp.left == null) { temp.left = pre; temp.leftType = true; } if(pre != null && pre.right ==...

2020-03-19 22:57:27 1878 5

原创 Java二叉树相关全部代码

package tree;import java.util.ArrayDeque;import java.util.Stack;class Node{ String data; Node left; Node right; public Node(String t) { this.data = t; }}//顺序存储二叉树,完全二叉树class arrayTree{...

2020-03-19 22:36:27 121

原创 Java实现顺序存储二叉树及其前序、中序、后序遍历

//顺序存储二叉树,完全二叉树class arrayTree{ Node[] at; //bt为完全二叉树 public arrayTree(BinaryTree bt){ ArrayDeque<Node> quene = new ArrayDeque<Node>(); int count = 0; Node temp = bt.root; quen...

2020-03-19 22:34:00 258

原创 Java实现前序、中序、后序、层次查找

1 前序查找//前序遍历查找public Node preSearch(Node temp, String value) { if(temp.data.equals(value)) { return temp; } Node res = null; if(temp.left != null) { res = preSearch(temp.left, value); } if...

2020-03-14 16:45:28 256

原创 Java实现二叉树的递归和非递归遍历

1.1 递归前序遍历//递归前序遍历public void preOrderRec(Node temp) { if(temp == null) { System.out.println("BinaryTree is empty."); }else { System.out.print(temp.data + " "); if(temp.left != null) { pr...

2020-03-14 00:00:08 165

原创 Java实现哈希表(数组+链表)

public class HashDemo { public static void main(String[] args) { // TODO Auto-generated method stub HashTab ht = new HashTab(7); ht.add(6, "zhangsan"); ht.add(3, "lisi"); ht.add(1, "ww");...

2020-03-13 12:50:27 527

原创 Java查找算法汇总

1. 线性查找public static int seqSearch(int[] arr, int value) { for(int i=0; i<arr.length; i++) { if(arr[i] == value) { return i; } } return -1;}2. 折半查找/二分查找/二分查找,要求数组是有序的,这里以从小到大为标准,返回一个...

2020-03-12 16:34:09 122

空空如也

空空如也

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

TA关注的人

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