自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

曹昆的技术博客

什么时候学习都不晚,越努力,越幸运!

  • 博客(107)
  • 资源 (2)
  • 收藏
  • 关注

原创 在 Windows上安装 Node.js 开发环境的完整指南

在 Windows上安装 Node.js 开发环境的完整指南。

2025-04-02 10:11:02 651

原创 git工作区、暂存区、本地仓库、远程仓库的区别和联系

很多程序员天天写代码,提交代码,拉去代码,对git操作非常熟练,但是对git的原理并不甚了解,借助豆包AI,写个文章总结一下。Git 的四个核心区域()是版本控制的核心机制,它们分别承担不同的角色,并通过明确的流程协作。

2025-03-20 17:02:43 951

原创 什么是Gradle?怎样安装和使用?

什么是Gradle?怎样安装?如何使用?文章给出了详细说明。

2025-01-24 10:33:51 761

原创 Dart语言和flutter框架的特性

Dart 和 Flutter 相结合,为开发人员提供了一个强大而灵活的开发环境,无论是初学者还是经验丰富的开发人员,都可以利用它们开发出出色的应用程序。如果你在使用它们的过程中有任何问题或需要进一步的帮助,请随时向我咨询。

2025-01-21 10:29:43 1404

原创 跨域请求限制的通俗解释

【代码】跨域请求限制的通俗解释。

2024-12-04 20:38:37 393

原创 什么是WSL?

WSL(Windows Subsystem for Linux)是一个为在 Windows 10 和 Windows 11 上能够原生运行 Linux 二进制可执行文件的兼容层。

2024-09-14 10:12:41 546

原创 Docker和Docker-compose

*Docker Compose** 是一个用于定义和运行多容器 Docker 应用程序的工具。这样做的好处是,容器化的应用程序可以在任何安装了 Docker 的机器上运行,并且运行行为是一致的,因为容器内包含了运行应用所需要的所有依赖。Docker 使用 Dockerfile 来定义容器的构建过程,通过 Docker 命令行工具来管理容器的生命周期,包括构建、运行和停止容器。Docker 和 Docker Compose 是两个相关但用途不同的工具,它们都是 Docker 生态系统的一部分。

2024-09-13 21:35:27 858

原创 交易型开放式指数基金(ETF)

想象 ETF 是一个大篮子,里面装着很多不同的东西。在金融市场里,这个篮子里装的主要是各种金融资产,比如股票、债券、商品等。以 “科技先锋 ETF” 为例。

2024-09-13 14:06:58 422

原创 在以太坊中不同合约之间相互调用的场景有哪些?

总之,在以太坊中,合约调用合约是一种非常常见的操作,可以实现复杂的业务逻辑、提高代码的可维护性和可扩展性、实现可升级的合约架构以及支持各种去中心化应用的功能。在设计和开发智能合约时,合理地使用合约调用可以提高系统的性能和安全性。

2024-09-13 12:22:51 1190

原创 Windows 的包管理器-Chocolatey

Chocolatey 是一个适用于 Microsoft Windows 的包管理器,它提供了一个命令行界面和自动化工具,用于安装、配置、更新和管理软件。它的工作方式类似于 Linux 中的 apt 或 yum,或者 macOS 的 Homebrew。使用 Chocolatey,用户可以从其软件库(称为“源”)中安装软件和工具,这些软件和工具已经打包成 Chocolatey 理解的格式(通常是。文件,基于 NuGet 包格式)。它支持从官方 Chocolatey 源、第三方源,甚至内部或私有源安装软件。

2024-09-12 14:43:35 442

原创 读懂以太坊源码(4)-详细解析节点配置文件geth.toml

【代码】读懂以太坊源码(3)-详细解析节点配置文件geth.toml。

2024-09-04 16:44:07 851

原创 读懂以太坊源码(3)-详细解析genesis.json

要想搞懂以太坊的源代码逻辑,必须要了解以太坊创世区块配置文件(genesis.json)的结构,以及每个配置参数的意义,创世配置文件,主要作用是设置链的ID,指定以太坊网络中硬分叉发生的区块高度,以及初始ETH数量的初始分配,以下的json代码是以太坊主网的创世配置文件的原始文件和简要说明,本文后续有更详细的说明,由于genesis.json文件包含了大量的众筹地址和数量,实在是太长了,所以这里省略了其中大量的众筹地址和分配数量,其它参数保持不变。

2024-09-04 11:54:52 1211

原创 读懂以太坊源码(2)-重要概念Gas

