技术
abckingaa
一个软件设计爱好者。主要项目经验集中在银行等金融领域,有10余年工作经历。对软件设计如何提高开发效率,提高易维护性,易扩展性,分布式系统、大数据量高可用、高并发系统有深入研究!
展开
-
一文看懂nginx
在这个例子中,我们定义了一个名为"backend"的upstream块,列出了三个后端服务器的地址:backend1.example.com、backend2.example.com和backend3.example.com。在upstream中列出多个后端服务器的地址和权重,Nginx将根据指定的负载均衡算法(如轮询、IP哈希、最小连接数等)将请求分发到这些后端服务器上。这样配置后,Nginx会同时处理两个server配置,并根据访问的域名或端口来决定将请求转发到哪个后端服务器上。nginx的优缺点?原创 2024-01-27 13:42:38 · 339 阅读 · 0 评论 -
netty主要功能介绍,主要的类介绍
3. 支持多种协议:Netty支持TCP、UDP、HTTP等多种协议的网络通信,可以用于构建各种类型的网络应用。1. 异步事件驱动:Netty使用事件驱动模型,能够高效地处理大量的并发连接和请求,提供高性能的网络通信能力。2. 高性能:Netty采用了零拷贝等技术,能够提供高性能的网络通信能力,适用于需要处理大量并发连接的场景。这些类是Netty框架中的核心组件,通过它们可以构建各种类型的网络应用,实现高性能、高可靠性的网络通信。4. Bootstrap:用于启动客户端的引导类。原创 2024-01-27 13:40:26 · 399 阅读 · 0 评论 -
Java 和 C 有许多区别
/在 Java 中,逗号操作符不允许在普通的表达式中像 C 语言中那样使用,也就是说不能像 C 语言中那样使用逗号操作符来组合多个表达式。// 在这个例子中,i的值会先从10变为11,然后再变为12,所以aa的值会是12。// 在这个例子中,i++会先执行,然后i++再执行,整个表达式的值是第二个i++的值。这些是 Java 和 C 之间的一些主要区别,它们使得这两种语言适用于不同的编程场景和用途。- Java 内置了对多线程的支持,并提供了高级的线程管理和同步机制。原创 2024-01-02 00:43:53 · 472 阅读 · 0 评论 -
高并发场景DB设计原则,什么叫反范式?数据库反范式设计
反范式(denormalization)是指在数据库设计中,有意地冗余部分数据以提高查询性能的一种技术。这是一种与范式(normalization)相反的设计方法。原创 2024-01-02 00:42:59 · 417 阅读 · 0 评论 -
Java将泛型限定为三种类型List,String,Number;问AI,被它骗了
运算符来指定多个上界,因此上面的代码是无法通过编译的。实际上,目前 Java 并没有提供一种直接的方式来限定泛型类型为多个不相关的类。在泛型方法中,由于类型擦除的原因,编译时无法获取具体的类型信息,因此你可能需要在运行时对。,因此你可能需要通过其他方法来实现这一目的,比如在方法内部进行类型检查和转换。下面是一个示例代码,演示了如何使用泛型的上界来限定类型。的类型进行特定的处理,你可能需要进一步检查。在 Java 中,你可以使用泛型通配符。,你可以使用泛型的上界来实现。的类型被限定为泛型类型。原创 2024-01-02 00:34:41 · 348 阅读 · 0 评论 -
Java 这语句提示的警告如何解决Map array[] = new TreeMap[3]
Map array[] = new TreeMap[3];原创 2023-12-17 22:02:05 · 373 阅读 · 0 评论 -
maven仓库有的文件,但使用阿里云却有问题
可能的原因是阿里云的maven仓库没有更新或者缓存中存在问题。强制更新maven仓库:可以尝试强制更新阿里云的maven仓库,以确保所需的库已经被更新到仓库中。在命令行中执行上述命令后,Maven将会清除本地缓存并重新下载所需的依赖,从而确保所需的库已经被更新到仓库中。如果以上方法无法解决问题,可以尝试切换到其他可靠的maven仓库,或者联系阿里云的技术支持寻求帮助。这个命令会清除本地的Maven仓库缓存并强制从远程仓库更新依赖。表示强制更新,它会忽略本地缓存,强制检查远程仓库以获取最新的依赖。原创 2023-12-10 23:15:45 · 820 阅读 · 0 评论 -
一致性哈希算法,hash(key)是负值时,会出现异常吗?
一致性哈希算法中,哈希函数hash(key)的返回值通常是一个非负整数。如果hash(key)返回负值,则可能会出现一些问题,例如无法正确地映射对象到哈希环上的位置,或者无法正确地找到离对象最近的虚拟节点。这样做可以保证hash(key)的返回值是一个非负整数,从而避免了出现异常。同时,这也不会影响一致性哈希算法的正确性,因为哈希函数只是用来将对象映射到哈希环上的位置,而与对象的具体值无关。其中,MAX_INT是一个足够大的正整数,可以是2的31次方或2的63次方等。原创 2023-12-03 23:21:14 · 635 阅读 · 0 评论 -
C#有像Java ThreadLocal的类似实现吗?
类允许每个线程都有自己独立的实例,每个线程对实例的操作互不影响。这对于需要在线程级别上维护状态的情况非常有用,例如在多线程环境下缓存数据或跟踪线程特定的上下文信息。类是.NET Framework提供的一个线程本地存储类,用于在每个线程中存储和访问特定于该线程的数据。类提供了一种在多线程环境下管理线程本地数据的便捷方式,类似于Java中的。最后,我们输出了每个线程的。以下是一个简单的示例,演示了如何在C#中使用。,并在每个线程中设置了不同的值。的值,以验证每个线程的操作是相互独立的。的操作互不影响,因为。原创 2023-12-03 23:19:38 · 461 阅读 · 0 评论 -
C#与Java的不同
C#中base关键字的详解,等价java super()方法:https://blog.csdn.net/qq_45096273/article/details/106605959。(1)自动生成{get;一个项目只要一个异常处理的地方即可(个别特殊的地方个别处理),也就是说所有的异常都在最顶层的某个地方处理,——C# 中可用 A a = Type.GetType("java.lang.String")替代。——因此,java中:Class.forName("java.lang.String")原创 2023-12-03 23:19:06 · 356 阅读 · 0 评论 -
ySql.Data.Types.MySqlConversionException: Unable to convert MySQL date/time value to System.DateTime
---------------------:MySql.Data.Types.MySqlConversionException: Unable to convert MySQL date/time value to System.DateTime 查询时,将数据库结果赋值,报错,如何解决。在MySQL中,日期时间格式可以是多种形式,例如“yyyy-MM-dd HH:mm:ss”,而在.NET中,日期时间格式通常是“MM/dd/yyyy HH:mm:ss”。方法来确保转换成功并避免抛出异常。原创 2023-12-03 23:18:17 · 528 阅读 · 0 评论 -
求最大公约数,和最小公倍数的规则
例如,12和18的最小公倍数是36,因为12的倍数是12、24、36,18的倍数是18、36,而它们共有的倍数中最小的一个是36。首先,用a除以b,得到余数r1,然后用b除以r1,得到余数r2,继续用r1除以r2,得到余数r3,以此类推,直到余数为0。更相减损法:假设有两个整数a和b,求它们的最大公约数。首先,用较大的数减去较小的数,得到差d,然后用较小的数和d继续做同样的操作,直到两个数相等。分解质因数法:将两个数分别分解成质因数的乘积,然后取它们的公共质因数和非公共质因数的乘积,即为它们的最小公倍数。原创 2023-12-03 23:16:16 · 412 阅读 · 0 评论 -
maven命令行参数
maven命令行参数原创 2022-09-11 19:06:36 · 354 阅读 · 0 评论 -
gpg提交到服务器报错: keyserver receive failed: Server indicated a failure
gpg提交到服务器报错: keyserver receive failed: Server indicated a failure原创 2022-09-10 10:36:36 · 4746 阅读 · 2 评论 -
PGP安装,生成密钥及上传服务器的完整步骤
PGP安装,生成密钥及上传服务器的完整步骤原创 2022-09-10 10:35:38 · 3604 阅读 · 0 评论 -
SQL Server查询某字段去重后取前n条(distinct和top n)
SQL Server查询某字段去重后取前n条distinct和top n一起使用, 其语法及例子如下:select distinct top 5(name) from orders原创 2022-05-08 22:48:25 · 673 阅读 · 0 评论 -
快码加编——代码生成神器
快码加编——代码生成神器程序员不再是代码的搬运工,类似 CRUD代码统统一键生成, 一开始就是可运行的代码, 然后直接在此基础上添加业务逻辑.生成后的代码不依赖于[快码加编]生成平台即可运行;生成的代码,与你手工编写的一样,我们只是帮你加快速度!节省demo的时间(前期讨论还可以任意次重复生成),节省通用功能、CRUD功能的开发时间,节省测试、接口联调基本功能的时间(前后端分离模式节省时间更加明显).演示界面,所见即所得,你看到的效果,可以直接下载源码。免费下载你的定原创 2022-05-03 22:28:23 · 1158 阅读 · 0 评论 -
常用下载地址
丢失VCRUNTIME140_1.dllMicrosoft Visual C++ 2015 Redistributable Update 3https://www.microsoft.com/zh-CN/download/details.aspx?id=53587Microsoft Visual C++可再发行的最新下载Visual Studio 2015、2017、2019 和 2022https://docs.microsoft.com/zh-CN/cpp/windows/latest-s原创 2022-04-25 09:26:30 · 1424 阅读 · 0 评论 -
Cassandra和关系数据库设计上的区别
Cassandra和关系数据库进行ata建模的一些关键区别。尽管Cassandra支持轻量级事务和批处理等功能,但Cassandra本身并没有跨表引用完整性原创 2022-03-12 18:16:28 · 1111 阅读 · 0 评论 -
Cassandra 数据类型
Cassandra 数据类型翻译 2022-03-12 17:35:20 · 339 阅读 · 0 评论 -
Cassandra CQL用法
Cassandra翻译 2022-03-12 16:57:34 · 595 阅读 · 0 评论 -
Java金额计算时要注意的问题
Java金额计算时要注意的问题BigDecimal 判断相等,真的是你所想要的相等吗? private boolean equal(final String a, final String b) { final BigDecimal one = new BigDecimal(a); final BigDecimal two = new BigDecimal(b); return one.equals(two); }结果是不是让你大跌眼镜! System.err..原创 2022-01-16 15:35:38 · 265 阅读 · 0 评论 -
Error:NetworkError
申请时碰到这种问题. 后来是重新安装软证书才行.要是360使用了极速模式,则会提示192.168.的本地地址连不上.注意,要使用兼容模式登录!--------------------------------------------------------------初创公司的福音! 让你快速拥有自己的个性化网站/系统!快码加编: 快速生成代码平台,让你可以直接在生成好的代码加业务逻辑! 为你缩短软件开发周期,节约软件开发成本!深圳彩凤软件——软件智能制造提供商!...原创 2022-01-12 12:23:56 · 1969 阅读 · 0 评论 -
错误信息: 报文解析错误,请检查提交的报文类型是否正确或报文内容是否为空。。
支付提示错误信息:报文解析错误,请检查提交的报文类型是否正确或报文内容是否为空。。是用360浏览器的.重启也不行.后来换了google,不能登录.然后又试了IE,可以支付了.之前用IE是申请不了的.什么错误都要碰到一次… 找百度也没撤.非软件专业的人还不一定能想出那么多招了.如何你是写编程的,建议你关注下:自动生成Java Web代码(包括前后端)_abckingaa的博客-CSDN博客https://blog.csdn.net/abckingaa/arti.原创 2022-01-12 11:59:53 · 3840 阅读 · 0 评论 -
Java SPI使用例子
Java SPI使用例子假定服务类型为 com.example.CodecSet,它用来表示某些协议的编码器/解码器对集合。在这种情况下,它是一个具有两种抽象方法的抽象类:public abstract Encoder getEncoder(String encodingName);public abstract Decoder getDecoder(String encodingName);每种方法都返回一个相应的对象;如果提供者不支持给定编码,则返回 null。典型的提供者支持一种以原创 2022-01-06 13:23:38 · 565 阅读 · 0 评论 -
C语言与Java语言动态生成数组
学习Java真的好幸福。看,C语言动态生成数组,在参数动态传入数组大小的变量,然后定义一维数组,并赋初值为0。而Java的写法,却简单得多:public void count(int a[],int n) { int b[]=new int[n]; for (int i = 0; i < b.length; i++) { System.out.println(b[i]); } }...原创 2021-12-31 13:15:47 · 575 阅读 · 0 评论 -
Eclipse整合Groovy开发java
点finish完成Groovy的插件安装。安装完成后,会提示要重启。使用Groovy1、File-new-Groovy Project原创 2021-10-30 19:07:49 · 355 阅读 · 0 评论 -
Java static静态方法,是线程安全的吗?
Java static静态方法,是线程安全的吗?原创 2021-10-14 12:42:33 · 5737 阅读 · 0 评论 -
XCopy复制文件夹命令及参数详解以及xcopy拷贝目录并排除特定文件
XCOPY是COPY的扩展,可以把指定的目录连文件和目录结构一并拷贝,但不能拷贝系统文件;使用时源盘符、源目标路径名、源文件名至少指定一个;选用/S时对源目录下及其子目录下的所有文件进行COPY。除非指定/E参数,否则/S不会拷贝空目录,若不指定/S参数,则XCOPY只拷贝源目录本身的文件,而不涉及其下的子目录;选用/V参数时,对的拷贝的扇区都进行较验,但速度会降低。 我们不可数典忘祖,该学习的还是要学习,不该忘记的还是不能忘记,尤其是DOS批处理命令,在开发软件或项目的时候,都离不开这些基本的...转载 2021-07-16 21:11:34 · 21311 阅读 · 0 评论 -
CSDN没有删除文章功能的吗??
XCOPY是COPY的扩展,可以把指定的目录连文件和目录结构一并拷贝,但不能拷贝系统文件;使用时源盘符、源目标路径名、源文件名至少指定一个;选用/S时对源目录下及其子目录下的所有文件进行COPY。除非指定/E参数,否则/S不会拷贝空目录,若不指定/S参数,则XCOPY只拷贝源目录本身的文件,而不涉及其下的子目录;选用/V参数时,对的拷贝的扇区都进行较验,但速度会降低。 我们不可数典忘祖,该学习的还是要学习,不该忘记的还是不能忘记,尤其是DOS批处理命令,在开发软件或项目的时候,都离不开这些基...原创 2021-07-16 21:08:28 · 240 阅读 · 1 评论 -
sonar运行报错 SonarQubeMojo : Unsupported major.minor version 52.0
sonar运行报错 SonarQubeMojo : Unsupported major.minor version 52.0之前sonar启动都是正常的(原来是jdk7,jdk8一起用);后来是删了jdk8,然后又重装.运行,就报以下错误.sonar报这种错误:[WARNING] Error injecting: org.sonarsource.scanner.maven.SonarQubeMojojava.lang.TypeNotPresentException: Type org..原创 2021-05-07 10:32:26 · 616 阅读 · 0 评论 -
如何验证Thread sleep是否会占用CPU资源(Java)
如何验证sleep是否会占用CPU资源关于 sleep 是否会放弃CPU资源的小实验:为了效果明显,对多个线程同时操作① 创建多个线程,使它们同时执行 sleep 方法 ,查看程序的线程数以及CPU第一次执行代码如下: @Test public void ThreadTest() throws InterruptedException { for(int i = 0; i < 40; i++) { Thread thread = new Thread(new Ru.原创 2020-10-03 16:46:09 · 2136 阅读 · 0 评论 -
为什么DB的命名规范与Java的命令规范不一样
一些相关疑问及推荐6.1 疑问:DB的命名规范与Java的命令规范不一样,应该由开发人员买单吗? 一个开发人员要同时看两种不同命名的东西,实现上它们是给开发者(使用者)传达一样的东西。那为什么不可以使用统一的命名呢?事实: SQL语句关键字是不区分大小写的。 一些流行的数据库,如Oracle,它们默认将字段名全部转成大写,默认查询不区分字段的大写小。DB本身将字...原创 2020-02-27 18:16:32 · 284 阅读 · 0 评论 -
编码复杂度C(n)
编码复杂度C(n):在MVC编程中,一般会涉及到action,service,dao,model(实体)。当用面向对象方式操作一个DB表时,要写一份dao;当操作两个表时,要写两份dao;当操作n个表时,要写n份dao;则此时编码的复杂度会随着问题规模增长为n,编码复杂度也变成n。关于问题n的编码复杂度(Coding Complexity)用C(n)表示。则上面描述问题的编码复杂度为:C(n)=O...原创 2018-11-26 22:02:13 · 13027 阅读 · 0 评论 -
为什么华为加班那么多?
为什么华为加班那么多? 十年前,PC机(个人电脑)的内存还是256k,512k为主流,再往前,内存就更小了。为了节省空间,编写的程序都是很精练的。是否还记得有这样一道算法题:不用额外的变量,交换两个变量的值。连一个临时变量的空间都节省了。现在的PC机内存已是4G,8G为主流了,服务器的内存就更大了。为了提高执行效率,一般都会采用空间换时间的方式。从编码层面到缓存组件再到缓存数据库,都...原创 2019-01-11 00:29:28 · 1434 阅读 · 0 评论 -
Maven的生命周期各阶段
Maven的生命周期各阶段虽然不是一个全面的列表,但这些是最常见的默认生命周期阶段。验证:验证项目是否正确并且所有必要信息都可用 compile:编译项目的源代码 test:使用合适的单元测试框架测试编译的源代码。这些测试不应要求打包或部署代码 package:获取已编译的代码并将其打包为可分发的格式,例如JAR。 集成测试:如有必要,将程序包处理并部署到可以运行集成测试的环境中...原创 2019-03-01 12:11:47 · 2411 阅读 · 0 评论 -
入侵性很强的java框架
入侵性很强的java框架,log日志框架算一个。一般工作都要用到日志功能,但要使用日志功能就要在每一个类里引入引入日志框架的类。虽然低入侵性是现在框架设计的目标,但日志框架却没有实现这个目标(有发现的伙伴告知一声哦)。还有Swagger算一个。为了方便restful接口的测试,很多人在项目中引入了它。虽然很多信息可以从方法的参数中获取,它就是要自己另外定义,无非就是为了以后实现自己的标准。只是...原创 2019-02-26 11:35:17 · 752 阅读 · 1 评论 -
springmvc不能同时用两个@RequestBody参数,传递两个对象
https://blog.csdn.net/qq_34608620/article/details/80635139@requestbody的含义是在当前对象获取整个http请求的body里面的所有数据,因此spring就不可能将这个数据强制包装成Course或者List类型,并且从@requestbody设计上来说,只获取一次就可以拿到请求body里面的所有数据,就没必要出现有多个@re...原创 2019-03-14 15:37:52 · 27300 阅读 · 0 评论 -
Springmvc开发常出现的3.xx,4xx,5xx异常
Springmvc开发常出现的4xx,5xx异常. 之前用Struts1/2几乎没见过这些异常. Springmvc是不是该改进下了???!!Request URL: http://localhost:8080/test/xxx/addListRequest Method: POSTStatus Code: 415 Unsupported Media Typeajax发送请求...原创 2019-03-14 20:38:04 · 233 阅读 · 0 评论 -
Spring算不算一个入侵性很强的框架
Spring算不算一个入侵性很强的框架之前Spring宣称是一个低入侵性的框架, 就是说很少强行引入自己的框架的api, 可以方便的切换到其它类似框架. 但实际上呢, 像springmvc真的很容易切换到struts2 之类的mvc框架吗? 事实上, spring引入了大量自己的注解, 像更换它又谈可容易! 大框架都想用这招来绑定用户吗? 当时宣称的主张都跑到哪去了?...原创 2019-03-15 07:58:10 · 1401 阅读 · 0 评论