自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(89)
  • 收藏
  • 关注

原创 kotlin从入门到精通之内置类型

函数的引用类似C语言的函数指针,可用于函数传递由于类型可以自动推断,所以可以不用写类型名。

2023-06-20 23:26:13 924 1

原创 基于opencv测量图片中物体的尺寸(matlab实现)

问题重述已知书本上右下角放一枚一元人民币(直径2.5厘米),请利用计算机视觉技术预测图片中目标的实际尺寸。

2023-06-14 10:21:56 4298 1

原创 Jetpack之Navigation技术解密

Navigation 是一个框架,用于在 Android 应用中的“目标”之间导航,该框架提供一致的 API,无论目标是作为 Fragment、Activity 还是其他组件实现。

2023-05-12 21:59:25 1054 6

原创 Jetpack之livedatabBus源码解析

单例模式的 去掉粘性事件,Java版本。

2023-05-11 20:21:08 180

原创 Jetpack之livedata原理分析

只有在生命周期处于started和resumed时。livedata才会更新观察者。

2023-05-09 22:15:56 576

原创 JetPack之lifecycle原理分析

更新现在的状态sync();除了ComponentActivity之外,在ComponentActivity的子类androidx.fragment.app.FragmentActivity、androidx.appcompat.app.AppCompatActivity以及androidx.fragment.app.Fragment中都是可以直接使用Lifecycle的,这是AndroidX帮助开发者完成的。这种通过Fragment来感知Activity生命周期的方法其实在Glide的中也是有体现的。

2023-05-09 14:24:06 600 1

原创 Android面试题——JVM

第0行表示将一个Int型的1推送至操作数栈栈顶,程序计数器指向第0行。第一行字节码表示将栈顶的int型数值存入第一个本地变量,这两行代码就进行了给局部变量赋值的操作,第二三行同理。第4、5行表示将局部变量表的数入栈,第六行表示将栈顶两int型数值相加并将结果压入栈顶。第七行表示将单字节常量(-128~127)9推送至栈顶,因为这个字节占用两个字节码单元,所以下一行的行号是 9。9表示将栈顶两个数相乘并放入栈顶,第a行表示将栈顶的数存入本地变量。从这些操作我们可以看出都是操作操作数栈的。

2023-03-05 17:43:19 626 1

原创 基于WiFi的Android局域网视频监控的设计与实现(h264编码、解码,surfaceview、socket)

2.接收wifi的视频数据并实时在另一个监控视频手机查看,接收到的数据进行h264解码。3.wifi的数据传输利用socket通信。1.摄像头实时捕获视频并进行h264编码。

2023-03-01 13:40:58 1286 2

原创 轻量应用服务器部署vue项目

回到nginx.exe目录下,cmd运行start nginx命令 ,我们的项目就运行起来了,通过服务器的公网ip加端口号就能访问到我们打包好的项目。nginx -s reload 改变配置文件时,重启nginx工作进程,使配置生效。为了将我们打包好的vue项目传到服务器,我们要先在服务器搭建FTP服务。要记得自己创建好的用户名和密码,之后建立FTP连接的时候需要。这样我们就解决了刷新页面变成404的问题啦。start nginx 启动nginx。nginx -s quit 安全关闭。

2022-11-30 21:24:39 1137

原创 微信小程序使用github协作

由于我们使用ssh的连接方式,所以我们要先生成ssh key,可以在微信小程序的终端中输入以下命令。....生成好了之后会在~/.ssh目录中看到多出两个文件id_ecdsa和id_ecdsa.pub,分别为私钥和公钥。(路径要知道,等会有用)这里可能还会遇到一个错误,文件的路径如果包含中文可能会出错。

2022-11-24 20:54:38 1659

原创 Spring Boot+Vue3前后端分离实战wiki知识库系统之用户管理&单点登录

*** 保存// 新增 user . setId(snowFlake . nextId());} else {// 用户名已存在 throw new BusinessException(BusinessExceptionCode . USER_LOGIN_NAME_EXIST);// 更新 user . setLoginName(null);} else {} }} /*** 不写入堆栈信息,提高性能} }} }/*** 校验异常统一处理。

