- 博客(101)
- 资源 (14)
- 收藏
- 关注

原创 Oauth2认证
1. Oauth2简介1.1 简介第三方认证技术方案最主要是解决认证协议的通用标准问题,因为要实现跨系统认证,各系统之间要遵循一定的接口协议。OAUTH协议为用户资源的授权提供了一个安全的、开放而又简易的标准。同时,任何第三方都可以使用OAUTH认证服务,任何服务提供商都可以实现自身的OAUTH认证服务,因而OAUTH是开放的。业界提供了OAUTH的多种实现如PHP、JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间,因而OAUTH是简易的。互联网很多服务如Open AP
2021-10-18 09:40:21
373

原创 SpringSecurity安全框架
1、 SpringSecurity简介1.1 安全框架概述什么是安全框架? 解决系统安全问题的框架。如果没有安全框架,我们需要手动处理每个资源的访问控制,非常麻烦。使用安全框架,我们可以通过配置的方式实现对资源的访问限制。1.1.2 常用安全框架Spring Security:Spring家族一员。是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架。它提供了一组可以在Spring应用上下文中配置的Bean,充分利用了Spring IoC,DI(控制反转Inver
2021-10-11 23:33:48
662
1
原创 Map中computeIfAbsent方法使用
computeIfAbsent是Map接口中的一个方法,它在Java 8中被引入。这个方法用于计算指定键的映射值(如果该键还没有映射到某个值),并将其插入到映射中。这是一种非常有用的方法,特别是在处理需要初始化集合类型值的映射时。它可以简化代码并避免显式地检查映射是否已经包含了给定的键。
2024-03-08 15:12:02
1073
原创 Mysql数据库Data目录迁移的方法详解
第一种方法是迁移先找到迁移服务器上的Data文件,我安装的是mysql8,自己选择的路径 D:\Develop\MySQL(如果是默认安装的路径,那么就是在C:\ProgramData\MySQL文件里面,ProgramData是隐藏文件,需要先把隐藏文件打开,如下图所示)下面操作不论是自定义安装的路径或者是默认安装路径,都是一样的操作:打开你所选择的数据文件夹,如下图,这个Data文件就是你的数据文件;将你要迁移的数据库文件放到这里如下:然后打开my.ini:找到datadir,然
2022-03-08 12:28:35
9465
原创 截图工具:VeryCapture
网盘下载地址:链接:https://pan.baidu.com/s/1FllpUOAaIHR3VTgCACWv2g?pwd=2swk提取码:2swkVeryCapture使用方法①打开应用,有截屏和视频两大功能,可以全屏截图、矩形截图、任意截图、延时截图、长截图、录制视频、录制GIF。(还有OCR和翻译功能)②长截图功能很实用,可以记录一些需要滚动的窗口。③截图以后,工具条的功能和QQ的差不多,矩形、圆形、直线、箭头、记号笔、画笔、序号、还有钉图、文字识别。④在托盘区右击应用图标,可
2022-02-10 12:13:35
13212
2
原创 mysql 8.0.28版本安装配置方法图文教程
mysql 8.0.28版本安装配置方法图文教程从 Mysql 官网下载 mysql下载完成后直接双击进行安装,打开后的页面如下所示:选择自定义custom,接着下一步将MySQL Server 展开,添加到右边(点击绿色箭头)选择安装位置后点击ok点击Next,点击MySQL Sever,选择后再点击Execute下载完成后点击下一步(需要等待一小会儿)直接下一步下一步一般情况下选择第二个即可,然后点击下一步设置密码,设置的密码为默认root的密码下一步点击
2022-02-09 10:03:06
33626
27
原创 04-web开发之简单功能分析
1 SpringMVC自动配置概览Spring Boot provides auto-configuration for Spring MVC that works well with most applications.(大多场景我们都无需自定义配置)The auto-configuration adds the following features on top of Spring’s defaults:Inclusion of ContentNegotiatingViewResolver..
2021-12-12 17:30:35
644
原创 03-配置文件
1 文件类型1.1 properties同以前的properties用法注意:properties的配置优先级高于yml1.2 yaml1.2.1 简介YAML 是 “YAML Ain’t Markup Language”(YAML 不是一种标记语言)的递归缩写。在开发的这种语言时,YAML 的意思其实是:“Yet Another Markup Language”(仍是一种标记语言)。非常适合用来做以数据为中心的配置文件1.2.2 基本语法key: value;kv之间有空格大小
2021-12-08 15:06:08
269
原创 02-了解自动配置原理
02 了解自动配置原理1 SpringBoot特点1.1 依赖管理父项目做依赖管理依赖管理 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.5.6</version><
2021-12-07 17:14:32
211
转载 01-SpringBoot2入门
01、SpringBoot2入门1、系统要求Java 8 & 兼容java14 .Maven 3.3+idea1.1、maven设置<mirrors> <mirror> <id>nexus-aliyun</id> <mirrorOf>central</mirrorOf> <name>Nexus aliyun</name>
2021-12-07 17:06:20
168
原创 i++,++i,i--和--i的区别和实现
后置运算:i++ 表示先运算,后自加。意思是遇到 i++了,我先把当前的 i 的值拿来参加运算,后面再去管它的自加。那么,【“后面”后到什么程度呢?要后到当前的语句执行完,即遇到分号 ; 表示语句执行完了,所以 i 才自加1。】如:int i=5,j=0;j=i++;的意思就是,先算 j=i(即 j=5),遇到分号 ;表示语句结束,i 才自加1,即 i 变为6。前置运算:++i 表示先自加,后运算这个意思就是遇到 ++i 了,先把 i 的值加 1,再往后执行别的。如:int i=5,.
2021-10-26 15:27:59
2430
原创 Java面试每日一题【Day01】
请问代码是否编译错误?如果编译错误?是哪行?如果没有编译错误,结果是多少?public class Demo { public static void main(String[] args) { int i= 5; i+=i-=i*=i++; System.out.println(i); }}答案...
2021-10-26 10:51:48
397
原创 装备价格
时间限制:1000ms内存限制:256M题目描述: 小青同学喜欢玩游戏,喜欢观察装备的市场价格,但是装备的价格每天是不固定的。请根据每日装备价格列表 ,重新生成一个列表,要求其对应位置的输出为:要想观测到更高的装备价格,至少需要等待的天数。如果装备价格在这之后都不会升高,请在该位置用 0 来代替。输入描述:价格数组输出描述:需要观察的天数数组示例:示例1输入73,74,75,71,69,72,76,73输出1,1,4,2,1,1,0,0示例2输入3.
2021-09-30 14:54:12
334
原创 亮灯问题
时间限制:1000ms内存限制:256M题目描述:有k盏灯,灯全熄灭,灯下有开关,编号为 1-k;有 k 个学生,编号也是 1-k ,依次从灯下走过,如果学生发现经过的灯的编号恰好可以整除自己的编号,则拉一下灯的开关(关变开,开变关),问最后哪些灯亮着?输入描述:k 编号输出描述:所有亮着的灯的编号提示:1<= k<=100000题目分析:这题很古怪,因为灯和人的编号都是 1-k ,所以最后灯肯定都是亮着的。代码实现:package 亮灯问题;i.
2021-09-30 11:29:18
383
原创 幸运数字
时间限制:1000ms内存限制:256M题目描述: 青书抽奖活动,抽奖箱里有很多球,每个球上有个整数,相同数字的球可重复多次出现,每个员工抽一个,如果一个球上的数字和这个球被抽到的次数相同,那这个球称为幸运球,如果出现多个幸运球,则幸运球数字最大的为最终获奖幸运球,抽到该球的员工获得奖品。现在要找到返回最终获奖幸运球数字,如果没有返回 -1。例如:抽到的球数字是 1 1 2 2 3 4 4 4 4 5 6则幸运球为 4 号球输入描述:幸运数字数组输出描述:幸运数字.
2021-09-30 10:13:46
436
原创 markdown 行首空两个实现
在开头的时候,先输入  ,然后紧跟着输入文本即可。    你好啊!实现效果: 你好啊!
2021-09-30 10:11:55
126
原创 字节跳动2022秋招研发笔试题(3)--文件送达问题
时间限制: C/C++ 1秒,其他语言2秒空间限制: C/C++ 32768K,其他语言 65536K题目描述:Alice要参加一个重要会议,但是他发现参会文件落在了Bob家里,而Bob恰好也有另一个会议要参加,没有时间亲自送给Alie,于是他想要带上文件,并叫一个快递员来帮忙。现在两人同时从各自家里出发前往各自会议地点,快递公司拥有充足的快递员,可以在Bob参会途中任意一点遇到Bob(包括起点和终点),拿到文件后送给Alice。假设Alice、Bob和快递员都在一个二维平面上,且均以直.
2021-09-27 15:08:18
438
1
原创 字节跳动2022秋招研发笔试题(4)--及格如此简单
时间限制: C/C++ 1秒,其他语言2秒空间限制: C/C++ 32768K,其他语言 65536K题目描述:为了响应国家全面发展的响应,学校提供了"德、智"、“体”、"美、"劳"等多门课程供同学们选择学习。每位同学必修3门课程,可选修其他3门及以上课程。小A同学选了n门选修课程,马上要期末考核了,请你帮小A同学算一算,如果小A同学要及格的话,他所学所有课程的成绩共有多少种组合的方式。注意:1、同学的所有学习课程的平均分>=60分即为及格2、每门课程满分100分,只有2.
2021-09-27 14:53:31
1502
原创 字节跳动2022秋招研发笔试题(1)--炮弹高度问题
时间限制: C/C++ 1秒,其他语言2秒空间限制: C/C++ 32768K,其他语言 65536K题目描述:为了研究炮弹的射击轨迹,研究人员在炮弹上安装了一个高精度的高度传感器,每隔一小段时间记录一下当前的海拔高度。研究人员需要找到一个快速的算法,可以方便的找到曾经飞到过某一个高度的炮弹数据。输入描述:第一行为正整数 m,表示有 m 组测试用例,其中1 <= m <= 10000。接下来 2m 行,每 2 行代表一组测试用例,其中,前一行为正整数 n,k,分别代.
2021-09-27 14:44:54
932
1
原创 字节跳动2022秋招研发笔试题(2)--链表聚集交换问题
时间限制: C/C++ 1秒,其他语言2秒空间限制: C/C++ 32768K,其他语言 65536K题目描述:将一个链表通过交换节点位置的操作使链表中的 value 为 k 的节点都聚集到一起,给出最少需要的交换次数输入描述:输入第一行为链表的长度,取值范围1~1000输入第二行为链表的节点,如1 23代表链表1->2->3,每个节点value为整数,取值范围0~10000输入第三行为k输出描述:输出需要的最少交换次数示例输入:51 2 .
2021-09-27 14:44:27
301
3
原创 与、或、异或
与、或、异或的运算都是将两个数字转化为二进制数后,按位比较的,具体如下图:与 ( & )0 & 0 = 01 & 0 = 00 & 1 = 01 & 1 = 1或(|)0 | 0 = 01 | 0 = 10 | 1 = 11 | 1 = 1异或( ^ )0 ^ 0 = 01 ^ 0 = 10 ^ 1 = 11 ^ 1 = 0与、或 操作符合日常逻辑,异或操作大家只要记住,相同为 0 ,不同为 1 即可。PS
2021-09-23 09:53:49
1448
原创 默契度测验
题目:A、B两人参加默契度测验,系统记录了两人打字的全过程,若在打字过程中按了退格,则记录 #。请你根据两人打字的过程记录,判断两人最终输入的内容是否一致。输入描述:第一行,输入一个字符串a,表示A回答问题时打字的过程记录;第二行,输入一个字符串b,表示B回答问题时打字的过程记录。输出描述:若两人最终输入答案内容一致,则输出一次答案内容即可;若两人最终输入答案内容不一致,则分别输出两人的答案内容,每个答案独立成一行。输入示例:样例1:Ao#ppleOra###Appll#e样例2:
2021-09-22 14:50:27
986
原创 去掉指定字符串的开头的指定字符
利用正则表达式中的matches() 对整个字符串进行匹配,只有整个字符串都匹配了才返回true 。lookingAt() 对前面的字符串进行匹配,只有匹配到的字符串在最前面才返回true。Mathcer.start()、Matcher.end()、Matcher.group()当使用matches(),lookingAt()执行匹配操作后,就可以利用以上三个方法得到更详细的信息:start()返回匹配到的子字符串的第一个字符在原字符串中的索引位置;end()返回匹配到的子字符串的最后一个字符
2021-09-19 10:56:30
3435
原创 返回指定字符串的所有索引值
使用substring()方法在String类中有两个substring()方法,第一种如下:String.substring(int start)其中,start为要开始截取的位置的索引,方法将返回一个字符串,内容为原字符串从start位置开始到原字符串结束中间的数据。第二种substring()方法:String.substring(int start, int end)其中,start为开始位置索引,end为结束为止索引,方法将返回一个字符串,内容为原字符串从start位置开始到end位置
2021-09-19 10:49:22
1271
原创 云日记准备工作
1、项目设计2、项目简介 云R记软件就是用于记录日常生活点滴。一款跨平台的简单快速的个人记事备忘工具,并且能够实现PC、移动设备和云端之间的信息同步,简洁高效。将会议记录、日程安排、生活备忘,奇思妙想、快乐趣事以及任何突发灵感都可快速记录到系统中。 本系统采用 B/S 架构,使用 BootStrap + Jsp + Servlet + MySQL+ Tomcat 开发,使用 Maven 构建,采用 Jun
2021-09-18 11:47:35
817
1
原创 抽象工厂模式总结和示例
1、抽象工厂模式的定义 抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类。每个生成的工厂都能按照工厂模式提供对象。2、抽象工厂模式特性(1)意图:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。(2)主要解决:主要解决接口选择的问题。(3)何时使用:系统的产品
2021-09-17 15:04:51
2238
原创 一个整数n,对它的每一位d,用d+1替换d的编程题
题目在Temmie的世界中,有一种特殊的运算X,它的运算方式如下:对于一个整数n,对它的每一位d,用d+1替换d。例如,对于193,它的每一位+1后的结果为2,10,4。所以,193的X运算结果为2104。现在小Temmie想要把整数n进行m次X运算后的结果写在纸上,可是他不知道这个结果需要用多少张纸,所以,他来拜托你计算n进行m次运算后结果的位数。因为结果可能超过整形范围,所以你只需要告诉他结果模 10^9+7 的余数即可。输入格式第一行一个数字t,代表有t个测试用例。(1<=t<
2021-09-13 22:49:19
333
1
原创 返回深度最深的条目中,最长路径的长度
题目路径都由字母、数字或空格组成,给定一个以上述代码格式表示目录的字符串input,返回深度最深的条目中,最长路径的长度。示例 1:输入:input = "Title\n\tSubtitle1\n\tSubtitle2\n\t\taaaa"输出:20解释:aaaa 路径为 "Title/Subtitle2/aaaa",深度是 3,路径长度 20示例 2:输入:input = "Title\n\tSubtitle1\n\t\taaa\n\t\tSubsubtitle1\n\t\t\tbbbb\n
2021-09-13 16:37:29
301
原创 java读写Excel工具类
本项目采用maven工程,使用poi技术去读取excel表格。所需jar包为:<!-- https://mvnrepository.com/artifact/org.apache.poi/poi --><dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>5.0.0</versio
2021-09-09 09:55:30
4854
5
原创 Java基础之字符串去重
题目:有一个字符串List,如下代码所示,续写代码,将str中的元素在按照字符拆分,合并成一个数组,然后字符去重,最终得到 [“h”,“e”,“l”,“o”,“w”,“r”,“d”]List<String> str = new ArrayList<>();str.add("hello");str.add("world");实现:import java.util.*;public class SplitWord { public static void mai
2021-09-06 17:58:48
727
原创 不使用SDK自带库,使用基本Java语言实现将传入的数组内容反转
import java.util.Arrays;public class Reverse { public static void main(String[] args) { int[] arr1 = new int[]{1, 2, 3, 4, 5, 6}; int[] arr2 = new int[6]; //方法一:自身反转 int[] ints = reverse(arr1); // 方法二:赋值给新数组(不推
2021-09-06 17:55:02
354
原创 Java实现限定方法执行时间,如果该任务能在限制时间内完成则返回任务执行结果,否则返回null
使用Future类执行超时处理。代码如下:import java.util.concurrent.*;public class CheckTimeOut { public static void main(String[] args) { System.out.println(method(3, 2)); } /** * @param threadNum 线程池的数量 * @param timeOut 超时时限 * @re
2021-09-06 17:30:06
2953
1
原创 npm install出现一直停留在fetchMetadata: sill解决方法
主要是因为npm安装插件是从国外服务器下载,受网络影响大,一般网速不好的情况下,会等很久很久,有时还会直接断开连接。解决办法将npm的源换成淘宝镜像使用下面命令更换源。npm config set registry https://registry.npm.taobao.org配置后可通过下面方式来验证是否成功npm config get registry输入命令执行后,输出内容如下,即代表更换成功。https://registry.npm.taobao.org/...
2021-09-04 21:20:29
4916
原创 Could not initialize class 的无头解释
今天跑公司的项目,发现这个问题,上网搜索解决方案没有解决,再查看日志,发现主要问题出在然后网上的解决方法也没有解决该问题,然后询问导师最后加了个System.setProperty("user.name", "jdbcuser");解决问题,但是不知道原因。导师说,是我的电脑名字影响的,但是我的电脑名全是英文,也没有特殊符号,想不明白为什么会出现上面的问题。PS:导师的电脑跑我的项目没有出现上述问题。有人知道,可以在评论区里解释一下吗,谢谢...
2021-09-03 15:37:22
1514
原创 常见异常产生原因及解决方法
NullPointerException:空指针异常。产生原因:当应用试图在要求使用对象的地方使用了 null 时,抛出该异常。譬如:调用 null 对象的实例方法、访问 null 对象的属性、计算 null 对象的长度等等。解决的办法:先找出出现的所有引用类型,判断哪个对象是没有 new 的元素或者方法或者属性,如果没有就创建该对象ArrayIndexOutOfBoundsException:数组索引越界异常。产生原因:当对数组的索引值为负数或大于等于数组大小时抛出此异常。解决的办法:在索引 .
2021-08-27 10:39:05
404
原创 实现Runnable接口比继承Thread类所具有的优势
适合多个相同的程序代码的线程去共享同一个资源。可以避免java中的单继承的局限性。增加程序的健壮性,实现解耦操作,代码可以被多个线程共享,代码和数据独立。线程池只能放入实现 Runable 或 Callable 类线程,不能直接放入继承Thread的类。...
2021-08-27 10:14:46
448
原创 Thread类中的start()方法与run()方法的区别
线程对象调用 run() 方法不开启线程,仅是对象调用方法。线程对象调用 start() 方法开启线程,并让 jvm 调用 run() 方法在开启的线程中执行。
2021-08-27 10:03:19
220
原创 Comparable 和 Comparator 比较器
Comparable :自然排序(自己即可)自然排序的定义Comparable 接口强行对实现它的每个类的对象进行整体排序实现过程实现 Comparable 接口的类必须实现 compareTo(Object obj) 方法,两个对象通过 compareTo 方法的返回值来比较大小 。如果当前对象 this 大于形参对象 obj 则返回正整数;如果当前对象 this 小于 形参对象 obj 则返回 负整数;如果当前对象 this 等于 形参对象 obj 则返回零 。实现 ..
2021-08-26 17:40:49
2077
原创 HashSet 去除重复元素的原理
先调用被添加元素的 hashCode(),和 HashSet 中已有元素的 hashCode 比较是否相同如果不相同,直接存储该元素如果相同,再调用 equals 方法比较元素是否相同如果不相同,直接存储该元素如果相同,认为是同一元素,不存储HashCode方法:根据一套特殊的计算方法返回一个整形值,此值被 HashSet 用来定位对象的存储地址。equals方法:判断两个对象的内容是否相等。...
2021-08-26 15:16:59
912
batj面试突击1000题(精选).pdf
2021-10-08
Android studio 自定义安装(jdk配置、gradle配置以及模拟机配置).docx
2021-08-11
Android studio 启动模拟器时解决 VT-x is disabled in BIOS的问题.docx
2021-08-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人