在以太坊的交易和区块处理中起着关键作用。理解它们的含义和关系对于使用以太坊网络进行交易和开发智能合约至关重要。是三个重要的概念,它们之间有特定的含义和关系。

2024-09-03 15:24:32 316

原创 读懂以太坊源码(1)-目录结构说明

要了解一个软件工程项目的代码,必须从代码的目录结构入手,从而大致了解软件实现的功能模块,使用了哪些相关的技术,大概的框架是怎么样的?├── trie //Merkle Patricia Trie 的实现,用于高效地存储和查询以太坊的状态数据。├── beacon //以太坊 2.0 的信标链(Beacon Chain)相关的模块或代码部分。├── accounts //账户管理相关的代码,处理账户的创建、密钥管理等。├── swarm //与以太坊的分布式存储和通信层 Swarm 相关的代码。

2024-09-02 18:39:47 636

原创 如何读懂以太坊源代码

总之,学习以太坊源代码需要耐心和实践。通过逐步深入阅读不同的模块,结合实际操作和调试,以及参与社区交流,你将能够更好地理解以太坊的内部工作原理和实现细节。

2024-09-02 14:36:31 518

原创 flutter和原生Android以及IOS开发相比有什么优缺点?

Flutter 是 Google 开发的一个开源移动应用开发框架,它使用 Dart 语言编写。Flutter 的主要目标是使开发者能够从单一的代码库构建高性能、高保真的应用程序,这些应用程序可以在 iOS 和 Android 平台上运行,同时保持原生应用的感觉。选择 Flutter 还是原生开发通常取决于项目需求、团队的技能和偏好以及预期的应用性能和体积等因素。

2024-08-30 18:54:46 1204

原创 java中的反射Reflection

当JVM加载一个类时,它会创建一个Class对象,这个对象包含了与加载的类相关的所有信息,包括类的名称、父类、接口、方法、字段和构造函数等。可以通过getConstructor()和getDeclaredConstructor()方法获取类的构造函数(Constructor对象),然后通过调用其newInstance()方法来创建类的新实例。可以通过getField()和getDeclaredField()方法获取类的字段(Field对象),然后通过get()和set()方法读取或修改字段的值。

2024-08-30 16:11:43 326

原创 java中的@注解语法是什么原理,怎么实现的?

Java中的注解(Annotations)是从Java 5开始引入的一个特性,它允许我们在代码中添加元数据,这些元数据可以在编译时、类加载时或运行时被读取,并且可以影响程序的行为。Java允许创建自定义的注解处理器(Annotation Processor),这些处理器在编译时运行,并且可以读取注解信息,生成额外的源代码或资源文件。注解数据存储在字节码文件中的特定结构中,这些数据可以在不同的阶段被读取和处理。注解可以定义属性,这些属性可以在使用注解时设置值。这允许编写可以在运行时检查代码中注解的程序。

2024-08-30 15:59:24 238

原创 比特币的签名和验证(基于ECDSA)

私钥签名和公钥验证是这些算法的核心部分,主要用于证明交易的发起者拥有交易中使用的资金的控制权,而不需要暴露私钥本身。实际的加密操作是通过加密库实现的,如比特币核心使用的 libsecp256k1,或以太坊客户端使用的类似库。这里提供的是一个高层次的概述,实际的实现细节会涉及数学上的复杂性,通常需要深入理解椭圆曲线密码学和数字签名原理。如果签名验证成功,这表明交易确实是由拥有相应私钥的人发起的,因此交易是合法的。签名验证成功意味着交易是由拥有私钥的人发起的,因此交易是合法的。

2024-08-27 14:19:59 1120

原创 SQL统计行数的语句

在 SQL 中,你可以使用 COUNT() 函数来统计查询结果的行数。这个函数可以用在不同的上下文中,具体取决于你想要统计的内容。

2024-08-27 09:40:52 1278

原创 开源软件许可证是干嘛的?有什么实际的用途,这里举例说明

这些许可证定义了软件可以被如何使用、修改和分享。

2024-07-19 14:52:00 1145

原创 java awt和swing介绍

AWT 和 Swing 都可以用来创建 Java GUI 应用程序,但 Swing 是更现代、更灵活的选择,提供了更好的用户体验和更广泛的功能。随着时间的推移,Swing 已经成为 Java GUI 开发的首选框架,而 AWT 主要用于支持旧的应用程序或与系统级组件交互。Java 还引入了 JavaFX,这是一个更现代、功能更强大的 GUI 框架,旨在取代 Swing,但 Swing 依然在许多现有应用程序中广泛使用。

