- 博客(38)
- 收藏
- 关注
原创 AOP:面向切面编程使用
确定注解生效的时间与位置获取当前登录用户:获取request对象,从请求头中获取到jwt令牌,解析令牌获取出当前用户的id。@Slf4j @Aspect //切面类 @Component public class MyAspect01 {//1、操作人ID--当前员工d登录ID //2、获取请求头中的JWT令牌,解析令牌 String jwt = request . getHeader("token");
2023-07-19 21:41:02 141
原创 登录校验功能(JWT令牌,拦截器(Interceptor)、异常处理)
1、定义拦截器,实现HandlerInterceptor接口,并重写其所有方法。2、让启动类实现WebMvcConfigurer接口,注册拦截器,配置拦截路径。 2、生成JWT,校验JWT。
2023-07-19 21:38:46 596
原创 SpringBootWeb请求响应
1、IOC:控制反转,将创建对象的权力交给Spring,由Spring创建对象保存到IOC容器中管理。2、DI:依赖注入,给Bean对象中依赖的对象(成员变量)注入数据(赋值)
2023-07-07 18:58:10 150
原创 网络编程&单元测试&注解&反射
格式public @interface 注解名{ public 属性类型 属性名() default 默认值;特殊属性value如果有且仅有一个必须要赋值且名称叫value的属性,在给value属性赋值时可以省略value名称不写!!
2023-06-30 14:05:08 172 2
原创 IO流&IO流必须掌握的核心代码
写数据时是先写到底层的数组中,写满8192个字节再一次写到目标文件中。Java就帮我们提供了转换流,可以把字节流按照指定的编码格式转换为字符流,再以字符流的形式来读取文件中的字符就可以避免乱码的问题。Properties是属于Map下面的一个实现类,他的元素都是键值对,键和值的类型是String类型,键不能重复,值可以使用。由于字节流再读取、写入文本数据时,由于不同的编码方案对于汉字占用的字节数不一样的,在读取文本数据时就不太方便。1、1:字节流复制文件由于是直接读、写字节数据,任何文件底层都是字节。
2023-06-23 20:57:18 86
原创 异常&File&字符集
答:第一步:写一个异常类继承Exception、RuntimeException类名要见名知意第二步:根据父类生成两个构造器/* 描述年龄非法的异常,这是一个编译时异常 */ public class AgeIllegalException(String maessgae) { }//参数:message用来描述异常的文字信息 public AgeIllegalExeption(String message){ super(message);字符集是字符和其编码的对应关系。
2023-06-20 21:13:16 55
原创 Stream流、JDK日期类、正则表达式
Stream<元素类型>s7=Stream.of(元素1,元素2,元素3);Stream<值的类型>s4=map.values().stream();Stream<键的类型>s3=map.kepSet.stream();Stream<元素类型>s1=list.stream();Stream<元素类型>s6=Stream.of(数组);Stream<元素类型>s2=set.stream();特点:调用完流的方法之后,其几个不再是一个流。将日期转换为指定格式的字符串。把流中的元素映射成新的元素。
2023-06-19 23:07:21 97
原创 Map&Collection&Collections工具类、Collection接口
Map接口HashMap类键无序,无索引,不能重复LinkedHashMap类键有序,无索引,不能重复TreeMap类键可以排序,无索引,不能重复。
2023-06-19 23:03:37 61
原创 内部类&API&Lambda
1、String Builder是什么:一个可变字符串2、StringBuilder构造器1、StringBuilder是可变的,字符串的操作效率高2、String是不可变的,字符串操作效率低基本类型对应的引用类型2、包装类如何创建子类对象推荐使用valueOf方法推荐使用自动装箱,底层还是valueOf方法1、sort方法的作用:升序2、Comparator的两个参数的含义当前存入的数据和里面已经有的数据3、Comparator返回值含义如果是正数,当前左边值大于右边,否则右边。
2023-06-19 22:59:26 53
原创 面向对象进阶(总结)
public interface 接口名{静态常量;抽象方法//JDK8之前2、基本使用让类去实现的,一个类实现接口,要重写他的所有抽象方法1、接口没有构造器2、就扣不能实例化3、接口可以多继承,也可以多实现1、什么是多态同种事物,调用同一个功能,呈现出不同的状态2、多态的表现形式有继承或者实现的关系有方法的重写重要:有父类引用指向子类对象/有接口引用指向实现类对象。
2023-06-13 23:36:29 51
原创 API:学生管理系统(思路+写法)
## 学生管理系统实现思路:### 1、定义学生类### 2、主界面的代码编写### 3、添加学生的代码编写### 4、查看学生的代码编写### 5、删除学生的代码编写### 6、修改学生的代码编写
2023-06-04 23:15:39 285
原创 API:求字符串的组成
System.out.println(“字符串中:数字有”+number+“个,”+“大写字母有:”+charA+“小写字母有”+chara+“个”);//public char charAt(int index):获取某个索引位置出的字符返回。System.out.println(“请输入一个字符串”);键盘录入一个字符串. 例如: 1a5df78AS95;public class 求字符串组成个数 {求出字符串中 有几个是大写字母;求出字符串中 有几个是小写字母;求出字符串中 有几个是数字;
2023-05-30 21:32:55 52
原创 API:校验身份证码
System.out.println(“您的出生日期是”+num.substring(6,14));身份证号码校验正确后, 打印输出出生年月日,例如" 20001020".System.out.println(“身份证前17位必须是数字”);System.out.println(“请输入你的身份证号码:”);System.out.println(“身份证号码必须是18位”);System.out.println(“最后一位可以是大写X”);身份证号码必须是18位.最后一位可以是大写X.前17位必须是数字.
2023-05-30 21:32:23 427
原创 String与Arrayslist
ArrayList 集合名称 = new ArrayList();直接写一个字符串字面量,就是创建了一个对象,这种方式创建的对象在字符串常量池。ArrayList 集合名称 = new ArrayList();注意:大部分情况下,导包语句都可以自动生成。作用:告诉自己的程序,在哪个包下找哪个类。位置:建包语句的下面,定义类的上面。格式:import 包名.类名;使用new调用它的构造器。
2023-05-30 21:21:32 60
原创 Random与数组加强训练
i ++) {System . out . println("输出的随机数为:" + arr [ i ]);} } }
2023-05-19 22:40:28 111
原创 基础语法与if分支结构
短路效果:当符号左边条件的结果已经可以决定整体的结果时,则右边的条件不用执行。作用:让程序中的数据变得更加灵活,不用修改代码,可以让程序中的数据每次都不一样。1.1.1按位逻辑运算符:&: 遇false则false。1.1.2短路逻辑运算符:&&:遇false则false。作用:调试代码,控制代码的与运行,用来找程序中的问题。条件判断的结果是false,值2作为整体结果。条件判断的结果是true,值1作为整体结果。1.2.1格式:条件判断?| : 遇true则true。||:遇true则true。
2023-05-15 23:31:20 92
原创 什么是方法?(总结)
Java的方法类似于其它语言的函数,是一段用来完成特定的代码片段,一般情况下,定义一个方法包含以下语句:方法包含一个方法头和一个方法体,下面是一个放大的所有部分:修饰符:修饰符,这是可选的,告诉编译器如何调用该方法。定于了该方法的访问类型。返回值类型:方法可能会返回值。returnValueType是关键字void。方法名:是方法的实际名称。方法名和参数表共同构成方法签名。参数类型:参数像是一个占位符。当方法被调用时,传递值给参数。这个值被称为实参或变量。
2023-05-10 22:37:24 206
原创 break continue用法
break continuebreak在任何循环语句的主体部分,均可用break控制循环的流程。break用于强行退出循环,不执行循环中剩余的语句。(break语句也在switch语句中使用)continue语句在循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定。关于goto关键字:goto关键字很在就在程序设计语言中出现,尽管goto仍是Java的一个保留字,但并未在语言中得到正式使用;Java没有goto,然而,在break和co
2022-05-08 18:27:45 82
原创 For循环用法
For循环虽然所有的循环结构都可以用while或者 do-while表示,但Java提供了另一种语法·-----for循环,使一些循环结构变得更加简单。for循环语句是支持迭代的一种通用结构,是最有效,最灵活的循环结构。for循环执行的次数是在执行前确定的。语法格式如下:for(初始化;布尔表达式;更新){ //代码语句}ForDemo01:package com.hu.struct;public class ForDemo01 { public st
2022-05-08 18:27:18 3859
原创 while循环结构
while循环while是最基本的循环,它的结构为:while(布尔表达式){ //循环内容}只要布尔表达式的值为true,循环就会一直执行下去。我们大多数情况是会让循环停下的,我们需要一个让表达式失效的方法来结束循环。少部分情况需要一直循环执行,比如服务器的请求响应监听等。循环条件一直为true就会照成无限循环(死循环),我们正常的业务编程应该尽量避免死循环,会影响程序性能或者造成程序卡死崩溃!whileDemo01:package com.hu.s
2022-05-08 18:26:35 2702 4
原创 switch多选择结构
switch多选择结构多选择结构还有一个实现方式就是switch case 语句。switch case 语句判断一个便令与一系列值中某个值是否相等,每个值称为一个分支。switch 语句中的变量类型可以是:byte、short、int或者char。从Java SE 7 开始switch 支持字符串String类型了同时case标签必须为字符串常量或字面量。语法:switch(expression){ case value : //语句 b
2022-05-08 18:25:52 137
原创 if语句的用法
if单选择结构语法:if(布尔表达式){ //如果布尔表达式为true将执行的语句 }IfDemo01package com.hu.struct;import java.util.Scanner;public class IfDemo01 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out
2022-05-08 18:25:22 866
原创 Scanner的进阶用法
Scanner进阶用法if用法(如果…那么…)Demo04:package com.hu.scanner;import java.util.Scanner;public class Demo04 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); //从键盘接受数据 int i = 0; float f= 0.0f;
2022-05-08 18:24:43 71
原创 Scanner对象
nextnext():一定要读到有效字符后才可以结束输入。对输入有效字符之前遇到的空白,next()方法会自动将其去掉。只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。next()不能得到带有空格的字符串。nextLine():以Enter为结束符,也就是说nextLine()方法返回的是输入回车之前的所有字符。可以获得空白。Demo01:package com.hu.scanner;import java.util.Scanner;public clas
2022-05-07 23:09:21 56
原创 Java运算符优先级总结
运算符优先级优先级运算符结合性1()、[]、{}从左向右2!、+、-、~、++、从右向左3*、/、%从左向右4+、-从左向右5《、》、>>>从左向右6<、<=、>、>=、instanceof从左向右7==、!=从左向右8&从左向右9^从左向右10|从左向右11&&从左向右12||从左向右13?:从
2022-05-05 23:42:39 181
原创 运算符(续)
自增自减package operator;public class Demo04 { public static void main(String[] args) { //++ --自增,自减 一元运算符 int a = 3; int b = a++;//执行完这行代码后,先给b赋值,再自增 //a=a+1; System.out.println(a); //a++ a = a+1;
2022-05-05 18:40:57 179
原创 base--运算符
运算符Demo01package operator;public class Demo01 { public static void main(String[] args) { //二元运算符 //Ctrl + D : 复制当前到下一行 int a = 10; int b = 20; int c = 25; int d = 30;
2022-05-04 16:12:32 59
原创 base--类型转换
类型转换Demo04public class Demo04 { public static void main(String[] args) { int i = 128; double b =i; //强制转换 (类型--变量名) 高---低 //自动转换 低--高 System.out.println(i); System.out.println(b); /*
2022-05-04 15:35:12 559
原创 变量、常量、作用域及变量的命名规范
变量的命名规范所有变量、方法、类名:见名知意类成员变量:首字母小写和驼峰原则:monsthSalary 除了第一个大单词以外,后面的单词首字母大写 lastName局部变量:首字母小写和驼峰原则常量:大写字母和下划线: MAX_GoodMan方法名:首字母小写和驼峰原则:run(),runRun()变量、常量、作用域public class Demo06 { //属性:变量 //实例变量:从属于对象:如果不自行初始化、这个类型的默认值 0 0.0 //布尔值
2022-05-04 15:33:54 167
原创 数据类型总结
public class Demo3 {public static void main(String[] args) {//整数拓展 : 进制 二进制0b 十进制 八进制0xint i =10;int i2 =010;//八进制0int i3 = 0x10;//十六进制0x System.out.println(i); System.out.println(i2); System.out.println(i3); System.out.println("=====
2022-05-03 23:47:05 63
原创 Demo01
Demo01标识符注意点所有的标识符都应该以字母(A-Z或者a-z),美圆符($),或者下划线(—)开始首字符之后可以是字母(A-Z或者a-z),美圆符($),下划线(—)或数字的任何字符组合不能使用关键字作为变量名或方法名。标识符是大小写敏感的合法标识符举例:age,$salary,—value,——1—value非法标识符举例:123abc,-salary,#abc可是使用中文命名,但是一般不建议这样去使用,也不建议使用拼音,很low...
2022-05-03 23:45:59 159
原创 Day03
public class HelloWorld {public static void main(String[] args) {//单行注释 :只能注释一行文字 ////输出一个Hello,World!System.out.println(“Hello,world!”);//多行注释 :可以注释多行文字 /* 注释 //我是注释我是注释我是注释///JavaDoc:文档注释 /* 注释 //** @Description HelloWorld* @Author 胡
2022-05-03 23:44:28 153
原创 Day02
常用键ctrl+c : 复制ctrl+v : 粘贴ctrl+A :全选Ctrl+x :剪切Ctrl +z :撤销Ctrl +s :保存Ctrl +F4 :关闭窗口常用的Dos命令1、盘符切换2、#查看当前目录下的所有文件 djr3、#切换目录 cd change directory4、cd ..6、#清理屏幕 cls (clear screen)5、#退出终端 exit7、#查看电脑的ip ipconfig8、9、#打开应用 calc mspaint
2022-05-03 23:41:48 74
原创 Day01
Markdown标题三级标题字体Hello,Word!Hello,World!Hello,World!Hleeo,World!引用选择狂神说Java,走向人生巅峰分割线超链接点击跳转到狂神博客列表AbCAB表格名字性别生日胡鹏程男2000.6.7代码public图片...
2022-05-03 23:40:42 231
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人