- 博客(104)
- 资源 (3)
- 收藏
- 关注
原创 C++之指针与引用的比较
引用是一个变量的别名,它提供了一种通过不同名称访问同一变量的方式。引用在声明时必须被初始化,并且一旦绑定到一个变量,就不能再改变其绑定。指针是一个变量,其值是另一个变量的内存地址。在C++编程中,指针和引用是两个非常重要的概念。它们都用于间接访问变量,但在语法和语义上有显著的区别。引用的声明使用与指针相似的符号,但不需要显式的解引用操作。在这个示例中,指针用于动态分配和释放内存,而引用无法实现这一功能。),我们可以访问指针所指向的变量的值。函数通过指针修改变量的值,而。函数通过引用修改变量的值。
2024-08-12 10:43:50
768
1
原创 C++之引用
在C++中,引用是一个变量的别名。引用在声明时必须被初始化,并且一旦绑定到一个变量,就不能再改变其绑定。引用提供了一种通过不同名称访问同一变量的方式。
2024-08-11 22:38:22
584
1
原创 C++之指针
在计算机中,每个变量都被分配一个唯一的内存地址,用于标识该变量在内存中的位置。在C++中,指针是一个变量,其值是另一个变量的内存地址。指针的主要作用是通过地址访问变量的值。指针可以用于动态内存分配、数组和字符串操作、函数参数传递等。int x = 10;在这个例子中,x是一个普通的整数变量,它的值是 10。ptr是一个指针变量,它存储的是x变量的内存地址。我们使用操作符来获取x的地址,并将其赋值给ptr。
2024-08-11 22:01:59
898
原创 一文快速入门深度学习——深度学习没有那么的高大上
深度学习是人工智能领域的一个重要分支,近年来十分火爆。如果你对深度学习感兴趣,但是觉得晦涩难懂,下面我会用通俗易懂的语言和生动的例子,详细讲解深度学习的基本原理,帮助你更好地理解这一技术。深度学习是一种模仿人脑神经网络的机器学习方法。它的核心思想是通过多层的神经网络,从数据中自动学习特征,并完成特定的任务(如图像分类、语音识别等)。我们可以把神经网络比作一个 “多层的工厂”,这个工厂的任务是处理输入数据并生成输出结果。每一层工厂都有不同的机器(神经元),它们会对数据进行加工,最终得到成品。例子:例子:例子:
2023-03-15 19:30:53
105
原创 MySQL的事务与锁
答:数据库事务()是访问并可能操作各种数据项的一个数据库操作序列,这些操作要么全部执行,要么全部不执行,是一个不可分割的工作单位。事务由事务开始与事务结束之间执行的全部数据库操作组成。MVCC(multiple version concurrent control)是一种控制并发的方法,主要用来提高数据库的并发性能。在了解MVCC时应该先了解当前读和快照读。当前读:读取的是数据库的最新版本,并且在读取时要保证其他事务不会修该当前记录,所以会对读取的记录加锁。快照读。
2023-03-14 19:59:34
194
原创 MySQL的索引
索引是对数据库表的一列或者多列的值进行排序的一种数据结构,使用索引可以快速访问数据表中的特定信息。答:聚簇索引和非聚簇索引最主要的区别是数据和索引是否分开存储。聚簇索引:将数据和索引放到一起存储,索引结构的叶子节点保留了数据行。非聚簇索引:将数据进和索引分开存储,索引叶子节点存储的是指向数据行的地址。在InnoDB存储引擎中,默认的索引为B+树索引,利用主键创建的索引为主索引,也是聚簇索引,在主索引之上创建的索引为辅助索引,也是非聚簇索引。
2023-03-13 13:15:50
153
原创 启动Spring Boot项目时报错: mapping values are not allowed here
当项目报错冒号后面必须要有空格,没有则报错;注意同级属性放在同一层,不能多tab;
2023-03-12 12:20:25
4214
原创 MySQL基础问题
子查询就是把一个查询的结果在另一个查询中使用。标量子查询:指子查询返回的是一个值;列子查询:指子查询的结果是n行一列;行子查询:指子查询返回的结果一行n列;表子查询:指子查询是n行n列的一个数据表;答:MySQL在执行SQL语句的时候会临时创建一些存储中间结果集的表,这种表被称为临时表,临时表只对当前连接可见,在连接关闭后,临时表会被删除并释放空间。内存临时表使用的是MEMORY存储引擎;磁盘临时表使用的是MyISAM存储引擎;FROM中的子查询DISTINCT查询并加上。
2023-03-10 18:40:59
418
原创 【项目实战】项目中统一异常处理怎么做?
如果你想要更细粒度地处理不同类型的异常,你可以自定义异常类,并在全局异常处理器中使用@ExceptionHandler方法来处理这些自定义异常。当实现自定义异常类。
2023-03-06 20:11:29
845
原创 ConcurrentHashMap源码阅读
使用了一种分段锁的机制,内部维护了一个由Node节点组成的数组,每个节点包含一个键-值对。数组的每个元素称为一个"段",每个段都是一个独立的哈希表,有自己的锁。每个段中的节点使用链表或红黑树来解决哈希冲突。通过使用分段锁(Segment)来实现并发控制。每个段具有自己的锁,不同的段可以独立地进行读写操作,以提高并发性能。这种设计在多线程环境下减少了锁的竞争范围。使用sync数组来存储段的锁。在进行操作之前,首先根据键的哈希值获取对应的段,然后获取该段的锁。
2023-03-03 19:36:31
273
原创 【项目实战】Spring Boot项目抵御XSS攻击
作为Web网站来说,抵御XSS攻击是必须要做的事情,这是非常常见的黑客攻击手段之一。XSS意思是跨站脚本攻击,英文全称Cross Site Scripting,为了不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。XSS攻击的手段很简单,就是通过各种手段向我们的Web网站植入JS代码。
2022-11-22 08:36:22
3924
13
原创 【项目实战】Spring Boot项目整合Jetty、MySQL、Redis和MongoDB
在高并发的WebSocket环境下,Jetty比Tomcat更加适合,所以我们需要把Tomcat替换成Jetty。
2022-11-09 14:47:57
2699
7
原创 巧用异或运算
大多数人认为异或运算只是数学上的概念,在程序编写方面只不过是两个符号而已。在关于算法上面就会懒得去练习异或,看见相关题目课程也会选择性的跳过,其实这只是因为你并不了解异或真正的作用,当然你也就不会知道它真正的用法。接下面由本篇文章,带你了解异或以及它的用法!这些题目都是在面试中经常出现的相关题目,大家务必进行仔细揣摩,力求掌握!
2022-10-04 10:33:30
1856
2
原创 【SpringDoc】项目中使用SpringDoc管理与测试接口
SpringDoc是一个用于生成和展示API文档的开源库,它基于Spring Boot和OpenAPI规范。它提供了一种简单而强大的方式来自动生成API文档,并且与Spring框架无缝集成。自动生成API文档:SpringDoc可以根据Spring Boot程序中的代码、注解和配置自动生成API文档。它会解析控制器、路径映射、请求和响应对象,并将它们转换为清晰的API文档。我们只需要添加一些注解和配置,SpringDoc就能够自动扫描和解析代码,并生成相应的API文档。支持OpenAPI规范。
2022-09-26 20:54:10
890
原创 【项目实战】如何给项目设置允许跨域请求
在前后端分离的架构中,设置跨域请求是为了解决浏览器的同源策略(Same-Origin Policy)所带来的限制。同源策略是一种安全机制,它要求浏览器只能在相同的协议、主机和端口下进行通信。换句话说,如果前端代码运行在一个域名下,那么它只能与同一域名下的后端进行通信。然而,在实际开发中,前端和后端往往运行在不同的域名下,例如前端代码运行在,而后端API运行在。这就导致了浏览器无法直接发起跨域请求,即使两个域名属于同一个应用程序。为了解决这个问题,我们需要设置跨域请求。
2022-09-20 21:44:38
688
1
原创 【单元测试与JUnit 4】传统main方法测试代码太麻烦?来试试JUnit4
前言众所周知我们再写程序的时候,是离不开测试调式这一步骤的。没有哪个程序员能保证自己从来不犯错。我们一般是在写一段代码之后就立即进行测试,以防止出错之后由于涉及到代码太多而找不到是哪一段代码出错了。那么我们就需要进行单元测试。目录前言单元测试JUnit 4结语单元测试单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证。对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义,如C语言中单元指一个函数,Java里单元指一个类,图形化的软件中可以指一个窗口或一个
2022-09-15 09:57:11
738
原创 【项目实战】使用异步线程
需要注意的是,在使用异步线程时,需要合理地管理线程的数量和资源消耗,避免过度创建线程导致系统资源耗尽或线程竞争的问题。通过使用异步线程,可以将阻塞的任务隔离开来,避免对整个系统的影响。总结来说,使用异步线程可以提高系统的性能、响应性和用户体验,充分利用系统资源,并处理大量请求。改善用户体验:当涉及到需要等待的操作时,例如网络请求或复杂的计算,使用异步线程可以避免界面的冻结或卡顿,提供更流畅的用户体验。处理大量请求:在高并发的场景下,使用异步线程可以处理大量的请求,提高系统的吞吐量和并发处理能力。
2022-09-12 21:49:33
825
3
原创 常用工具——对数器
在写出一个算法程序的时候,我们往往无法通过手动输入各种各样的测试数据来验证,在OJ平台上也无法找到对应的题目来进行验证。在一些样本量很大的情况下,我们往往无法考虑到所有的边界情况。一些贪心算法是很难通过数学的方式来进行验证的,这时我们应该如何判断算法程序是否正确。在这种情况的时候,我们就需要用到对数器了!有一个你想要测的方法a;实现一个绝对正确但是复杂度不好的方法b;实现一个随机样本产生器;实现对比算法a和b的方法;把方法a和方法b比对多次来验证方法a是否正确;.........
2022-09-01 07:31:55
1961
4
原创 【项目实战】使用Activiti工作流引擎进行开发
在软件开发领域中,工作流自动化在简化业务流程和提高效率方面起着至关重要的作用。而在Java应用程序中实现工作流自动化的一个受欢迎选择就是Activiti,这是一个老牌的工作流引擎,能够与Spring Boot框架无缝集成。在本文中,我们将深入探讨Activiti的特点、优势以及如何在Java项目中使用它来实现工作流自动化。在深入了解Activiti之前,让我们先来了解一下什么是工作流。简单来说,工作流是通过计算机协助实现流程自动化控制的一种方式。
2022-08-24 18:17:04
1636
2
原创 可重入锁ReentrantLock的原理及使用
在公平模式下,锁会按照线程的请求顺序分配,遵循先进先出的原则。构造方法接受一个可选的公平参数(默认非公平锁),当设置为true时,表示公平锁,否则为非公平锁。公平锁的效率往往没有非公平锁的效率高,在许多线程访问的情况下,公平锁表现出较低的吞吐量。ReentrantLock是一个强大而灵活的同步工具,它提供了更多的控制选项和功能,适用于各种复杂的同步需求。方法,它可以尝试获取锁,如果锁当前不可用,则立即返回结果。,因此在使用时需要谨慎,并确保正确处理锁的获取和释放,以避免死锁和其他并发问题。
2022-08-09 09:38:16
1750
原创 小程序开发时:getLocation:fail require permission desc
小程序开发异常:getLocation:fail require permission desc
2022-08-05 16:06:47
1454
原创 AQS的工作机制
AQS(AbstractQueuedSynchronizer)是Java并发编程中的一个重要组件,它提供了一种基于队列的同步机制,用于实现各种同步器,如锁、信号量等。在去修改state状态的时候,使用的CAS自旋锁来保证原子性,确保只能有一个线程修改成功,修改失败的线程将会进入FIFO队列中等待。然后,我们将独占锁的拥有者线程设置为null,将锁的状态设置为0,并返回。新的线程到队列中等待,只让队列中的head线程获取锁,是公平锁。,它默认就是非公平锁,新的线程与队列中的线程共同来抢资源。
2022-08-01 11:17:56
1538
1
原创 CAS底层原理
乐观锁通过乐观的方式进行操作,允许多个线程同时访问共享资源,提高了并发性能,但可能会导致一些额外的开销。但是,如果多个用户同时尝试更新账户余额,只有一个用户能够成功,其他用户需要重新尝试,可能会导致一些额外的开销。但是,当多个用户同时想要进行取款操作时,只有一个用户能够成功获取锁,其他用户需要等待,导致并发性能较低。:由于CAS操作是在一个循环中不断尝试的,如果并发冲突较多,CAS操作会导致CPU资源的浪费。使用悲观锁的方式是,当一个用户要进行取款操作时,先获取账户的锁,确保其他用户无法同时访问账户。
2022-07-25 09:02:09
1684
原创 No mapping for GET /swagger-ui.html
springboot项目整合swagger2项目,发生错误No mapping for GET /emos-wx-api/swagger-ui.html
2022-07-23 10:42:18
5709
4
原创 synchronized锁的底层原理
需要注意的是,锁的升级是逐级升级的过程,而不是直接跳跃到最高级别的锁。锁的升级过程是由JVM自动管理的,根据线程的竞争情况和访问模式来判断是否需要升级锁的状态。在上锁的过程中,如果有其他线程也来抢锁,则进入EntryList 进行阻塞,当获得锁的线程执行完了,释放了锁,就会唤醒EntryList 中等待的线程竞争锁,竞争的时候是非公平的。来决定当前线程是否获得了锁,如果某一个线程获得了锁,在没有释放锁之前,其他线程是不能或得到锁的。类的Class对象的监视器锁,并执行方法体中的代码。其他线程如果尝试调用。
2022-07-04 11:40:08
4233
1
原创 【Freemarker】自己懒得写HTML?那就来试试模板引擎
对于JavaWeb的最后一部分内容我们介绍一款模板引擎,至于模板引擎的概念我们也会在正文中进行叙述的。
2022-05-17 08:43:52
2889
2
【家谱管理系统】C/C++课设报告
2022-07-04
【图书管理系统】Javaweb应用程序。
2022-05-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人