2024-07-11 16:41:29 388 1

原创 白话解读网络爬虫

网络爬虫(Web Crawler),也称为网络蜘蛛、网络机器人或网络蠕虫,是一种自动化程序或脚本,被用来浏览互联网并收集信息。网络爬虫的主要功能是在互联网上自动地浏览网页、抓取内容并将其存储在本地或远程服务器上供后续处理和分析使用。

2024-06-08 22:33:58 1186

原创 java中的抽象类和接口有什么异同?

定义抽象类是一个类,可以包含抽象方法和非抽象方法。抽象类使用abstract关键字声明,可以包含方法的实现代码。抽象类可以包含成员变量、构造方法、普通方法、静态方法等。特点抽象类可以包含抽象方法,也可以包含非抽象方法。一个类只能继承一个抽象类。抽象类不能被实例化,只能用来被继承。用途用于定义子类的通用行为,提供一些默认实现。适用于某些方法需要子类实现,而其他方法可以有默认实现的情况。多继承抽象类支持单继承,一个类只能继承一个抽象类。接口支持多继承,一个类可以实现多个接口。

2024-04-06 20:08:58 469 1

原创 MyBatis与Hibernate的优缺点对比

选择MyBatis: 适合对SQL控制要求高,需要定制化SQL语句的场景,以及对性能优化有需求的项目。选择Hibernate: 适合对对象关系映射需求高,希望减少手动SQL编写工作量的项目,以及需要跨数据库兼容性的项目。在实际项目中,开发人员可以根据项目需求和团队技术栈选择合适的持久化框架,或者在特定场景下结合使用这两种框架,以发挥各自优势,提高开发效率和系统性能。希望这份对比能帮助您更好地理解MyBatis和Hibernate的优缺点。

2024-04-06 18:09:10 1038

原创 Java主流框架的历史演进与现代应用

Java主流框架经过多年的发展,为Java开发人员提供了丰富的工具和技术支持。在选择框架时,开发人员应根据项目需求和团队技术栈权衡各框架的优缺点,以确保项目的顺利进行。

2024-04-06 18:07:34 1320

原创 java spirng和 mybatis 常用的注解有哪些

当在Java Spring和MyBatis中进行开发时,常用的注解对于简化配置和提高开发效率非常重要。

2024-03-26 14:36:58 401

原创 一文读懂代理与反向代理

反向代理与正向代理在代理服务器的角色和工作方式上有所不同,这两种代理方式主要取决于代理服务器代理的对象和处理方式。

2024-03-24 10:52:26 620

原创 MyBatis配置文件详解

即简单日志门面(Simple Logging Facade for Java),这是一个 Java 日志的抽象层,允许用户在后端使用不同的日志框架(如 log4j、java.util.logging 等)。元素允许 JDBC 支持自动生成的主键,这意味着当你插入数据时,如果数据库表的主键是自动生成的(例如,自动增长的整数),MyBatis 可以获取并使用这个自动生成的键值。这是 XML 声明,指定了该文件是一个 XML 文件,版本是 1.0,使用的编码是 UTF-8。标签的结束标记,表示相关配置的结束。

2024-03-21 20:53:01 573

原创 mysql 8.0以上的版本忘记密码,重置密码终极解决方案

但由于 mysql8.0以上版本取消了PASSWORD()函数,还有就是加密算法 sha1 还是 sha2的问题,以及plugin插件不存在等原因,要么修改不成功,要么修改成功了,登录验证不过去。使用ALTER命令或者直接 update user 表的authentication_string,但是越权登录后,ALTER命令不能使用,报错。按照ChatGpt 给的方法尝试了多次,均告失败,看来 AI 对于程序员来说也不是万能的。今天忘记了linux centos 上 mysql的 root 密码。

2024-03-21 14:10:00 519

原创 什么是跨域?如何实现跨域访问?

跨域是指在 Web 开发中,浏览器允许一个网页的脚本访问另一个网站的资源。跨域请求是由于浏览器的同源策略(Same-Origin Policy)而产生的限制。同源策略要求网页中的脚本只能访问相同来源(协议、域名、端口)的资源,而不能直接访问其他域名下的资源。当涉及跨域请求时,浏览器会根据同源策略(Same-Origin Policy)来限制页面中的 JavaScript 脚本对不同源(域名、协议、端口)的资源进行访问。这是为了防止恶意网站利用用户的身份在其他网站上执行操作,保护用户数据安全。

2024-03-20 10:45:48 603

原创 慢SQL是什么?产生的原因是什么?如何解决和优化?

