- 博客(88)
- 问答 (7)
- 收藏
- 关注
原创 在Java中,什么是checked exception(即compile-time exception、编译时异常)?
有些exception必须被开发者在写代码时就处理(使用try catch或者throws),这种exception就叫checked exception,因为在编译代码时,编译器会检查(check)代码,假如开发者没有处理的话,编译是无法通过的。之所以check加“ed”用过去式,是因为在程序正常运行期间,这些异常已经被前期的编译器检查过了,开发者也处理过了,是过去式,所以用“checked”,常见的checked exception有IOException、SQLException等。
2025-05-05 16:49:03
338
原创 比HashTable更先进的ConcurrentHashMap及其多线程协助扩容机制
HashTable并发访问时效率太低了,所以才被淘汰了。如果发现节点类型是ForwardingNode,就明白了当前Map正在进行扩容操作,并且当前这个存储桶中的节点已经被完全迁移到新数组了,于是它就会暂时放弃读取数据的任务,先帮着一起迁移数据到新数组,等所有key-value都迁移到新数组后,就会继续执行读取数据的任务,只不过会从新数组中读取了。如果发现节点类型是Node类,那它就知道这个存储桶中的key-value还都没被迁移走呢,那它就可以无视正在进行的扩容操作,继续自顾自地执行访问数据的任务即可。
2025-05-04 11:13:06
333
原创 学了多年的synchronized,发现自己居然理解错了,哈哈哈
而轻量级锁(lightweight locking)阶段的时候,是借助CAS(compare and swap)操作来保证并发安全的,假设A线程想要调用increment()方法,B线程此时也想调用的话,A、B会先在各自的栈内存中新增一个锁记录(lock record),存储Counter对象的对象头(object header)信息,然后各自使用CAS操作将对象头指向其lock record,CAS可以保证只有一个线程可以操作成功,这个线程就相当于获取到了锁。
2025-05-03 02:11:24
422
原创 操作系统OS是如何指挥外围设备的呢?
每个设备厂商都会实现自己的驱动程序,但是不同的厂家实现驱动程序时会遵循业内规范,去实现这些标准化的接口、协议,比如存储设备领域的SCSI (Small Computer System Interface)。众所周知,OS的职责之一就是管理外围设备,比如常见的磁盘、硬盘、显示器、麦克风等,但并不是外围设备的一切都必须由OS管理,比如无线鼠标上的开关键,当你通过它关闭鼠标时,这个操作并不会经过OS,而是直接由鼠标内部的硬件处理,再比如显示屏上的状态指示灯的亮灭,这也是设备自己通过硬件实现的功能。
2025-05-01 21:35:32
314
原创 在上世纪50年代,为什么IBM研发的批处理操作系统让计算机用起来更方便?
如下图:这是一台于1955年发明的,还带有控制台的计算机,上面有很多按钮、旋钮,依赖它们控制计算机,毕竟那时候还没有操作系统,比如用它可以为即将执行的程序设置内存空间的起始地址。每个批处理程序会有对应的任务控制语句,上面指明了所需要的输入、输出设备的要求等参数,批处理操作系统读取这些语句后,就可以自动做上述准备工作啦,相当于初始化一下。而有了批处理操作系统后,上述所说的准备工作交给操作系统就OK啦,由这个操作系统中的“批处理监视器”batch monitor负责去做。此外还有关于输出设备的一些准备工作。
2025-04-30 19:58:36
250
原创 为什么使用ThreadLocal后要调用remove()方法呢?
虽然ThreadLocal的set()、get()方法也可能会扫描并释放掉这块内存,或者需要很长时间才能释放掉,可但是但可是,说不定在这段时间内,内存已经不够用了,出现OOM错误了,所以这种方式是不可靠的。为了避免内存泄露,使用玩ThreadLocal后,一定要调用它的remove()方法,这样才能保证用完这块entry所占用的内存后,尽早的释放掉内存,最大限度的提高内存的利用率。清理时,ThreadLocalMap中包含一个名字类似叫cleanup方法,只需要调用这个方法就可以啦。方法里面的操作就是将。
2025-04-28 22:24:32
291
原创 ThreadLocalMap中的弱引用WeakReference
因为假如你创建了一个ThreadLocal对象,并且使用了它,之后就不再使用它的话,理想情况是,这个对象应该被jvm的garbage collector当作垃圾清理掉,这样它所占用的内存就被释放了,可以被分配给其它对象了。但因为ThreadLocalMap中的key使用的是普通引用的话,jvm会认为这个对象还有用,因此不会清理这个对象,导致这个对象会一直占用着那块内存。弱引用就不一样了,如果只有弱引用存在的话,gc时就会无视这种类型的引用,果断清理这个对象。
2025-04-28 00:28:10
136
原创 Java ThreadLocal与内存泄漏
当我们在当前线程的 ThreadLocalMap 中存储一个值时,一旦这个值不再需要,释放它就变得至关重要。如果不这样做,那么该值所占用的内存将一直被分配,逐渐耗尽可用的内存池。这就好比一条漏水的铁管,随着时间的推移,越来越多的水(内存资源)被浪费掉,实在是令人惋惜。然而,在我的工作经历中出现了一个有趣的异常情况。尽管我从未明确编写过用于释放与 ThreadLocal 相关内存的代码,但我的程序却一直稳定运行,没有出现内存泄漏的问题。为什么这些程序能够避免这样一个常见的陷阱呢?
2025-04-26 19:35:26
253
原创 electron autoupdater报错Error unknown ENOENT: no such ...\resources\app-update.yml
electron autoupdater报错Error unknown ENOENT: no such ...\resources\app-update.yml
2022-06-30 18:45:00
1759
原创 electron-builder打包后没生成latest.yml文件问题
electron-builder打包后没生成latest.yml文件问题
2022-06-30 18:30:00
3367
7
原创 Could not transfer artifact org.springframework.boot:spring-boot-maven-plugin:pom:2.1 ... code 501
在pom文件中引入。而pluginRepositories中的内容详见以下链接:https://blog.csdn.net/weixin_45865428/article/details/109270484
2021-12-30 13:57:46
2071
原创 all elements are null问题
所涉及项目类型:springboot mybatisplus在service层一个方法返回值设置为:JSONObject。其中这个jsonobject中的一个键值对,是<String,List>类型。对,就是这个list类型的value,debug时提示“all elements are null”其他答案尝试了,无效。诸如“驼峰命名”云云。解决办法:自己写了个实体类(或者说VO)把返回值类型从JSONObject改为那个实体类,而list变为这个对象的一个属性我也不知道为啥?哪
2021-11-17 17:37:38
928
原创 jsapi前端微信支付完成后没有执行回调函数
关键字:微信支付、直连模式、公众号开发正文:起初我是这么写的,一直无法触发回调函数:onBridgeReady(payParam){ WeixinJSBridge.invoke('getBrandWCPayRequest',payParam, function(res) => { this.$message("进入支付回调") });后来看见别的博客说,将回调函数改为箭头函数:onBridgeReady(payParam){
2021-11-04 10:23:17
1722
原创 微信支付Caused by: java.security.InvalidKeyException: Illegal key size(不用去oracle官网)
这个问题,别的帖子都在说,要先去oracle官网下载jar包可是oracle注册账号需要填写大量的信息,甚是麻烦因此有个好心人把jar把放到了百度网盘里,供大家下载,甚为方便。下面是其博客链接:https://blog.52nyg.com/2020/09/567...
2021-10-26 13:53:44
239
原创 not found ffprobe
本人window系统解决办法就是:去官网安装ffmpeg工具,并设置环境变量。重启vscode(获取系统中环境变量Path的最新值)
2021-09-23 13:40:36
381
原创 react事件绑定
react事件绑定中,应使用箭头函数。错误示范:如下所示,如果这样写,将事与愿违。本想当点击Button时再触发doSth方法,但是这样写造成,当程序渲染此按钮时,就会立即执行doSth方法doSth(){}<Button onClick={doSth()} ></Button>正确写法1:doSth(){}<Button onClick={()=>doSth()} ></Button>正确写法2:doSth=()=>{
2021-09-13 13:56:56
165
原创 require引入本地视频导致electron白屏问题,解决过程
仅供参考,以下内容为笔者解决问题的过程记录技术栈:electron、react、nodeJs需要实现的功能:存储聊天记录中的图片、视频到本地;当用户点击时,展示大图or播放视频每次存储本地文件后,代码都会重新编译加载一次。如果真是写入文件的方式有问题,那为什么之前发送图片的时候是好好的呢?三个写入方式都没有问题,关键是看写入的内容,倘若是hello.txt那就没事,若是buffer格式就不行,就会导致重新编译。stream.write写hello.txt也不行=》stream写入方式不行,尤其是
2021-09-10 16:51:33
523
原创 http.createServer is not a function
在我的系统里,如果这样引入,http模块,就报题目那个错// server.jsconst http = require('http')const fs = require('fs')http.createServer(function(__req, __res){ fs.createReadStream('./asset/24783431-1-80.mp4').pipe(__res)}).listen(3000,function(){ console.log('server is
2021-09-10 11:46:10
2075
原创 vscode快捷键
输入log按住回车键,就直接键入console.log(),类似的还有console.error()莫非这就是传说中的敏捷开发的吗,,嘻嘻
2021-08-31 17:51:17
97
原创 TypeError: fs.existsSync is not a function
react中没想到竟然有一个小意外引起的,不知道是在什么时候,有一个react组件竟然导入了下面这个模块,关键是app还没有被引用。23 import { app } from 'electron';...55 export default class realNetMeeting extends Component {控制台提示是:报错源于第55行。我算是看明白了,合着即便是第23行import引起的错误,提示的时候也偏偏提示是,55行,组件声明时的错。害得我以为真的是55行有什么错误。定
2021-08-27 15:32:19
1286
原创 react事件绑定传递多个参数语法
checkResult(param,event){ // 如果证据存在 if(param) console.log("证据确凿,mangoTV钱某实锤!") } //event 代指,点击事件本身<div onClick={(event)=>this.checkResult(param,event)} ></div>...
2021-08-25 13:47:40
483
原创 react中使用video标签显示本地视频不生效问题
src中直接输入字符串视频地址不能播放,但是通过import的导入却是可以的。但是import只能写在文件最顶端,所以就想到使用require。没想到还真成功了!感谢自己的坚持!let source = require('../assets/WeChatvideo.mp4');<video id="playChatVideo" width="320" height="240" controls> <source src={source} type="video/mp4">
2021-08-16 15:30:28
4176
4
原创 浅析底层基础知识于个人职业发展的意义
目前我应该聚焦基础知识!即使是回答问题,也应该关注基础底层问题,而不是上层的问题。倘若想要参与开源项目,那也要参与偏向于基础底层的开源项目…总之现阶段,务必要从各种角度、以各种办法夯实基础,如果说有什么捷径的话,那夯实基础就是捷径!实体书也买了,不能因为它晦涩难懂,就随便翻翻,然后浅尝且止,因噎废食的这种怠惰心态是要不得的。我知道,原理性的东西很难啃,是一块高地,但是在难啃,也耗不过我的时间。我就跟它死磕下去,慢慢的就把书读薄了,最终化为自己的东西,融会贯通。现如今的计算机世界里,上层应用技术五花
2021-07-30 17:58:13
121
原创 越是不可思议的bug,越容易!
从类别上,bug可以被分为技术层面的bug、马虎层面bug。我之所以说越匪夷所思,越简单。就是因为这种bug往往是后者。遇到这种情况,大家一定稍安勿躁,因为我们能确定它大概率是因为少了一个分号等之类的低级错误所致。并不是技术难题。因此我们就不用怕,放轻松大胆的调试就好了。千万不要为此生气,作为程序员,遇到这种情况还是不少滴,要是都生气的 话,那可真是应了那句话“人傻钱多 死的早”。保持耐心,调整心态,一会儿就能诊断出问题出在哪里了 !谨以此文,与诸猿共勉!我是哪吒,一名立志干到退休的程序员。.
2021-07-14 15:18:26
127
原创 ‘TEduBoard‘ is not defined集成腾讯云互动白板时报错
以下按照腾讯官方文档集成sdk时,即报标题中的错误 var initParams = { id: "sketch", // dom节点id classId: 1, // 课堂 ID,32位整型,取值范围[1, 4294967294] sdkAppId: 1400000, // 整数 userId: "wu", // 字符串 userSig:
2021-07-13 11:49:37
275
原创 class ChatContent extends Component继承之后仍然无法使用state
this.setState({ groupMembers : tagets })理论上赋值后,groupMembers 应该有数据的,经此操作后,没想到groupMembers 依然是空值,加之本class类没有render函数guess:可能不是一个标准意义上的react组件,所以使用state也是不生效的。大家觉得是为什么呢?期待大佬评论...
2021-07-08 12:02:28
202
原创 Attempted import error: ‘common‘ does not contain a default export (imported as ‘locationHref‘).
错误的导入方式:import locationHref from ‘common’正确的导入方式:import {locationHref} from ‘common’原因:此问题的百度翻译:“尝试导入错误:“common”不包含默认导出(作为“locationHref”导入)”/** * 浏览器跳转,携带baseName * @param href * @returns {string|*} */export function locationHref(href) { if
2021-07-01 12:03:07
1429
原创 react中箭头函数与trtcSDK监听事件绑定
这种写法,将会把onUserSubStreamAvailable函数的执行结果,作为trtcCloud.on方法的第二个参数。 trtcCloud.on('onUserSubStreamAvailable', this.onUserSubStreamAvailable(e));其实其第二个函数应该只是一个函数,正解如下: trtcCloud.on('onUserSubStreamAvailable', this.onUserSubStreamAvailable)
2021-06-30 13:56:46
253
原创 vue axios 异步改同步请求(获得数据后再执行下面的代码)
getInfoFn: async function(){ var that = this; await that.$api.scheduleApi.queryScheduleInfoFn( {caseNo: that.basicInfo.caseNo}).then(function (response) { if(response.data.code == '200') { var result = response.data.result;
2021-06-28 13:09:53
2084
2
原创 GC之引用计数
就好比写代码时删除一个方法,那还在调用这个方法的部分一定会报错,垃圾回收也是一样的道理,必须得等到没有被引用时,对象才能被回收掉。(极个别的循环引用除外)
2021-06-25 10:05:52
126
原创 react组件中全局变量如何设置
import React from 'react'//此变量写在声明组件之前,不为组件内部的变量,即使组件销毁,该变量依然存在!//类似java中的static修饰的静态变量let num = 0export default class A extends React.PureComponent { componentDidMount() { console.log(temp) } render() { return ( <div>A</d
2021-06-24 18:15:53
6128
6
原创 TypeError: trtc.NodeRTCCloud is not a constructor
错误的导入方式//1、import TRTCCloud from 'trtc-electron-sdk'//2、const TRTCCloud =require('trtc-electron-sdk').default;正确的导入方式const TRTCCloud = window.require('trtc-electron-sdk').default;
2021-06-22 16:02:06
400
原创 Module not found: Can‘t resolve ‘sdk/service...in ‘D:...\src\pages
[0] Module not found: Can't resolve 'sdk/service/user/SendMediaService.js' in 'D:\Project\SvnLocal\cso-electron\electron-react-quick-start\src\pages'```这就是报错,纳闷明明已经在package.json里配置sdk对应的 相对路径,他怎么偏偏从src/page下寻找呢?不过问题最后解决了,因为正确的路径是sdk/service/chat而不是sdk/se
2021-06-18 10:26:24
427
原创 Error: Element type is invalid: expected a string (for built-in components) or a class/function (for
Error: Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: object.出现这个问题因为,父组件想引用自组件,这个标签。但是导出的是一个JavaScript类const self = new SendImage();export default self正确的导出子组件export def
2021-06-17 16:23:30
1379
原创 vue中elementui select标签选中后不生效问题
select标签选中后不生效,此时可以在标签属性中加上,@change事。比如我这里写的是。(ps注意是change事件,不要写成@focus事件,虽然感觉可以行得通,但事实上却不起作用)@change=“chooseDTChange”chooseDTChange(){ this.$forceUpdate() }...
2021-06-01 14:17:53
2877
原创 js请求后端前端代码会不会阻塞呢(等待后端返回数据后再往下执行)
getList() { this.listLoading = true this.getDepartmentTree() sysApi.getPageList(this.listQuery).then(response => { debugger let records = response.data.records this.list = [] // 此法效率比较低
2021-05-07 14:11:21
1158
空空如也
jdk17禁止反射,这么说如果严格遵循其规定的话,spring等框架岂不是不能用了?
2024-12-17
若依ruoyi集成tdengine时报错:TDengine ERROR (80002662): Fail to get table info, error: Table does not exist
2022-10-26
js sts方式,调用阿里云oss的 multipartDownload,提示multipartDownload is not a function ,那我该如何获取下载进度呢?
2021-12-14
js sts方式,调用阿里云oss的 multipartDownload,提示multipartDownload is not a function ,那我该如何获取下载进度呢?
2021-12-14
idea在本地启动时,经常连接生产环境 的数据库地址是为什么?
2021-11-08
idea中vim 查找操作 输入中文后 乱码如何解决?
2021-11-02
微信支付-公众号开发-开发完成后,如何调试程序啊?
2021-10-19
TA创建的收藏夹 TA关注的收藏夹
TA关注的人