2022-11-19 22:10:04 812 4

原创 Spring Boot+Vue3前后端分离实战wiki知识库系统之分类管理功能开发

来到我们mybatis generator的配置文件中:执行一下generator,生成了四个类:首先我们先写controller,直接复制我们之前所写的EBookController重命名为CategoryController,使用快捷键ctrl+R一键替换关键词:再替换大写的:这时候其实有很多类是没有的:接下来我们来编写sevice,同样直接复制之前写好的Ebook相关service:同样直接一键替换大写和小写:接下来我们来编写实体类:CategoryQueryReq查询

2022-11-14 21:40:37 901

原创 Spring Boot+Vue3前后端分离实战wiki知识库系统之电子书管理功能开发

在views下新建一个admin包,表示只有管理员才能访问,创建admin-ebook.vue:在index.ts中增加路由,先导入vue:我们在the-header组件中新建菜单选项,并通过router-link标签进行跳转:运行我们的项目,实现了电子书管理的跳转:我们先将home.vue的模板代码复制到admin-ebook.vue:但是我们电子书表格的页面不需要侧边栏,所以可以将sider删掉:实现效果:我们最后实现的效果:首先我们要定义列:每一行我们要给

2022-11-11 23:51:06 1036 1

原创 Spring Boot+Vue3前后端分离实战wiki知识库系统之前后端交互整合

我们定位到web的目录,使用命令安装axios:指定版本号:我们定位到Home.vue,我们要在这个页面通过axios用电子书列表功能。导入axios,在setuo中使用:启动后端和前端,发现报错:为了解决跨域问题,我们后端需要增加一个配置类:添加完配置类后我们的前端就没有报错了。但是到Vue3生命周期方法被setup包了。例如我们刚刚提到的onMounted,如果我们要在Vue3中使用,我们要先从vue中导入,并且写在setup中:先会打印出setup后才是on

2022-11-06 20:05:17 1376

原创 Spring Boot+Vue3前后端分离实战wiki知识库系统之Vue3 + Vue CLI 项目搭建

我们要使用2.0之后的版本才支持vue3我们可以在antDesignVue的官网看到很多它支持地布局:下面就是我们需要的这种布局的代码:我们复制他提供的布局的代码到自己的项目,放在APP.vue下,也就是我们的初识页面。

2022-11-01 22:05:56 1355 1

原创 Spring Boot+Vue3前后端分离实战wiki知识库系统之后端架构完善与接口开发

在本地使用navicat 添加本地数据库连接:创建一个wiki数据库:创建一个专用的账户:配置权限设置单个库的权限:通过这个用户名创建数据库的连接:然后就能操作数据库了略使用IDEA右侧的Database创建连接:输入账号密码测试连接(如果是首次连接可能需要下载驱动 看看报错有没有提示下载):之后我们就可以直接操作数据库和查看数据库:如果我们使用可视化界面来操作数据库,例如增加数据等,我们需要提交事物,否则数据库不会改变:Hibernate:全自动的框架,强大、复杂

2022-10-31 18:17:39 1655 3

原创 Spring Boot+Vue3前后端分离实战wiki知识库系统之Spring Boot项目搭建

网上有很多博客可以参考,这里不再赘述。Spring Boot支持两种不同格式的配置文件:一种是Properties,另一种是YML。Spring Boot默认使用application.properties作为系统配置文件,项目创建成功后会默认在resources目录下生成application.properties文件。该文件包含Spring Boot项目的全局配置。

2022-10-30 19:40:04 2166 4

原创 form表单组件与小程序前后端通信

form-type属性用于 form 组件,点击分别会触发 form 组件的 submit/reset 事件。具体使用后文再讲解。

2022-10-29 00:23:58 618

原创 微信小程序入门与实战之更多电影列表与电影搜索

