- 博客(34)
- 收藏
- 关注
原创 学习日记-day20-6.1
泛型1.泛型:<>2.作用:统一数据类型,防止将来的数据转换异常3.注意:a.泛型中的类型必须是引用类型b.如果泛型不写,默认类型为Object## 1.为什么要使用泛型1.从使用层面上来说:统一数据类型,防止将来的数据类型转换异常2.从定义层面上来看:定义带泛型的类,方法等,将来使用的时候给泛型确定什么类型,泛型就会变成什么类型,凡是涉及到泛型的都会变成确定的类型,代码更灵活//获取元素中为String类型的字符串长度## 2.泛型的定义。
2025-06-01 21:12:23
1167
原创 学习日记-day19-5.29
知识点核心内容重点Lock锁机制通过Lock接口(如ReentrantLock)的lock()和unlock()方法控制线程同步,替代synchronized代码块实现类选择(需用ReentrantLock)、锁释放时机(建议在finally中释放)与synchronized对比synchronized依赖代码块/方法结束自动释放锁;Lock通过显式方法调用控制,灵活性更高适用场景差异(Lock适合复杂同步逻辑)、异常处理(Lock需手动保证释放)线程安全实践改造卖票案例:Lock对象创建→lock()获取
2025-05-29 19:00:18
674
原创 学习日记-day18-5.28
RUNNABLE→BLOCKED:未抢到锁;需注意Thread类中定义的MIN_PRIORITY(1)、NORM_PRIORITY(5)、MAX_PRIORITY(10)常量。通过生产者-消费者案例演示线程交替执行(生产一个消费一个),需使用wait()、notify()、notifyAll()方法。套间模型: - 小红(钥匙1)与外部门(锁1)/内部门(锁2);- 小绿(钥匙2)与外部门(锁2)/内部门(锁1)- wait():使线程进入WAITING状态,需同一锁对象调用notify()唤醒;
2025-05-28 18:16:17
753
原创 学习日记-day17-5.27
- 支持null值(如数据库主键自增场景);- 可使用包装类方法默认值差异:int默认0 vs Integer默认null。
2025-05-27 19:01:05
839
原创 学习日记-day16-5.26
String s1="ABC"直接指向常量池,String s3=new String("ABC")在堆中创建新对象,但内容共享常量池的"ABC"通过compare(Object o1, Object o2)方法定义灵活比较规则;关键代码: return this.getScore()-((Student)o).getScore()add()加法、subtract()减法、multiply()乘法、divide()除法。new String("ABC")可能创建1个(常量池已存在"ABC")或2个对象(
2025-05-26 18:53:07
976
原创 学习日记-day15-5.25
/1.定义一个用户名,代表已经注册的用户//2.创建Scanner对象,录入用户名System.out.println("请您输入要登录的用户名:");//3.判断用户名是否和已经存在的用户名一致System.out.println("登录成功了");}else{throw new LoginUserException("登录失败了,用户名或者密码有问题");Throwable类中的方法:String toString() :输出异常类型和设置的异常信息。
2025-05-25 18:31:44
898
原创 学习日记-day14-5.23
在method01()中直接返回new USB(){...}对象,调用时通过USB usb = method01();usb.open();通过method01(USB usb)方法演示,直接传入new USB(){...}匿名内部类对象,替代传统实现类实例化。- 执行次数:静态(1次) vs 构造(N次)1. 调用方法 → 2. 传递/返回匿名内部类对象(本质为实现类实例) → 3. 调用重写方法(如open())定义抽象接口包含open()和close()方法,要求设备类(鼠标/键盘)必须实现。
2025-05-23 19:01:59
642
原创 学习日记-day13-5.22
a.eat()调用的是Dog重写方法;维护部(Maintainer)根据所需维护的内容不同,又分为 网络维护工程师(Network) 、硬件维护工程师(Hardware)。方法形参定义为父类类型(void method(Animal a)),可传递不同子类对象(Dog/Cat),调用各自重写方法。JDK8新增特性,格式为public default 返回值 方法名(),包含方法体实现,可通过实现类对象调用。父类引用指向子类对象(Animal a = new Dog()),通过父类类型调用子类重写方法。
2025-05-22 19:00:36
679
原创 java小结(一)
知识点核心内容重点byte类型取值范围限制(-128~127)超出范围会编译报错,如byte num1 = 1000;short类型可重新赋值num2 = 1001;变量值可动态修改,体现"变量"特性int类型默认整数类型(±21亿范围)直接输出变量名即可显示存储的值long类型需加后缀L/l必须加L/l后缀,涉及数据类型转换原理float类型需加后缀F/f必须加F/f后缀,与double区别double类型默认小数类型无需后缀,直接赋值小数char类型。
2025-05-21 14:18:41
901
2
原创 学习日记-day11-5.20
进入方法(跳转至被调用方法内部);使用Alt+Enter自动生成方法: - 无参无返回值(默认private修饰);选中代码块后按Ctrl+Alt+M快速抽取: - 自动识别依赖变量(如数组参数);奇数数组中间元素自对称,偶数数组全部成对交换(图示[1,2,3,4,5,6,7]与[7,6,5,4,3,2,1]索引对应关系)classroom(静态)存储在堆的静态区,name(实例)存储在对象堆内存;静态成员存储在静态域中,静态域在JDK 6时位于方法区(永久代),JDK 7开始移至堆内存。
2025-05-20 19:00:44
740
原创 学习日记-day10-5.19
pojo(存放Java Bean);this指向调用该方法的对象,通过输出对象地址值验证(person与person2调用时this指向不同)speak()方法中this.name输出成员变量,name输出局部变量(传参"刘彦昌")无参构造(默认存在,虚拟机自动提供)、有参构造(为属性赋值)、满参构造(为所有属性赋值)数据打包(如User对象含ID、用户名、密码)、跨层传输、属性提取(get/set方法)Person类中name(成员变量)可在所有方法调用,而方法内变量(如i)仅限本方法。
2025-05-19 18:40:18
782
原创 学习日记-day9-5.16
知识点核心内容重点方法定义通用格式修饰符 + 返回值类型 + 方法名 + 参数 + 方法体 + return结果void与return的冲突(void方法不可return具体值)修饰符作用public static固定搭配(公共访问权限 + 静态方法)面向对象阶段会详细解释返回值类型由return结果的数据类型决定(如int/double/String)无返回值时需用void方法命名规范小驼峰命名法(如getSum)需见名知意参数定义。
2025-05-16 18:37:26
914
原创 学习日记-day8-5.15
知识点核心内容重点byte类型取值范围限制(-128~127)超出范围会编译报错,如byte num1 = 1000;short类型可重新赋值num2 = 1001;变量值可动态修改,体现"变量"特性int类型默认整数类型(±21亿范围)直接输出变量名即可显示存储的值long类型需加后缀L/l必须加L/l后缀,涉及数据类型转换原理float类型需加后缀F/f必须加F/f后缀,与double区别double类型默认小数类型无需后缀,直接赋值小数char类型。
2025-05-15 18:47:24
755
原创 学习日记-day6-5.13
使用 @PathVariable 获取评论 ID,并将请求体中的数据赋值给 updatedComment.setId(id),然后调用 commentRepository.save(updatedComment) 进行更新。使用 @PathVariable 获取 URL 中的 articleId,调用 commentRepository.findByArticleID(articleId) 查询评论列表。路径:/api/comments/{id}路径:/api/comments/{id}
2025-05-13 19:03:24
682
原创 学习日记-day5-5.12
使用 Hibernate 的 uuid2 策略来生成主键,该策略会自动生成 UUID 格式的字符串,如:53c43a7d-6b8b-4130-9042-503e4f2d6f2d 这种格式是正常的,并不是真正的“乱码”,只是不符合某些场景下对 ID 的可读性要求。通过f12控制台的报错信息,发现404接口请求失败的错误,追溯到vue.config.js中,发现请求代理的路径有问题,缺少/api/,添加后重新运行前端,正常出现了articleid为1的各个数据项。
2025-05-12 18:52:05
868
原创 学习日记-day4-5.9
findByNameContaining更符合 Java 的自然语言风格,Spring 官方推荐,可读性更高。但在实际开发中,要明确列出需要查询的字段(如 SELECT id, content FROM t_comment),这样可以:提升查询性能(避免不必要的数据传输),增强代码可读性与可维护性。4.@Query表示增删改查的注解,nativeQuery表示使用原生sql语句进行查询(不用这种方法,换数据库时不方便,)3.主键不要自增,改为string类型,使用UUID作为主键时可以使用 String。
2025-05-09 18:57:30
296
原创 学习日记-day3-5.8
1..搭建了一个springboot项目,创建了实体类,以及目标数据库的配置2.快捷键 alt+insert 生成 get set tostring 方法,以及各种注解的应用3.利用@Query进行增删改查,查找功能测试成功(展示第一页的三条数据)
2025-05-08 18:57:00
223
原创 学习日记-day2-5.7
是一个流行的 JavaScript 库,用于在 Web 浏览器和 Node.js 中发起 Http 请求和处理响应。它提供了一种易于使用、灵活和强大的方式来与服务器进行数据通信。Axios 具有一些有用的特性,如自动转换 json 响应、请求/响应拦截、取消请求等等。它也是 Vue.js 官方推荐的 Http 库之一。2.<"http://mybatis.org/dtd/mybatis-3-mapper.dtd">显示未注册uri。1.下载插件后vue2与vue3版本不兼容,出现语法问题以及插件版本问题。
2025-05-07 19:17:46
295
原创 学习笔记-day1-5.6
RequestMapping 是 Spring MVC 中的一个注解,用于将 HTTP 请求映射到指定的控制器方法上。标注 @RestController 的类 HelloController 表明其所有方法的返回值都直接序列化为响应数据(如 JSON 或文本),适用于构建 RESTful Web 服务。@RequestMapping("/hello") 表示当访问路径为 /hello 时,会触发 hello() 方法进行处理。value:指定请求的 URL,如 "/hello"。2.安装vue脚手架。
2025-05-07 09:07:04
295
原创 设计模式(2)创建者模式
1 单例模式单例模式是 Java 中最简单的设计模式之一。它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。1.1 单例模式的结构单例类:只能创建一个实例的类访问类:使用单例类1.2 单例模式的实现单例模式的实现分为两种:1.2.1 饿汉式类加载就会导致该实例对象被创建。1.2.2 懒汉式。
2025-02-07 17:17:31
727
原创 设计模式(1)概述
设计模式是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。它描述了在软件设计过程中的一些不断重复发生的问题, 以及该问题的解决方案。也就是说,它是解决特定问题的一系列套路,是前辈们的代码设计经验的总结,具有一定的普遍性,可以反复使用。
2025-02-07 14:58:05
1690
原创 c++输入月份出英文
#include<iostream>using namespace std;int main(){ char *p[12]={"January","February","March","Apirl","May","June","July","August","September","October","November","December"}; int i; cin>>i; if(i<1||i>12) cout<<"error"; el.
2021-12-23 12:54:45
547
原创 c++三个数求最大值
#include <iostream>using namespace std;int main(){int a,b,c,max;cin>>a>>b>>c;max=a;if(b>max)max=b;elseif(c>max)max=c;cout<<max<<endl;return 0;}
2021-12-23 12:52:26
1602
原创 c++求数组鞍点
#include<iostream>using namespace std;int main(){int i,j,flag=0;int a[3][4],max[3][3],min[4][4];cout<<"输入一个3x4数组"<<endl;for(i=0;i<3;i++){for(j=0;j<4;j++)cin>>a[i][j];}max[0][0]=a[0][0];min[0][0]=a[0][0];for(i=0;i.
2021-12-23 12:51:31
308
原创 c++选择排序
#include<iostream>using namespace std; void giao(int a[],int n){int m,p,q,c;for(m=0;m<4;m++){ p=m; for(q=m+1;q<5;q++) if (a[q]>a[p]) p=q; c=a[p]; a[p]=a[m]; a[m]=c;} }int main(){ void giao(int a[],int n); int i,j; int a.
2021-12-23 12:48:55
95
原创 c++数组的逆序存放
#include<iostream>using namespace std;int main(){int giao(int a[],int n);int a[5];int i,j;for(i=0;i<5;i++)cin>>a[i];giao(a,5);for(j=0;j<5;j++)cout<<a[j]<<' ';return 0;}int giao(int a[],int n){int m,p;for(m=0;.
2021-12-23 12:48:16
1222
原创 c++汉诺塔
#include <iostream>using namespace std;void move(int n,char A,char B,char C);int step=0;int main(){ int n; cout<<"请输入block数n:"<<endl; cin>>n; move(n,'A','B','C'); return 0;}void move(int n,char A,char B,char C){ if(n=.
2021-12-23 12:47:18
171
原创 c++证明哥德巴赫猜想
#include<iostream>using namespace std;bool prime(int n){ if(n<=1) {return false;} for(int m=2;m<n;m++) { if((n%m)==0) {return false;} } return true;}int gotbaha(int g){ int a; a=g; for(int i=1;i<=a/2;i++) {if(prime(i)&.
2021-12-23 12:46:44
256
原创 c++水仙花数
#include <iostream>using namespace std;int main(){ int a,b,c,d,n;for(n=100;n<=999;n++){a=n/100;b=n%100/10;c=n%10;d=a*a*a+b*b*b+c*c*c;if(d==n){ cout<<d<<'\t';}}cout<<endl;return 0;}
2021-12-23 12:41:50
262
原创 c++指针排序等长字符串
#include<iostream>#include<string>using namespace std;int main(){ void sort(string *a); string a[5]={"","","","",""}; string *p=a; for(int i=0;i<5;i++) cin>>a[i]; sort(a); for(int j=0;j<5;j++) { cout<<a[j].
2021-12-23 12:40:49
95
原创 c++求最大公约数和最小公倍数
#include<iostream>using namespace std;int main(){ int a,b,c,d,e,f; cin>>a>>b; e=a*b; if(b>=a) { c=a; a=b; b=c;} do {d=a%b; a=b; b=d;} while(d==0); f=e/b; cout<<b<<'\t'<<f<<endl; r.
2021-12-23 12:39:23
405
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人