"慢 SQL" 意味着执行时间较长的 SQL 查询或操作。当数据库中的某个 SQL 查询在执行过程中花费的时间超过了预期阈值,就可以称之为慢 SQL。慢 SQL 可能会对系统性能产生负面影响,例如增加服务器负载、降低响应速度,甚至导致系统崩溃。通过识别慢 SQL 查询的原因,并采取相应的优化措施,可以有效提升数据库的性能和响应速度。

2024-03-19 23:31:27 2788

原创 Java Spring项目中实现排他锁的方法

在Spring项目的代码中找到排他锁的使用,你可以搜索@Transactional注解和它的isolation属性、PESSIMISTIC_WRITE、@Version注解,以及lock、synchronized关键字的使用。这些都是实现或与排他锁相关的关键点。记得,使用锁要非常小心,以避免造成死锁或影响系统性能。

2024-03-19 12:11:27 766

原创 比特币:开创点对点电子现金的新时代

比特币的点对点系统是一种创新的数字货币系统,它通过去中心化、全球节点共识和高强度的加密技术来保证金融交易的安全与透明。与此同时,它赋予个人对其资产的绝对控制权,这种特性使它在金融世界中成为一种独特的存在。虽然比特币和其他加密货币被认为是投资的一种高风险形式,但它们所代表的区块链技术在很多行业都找到了潜在的应用,包括去中心化的金融服务、供应链管理和更为透明的选举过程。

2024-03-18 08:40:26 961

原创 悲观锁(Pessimistic Locking)是一种数据库锁定机制

总的来说,悲观锁是一种保守的锁定策略,它假设冲突是常态,并通过锁定数据来保证事务的安全执行。与之相对的是乐观锁(Optimistic Locking),它假设冲突很少发生,通常通过数据版本控制来实现,只有在数据提交时才检查是否有冲突。:在使用悲观锁时,如果不同的事务试图以不同的顺序锁定多条记录,可能会出现死锁的情况。因为它会锁定记录直到当前事务完成,所以可能引起其他事务的等待,从而降低了系统的并发性能。在使用之前,您需要检查所使用的数据库管理系统是否支持相应的锁定机制,并了解其具体的实现方式。

2024-03-17 18:24:34 666

原创 数据库事务中“锁”的分类

数据库事务中的锁可以按照不同的维度进行分类。

2024-03-17 18:19:15 531

原创 Java Spring Boot搭配MyBatis的项目开发中关于账户余额并发更新

9. **异步处理**:对于一些非关键性的更新操作可以考虑异步处理,减少系统的即时负载,通过消息队列等技术实现异步更新。10. **单独的服务/类处理**:为账户余额的增减创建专门的服务或类,使得所有操作都通过该服务进行,有利于集中管理。12. **测试**:进行全面的单元测试和集成测试,确保业务逻辑在多种并发场景下都是正确的。4. **输入验证**:在执行更新前进行严格的输入验证,确保所有的更新操作都是合法的。6. **日志记录**:对于所有更新操作,记录详细的日志,便于事后审计和故障回溯。

2024-03-17 14:25:50 795

原创 jdk版本规则看这里

Java Development Kit (JDK) 的版本号是由几个不同的数字和有时的字母组合来定义的,这些数字和字母表达了版本的不同层面。

2024-03-15 08:57:42 1291

原创 借助ChatGPT研究一行 java 代码

通常,除非有充分理由,否则应该避免使用双括号初始化。类的一个匿名子类的实例,并提供了一个实例初始化块。在这个初始化块中,你可以设置对象的状态。是 Java 中的一个接口,用于表示一个元素有序且可重复的集合。变量应该是一个之前已经定义的变量,包含了要设置的电话号码。这是一个匿名内部类的实例初始化块,它创建了。这行 Java 代码使用了一个服务层的对象。这个方法的作用是根据提供的条件查询。对象的电话号码属性。方法,该方法预计返回一个。在实例初始化块中,调用。方法来设置这个新创建的。

2024-03-12 19:11:06 407

原创 Linux centos 常用的网络负载和网速查看工具和命令

linux centos常用的一些网络速度和网络负载查看工具命令

2024-03-08 18:36:42 3830

IBM JCOP开发调试JavaCard程序及测试脚本的编写执行

IBM JCOP开发调试JavaCard程序及测试脚本的编写执行

2012-03-10

电子钱包、电子现金、QBPOC

PBOC的电子钱包,电子现金,和QPBOC应用

2012-03-10

空空如也

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

TA关注的人

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