首页
统计
留言
友链
更多
图片
关于
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
条评论
首页
栏目
默认分类
后端开发
相关配置
知识分享
异常处理
前端开发
建站教程
开发教程
知识回顾
软件开发
杂项
页面
统计
留言
友链
图片
关于
搜索到
24
篇与
的结果
2023-11-29
配置golang的环境变量
配置golang的环境变量# 项目中用到 开启mod模式 go env -w GO111MODULE=on # 设置镜像代理 go env -w GOPROXY=https://goproxy.cn七牛云代理
2023年11月29日
0 阅读
0 评论
0 点赞
2023-11-16
windows联网激活
windows联网激活命令行irm https://massgrave.dev/get | iex irm https://get.activated.win | iex
2023年11月16日
2 阅读
0 评论
0 点赞
2023-08-20
scoop包管理器
在Windows上使用包管理器scoop官网配置环境变量在$env:SCOOP='填写windows路径'$env:SCOOP='D:\Scoop' [Environment]::SetEnvironmentVariable('SCOOP', $env:SCOOP, 'User')下载安装配置完环境变量后使用命令行进行安装iwr -useb get.scoop.sh | iex安装完成后在配置路径下查看使用常用命令查看一些信息:search——搜索仓库中是否有相应软件。install——安装软件。uninstall——卸载软件。update——更新软件。可通过scoop update *更新所有已安装软件,或通过scoop update更新所有软件仓库资料及Scoop自身而不更新软件。hold——锁定软件阻止其更新。info——查询软件简要信息。home——打开浏览器进入软件官网。安装软件可以在官网搜索想要的软件, 如果有则直接进行命令行安装,安装的文件都在apps文件夹下并且一些软件会自动配置环境变量,一些软件比如7zip需要用到右键进行压缩和解压需要添加注册表则安装的文件夹下会有install-context.reg文件双击进行安装删除也有对应的uninstall-context.reg缺点:需要配置镜像或者代理要不然可能下载很慢,使用scoop config proxy 127.0.0.1:7890将代理改为clash本文参考自:Scoop——也许是Windows平台最好用的软件(包)管理器 - 知乎, 仅供自己学习使用2024年7月16日更新如今的scoop支持的软件越来越多,如果你是一位开发者,推荐你使用scoop来管理系统的环境变量,以及多环境,像多版本的Java,不同版本的nodejs,还能方便的下载c/c++相关的内容像mingw,llvm。
2023年08月20日
3 阅读
0 评论
0 点赞
2023-08-03
java开发知识点
java基础反射如何通过反射获取和设置对象私有字段的值?可以通过类对象的getDeclaredField()方法字段(Field)对象,然后再通过字段对象的setAccessible(true)将其设置为可以访问,接下来就可以通过get/set方法来获取/设置字段的值了。下面的代码实现了一个反射的工具类,其中的两个静态方法分别用于获取和设置私有字段的值,字段可以是基本类型也可以是对象类型且支持多级对象操作。例如ReflectionUtil.get(dog,"owner.car.engine.id");可以获得dog对象的主人的汽车的引擎的ID号。import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java.lang.reflect.Modifier; import java.util.ArrayList; import java.util.List; /** * 反射工具类 * */ public class ReflectionUtil { private ReflectionUtil() { throw new AssertionError(); } /** * 通过反射取对象指定字段(属性)的值 * @param target 目标对象 * @param fieldName 字段的名字 * @throws 如果取不到对象指定字段的值则抛出异常 * @return 字段的值 */ public static Object getValue(Object target, String fieldName) { Class<?> clazz = target.getClass(); String[] fs = fieldName.split("\\."); try { for(int i = 0; i < fs.length - 1; i++) { Field f = clazz.getDeclaredField(fs[i]); f.setAccessible(true); target = f.get(target); clazz = target.getClass(); } Field f = clazz.getDeclaredField(fs[fs.length - 1]); f.setAccessible(true); return f.get(target); } catch (Exception e) { throw new RuntimeException(e); } } /** * 通过反射给对象的指定字段赋值 * @param target 目标对象 * @param fieldName 字段的名称 * @param value 值 */ public static void setValue(Object target, String fieldName, Object value) { Class<?> clazz = target.getClass(); String[] fs = fieldName.split("\\."); try { for(int i = 0; i < fs.length - 1; i++) { Field f = clazz.getDeclaredField(fs[i]); f.setAccessible(true); Object val = f.get(target); if(val == null) { Constructor<?> c = f.getType().getDeclaredConstructor(); c.setAccessible(true); val = c.newInstance(); f.set(target, val); } target = val; clazz = target.getClass(); } Field f = clazz.getDeclaredField(fs[fs.length - 1]); f.setAccessible(true); f.set(target, value); } catch (Exception e) { throw new RuntimeException(e); } } }如何通过反射调用对象的方法?import java.lang.reflect.Method; class MethodInvokeTest { public static void main(String[] args) throws Exception { String str = "hello"; Method m = str.getClass().getMethod("toUpperCase"); System.out.println(m.invoke(str)); // HELLO } }死锁与活锁的区别,死锁与饥饿的区别?死锁:是指两个或两个以上的进程(或线程)在执行过程中,因争夺资源而造成 的一种互相等待的现象,若无外力作用,它们都将无法推进下去。产生死锁的必要条件:互斥条件:所谓互斥就是进程在某一时间内独占资源。请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。不剥夺条件 :进程已获得资源,在末使用完之前,不能强行剥夺。循环等待条件 :若干进程之间形成一种头尾相接的循环等待资源关系。活锁:任务或者执行者没有被阻塞,由于某些条件没有满足,导致一直重复尝试, 失败,尝试,失败。活锁和死锁的区别在于,处于活锁的实体是在不断的改变状态,所谓的“活”,而处于死锁的实体表现为等待;活锁有可能自行解开,死锁则不能。mysqlMySQL 中有哪几种锁?表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。行级锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高。页面锁:开销和加锁时间界于表锁和行锁之间;会出现死锁;锁定粒度界于表锁和行锁之间,并发度一般。锁的优化策略读写分离分段加锁减少锁持有的时间多个线程尽量以相同的顺序去获取资源 不能将锁的粒度过于细化,不然可能会出现线程的加锁和释放次数过多,反而效 率不如一次加一把大锁。实践中如何优化 MySQL最好是按照以下顺序优化:SQL语句及索引的优化数据库表结构的优化系统配置的优化硬件的优化
2023年08月03日
2 阅读
0 评论
0 点赞
2023-07-30
hexo+github搭建个人博客
拥有一个Github账号创建仓库创建一个名为用户名.github.io的仓库,使用小写用户名。因为我这里创建过了,所以显示已存在生成连接Github的密钥在终端中输入以下命令根据提示生成公钥和密钥ssh-keygen -t rsa -C "GitHub注册邮箱"直接回车默认它的选项就会在C盘的Users\计算机用户名\.ssh下生成id_rsa.pub文件为公钥在个人设置界面找到SSH and GPG keys,新建一个SSH key使用记事本打开刚刚的id_rsa.pub文件,将其中的内容全部粘贴到key中,titlle任意在终端中使用该命令查看是否连接成功ssh git@github.com安装Git一直下一步安装即可:Git - 安装 Git配置基本信息git config --global user.name "GitHub用户名" git config --global user.email "GitHub注册邮箱"安装Nodejs在这里有写就不再这里赘述:Nodejs安装教程安装hexo使用安装的nodejs中的npm命令来安装hexonpm install -g hexo-cli创建一个空文件夹来存放你的blog项目,在空文件下执行下面命令:hexo init myBlog该命令会在当前目录下创建一个名为myBlog的文件夹存放初始化博客项目接下来就可以使用命令将他启动,使用hexo s -p 端口号可以在指定的端口上生成项目,默认为4000cd myBlog hexo clean hexo g # generate 生成 hexo s # server 启动服务这时在浏览器打开localhost:4000就能查看到博客了安装主题这时你可能就会发现默认的博客样式相当的简陋,这时候我们就需要为hexo安装主题你可以在github上寻找你想要的主题或者是在hexo的主题官网上寻找你想要的主题这里我们以比较流行的hexo-theme-matery主题作为例子演示通过git命令将主题的github仓库克隆到themes文件夹下:git clone https://github.com/blinkfox/hexo-theme-matery.git themes/hexo-theme-matery下载好主题后想要应用主题需要到myBlog文件夹下的_config.yml中将landscape修改为hexo-theme-matery这时我们重新执行下面老三样命令,重新部署项目hexo clean hexo g hexo s注意:在本地部署测试时你可以不需要重启项目直接修改配置文件的内容就能够应用你刚刚修改的操作,但是在接下来要讲到的在github上部署时最好执行上述的hexo clean和hexo g命令以确保清理缓存重新部署项目,防止出现明明本地没问题而云端却出错的情况。此时重新打开浏览器你就会发现出现漂亮的主题了该主题的相关配置在作者的github以及博客中都有较为详细的说明主题GitHub,主题博客项目部署上面说了这么多,那么如何将项目部署到GitHub上跑起来呢修改配置文件在hexo的主目录下的配置文件_config.yml中修改deploy选项deploy: type: git repo: # 填写你创建的 用户名.github.io 仓库的链接 branch: master # git的分支使用命令推送在myBlog文件夹下安装推送插件否则可能会出现ERROR Deployer not found: gitnpm install hexo-deployer-git --save修改完毕后使用命令将项目部署到GitHub,这里使用hexo d将项目推送到GitHub上hexo clean hexo g # generate 生成 hexo d # deploy 部署等待部署完成,通过 用户名.github.io 的网址就能访问到和本地预览一样的博客了域名绑定本地操作如果你想要通过自己购入的域名访问该网址而不使用.github.io的形式访问那么就需要进行域名绑定在myBlog的主文件夹下找到source文件夹在此处创建一个名为CNAME的文件,注意文件如下图所示,没有后缀,没有后缀,没有后缀!打开它在里面填入你的域名,如果你这里使用的是顶级域名那么你能使用它直接访问,如果使用子域名那么必须输入对应的子域名才能访问该步骤是将每次推送到GitHub上时让GitHub Pages能够自动绑定域名,要不然每次推送都要手动重新到仓库设置中绑定域名(domain)添加完该文件要推送一次,将该文件更新到GitHub,请执行使用命令推送中使用的三个命令进行操作域名解析如何让别人访问你的域名的时候网络能够知道你访问的是用户名.github.io你的网址,这时候就需要CDN域名解析,在你购买域名的服务商那里解析域名,绑定两个参数,这里以腾讯云为例,记录类型A的记录值填你ping 用户名.github.io返回得到的ip地址,记录类型CNAME主机记录填写www(其他的也都可以),记录值填用户名.github.io。绑定成功后等待一段时间就能通过的配置的域名访问该博客在腾讯云下域名解析的CNAME主机名为二级域名地址,如果你在上述部署到Github的CNAME文件中填写的是二级域名如 blog.xxx.com 那么在解析时也要填写对应的二级域名即主机记录为blog
2023年07月30日
1 阅读
0 评论
0 点赞
1
...
3
4
5