自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

曹昆的技术博客

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

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

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

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

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

原创 MyBatis与Hibernate的优缺点对比

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

2024-04-06 18:09:10 287

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

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

2024-04-06 18:07:34 898

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

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

2024-03-26 14:36:58 343

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

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

2024-03-24 10:52:26 249

原创 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 493

原创 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 244

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

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

2024-03-20 10:45:48 337

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

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

2024-03-19 23:31:27 441

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

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

2024-03-19 12:11:27 345

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

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

2024-03-18 08:40:26 745

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

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

2024-03-17 18:24:34 519

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

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

2024-03-17 18:19:15 395

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

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

2024-03-17 14:25:50 457

原创 jdk版本规则看这里

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

2024-03-15 08:57:42 419

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

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

2024-03-12 19:11:06 342

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

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

2024-03-08 18:36:42 882

原创 macos系统中redis如何设置密码

在 macOS 上设置 Redis 密码的步骤与在其他操作系统上大致相同,关键是要找到并编辑 Redis 配置文件,然后重启 Redis 服务。确保你的 Redis 配置文件的权限设置得当,以防止未授权的用户访问。此外,定期更换密码以增强安全性也是一个好习惯。

2024-03-08 11:28:55 594

原创 java开发中常见编译报错和解决举例汇总

java编译错误通常是由于代码中的语法问题、类型不匹配、错误的API使用或者权限设置错误等原因造成的。解决这些错误需要仔细检查代码、理解Java的类型系统和API,以及遵循Java编程规范。使用IDE的代码检查和提示功能可以帮助开发者更快地识别和修复这些错误。此外,开发者应该养成良好的编程习惯,如编写清晰可读的代码、使用版本控制系统、进行单元测试和代码审查,这些都有助于减少编译时错误的发生。

2024-02-01 10:53:57 1267

原创 Java开发过程中常见报错和解决方法

在Java开发过程中,开发者会遇到各种错误和异常,本文汇总了常见的报错和异常并提供了解决方法

2024-02-01 10:32:18 1264

原创 C语言开发过程中常见的编译报错汇总

C语言是一种强类型、编译型语言,常用来做底层的嵌入式开发。开发过程中可能会遇到各种编译器错误和警告。了解这些错误并知道如何解决它们是成为一个有效的C程序员的关键步骤。当遇到错误时,仔细阅读编译器提供的信息,并检查代码中相应的行和上下文,通常可以帮助快速定位问题。

2024-02-01 09:49:27 381

原创 给准备从事软件开发工作的年轻人的13个建议

了解如SOLID、DRY(Don't Repeat Yourself)和YAGNI(You Aren't Gonna Need It)等软件工程原则,它们可以指导你进行高质量的软件设计和实现。:熟悉软件开发的各个阶段,包括需求收集、设计、编码、测试和部署。参与代码审查不仅可以帮助你了解不同的编程风格,还能提高你发现和修复错误的能力。他们可以提供宝贵的指导,帮助你在职业生涯中避免常见的陷阱,并提供关键的反馈。保持耐心,不断学习,享受创造的乐趣。使用有意义的变量名和函数名,遵循良好的编程实践和代码风格指南。

2024-01-31 12:00:05 331

原创 读懂比特币—bitcoin代码分析(八)

bitcioinp各种配置参数的意义说明

2024-01-30 11:59:52 432

原创 探索比特币的区块和交易体结构

以举例真实的比特币交易数据说明比特币的区块构造和交易体数据说明的文章

2024-01-29 21:54:35 961

原创 读懂比特币—bitcoin代码分析(七)

函数的主要目的是初始化并启动比特币节点中所有未完成同步的索引的后台同步过程。这个函数的整体目的是为了启动节点中所有索引的后台同步,确保所有的区块数据都可用,并且在开始同步之前,确定同步的起点。如果当前索引的起始区块还没有被设置,或者找到的区块比现有的起始区块更旧(即区块高度更低),则更新起始区块为当前区块,并记录该索引的名称。这是重要的,因为如果节点配置为修剪模式,那么旧的区块数据可能已经从磁盘上删除,这会导致索引无法完成同步。的情况下,获取用于索引的链状态,然后获取这个链状态的区块链引用。

2024-01-27 09:53:23 931

原创 读懂比特币—bitcoin代码分析(五)

这段代码是比特币代码中的一部分,用于初始化节点(Node)。node.chain: 这是NodeContext对象中的成员变量,表示节点所使用的区块链(blockchain)。node.init: NodeContext对象中的成员变量,它可能是节点的初始化上下文(context)。node.init->makeChain(): 这是通过node.init指针访问的makeChain()方法。该方法可能在节点的初始化过程中创建并配置区块链对象。

2024-01-26 12:44:28 925

原创 读懂比特币—bitcoin代码分析(四)

今天尝试超详细解析比特币代码 bitcoin/src/init.cpp 中的LockDataDirectory函数,锁定数据目录,确保只有一个比特币进程使用数据目录。

2024-01-26 12:41:36 793

原创 读懂比特币—bitcoin代码分析(六)

今天来详细解读比特币源代码:bitcoin/src/init.cpp 中的一个非常重要的函数:AppInitMain,这个函数是用来初始化bitcoin 节点服务程序(客户端同时也是服务器)的主线程。

2024-01-26 12:37:28 1198

原创 读懂比特币—bitcoin代码分析(三)

这个类设计的目标是提供灵活、易用的接口,方便地处理命令行参数和配置文件,支持多线程环境下的安全访问。通过对各种类型的参数和配置的支持,以及对网络特定设置的处理,使得该类能够适应不同的使用场景和需求。ArgsManager 类提供了丰富的功能,包括参数的添加、获取、设置,命令的处理,配置文件的读写等。通过使用互斥锁保证在多线程环境中的安全操作。该类是比特币程序中参数管理的一个关键组件,为比特币提供了配置的灵活性和可维护性。

