- 博客(34)
- 收藏
- 关注
原创 检验redis服务是否开启
如果redis配置文件正确无误,我们可以使用redis-cli来检查redis是否运行。redis-cli是redis自带的命令行工具,可以用于与redis服务器进行交互。在Linux系统中,我们可以在终端中输入以下命令来启动redis-cli:redis-cli。如果redis成功启动,我们会看到以下输出:redis 127.0.0.1:6379>。如果我们可以看到类似于redis-server /etc/redis/redis.conf的进程,则表示redis已经成功启动。
2023-08-26 18:54:04 4121
原创 循环依赖问题
问题:我在对公共模块中(父类模块)进行install操作时,我刚刚写的公共模块中的全局异常处理类引用了我在前台模块(子模块)中的systemException异常类,而我的前台模块(子模块)是引用的公共模块来进行操作的,可能是这样的操作出现了问题?但是视频教学中它却没有这样的问题。解决方案:由于我之前的错误操作,类写错位置了,提示会出现错误时,我根据提示继续了操作,导致我的公共类模块pom.xml文件自动加上了一个来自子类模块的依赖,如下图。只需要把这部份自动生成的部分删除即可!
2023-08-08 22:24:24 132
原创 @Autowired注入时报错
默认@Autowired(required=true),表示注入的时候bean必须存在,否则注入失败。但是下面的方法可以正常使用userMapper,并调用其方法。改为下面这样则不会报错。
2023-08-07 17:02:35 587
原创 用COOKIE实现 登录页面并记录时间 在下次登陆时显示上一次登录的时间
【代码】用COOKIE实现 登录页面并记录时间 在下次登陆时显示上一次登录的时间。
2022-08-22 20:22:27 456 1
原创 8.Map
1.put方法存值时,会先计算key的hashCode方法返回的int值,根据hash算法确定当前元素key在位桶中的位置。4.产生hash冲突后,根据key的equals方法判断key是否相等,如果相等,则将key所对应的value覆盖。- key唯一 key不能重复,但值可以重复 ,key可以看为Value的索引。(红黑树的加入是jdk1.8后,当链表长度超过 阈值(8)时,使用红黑树),大大减少了查找时间。5.如果key的equals方法不相等,则采用尾插法将元素插入链表的尾部。...
2022-08-16 19:31:21 153
原创 7.Iterator
经过反编译(通过观察.class文件)得出结果:使用增强for循环遍历数组,会解析成一般for循环,但遍历集合时,会解析为迭代器。增强for循环原理是迭代器,而迭代器是专门用来遍历集合的,但数组不是集合,为什么增强for循环可以遍历数组?判断集合是否还有其他元素可以遍历。remove:删除由next()迭代过的元素。迭代器Iterator,用于遍历集合元素。E next:返回迭代的下一个元素。...
2022-08-16 18:59:06 71
原创 6.Queue
底层是链表(linked)实现。内部封装一个静态内部类Node。- 创建队列对象的时候右边是LinkedList 也算是向上整型。如果将双端队列限制为一端存取,则可以实现栈的数据结构。栈遵循先进后出的原则。的原则,只能从一端添加(offer)元素,从另一端取出(poll)元素。队列 Queue和Deque :实现类常用LinkedList。- 双向链表 不存在扩容问题。Queue的子接口,定义了双端队列,可以从两端入队和出队。2.双向队列Deque。...
2022-08-16 18:35:03 104
原创 5.集合排序问题
以上的方法是会永久改变我的Collections中的sort方法,如果我只想临时修改一次排序方法,则采用以下方法。如果元素为对象,那么可以通过实现Comparable的compareTo方法为对象添加比较逻辑。1.Collections(集合中对象为Integer可直接使用此方法不用重写)使用Collections方法排序的集合元素必须实现Comparable接口。集合排序的方法为sort(List list),作用是对集合中的元素排序。Collections是为集合提供的工具类。......
2022-08-16 18:20:02 73
原创 4.集合-Collection -List -Set
remove操作)时,LinkedList比ArrayList的效率更高,因为 ArrayList是数组,所以在其中进行增删。ArrayList自由性较低,因为它需要手动的设置固定大小的容量,但是它的使用比较方便,只需要创。结果为[-1, 1, 2, 3, 24, 13],去除重复元素,且不是按照添加元素顺序输出。操作时,会对操作点之后所有数据的下标索引造成影响,需要进行数据的移动。结果为[1, -1, 24, 13, 2, 3],按照插入顺序打印。ArrayList底层是数组实现,线性结构,更适合查询。.
2022-08-15 23:54:50 135
原创 2.包装类
包装类就是基本类型转化成为对象的类(Java.lang.Number类下的子类提供了6种基本类型的包装 类)。自动装箱拆箱就是编译器在生成字节码时自动完成了包装类和基本类型间的相互转换的方法调用。jdk5.0后加入了autoboxing(自动装箱和拆箱)功能。装箱: 基本类型--->包装类 拆箱: 包装类--->基本类型。每一个基本类型都有一个与之对应的包装类(wrapper)。...
2022-08-15 23:18:11 69
原创 3.时间日期类
/打印当前时间 //Sat Dec 25 19:18:01 CST 2021。add(int fields,int amount):为指定时间分量加上指定的值。set(int fields,int amount):设置时间分量。get(int fields,int amount):获取时间分量。纪元(epoch):1970年1月1日 00:00:00。Java中的时间是用一个固定时间点的毫秒数表示。格式化和解析日期的类,可以对时间格式化或规范化。Calender:抽象类,用于时间分量的计算。...
2022-08-15 23:11:24 92
原创 1.API 常用类
原理:字符串一旦初始化不可更改,但是可以通过在字符串常量池中重写创建一个字符串, 改变引用的指向,进而改变字符串的值。StringBuilder(String str) 构造一个字符串生成器,并初始化为指定的字符串内容。(1)Java为了提高性能,静态字符串在常量池中创建,并且是同一对象,使用时直接拿取。两个或1个,如果常量池中有a则返回,如果没有则创建一个a,加上new的对象是两 个。都比较的是地址信息。(2)对于重复的字符串直接量,JVM会去常量池查找,如果有则返回,无则创建。..
2022-08-15 20:08:37 133
原创 10.Date类 SimpleDateFormat类 Calendar抽象类
longgetTime();返回的是1970-1-1000000到现在的毫秒值。publicSimpleDateFormat(时间格式)例如"yyyy年MM月dd天HH时mm分ss秒"1.构造方法publicDate();将指定格式的时间字符串转换成Date。SimpleDateFormat类。可以通过该方法获取和时间相关的数据。将date以指定格式转换成字符串。Java中用于日常操作日期类。抽象类,无法创建对象。......
2022-07-18 20:13:12 77
原创 9.String类 StringBuffer/StringBuilder 的定义
字符串一旦初始化不可更改,但是可以通过在字符串常量池中重写创建一个字符串,改变引用的指向,进而改变字符串的值。(1)equals是超类Object中的方法,实质上使用"=="比较对象地址,但是String重写了该方法。用于对字符串进行存储和操作,可以声明可变字符串,可以用于对字符串频繁的操作。equals()方法在字符串中,使用equals方法比较字符串内容。直接赋值是指向字符串常量池(也在堆中),构造方法初始化的指向堆的。(2)字符串的比较尽量不用"==",都是用equals。方法用于字符串的拼接。...
2022-07-18 19:52:31 492
原创 8.Object类 Math类 String类 中的方法
2.starWithstartsWith(Stringprefix)判断字符串对象是否以指定的字符开头(区分大小写)startsWith(Stringprefix,inttoffset)判断字符串对象是否以指定的字符开头,参数toffset为指定从哪个下标开始。6.subString从start开始截取字符串Stringsubstring(intstart,intend)从start开始,到end结束截取字符串。5.indexOf返回指定字符第一次出现的字符串内的索引。...
2022-07-18 19:20:01 68
原创 7.内部类
2).外部类的对象.new成员内部类名();1.在局部内部类所在方法中,通过new创建对象。(1)new静态内部类名();(1).先创建外部类的对象。
2022-07-18 14:58:12 63
原创 6.抽象类 权限修饰符 final关键字 代码块
2.抽象方法没有方法体,只能声明(在子类中重写方法)3.抽象类的子类必须重写抽象父类中所有抽象方法。2.抽象类也可以声明普通方法,构造方法。4.抽象类不能被实例化,不能创建对象。1.使用abstract修饰的方法。1.使用abstract修饰的类。Chinese继承抽象类。3.抽象方法只能存在于。......
2022-07-18 13:42:50 199
原创 5. 多态
比如人吃饭行为中国人用筷子。Animalan=newDog();父类的属性和行为,被不同的子类继承后,表现出不同的形态。Dogdog=newDog();编译看父类(看父类中有没有声明该变量),运行看父类。(把子类的对象赋给父类类型的引用)用于判断对象属于什么引用类型。把向上转换后引用强制转换。编译看父类,运行看子类。...
2022-07-18 13:35:19 75
原创 4.静态属性
1.静态属性被所有对象共享,一旦对象去改变属性值,下一个对象访问到的是改变过后的值。3.静态不可以访问非静态(成员属性),非静态可以访问静态属性。4.静态属性随着类加载而加载。非静态属性创建对象时才会被加载。2.静态属性可以使用类名进行访问。...
2022-07-17 23:23:57 321
原创 3. 封装 JavaBean规范类
/@Data//lombok插件有这个插件不用set和get。publicvoidsetXXX(参数类型变量名){2.声明set和get方法来对成员变量进行赋值和获取值。public数据类型getXXX(){1.使用private修饰成员变量。this.成员变量名=变量名。return成员变量;2.无参构造方法(必须)PeopleTest类。4.set和get方法。...
2022-07-17 23:14:40 124
原创 2. 继承 子类的重写
4.在子类构造方法中,第一行默认有super();语句,该语句用于调用父类构造方法。2.子类会调用重写之后的方法,如果要调用父类中的方法,使用super.方法名();1.在子类里声明一个和父类相同的方法,并且可以重新定义方法体。3.当子类中声明了和父类中同名的属性。调用父类中其他重载的构造方法。3.创建子类对象时,会默认调用父类的无参构造方法。1.子类通过extends关键字继承父类。2.使用super.属性访问父类中的属性。2.子类可以继承父类非私有属性。子类SmartPhone类。......
2022-07-17 22:13:04 250
原创 1. 类,对象,对象属性,对象的行为
可以把类看成一张图纸,对象就是图纸造出来的具体事物,对象是什么样,能做什么,取决于类是如何设计定义的。一旦自己声明了一个构造方法后,默认的构造方法就会被覆盖。类是对象对象是事物的一种描述,类中声明有对象的属性和行为(描述对象是什么样的)4.在构造方法中可以使用this(参数值调用其他构造方法)该语句只能写在第一行。洗衣服脱衣服-->找盆-->加水-->倒洗衣粉...-->拧干-->晾晒。洗衣服脱衣服-->放入全自动洗衣机(对象)-->晾晒。在类中通过成员变量(声明在类中方法外的变量)............
2022-07-17 18:36:17 1305
原创 9.方法的声明
2)声明一个求体积的方法getV(doubler,doubleh);在该方法中调用getS(r)获取的底面积,再乘以h得到体积。如果声明了上述类型,就必须使用return返回同类型的值。把一个功能的代码单独提取出来放在一个模块里,要同时去调用静态方法的声明。权限修饰符static返回值类型方法的名称(参数列表){(1)声明一个求底面积的方法getS(doubler);方法的重载方法同名,参数不同。指参数类型,参数数量不同。3.通过当前类的对象.方法名(值)2.类名.方法名(值);..............
2022-07-17 17:14:25 227
原创 关于Random和Scanner
/调用nextInt()方法获取随机整数,接收0~10的随机整数。//创建对象Scanner。//创建Random对象。
2022-07-17 16:56:39 76
原创 8.循环语句
do-while先执行一次,在判断,至少执行一次循环体while先判断,再执行循环体。(2)条件判断语句作用判断是否满足循环条件满足条件才能接着进入循环。执行流程时1-2-3-42-3-42-3-42不满足跳出循环。(4)步进表达式作用用来改变初始化变量值。}while((2)条件判断语句);while((2)条件判断语句){(1)初始化一个变量。(1)初始化一个变量。(1)初始化一个变量。...
2022-07-17 16:44:54 55
原创 7.选择语句
switch(变量或者值){//byteshortintchaString(jdk1.7)具有穿透性执行某个case里的代码时如果没有break,继续指向下一个case,default代码3;//如果都不能匹配,执行default。case值1代码1;case值2代码2;直到遇到break为止。......
2022-07-17 00:54:51 64
原创 6.条件语句
条件判断语句boolean类型,如果为true执行if语句块中的代码,否则不执行。如果条件判断为true执行代码1,否则执行代码2。if(条件判断语句1){if(条件判断语句){if(条件判断语句){
2022-07-17 00:49:43 66
原创 5.运算符
低位移出,高位空出的位可以由0填充,或者由符号位的副本填充(如果是正数,补0;在短路逻辑或(||)运算时,当第一个表达式为true是,后面表达式不会再执行。注在短路逻辑与(&&)运算时,当第一个表达式为false是,后面表达式不会再执行。true为false,!false的结果为true)||(短路逻辑或)(或)对一个算对全错算错对两个算对。简单来说,在原值的基础上,往左移几位,就乘以多少个2。简单来说,在原值的基础上,往右移几位,就除以多少个2。判断为真,则为表达式1,否则为表达式2。...
2022-07-17 00:37:56 62
原创 4.强制类型转换
基本数据类型范围大小byte->short->int->long->float->double。格式小范围数据类型变量名=(小范围数据类型)大范围类型的值或变量。把大范围数据类型的值赋给比它小的范围的类型,使用强制手段。
2022-07-16 23:18:45 119
原创 3.数据类型
/ctrl+d会复制上一行到下一行booleantype2=false;//t=A先转换为65(ASCII)再进行计算。在十进制中,我们无法精确表示1/3就像在二进制中无法精确表示该计算结果。能表示一个(单个)字符,也能表示一个整数(0-65535)--ASCII。//声明long类型整数超过范围(int范围),数值后加l或L。所以double类型不适合小数运算,即使进行运算精度也不高。charc6='\\';charc5='\n';//如果没超过,可以加可以不加。charc='男';...
2022-07-16 23:12:39 75
原创 1. 常量
System.out.println(100);//System.out.println打印语句,自动换行,常用。System.out.print(200);//System.out.print打印语句不换行。System.out.println(0x123);System.out.println(0123);System.out.println(1E38);值一旦声明初始化过后,值不能再改变,通过代码不能改变。System.out.println('男');在整数值前面加上0x或者0X。...
2022-07-08 12:59:24 106
原创 2. 变量
变量的分类:1.局部变量:声明在方法中的变量2.成员变量:声明在类中方法外3.静态变量:使用static 关键词修饰的变量,一般在类中方法外局部变量:值一旦变化,可以通过代码改变值声明格式:数据类型 变量名=值;"="是赋值,把值赋给变量。数据类型:整数:int 小数:double局部变量的使用注意事项:使用之前要初始化(赋初值)变量的操作:1.赋值 2.改变变量值声明一个常量(不能通过代码进行改变)格式:final 数据类型 常量名=值............
2022-07-08 12:56:00 237
原创 10.数组
3.数据类型[][]数组名=new数据类型[][]{{元素1}{元素2}{元素3}...};1.数据类型[][]数组名=new数据类型[一维数组的个数(行)][一维数组长度(列)];格式2数据类型[]数组名=new数据类型[]{元素1,元素2......};4.数据类型[][]数组名={{元素1,元素2}{元素3}{元素4,元素5}};2.数据类型[][]数组名=new数据类型[一维数组个数][];格式1数据类型[]数组名=new数据类型[数组的长度];单纯的在获取数组中的元素。...
2022-07-08 12:32:22 80
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人