- 博客(509)
- 资源 (2)
- 收藏
- 关注
原创 Java基础知识八
信号量,由1965年Dijkstra提出的信号量:本质上是一个计数器计数器大于0,可以使用,等于0不能使用可以设置多个并发量,例如限制10个访问。Lock也可以实现同步的效果-实现更复杂的临界区结构-tryLock方法可以预判锁是否空闲-允许分离读写的操作,多个读,一个写。允许执行并发多阶段任务,同步辅助类在每一个阶段结束的位置对线程进行同步,:当所有的线程都到达这步,再进行下一步。Thread/Executor/Fork-Join-线程启动,运行,结束-线程之间缺少协作。
2024-08-23 17:47:22
401
原创 Java基础知识七
activeCount,返回线程组中还处于active的线程数(估计数);enumerate,将线程组中active的线程拷贝到数组中;,你可以启动一个计算任务,然后立即继续执行其他任务,而不是等待计算完成。接口是java.util.concurrent包的一部分,它用于表示异步计算的结果。-可以通过enumerate方法遍历组内的线程,执行操作。-线程重复利用(new线程代价很大)理解共享线程池的概念。方法可以返回一个结果,并且可以抛出一个异常,而。-重复创建线程、关闭线程操作,无法重用线程。
2024-08-21 20:10:13
264
原创 mybatisplus 通过xml 定义接口
确保你的 MyBatis-Plus 配置已经正确设置了 mapper 文件的路径。文件中自动配置好,因为 Spring Boot 会根据约定大于配置的原则来寻找 mapper 接口和 XML 文件。首先,你需要创建一个 Mapper 接口,这个接口会包含你需要执行的数据库操作方法。一旦 Mapper 接口和 XML 文件配置完成,你就可以在你的服务层或控制器中注入。)中包含了 mapper 文件的路径,或者你的 Spring Boot 应用通过。文件夹中(这个文件夹的路径可以根据你的项目配置来调整)。
2024-08-19 17:10:10
427
原创 Java 基础知识六
NEW 刚创建(new)-RUNNABLE就绪态(start)-RUNNING 运行中(run)-BLOCK 阻塞(sleep)-TERMINATED结束。-interrupt,向另外一个线程发送中断信号,该线程收到信号,会触发InterruptedException(可解除阻塞),并进行下一步处理。-wait/notify/notifyAll,等待,需要别人来唤醒-join,等待另外一个线程结束。-互斥:某一个线程运行一个代码段(关键区),其他线程不能同时运行这个代码段。
2024-08-15 20:58:01
428
原创 Java 基础知识五
可处理docx,xlsx,pptx,visio等office套件。全称:Comma-Seperated Values文件(逗号分隔)·广义CSV文件,可以由空格/Tab键/分号//完成字段分隔。-Apache出品,必属精品,poi.apache.org。-纯Java工具包,无需第三方依赖-主要类。-CSVPrinter 写入文档。-CSVFormat 文档格式。-CSVParser 解析文档。-CSVRecord 一行记录。XWPFPicture图片。XWPFTable 表格。
2024-08-15 16:55:33
220
原创 Java 基础知识三
0utputStreamWriter 转化类,负责字符到字节转化;三者构建关系: BufferedWriter(OutputStreamWriter(File0utputStream)))java.io.File是文件和目录的重要类(IDK6及以前是唯目录也使用File类进行表示。DatalnputStreamWriter 转化类:负责字节到数据类型转化。Java读写文件,只能以(数据)流的形式进行读写java.io包中。-打开一个输入文件,读数据,向ZipEntry写数据,关闭输入文件。
2024-08-12 17:14:32
598
原创 Java 基础知识二
基于TreeMap实现的,不可以容纳null元素,不支持同步SortedSet s= Collections.synchronizedSortedSet(new TreeSet(...)),继承自Hashtable的方法:clear,contains/containsValue,containsKey.get, put,remove, size。主要方法:clear,containsValue,containsKey,get,put,remove, size。这3个方法三位一体equals()是相同的;
2024-08-08 21:00:50
821
原创 java 基础知识一
obj 可以看作内存中一个对象的句柄c/c++中,obj称为指针,java中称为Reference对象赋值时Reference 赋值,而基本类型时直接拷贝值基本类型的变量值小,可直接拷贝;对象包含多个值,不容易复制,赋值采用共享同一块内存区域。函数中局部变量,编译器不会给默认值,需要初始化才可使用;类的成员变量,编译器会给默认值,可以直接使用。this 在类中的用法1、指向本类中的成员变量2、指向本类中的成员方法3、可以当作构造函数使用。
2024-08-07 19:33:40
489
原创 java项目中VO、DTO、BO、DO、PO的作用
PO和DO十分类似,是从现实世界中抽象出来的业务实体,通常这个对象就是一个表的结构。entity 的,意思就是实体的意思,所以也是最常用到的,entity 包中的类是必须和数据库中的表相对应的。View Obiect:视图对象,用于展示层,按照前端需求把某个指定页面的展示数据封装起来。Persistent Object:持久化对象,和持久层(如数据库)形成对应的映射关系。Domain Object:领域对象,从现实世界中抽象出来的有形或无形的业务实体。DTO和BO在不复杂的场景下,可能不做区分。
2024-08-06 09:29:38
336
原创 Eclipse maven 的坑
在使用 eclipse 时, eclipse 的右下角 一直在提示 “JPA java change event handler” ,eclipse使用起来很卡,解决办法。在使用 eclipse时, eclipse 的右下角 一直在提示 “JPA java change event handler”选择菜单:Preferences > Install/Update > UnInstalled or Update。eclipse使用起来很卡,可直接搜索jpa 然后卸载。
2024-08-01 17:50:24
193
转载 【SpringBoot中实现过滤器和拦截器】
4.3 Filter可拦截所有web资源(包括Jsp,Servlet,静态资源),而Interceptor则只拦截controller。4.2 Filter的生命周期由servlet容器管理,而Interceptor通过IOC容器来管理,可通过注入等方式来获取其Bean。2.1 自定义过滤器,实现Filter接口(SpringBoot 3开始,jakarta.servlet.Filter)1 过滤器Filter和拦截器Interceptor,在功能方面很类似,但在具体实现方面差距还是比较大的。
2024-08-01 09:22:14
18
原创 eclipse安装lombok
安装完成之后,在 HELP ->about Eclipse IDE 中可以查看。2、将lombok.jar放到eclipse跟目录,并运行jar包。3、等待扫描到eclipse之后,点击install。1、官网下载lombok.jar。
2024-07-12 14:39:30
218
原创 最简单的Qt连接MYSQL的方法
然后在打开Qt下编译器的plugin文件夹下的sqldrivers文件夹(例:D:\QT\5.14.2\mingw73_64\plugins\sqldrivers),将解压文件中的\debug\sqldrivers\qsqlmysql.dll文件,复制到该目录。首先需要确定mysql和qt使用的编译器都为32或者64位(必须一致),其次通过qt的安装目录可以确定它的版本(例:D:\QT\5.14.2\mingw73_64,可知qt版本为5.14.2,采用的是mingw64位编译器),记住这个版本。
2024-07-01 20:20:02
302
原创 【MAC】命令行终端切换wifi
networksetup -setairportpower en0 off //en0 设备名。networksetup -setairportnetwork en0 wifi名 wifi密码。tips:企业证书认证的wifi,无法获取密码,不能连接。查看wifi对应设备名。
2024-07-01 14:21:58
267
原创 bochs 调试基本指令大全
查看内存物理地址内容 xp /nuf addr xp /40bx 0x9013e。每执行一条指令就打印CPU信息 trace-reg trace-reg on。查看线性地址内容 x /nuf addr x /40bx 0x13e。显示当前所有断点信息 info break info break。显示 CPU 状态信息 info cpu info cpu。单步运行(遇到函数则跳过) n n。显示所有使用的寄存器值 r r。
2024-05-29 16:04:03
300
转载 如何查看计算机磁盘 ID(磁盘标识符)
同时按下 Win+R 键打开运行窗口,输入 CMD,点击确定。 输入diskpart,按 Enter 键确认。 输入list disk,按 Enter 键确认,查看计算机的所有磁盘信息。 输入Select disk 0(disk 0 为第一个磁盘,若有多个磁盘,数字递增,在 disk 后面输入对应的磁盘数字即可),按 Enter 键确认。 输入detail disk,按 Enter 键确认,您可以看到对应的磁盘 ID。
2024-05-15 20:02:58
1030
原创 mysql容器启动 初始化数据库
要在MySQL容器启动时初始化数据库,你可以使用Docker的volume功能将数据库脚本复制到容器内,并在启动时运行这些脚本。文件,并按照文件名的字母顺序执行它们,因此你可以按照需要创建多个脚本并确保它们在启动时按正确的顺序执行。当容器启动时,MySQL服务会读取。
2024-05-15 17:32:25
306
转载 硬盘基本知识(磁头、磁道、扇区、柱面)
盘片(platter)磁头(head)磁道(track)扇区(sector)柱面(cylinder)盘片 片面 和 磁头硬盘中一般会有多个盘片组成,每个盘片包含两个面,每个盘面都对应地有一个读/写磁头。受到硬盘整体体积和生产成本的限制,盘片数量都受到限制,一般都在5片以内。盘片的编号自下向上从0开始,如最下边的盘片有0面和1面,再上一个盘片就编号为2面和3面。如下图:图1扇区 和 磁道。
2024-05-15 09:06:25
357
转载 VirtualBox_Ubuntu22.04 Terminal无法打开
CTRL + ALT + F3 进入命令行模式(需要返回桌面时CTRL + ALT + F7)把文件中的 “en_US” 改成 “en_US.UTF-8”保存退出reboot 重启虚拟机。
2024-05-09 17:50:37
284
原创 ubuntu 允许root登录
在 "auth required pam_succeed_if.so user!= root quiet_success" 前加#号注释,然后保存关闭。在 "auth required pam_succeed_if.so user!= root quiet_success" 前加#号注释,保存关闭。vim /etc/ssh/sshd_config #root权限编辑。设置允许root用户登录桌面(默认不允许)设置允许root通过ssh默认登录。Ubuntu激活root用户。
2023-10-09 16:20:49
1645
原创 手动编译cpp的单个文件
文件名是自己命名的,比如文件名命名为test,那就是g++ -g xxx.o -o test。例如有一个名为xxx.cpp的文件,需要将其编译为Linux下的可执行文件,需要两个步骤。test='./test 参数' 然后 os.system(test)进行执行。./test为文件路径,空格后为cpp文件需要的参数(如果没有参数就空着)(1)编译:g++ -g -c xxx.cpp -o xxx.o。(2)链接:g++ -g xxx.o -o 文件名。xxx.o 可以取任意名称。
2023-09-25 09:35:20
286
转载 shell 大小写转换
LOWERCASE=$(echo $VARIABLE | tr '[A-Z]' '[a-z]') (把VARIABLE的大写转换成小写)ab。例如:UPPERCASE=$(echo $VARIABLE | tr '[a-z]' '[A-Z]') (把VARIABLE的小写转换成大写)sed。echo True | sed 's/[a-z]/\u&/g' - # 转小写。echo True | sed 's/[A-Z]/\l&/g' - # 转大写。二、用typeset。
2023-07-24 17:12:02
1583
原创 shell 使用 sqlite3
本地没有sqlite3,从服务端copy 一个,但这还不够,查命令的依赖。把这些都带上,不带软连接的就不用拷贝了。
2023-07-24 10:11:34
619
原创 查看ssl证书有效期
[root@localhost ~]# openssl x509 -in ucc.ca.pem.crt -noout -datesnotBefore=Jul 14 06:12:16 2003 GMTnotAfter=Jul 4 06:12:16 2043 GMT
2023-07-14 15:54:03
345
原创 shell中$(( ))、$( )、``与${ }的区别
命令替换与变量替换差不多,都是用来重组命令行的,先完成引号里的命令行,然后将其结果替换出来,再重组成新的命令行。在bash中,$( )与` `(反引号)都是用来作命令替换的,执行括号或者反引号中的命令。2)在多层次的复合替换中,``必须要额外的跳脱处理(反斜线),而$( )比较直观。$(( ))属于执行计算公式,等价于$[ ],$( )和` `属于命令替换,${ }属于变量替换。最后,$( )的弊端是,并不是所有的类unix系统都支持这种方式,但反引号是肯定支持的。
2023-06-19 11:00:40
1073
原创 ERROR [flask_migrate] Error: Target database is not up to date.
由于手动更新了数据库 ,忘了更新本地 使用flask db migrate 导致更新失败。修改本地后 再次执行 报错。
2023-04-25 17:36:58
583
1
转载 laravel 在一个控制器的方法中调用其他控制器中的方法
laravel 在一个控制器的方法中调用其他控制器中的方法。或者使用辅助函数 app()
2023-04-19 12:10:02
748
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人