在网络请求中我们可以采用下面这种形式:如果我们可以不采用直接写在url的方式我们可以采用data的方式:默认请求方式是GET我们可以通过设置method修改请求方式:我们要实现的效果:首先创建好more-movie页面:引入我们之前写好的movie自定义组件:引入app:定义data:发起网络请求:编写wxml代码,使用循环渲染:实现效果:使用样式:布局代码:也可以使用justify-content使页面平均分配:实现效果:通过自己定义data,并绑定点击事件:跳转的

2022-10-23 17:36:40 1764 3

原创 微信小程序入门与实战之电影页面与实战自定义组件

在自定义组件中使用一些样式会没有效果,所以要要用外部样式类代替。

2022-10-13 23:54:49 1674 1

原创 微信小程序入门与实战之初识小程序的自定义组件

我们在根目录新建一个components的文件夹,这时候我们再新建一个post文件夹表示文章相关的自定义组件,然后选中post文件夹,新建component对于自定义组件,我们最好将其命名为index在所需要使用自定义组件的json文件下进行引入:就可以开始使用我们的自定义组件但是不能自己设置默认值,只能用原本默认的。定义在 properties也可以用作数据绑定。

2022-10-13 00:20:34 516 1

原创 深入理解并发编程和归纳总结(上)

队列同步器 AbstractQueuedSynchronizer(以下简称同步器或 AQS),是用 来构建锁或者其他同步组件的基础框架,它使用了一个 int 成员变量表示同步状 态,通过内置的 FIFO 队列来完成资源获取线程的排队工作。并发包的大师(Doug Lea)期望它能够成为实现大部分同步需求的基础。

2022-10-12 23:16:45 82 1

原创 微信小程序入门与实战之音乐播放

我们首先要让该音乐图标脱离文档流,设置 position: absolute,再通过 left: 50%;设置居中,但此时我们的居中是对图标的左侧而言,所以我们还需要减去图标一般的宽度。

2022-10-09 23:40:32 1569 1

原创 微信小程序入门与实战之缓存机制与异步API的async和awai

App.js写逻辑内容,内置有函数,有三大作用1、判断用户以什么方式进入小程序2、获取用户信息3、定义全局数据每个小程序都需要在 app.js 中调用 App 方法注册小程序实例,绑定生命周期回调函数、错误监听和页面不存在监听函数等。

2022-10-08 23:45:33 1541 1

原创 阻塞队列和线程池原理

1)支持阻塞的插入方法:意思是当队列满时,队列会阻塞插入元素的线程,直到队列不满。2)支持阻塞的移除方法:意思是在队列为空时,获取元素的线程会等待队列变为非空。在并发编程中使用生产者和消费者模式能够解决绝大多数并发问题。该模式通过平衡生产线程和消费线程的工作能力来提高程序整体处理数据的速度。在线程世界里,生产者就是生产数据的线程,消费者就是消费数据的线程。在多线程开发中,如果生产者处理速度很快,而消费者处理速度很慢,那么生产者就必须等待消费者处理完,才能继续生产数据。

2022-10-05 23:17:57 287 1

原创 并发基础知识补全和CAS基本原理

死锁的发生必须具备以下四个必要条件。1)互斥条件:指进程对所分配到的资源进行排它性使用,即在一段时间内某资源只由一个进程占用。如果此时还有其它进程请求资源,则请求者只能等待,直至占有资源的进程用毕释放。2)请求和保持条件:指进程已经保持至少一个资源,但又提出了新的资源请求,而该资源已被其它进程占有,此时请求进程阻塞,但又对自己已获得的其它资源保持不放。3)不剥夺条件:指进程已获得的资源,在未使用完之前,不能被剥夺,只能在使用完时由自己释放。

2022-10-04 23:40:50 359

原创 Java线程的并发工具类

java 下多线程的开发可以我们自己启用多线程,线程池,还可以使用 forkjoin,forkjoin 可以让我们不去了解诸如 Thread,Runnable 等相关的知识,只要遵循forkjoin 的开发模式,就可以写出很好的多线程并发程序。

