首页
统计
留言
友链
更多
图片
关于
Search
1
软件开发 | flutter使用camera插件在安卓11以上的机器上调用availableCameras无法正常获得usb相机列表
5 阅读
2
scoop包管理器
3 阅读
3
利用深度搜索求解回溯问题的通用模板
3 阅读
4
java开发知识点
2 阅读
5
codeforces-cpp模板
2 阅读
默认分类
后端开发
相关配置
知识分享
异常处理
前端开发
建站教程
开发教程
知识回顾
软件开发
杂项
登录
Search
标签搜索
java
golang
scoop
go
vue
hexo
sublime text
cpp
windows
redis
mc
mod
fabric
mysql
word
计算机网络
channel
html
flutter
camera
Wisansiiz
累计撰写
24
篇文章
累计收到
2
条评论
首页
栏目
默认分类
后端开发
相关配置
知识分享
异常处理
前端开发
建站教程
开发教程
知识回顾
软件开发
杂项
页面
统计
留言
友链
图片
关于
搜索到
7
篇与
的结果
2025-07-27
利用深度搜索求解回溯问题的通用模板
void backtracking(参数) { if (终止条件) { 存放结果; return; } for (选择 : 本层集合中的元素) { 处理节点; backtracking(路径, 选择列表); // 递归 撤销处理; // 回溯 } }
2025年07月27日
3 阅读
0 评论
0 点赞
2025-03-11
Git提交规范
type规范Angular Git Commit Guidelines中推荐的type类型如下:feat: 新增功能fix: 修复bugdocs: 仅文档更改style: 不影响代码含义的更改(空白、格式设置、缺失 分号等)refactor: 既不修复bug也不添加特性的代码更改perf: 改进性能的代码更改test: 添加缺少的测试或更正现有测试chore: 对构建过程或辅助工具和库(如文档)的更改除此之外,还有一些常用的类型:delete:删除功能或文件modify:修改功能build:改变构建流程,新增依赖库、工具等(例如webpack、gulp、npm修改)test:测试用例的新增、修改ci:自动化流程配置修改revert:回滚到上一个版本
2025年03月11日
0 阅读
0 评论
0 点赞
2024-08-01
mysql索引
不适合创建索引的情况在where中使用不到的字段不要建立索引;在数据量不大(比如不到 1000 行)的情况下,索引就发挥不出作用了;有大量重复数据的列上不要建立索引;避免对经常更新的表创建过多的索引;不建议用无序的值作为索引,可能会频繁导致页分裂;删除不再使用或者很少使用的索引;不要定义冗余或重复的索引;
2024年08月01日
1 阅读
0 评论
0 点赞
2024-07-31
java框架之spring
java框架之spring(未完)AOP和IOCIOCIoC (Inversion of Control )即控制反转/反转控制。它是一种思想不是一个技术实现。描述的是:Java 开发领域对象的创建以及管理的问题。例如:现有类 A 依赖于类 B传统的开发方式 :往往是在类 A 中手动通过 new 关键字来 new 一个 B 的对象出来使用 IoC 思想的开发方式 :不通过 new 关键字来创建对象,而是通过 IoC 容器(Spring 框架) 来帮助我们实例化对象。我们需要哪个对象,直接从 IoC 容器里面去取即可。从以上两种开发方式的对比来看:我们 “丧失了一个权力” (创建、管理对象的权力),从而也得到了一个好处(不用再考虑对象的创建、管理等一系列的事情)为什么叫控制反转?控制 :指的是对象创建(实例化、管理)的权力反转 :控制权交给外部环境(IoC 容器)原文链接IOC 的出现使得开发者不用关注于对象的创建可以更关注于如何使用对象。当我们新建一个接口的某一实现时,如果该实现发生了变化,那所有的引用了这一实现的类都需要修改,而使用 IOC 容器管理的话就不用再进行这种修改操作,降低了类之间的耦合。AOPAOP(Aspect Oriented Programming)即面向切面编程,AOP 是 OOP(面向对象编程)的一种延续,二者互补,并不对立。AOP 的目的是将横切关注点(如日志记录、事务管理、权限控制、接口限流、接口幂等等)从核心业务逻辑中分离出来,通过动态代理、字节码操作等技术,实现代码的复用和解耦,提高代码的可维护性和可扩展性。OOP 的目的是将业务逻辑按照对象的属性和行为进行封装,通过类、对象、继承、多态等概念,实现代码的模块化和层次化(也能实现代码的复用),提高代码的可读性和可维护性原文链接
2024年07月31日
0 阅读
0 评论
0 点赞
2024-07-30
Java多线程
java面试之多线程(待补充)线程与进程什么是线程进程中的一个执行任务(控制单元),负责当前进程中程序的执行。一个进程至少有一个线程,一个进程可以运行多个线程,多个线程可共享数据。与进程不同的是同类的多个线程共享进程的堆和方法区资源,但每个线程有自己的程序计数器、虚拟机栈和本地方法栈,所以系统在产生一个线程,或是在各个线程之间作切换工作时,负担要比进程小得多,也正因为如此,线程也被称为轻量级进程。进程与线程的区别总结线程具有许多传统进程所具有的特征,故又称为轻型进程(Light—Weight Process)或进程元;而把传统的进程称为重型进程(Heavy—Weight Process),它相当于只有一个线程的任务。在引入了线程的操作系统中,通常一个进程都有若干个线程,至少包含一个线程。根本区别:进程是操作系统资源分配的基本单位,而线程是处理器任务调度和执行的基本单位资源开销:每个进程都有独立的代码和数据空间(程序上下文),程序之间的切换会有较大的开销;线程可以看做轻量级的进程,同一类线程共享代码和数据空间,每个线程都有自己独立的运行栈和程序计数器(PC),线程之间切换的开销小。包含关系:如果一个进程内有多个线程,则执行过程不是一条线的,而是多条线(线程)共同完成的;线程是进程的一部分,所以线程也被称为轻权进程或者轻量级进程。内存分配:同一进程的线程共享本进程的地址空间和资源,而进程之间的地址空间和资源是相互独立的影响关系:一个进程崩溃后,在保护模式下不会对其他进程产生影响,但是一个线程崩溃整个进程都死掉。所以多进程要比多线程健壮。执行过程:每个独立的进程有程序运行的入口、顺序执行序列和程序出口。但是线程不能独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制,两者均可并发执行创建线程创建线程的几种方法1-继承Thread类,重写run()方法步骤:1.创建一个继承于Thread类的子类2.重写Thread类的run() --> 将此线程执行的操作声明在run()中3.创建Thread类的子类的对象4.通过此对象调用start()执行线程class myThreadTest extends Thread { @Override public void run() { for (int i = 0; i < 10; i++) { System.out.println(Thread.currentThread().getName() + " i=" + i); } } } 2-实现Runnable接口步骤:1.创建一个实现了Runnable接口的类2.实现类去实现Runnable中的抽象方法:run()3.创建实现类的对象4.将此对象作为参数传递到Thread类的构造器中,创建Thread类的对象5.通过Thread类的对象调用start() 1.启动线程 2.调用当前线程的run()–>调用了Runnable类型的target的run()class myThreadTest2 implements Runnable { @Override public void run() { for (int i = 0; i < 10; i++) { System.out.println(Thread.currentThread().getName() + " i=" + i); } } }3-实现Callable接口步骤:1.创建一个实现Callable的实现类2.实现call方法,将此线程需要执行的操作声明在call()中3.创建Callable接口实现类的对象4.将此Callable接口实现类的对象作为传递到FutureTask构造器中,创建FutureTask的对象5.将FutureTask的对象作为参数传递到Thread类的构造器中,创建Thread对象,并调用start()6.获取Callable中call方法的返回值实现Callable接口的方式创建线程的强大之处call()可以有返回值的call()可以抛出异常,被外面的操作捕获,获取异常的信息Callable是支持泛型的class myThreadTest3 implements Callable<Integer> { @Override public Integer call() throws Exception { int sum = 0; for (int i = 1; i <= 10; i++) { System.out.println(i); sum += i; } return sum; } }4-使用线程池线程池好处:1.提高响应速度(减少了创建新线程的时间)2.降低资源消耗(重复利用线程池中线程,不需要每次都创建)3.便于线程管理为什么使用多线程使用多线程是为了 提高系统的资源利用率,在 CPU 多核的情况下,如果只是使用单线程,那就只使用了单个核心,其他核心处于空闲状态,这显然没有充分利用系统资源,进行多线程操作可以让相互独立的事件运行速度变得更快,运行效率变得更高,原本有 4 件事务,每个事务要操作 10 分钟,单线程需要操作 4 * 10 = 40 分钟,而如果你让 4 个 CPU 核心同时工作,只需 10 分钟就搞定。其实我们最早在小学初中就有学习到像煮开水,煎饼问题,怎么做才能使等待的事件最短,就是用到了相互独立的事件(互不干预)同时进行。
2024年07月30日
0 阅读
0 评论
0 点赞
1
2