2024-01-24 12:49:39 1035

原创 读懂比特币—bitcoin代码分析(二)

在这里,将内存报告模式设置为文件模式,防止输出到控制台。同时,通过设置 _set_abort_behavior 来禁用在中止(abort)、Ctrl-C时显示令人困惑的“有帮助”的文本消息。#ifdef _MSC_VER 和 #ifdef WIN32 是条件编译指令,用于在不同平台或使用不同编译器时进行条件编译。std::set_new_handler(new_handler_terminate) 设置新的 new 操作符错误处理程序为 new_handler_terminate 函数。

2024-01-24 12:40:46 376

原创 读懂比特币—bitcoin代码分析(一)

最近美国 SEC 通过了比特币的 ETF申请,比特币究竟是个什么东西,从技术上来说,bitcoin 是一个点对点的电子现金系统,它可以实现分布式的记账,不依赖中心化的账务系统(比如银行,支付宝),它的账本完整的分布在每一个比特币的客户端,并且实时同步。再通俗一点,你可以在你的客户端本地实现转账,查询所有账户的余额和交易明细。让我们来分析它的代码吧。

2024-01-20 10:04:59 533

原创 如何读懂bitcoin的代码

问题:我有 C++编程基础,我想读懂比特币的代码,请问我要怎么做,给我一个详细的方案。要读懂比特币的代码,你需要具备一定的前置知识和技能。

2024-01-20 09:52:29 341

原创 centos 新安装mysql-server,跳过密码登录,修改root密码

在[mysqld]的段中加上一句:skip-grant-tables。安装 mysql-community-server。mysql -u root -p 需要密码。mysql -u root 报错 怎么解决。

2023-02-24 18:30:32 251

原创 亲历华为手机丢失通过定位找回

我有个华为Meta 40E手机,用了一年半左右。前天,也就是周六上午去小区超市买菜,顺便遛遛狗。回来的路上在红色的步行道,可乐和糯米(我家养的两只边牧犬)看到前面不远处有几只流浪的小狗,就叫着往前冲,因为我用狗链牵着它俩,所以把我带得往前狂跑了一段距离。后来想想就是这会儿手机从兜里掉出来的,由于狂跑还有狗叫声,所以没有听到手机掉落的声音。当我回到家,做熟饭,正要吃的时候发现手机找不到了。一开始还以为就在屋里,可是找了一会没找到,一下子想起来刚才被狗带着跑了一段,就应该是那会掉落了。饭也不吃了,赶

2023-02-14 07:33:51 631

原创 filecoin小集群封装数据流程

2020-11-24要搞清楚KG的收益从跟踪一个新KG开始官方代码:https://github.com/filecoin-project/lotus对官方代码1.2.1调度部分修改,编译,部署三台矿机配置192.168.1.127 跑lotus和minerIntel(R) Xeon(R) CPU E5-2678 v3 @ 2.50GHz 12核 48线程 内存512G 固态 3.7TGeForce RTX 2080 Ti192.168.1.112 跑worker...

2020-11-27 19:05:49 13360 7

原创 实例解读Filecoin的爆块规则

关于:Filecoin的爆块规则,用实例来说明一、算力占比1、假设全网总共有n个矿工,全网所有矿工密封扇区总量达到 10000 T2、某矿工A密封扇区达到 100 T 占比 1%3、某矿工B密封扇区达到 200 T 占比 2%4、某矿工C密封扇区达到 300 T 占比 3%5、某矿工D密封扇区达到 1000 T 占比 10%6、某矿工E密封扇区达到 2001 T 占比 20.01%7-n .......二、预期共识:每30秒做一次全网选举,选举出块的矿工,每一个矿工被选...

2020-11-17 14:11:35 2618 1

原创 golang学习笔记之-与主流编程语言优势对比

1、Java:作为编程语言的大腕。具有最大的知名度和用户群。体系庞大,开发环境配置稍微复杂一些。无论风起云涌,我自巍然不动。他强任他强,清风抚山岗;他横由他横,明月照大江。2、c/c++:编程语言的老祖,其他语言皆由此而生。执行效率无人能及。C++语法复杂而灵活,让很多初学者望而生畏。3、Javascript: 编程语言中特立独行的傲娇美女。前端处理能力其他语言无法比拟。发展中的js后端处理能力也是卓越不凡。前后端通吃,舍我其谁。4、Python:代码简洁,开发速度快无人能比。环境配置,包管

2020-09-23 11:02:16 383

原创 Filecoin-lotus 之 tipset结构

TS 的结构//这个tipset有6个block{ "ts":{ "Blocks":Array[6] }}//6个block对象{ "ts":{ "Blocks":[ Object{...}, Object{...}, Object{...}, Object{...}, Object{...}, .

2020-09-15 16:53:56 2297

原创 python代码片段-http请求返回数据的处理

#!/usr/bin/env pythonimport requestsimport json#发送post请求send_data = {"jsonrpc": "2.0", "id":"curltest", "symbol":"BTC","method":"/bitcoin/gettxhistory/get_address_tx_history","address":"1PjJkFT...

2020-04-22 20:49:28 2398

原创 electrumx搭建流程

一、环境:ubuntu1604 python3.71、python3.7安装 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 2...

2020-04-20 19:28:46 1060

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

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

2012-03-10

电子钱包、电子现金、QBPOC

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

2012-03-10

空空如也

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

TA关注的人

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