2022-10-03 23:51:08 520

原创 微信小程序入门与实战之构建阅读详情页面

由于我们文章详情页是可以由不同文章点击进来的,所以我们需要有文章的唯一ID号,当用户点击一篇文章后,我们获取到文章的id号,然后传入文章详情页。那我们怎么在文章详情页获取到文章的id号呢?dataset在组件节点中可以附加一些自定义数据。这样,在事件中可以获取这些自定义的节点数据,用于事件的逻辑处理。在 WXML 中,这些自定义数据以 data- 开头,多个单词由连字符 - 连接。这种写法中,连字符写法会转换成驼峰写法,而大写字符会自动转成小写字符。

2022-10-02 23:17:49 1507 1

原创 微信小程序入门与实战之路由函数与事件冒泡

保留当前页面,跳转到应用内的某个页面。但是不能跳到 tabbar 页面。使用 wx.navigateBack 可以返回到原页面。小程序中页面栈最多十层。关闭当前页面,跳转到应用内的某个页面。但是不允许跳转到 tabbar 页面。可以用load和unload来验证他们的区别。

2022-10-01 23:35:20 528

原创 微信小程序入门与实战之条件渲染、列表渲染与小程序事件

生命周期函数加载顺序为 onLoad-> onShow()-> onReady/*** 生命周期函数--监听页面加载} , /*** 生命周期函数--监听页面初次渲染完成} , /*** 生命周期函数--监听页面显示} , /*** 生命周期函数--监听页面隐藏} , /*** 生命周期函数--监听页面卸载} , /*** 页面相关事件处理函数--监听用户下拉动作} , /*** 页面上拉触底事件的处理函数} , /*** 用户点击右上角分享}

2022-10-01 21:54:07 397

原创 微信小程序入门与实战之阅读列表与setData数据的绑定

微信小程序入门与实战之阅读列表与setData数据的绑定

2022-09-27 23:51:29 758 1

原创 微信小程序入门与实战之rpx响应式单位与flex布局

小程序包含一个描述整体程序的 app 和多个描述各自页面的 page。

2022-09-27 00:24:01 4485 1

原创 Java高级语言特性——Json解析

编写一个JSON解析器实际上就是一个方法,它的输入是一个表示JSON的字符串,输出是结构化的对应到语言本身的数据结构一般来说,解析过程包括词法分析和语法分析两个阶段。词法分析阶段的目标是按照构词规则将 JSON字符串解析成 Token 流,比如有如下的 JSON 字符串{结果词法分析后,得到一组 Token,如下:词法分析解析出 Token 序列后,接下来要进行语法分析。语法分析的目的是根据 JSON 文法检查上面Token 序列所构成的 JSON 结构是否合法。

2022-09-25 23:29:38 423

原创 Java语言高级特性——泛型

通过两段代码我们就可以知道为何我们需要泛型实际开发中,经常有数值类型求和的需求,例如实现 int 类型的加法, 有时候还需要实现 long 类型的求和, 如果还需要 double 类型的求和,需要重新在重载一个输入是 double 类型的 add 方法。定义了一个 List 类型的集合,先向其中加入了两个字符串类型的值,随后加入一个 Integer 类型的值。这是完全允许的,因为此时 list 默认的类型为 Object类型。

2022-09-24 23:51:58 491

原创 Kotlin快速运用第五阶段

Kotlin快速运用第五阶段

2022-09-23 23:29:34 423

原创 学习JavaScript这一篇就够了

学习JavaScript这一篇就够了

2022-09-21 23:50:14 324

原创 音乐APP实现登录功能

音乐APP实现登录功能

2022-09-19 22:56:25 403

原创 音乐APP图片加载组件开发

音乐APP图片加载组件开发

2022-09-19 00:06:06 114

原创 Kotlin快速运用第四阶段(集合相关框架)

Kotlin快速运用第四阶段(集合相关框架)

2022-09-18 23:13:26 190

原创 音乐APP网络请求组件开发

**/**} }

2022-09-17 23:56:31 87

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除