mybatis
项目概览
pom.xml123456789101112131415161718192021222324252627282930313233343536<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.example</groupId> <a ...
Maven笔记
Maven笔记依赖冲突解决方案
依赖冲突: 相同jar包的不同版本被直接或间接包含进项目中
可通过mvn -Dverbose dependency:tree查看依赖
解决依赖冲突
使用第一声明者优先原则
在pom.xml文件自上而下,先声明的jar坐标,就先引用该jar的传递依赖
使用路径近者优先原则
即直接依赖优先于间接依赖, 将需要使用的版本放入pom.xml中, 这样项目就会使用你需要的版本, 而不是通过间接依赖传递的版本
排除依赖
1234567891011<dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.2.7.RELEASE</version> <exclusions> <exclusion> <artifactId>spring- ...
linux常用工具
screen安装1234# CentOSyum install screen# Debian/Ubuntuapt install screen
创建12345# 创建一个叫Hello的虚拟终端screen -S Helloscreen -R Hello#使用-R创建,如果之前有创建唯一一个同名的screen,则直接进入之前创建的screen#使用-S创建和直接输入screen创建的虚拟终端,不会检录之前创建的screen(也就是会创建同名的screen)
Ctril+a,再按d ,回到主界面,screen后台运行,处于Detached
操作123screen -ls # 查看已开的screenscreen -r|R [pid/name] # 进入screen,pid/name:为虚拟终端PID或Name
kill掉screen12screen -S {session_name} -X quit # kill进入终端,输入exit,退出
两者本质一样,第一个在主终端指定screen并执行exit命令,第二个直接进入screen执行exit命令
ss(Sock ...
linux安装texlive并使用vscode远程连接
linux安装texlive并使用vscode远程连接
本来一直都是在windows上写latex, 奈何实在感觉编译太慢了, 虽然也有一些优化方法(下面会讲), 但切换为linux才是更加geek的方式, 正巧我家里就有一台N100的零刻的小主机, 系统为Ubuntu, 硬盘为M.2 PCIe SSD, 内存是DDR5 4800. 秒杀我的R7 6800H的windows笔记本!
提高LaTeX的编译速度
取消压缩
1\special{dvipdfmx:config z 0} %取消PDF压缩,加快速度,最终版本生成的时候最好把这句话注释掉
确实提升很大, 但是让我原本15M的pdf变成了160+M, 打开查看都要转圈圈的那种
对比测试: 只使用xelatex命令(不用xelatex -> bibtex -> xelatex*2)
压缩
取消压缩
windows
36.57s
9.53s
linux
21.73s
3.47s
使用批处理模式,即编译时加上 -interaction=batchmode 参数
使用预编译技 ...
KMP
KMP123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051package com.zq.JVM;public class test2 { public static void main(String[] args) { Solution solution = new Solution(); System.out.println(solution.strStr("aabaabaaf", "aabaaf")); }}class Solution { //前缀表(不减一)Java实现 public int strStr(String haystack, String needle) { if (needle.length() == 0) { return 0; ...
JVM
JVM类加载过程
加载:
将编译成的字节码文件加载到JVM内存中, 并生成一个代表该类的 java.lang.Class 对象
验证:
检查字节码是否规范,
确保二进制字节流格式符合预期(比如说是否以 cafe bene 咖啡北鼻开头)。
是否所有方法都遵守访问控制关键字的限定。
方法调用的参数个数和类型是否正确。
确保变量在使用之前被正确初始化了。
检查变量是否被赋予恰当类型的值
准备:
对类变量(也称为静态变量,static 关键字修饰的)分配内存并初始化(对应数据类型的默认初始值,如 0、0L、null、false 等)
如public static int value1 = 123;在此阶段初始值为0
但public static final int value2 = 123;在此阶段初始值为123
解析:
将常量池中的符号引用转化为直接引用
直接引用通过对符号引用进行解析,找到引用的实际内存地址
初始化:
为变量赋予代码中的值
java中的native
作用: 扩展java的功能, 使java可以调用其他语言的代码完成任务. 比如用户上传一个视频文件,需要后台 ...
jsRegex
string.match(/\d+/gis)
return an array of string that matched the regex.
\d:match number
\w:数字 字母 下划线
+:match one or more
*:匹配0次或多次
g:global match
i:ignore capital
s:忽略换行符
string.match(/[^\da-zA-Z]+/g)
^:don’t match
[]:当中的元素为或的关系 当中的元素不会被正则转义(如小括号放在里面就表示小括号)
string.match(/.+/g)
.:除了换行符以外的任何字符
**-**是特殊字符,表示他本身时需要转义-
string.match(/\p{sc=Han}+/gu)
专门匹配中文 u不可缺少
string.match(/[\s\S]/g) 或 string.match(/[\d\D]/g)
匹配所 ...
jetson nano配置
jupyter-notebook
开机启动时显示:jupyter notebook服务启动失败,没找到原因,只能开机后让它自动执行命令来开启
启动命令1/home/jetson/.local/bin/jupyter notebook /home/jetson/jupyter_notebook_config.py –allow-root
jupyter 最好带上命令路径,否则可能提示找不到命令(虽然路径已经在PATH里,但遇到过找不到命令的情况),jupyter_notebook_config.py 是配置文件,内有端口号 ip等信息. 如果不加配置文件,默认只监听localhost,而且局域网无法访问
设置自启动命令
在合适位置(/home/jetson)新建文件new_service.py
1234#!/bin/bash#command content/home/jetson/.local/bin/jupyter notebook /home/jetson/jupyter_notebook_config.py –allow-rootexit 0
设置自启 ...
java集合
java集合一些遍历方法迭代器遍历列表12345List<String> list=new ArrayList<String>();Iterator<String> it = list.iterator();while(it.hasNext()){ System.out.println(it.next());}
遍历map123456789101112131415161718192021222324252627Map<String, String> map = new HashMap<String, String>();//第一种:普遍使用,二次取值()System.out.println("通过Map.keySet遍历key和value:");for (String key : map.keySet()) { System.out.println("key= "+ key + " and value= " + map.ge ...
java基础笔记_2023.11
java基础笔记_2023.11Integer
Integer对-128~high(high值可在JVM参数里配置)的值有缓存, 通过自动装箱机制创建的Integer会直接由缓存数组返回, 所以缓存范围内的相同值的对象都是同一个, 当然你自己new出来的就不一样了
字符串转Integer方法
123Integer i = new Integer("666"); // 已弃用, 使用valueof的时间和空间性能更好Integer i = Integer.valueOf("5555");Integer i = Integer.parseInt("12");