- 博客(62)
- 收藏
- 关注
原创 解决:error An unexpected error occurred: “https://registry.npm.taobao.org/xxx.tgz: certificate
最近Vue开发过程中,npm run dev遇到报错。查看npm仓库地址。切换淘宝镜像地址或官源地址。再npm run dev依旧报错。ssl过期。
2024-05-08 16:27:20
467
原创 Python安装和开发环境搭建
Python的下载访问Python语言官网(Welcome to Python.org)进行下载相关安装包,根据需要和系统环境、下载相应的windows/linux/macOs安装包。
2024-04-22 18:14:53
706
原创 Go安装和开发环境搭建
完成安装后,用cmd命令打开命令窗口,输入 go 或者go version 命令 ,打印出相应的版本信息证明安装成功。注意:msi文件安装后,会自动配置相应的环境变量。下载完成后,进入到下载目录,选择下载的安装包,进行双击安装文件,然后点击“Next”按钮安装即可。系统会推荐安装再默认路径中,自己也可以安装自己定义的目录中。,根据需要和系统环境、下载相应的windows/linux/macOs安装包。
2024-04-22 14:18:15
258
原创 解决java: 无法访问org.bouncycastle.crypto.params.ECPrivateKeyParameters 找不到org.bouncycastle.crypto.param
如果使用了ProGuard或其他混淆工具,可能需要相应地配置以保留Bouncy Castle的类。:检查构建脚本或IDE设置,确保包含了Bouncy Castle jar包的路径。:检查使用的Bouncy Castle版本,确保它与项目兼容,并且包含所需的类。:可能使用的Bouncy Castle jar包版本不兼容,或者缺少某些类。:在某些情况下,Java的安全管理器可能阻止加载某些类。:即使已经添加了jar包,类路径也可能没有正确设置。:更新混淆配置,以确保所需的类不被混淆或重命名。
2024-03-24 11:46:20
1283
原创 解决Class com.sun.tools.javac.tree.JCTree$JCImport does not have member field ‘com.sun.tools.javac.tre
请注意,如果在经过上述尝试后,即使重新运行构建后仍然出现错误,可能是由于 IntelliJ 有一些缓存仍在获取以前的 lombok 版本。问题原因是Lombok ,与 JDK 21 兼容的最低 Lombok 版本是 1.18.30,最小的 Spring Boot 版本是 3.1.4。直接先升级lombok至1.18.30或以上版本,若仍不行,再尝试升级Spring Boot 至3.1.4或以上版本。在更新自建项目基础过程中,compile、install报错。这里先升级到1.18.30版本、问题解决。
2024-03-23 21:05:53
13104
10
原创 Go语言基础
运算符是一种特殊的符号,可以表示数据的运算,赋值,比较等1)算术运算符2)赋值运算符3)比较运算符4)逻辑运算符5)位运算符6)其他运算符比较两个数的大小。a:=101b:=66if(a>b){fmt.Printf("a大一些")}else{fmt.Printf("b大一些")注意:go语言不支持三元运算符在Go语言中,切片(Slice)是数组的一个引用。它会生成一个指向数组的指针,并通过切片长度关联到底层数组部分或者全部元素。
2024-03-10 19:14:17
561
1
原创 解决对接淘宝开放平台添加商品图片问题
之前工作因队友离开,只一天接手其部分且第二天就要上线此工具产品,测试提了一些Bug,在Bug中有一个是添加商品图片。前端告知不能用、电话离职队友说能用。没办法自己上、追踪代码。
2024-03-09 15:54:02
640
原创 解决java: 无法访问javax.servlet.ServletException
在对历往项目工具类总结和归纳更新过程中,common模块在compile编译过程中遇到了“Error java: 无法访问javax.servlet.ServletException 找不到javax.servlet.ServletException的类文件”这个报错问题。IDE使用的是idea2021。
2024-03-07 16:12:26
1148
原创 Java之BigDecimal详解
Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。双精度浮点型变量double可以处理16位有效数,但在实际应用中,可能需要对更大或者更小的数进行运算和处理。一般情况下,对于那些不需要准确计算精度的数字,我们可以直接使用Float和Double处理,但是Double.valueOf(String) 和Float.valueOf(String)会丢失精度。所以开发中,如果我们需要精确计算的结果,则必须使用BigDecimal类来操作。
2023-12-14 12:25:57
872
原创 Shiro应用到Web Application
相关Jar包,http://incubator.apache.org/shiro/download.html。配置参数可以写在web.xml文件中,也可以单独文件形式存放在本地类根路径、文件系统以及网络环境中。使用技术手段(如:MD5、SHA等)把待加密的数据变为密文(如:信息摘要等)过程。例如:导出报表、查看id号为“PO20090008”的采购单、创建FAQ。判断你(被认证者)是谁的过程。用户账号Account,可以简单的理解为用户。判断被认证者(你)是否能做什么操作的过程。
2023-10-05 15:06:16
272
原创 Linux下Nginx的安装和配置
报错:./configure: error: the HTTP rewrite module requires the PCRE library.报错:./configure: error: the HTTP gzip module requires the zlib library.下载:wget http://www.zlib.net/zlib-1.3.tar.gz。进入nginx文件:切换到根目录 执行cd /usr/local/nginx。启动命令:./sbin/nginx。
2023-09-15 17:37:32
151
原创 Linux安装MySQL8.0
自定义密码比较简单,不符合密码策略。yum仓库文件:wget http://repo.mysql.com/mysql80-community-release-el7-10.noarch.rpm。查看安装的mysql信息:rpm -qa|grep -i mysql。删除mysql相关服务:rpm -e --nodeps。
2023-09-13 21:24:24
712
原创 Windows安装Neo4j
图数据库是基于图论实现的一种NoSQL数据库,其数据存储结构和数据查询方式都是以图论(它以图为研究对象图论中的图是由若干给定的点及连接两点的线所构成的图形)为基础的, 图数据库主要用于存储更多的连接数据。
2023-09-12 18:50:13
461
原创 ArrayList底层实现原理
jdk 1.2 ~ jdk 1.6 中,ArrayList 的确是会通过空参构造方法生成一个指定底层数据结构容量为 10 的空数组。ArrayList最早出现在 JDK 1.2中,底层基于数组实现,它是一个动态数组列表结构的容器。ArrayList最早出现在 JDK 1.2中,底层基于数组实现,它是一个动态数组列表结构的容器。增加ArrayList实例的容量,如果必需的,以确保它至少可以容纳元素的数量由最小容量参数指定。将ArrayList实例的容量缩减为列表的当前大小。应用程序可以使用此操作最小化。
2023-09-04 17:13:35
247
原创 设计模式之工厂方法模式(FactoryMethod)
定义一个用于创建对象的接口,让子类决定实例化哪一个类。FactoryMethod使一个类的实例化延迟到其子类。
2023-08-12 07:57:54
546
原创 JNI之Java实现蓝牙交互
蓝牙,是一种支持设备短距离通信(一般10m内)的无线电技术,能在包括移动电话、PDA、无线耳机、笔记本电脑、相关外设等众多设备之间,通过蓝牙设备之间的无线通信实现数据传输,实现数据传输,音频传输,文件传输,图片传输等多种应用的无线信息交换。利用“蓝牙”技术,能够有效地简化移动通信终端设备之间的通信,也能够成功地简化设备与因特网Internet之间的通信,从而数据传输变得更加迅速高效,为无线通信拓宽道路。
2023-08-06 11:38:16
1039
原创 设计模式之模板方法
定义一个操作中的算法的骨架,将一些步骤延迟到子类中。TemplateMethod使得子类可以不改变一个算法的结构即可重新定义该算法的某些特定步骤。
2023-08-05 22:33:03
962
原创 Python常用命令
type() 函数:查询对象的类型input() 函数在:函数接受一个标准输入数据,返回为 string 类型range() 函数:用于构造一个从[start, stop) (不包含stop)之间的连续的不可变的整数序列对象len() 函数: 用于获取容器对象中的元素个数reversed() 函数:反转序列对象,你可以将字符串进行反转,将列表进行反转,将元组反转random() 函数:返回随机生成的一个实数,它在[0,1)范围内。
2023-08-01 17:04:17
826
原创 Lambda-Java8新特性最佳实践
Lambda表达式的优点很明显,在代码层次上来说,使代码变得非常的简洁。缺点也很明显,代码不易读代码简洁,开发迅速方便函数式编程非常容易进行并行计算Java 引入 Lambda,改善了集合操作代码可读性变差在非并行计算中,很多计算未必有传统的 for 性能要高不容易进行调试。
2023-07-28 11:08:04
180
原创 算法之基数排序
基数排序:将所有待比较数值(正整数)统一为同样的数位长度,数位较短的数前面补零。然后,从最低位 开始,依次进行一次排序。这样从最低位排序一直到最高位排序完成以后,数列就变成一个有序序 列。
2023-07-27 19:47:31
57
原创 算法之桶排序算法
桶排序的基本思想是: 把数组 arr 划分为 n 个大小相同子区间(桶),每个子区间各自排序,最 后合并。计数排序是桶排序的一种特殊情况,可以把计数排序当成每个桶里只有一个元素的情况。2.使用 动态数组 ArrayList 作为桶,桶里放的元素也用 ArrayList 存储。桶的数量为(maxmin)/arr.length+1。3.遍历数组 arr,计算每个元素 arr[i] 放的桶。1.找出待排序数组中的最大值 max、最小值 min。
2023-07-27 19:24:08
560
原创 算法之归并排序算法
归并(Merge)排序法是将两个(或两个以上)有序表合并成一个新的有序表,即把待排序序列 分为若干个子序列,每个子序列是有序的。然后再把有序子序列合并为整体有序序列。
2023-07-27 18:57:04
232
原创 算法之二分查找
二分查找 又叫折半查找,要求待查找的序列有序。每次取中间位置的值与待查关键字比较,如果中间位置 的值比待查关键字大,则在前半部分循环这个查找的过程,如果中间位置的值比待查关键字小, 则在后半部分循环这个查找的过程。直到查找到了为止,否则序列中没有待查的关键字。
2023-07-27 16:57:21
149
原创 分布式锁:Redis、Zookeeper
使用Redis还是Zookeeper来实现分布式锁,最终还是要基于业务来决定,可以参考以下两种情况:(1)如果业务并发量很大,Redis分布式锁高效的读写性能更能支持高并发。(2)如果业务要求锁的强一致性,那么使用Zookeeper可能是更好的选择。(3)在做技术选型的时候,也应该酌情考虑团队成员技能及现有资源情况,如果。性能角度:redis > zk > mysql安全角度:zk > redis == mysql难易程度:zk > redis > mysql。
2023-07-22 18:10:24
414
原创 JVM-Java虚拟机
JVM 中的程序计数寄存器(Program Counter Register)中的 Register 命名源于 CPU 的寄存器,寄存器存储指令相关的现场信息。CPU 只有把数据装载到寄存器才能运行。这里,并非是广义上所指的物理寄存器,或许将其翻译为 PC 计数器(或指令计数器) 会更加贴切(也称为程序钩子),并且也不容易引起一些不必要的误会。JVM 中的 PC 寄存器是对物理 PC 寄存器的一种抽象模拟。
2023-07-20 14:22:06
138
原创 细说JAVA对象
大量的对象被分配在eden区,eden区满了后会触发minor gc,可能会有99%以上的对象成为垃圾被回收掉,剩余存活的对象会被挪到为空的那块survivor区,下一次eden区满了后又会触发minor gc,把eden区和survivor区垃圾对象回收,把剩余存活的对象一次性挪动到另外一块为空的survivor区,因为新生代的对象都是朝生夕死的,存活时间很短,所以JVM默认的8:1:1的比例是很合适的,:4位的Java对象年龄。默认情况下,并行GC的年龄阈值为15,并发GC的年龄阈值为6。
2023-07-14 12:12:00
110
原创 数据库并发策略
时间戳就是在数据库表中单独加一列时间戳,比如“TimeStamp”,每次读出来的时候,把该字 段也读出来,当写回去的时候,把该字段加1,提交之前 ,跟数据库的该字段比较一次,如果比数 据库的值大的话,就允许保存,否则不允许保存,这种处理方法虽然不使用数据库系统提供的锁 机制,但是这种方法可以大大提高数据库处理的并发量, 以上悲观锁所说的加“锁”,其实分为几种锁,分别是:排它锁(写锁)和共享锁(读锁)。悲观锁就刚好相反,觉得自 己读数据库的时候,别人可能刚好在写自己刚读的数据,其实就是持一种比较保守的态度;
2023-07-13 12:41:24
原创 Spring Bean
6. 如果这个 Bean 关联了 BeanPostProcessor 接口,将会调用 postProcessBeforeInitialization(Object obj, String s)方法,BeanPostProcessor 经常被用 作是 Bean 内容的更改,并且由于这个是在 Bean 初始化结束时调用那个的方法,也可以被应 用于内存或缓存技术。10. 最后,如果这个 Bean 的 Spring 配置中配置了 destroy-method 属性,会自动调用其配置的 销毁方法。
2023-07-13 12:17:59
519
原创 Java锁
基本认为一个线程上下文切换的时间是最佳的一个时间,同时 JVM 还针对当 前 CPU 的负荷情况做了较多的优化,如果平均负载小于 CPUs 则一直自旋,如果有超过(CPUs/2) 个线程正在自旋,则后来线程直接阻塞,如果正在自旋的线程发现 Owner 发生了变化则延迟自旋 时间(自旋计数)或进入阻塞,如果 CPU 处于节电模式则停止自旋,自旋时间的最坏情况是 CPU 的存储延迟(CPU A 存储了一个数据,到 CPU B 得知这个数据直接的时间差),自旋时会适当放 弃线程优先级之间的差异。
2023-07-13 11:14:45
105
原创 记一次JVM调优过程
JVM可以调度使用的总的内存数,这个数量受操作系统进程寻址范围、系统虚拟内存总数、系统物理内存总数、其他系统运行所占用的内存资源等因素的制约。JVM运行时数据区域,它为类实例和数组分配的内存。堆可以是固定大小的也可以是可变大小的。其中 Heap = {Old + NEW = { Eden , from, to } }。:包括所有线程之间共享的一个方法区域和JVM为优化或内部处理所分配的内存。它存储每一个类的结构,如一个运行时的常量池、字段和方法数据、方法的代码和构造函数。
2023-07-12 22:14:12
600
原创 VMware将虚拟机网络设置为NAT模式
编辑路径/etc/sysconfig下的文件network vi /etc/sysconfig/network ,加入一条语句:NETWORKING=yes(网络是否工作:是)配置公共DNS服务,在vi /etc/resolv.conf文件里增加:nameserver 8.8.8.8、nameserver 8.8.4.4。BOOTPROTO=none #ip获取方式,DHCP为自动获取,静态IP为none和static。关闭防火墙服务:systemctl stop firewalld.service。
2023-07-12 19:43:33
2942
原创 微服务的划分姿势分享
稳定的、不经常修改的划分一块;这里的成本对大部分中小团队来说都是必须要考虑的重要环节,如果投入和收益不能成正比,或者超出领导的预算或者市场窗口,那么先进的技术就是绊脚石,千万不要迷恋技术,所谓工程师思维千万要不得。传统的团队划分是按照产品部、前端、后端横向划分,微服务化以后的团队可能就会是吃一张披萨饼的人数,产品、前端、后端被归类到服务里面,以服务为中心来分配人数。以下谈到的拆分是前人经验的总结,我罗列了三种行家的拆分姿势,每个的的经验和视野不同,各有偏颇,我在这里更多的是谈共鸣和感受,希望对你有所启发。
2023-07-07 19:26:12
1122
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人