编程基础
文章平均质量分 55
主要分享一些编程基础的相关知识
沛哥儿
互联网电商行业十余年技术老炮。
展开
-
Python开发者必学:如何优雅地绕过round函数的四舍五入陷阱
总之,在Python 中通常能按预期工作,但如果你遇到了看似不正确的结果,很可能是因为浮点数的表示误差或四舍五入规则造成的。通过了解这些限制并采取相应的解决方案,你可以有效地处理这些问题。原创 2024-09-07 12:14:05 · 1010 阅读 · 0 评论 -
IT专业入门攻略:高考假期逆袭秘籍,抢先一步成学霸!
高考假期是预习IT专业知识的宝贵时间。通过了解IT专业基础知识、掌握编程语言基础、学习数据结构与算法、了解网络基础知识以及参加线上或线下实践活动等方式进行预习将为你未来的学习和职业发展奠定坚实的基础。希望本文的预习指南能为你提供一些帮助和启示让你在高考假期中逆袭成为IT学霸!原创 2024-07-05 09:11:58 · 405 阅读 · 0 评论 -
为什么Java中HashMap的加载因子是0.75?为什么不是0.8或0.6?
选择0.75作为HashMap的默认加载因子是基于对时间复杂度和空间效率的综合考虑。这个值在大多数情况下都能提供较好的性能,但根据具体的应用场景,可以适当调整加载因子以优化性能。原创 2024-05-13 07:01:19 · 910 阅读 · 0 评论 -
绝不忽视!List.add方法揭秘:你绝对需要了解的覆盖现象
在使用List进行对象添加的时候,发现对象都被覆盖了。刚开始以为是赋值出现的问题。后来打印发现值都很正常。业务需求:在一份PDF文件中,有不定页数的详细信息。每页详细信息都是一样的,需要把每页的详细信息组装成为一行进行返回。解决思路:根据x,y定位进行循环读取,然后把每个地位的结果当作一个对象列表进行返回。//循环获取详细i++) {// 创建一个新的 ItalyInfo 集合对象// 创建一个新的 ItalyInfo 集合对象//打印返回的数据。原创 2024-04-03 20:09:26 · 2014 阅读 · 0 评论 -
快速上手Spring Cloud三:API网关深入探索与实战应用
API网关作为微服务架构的核心组件,不仅实现了请求的统一管理和安全控制,还提供了服务发现、动态路由、请求监控与日志记录以及性能优化等高级功能。通过深入了解和掌握这些功能,我们可以构建出更加高效、安全、可靠的微服务应用。在实际应用中,我们应该根据业务需求和技术栈选择合适的技术和工具,并结合最佳实践进行配置和优化,以充分发挥API网关的优势。原创 2024-03-24 10:36:41 · 1109 阅读 · 0 评论 -
快速上手Spring Cloud二:核心组件解析
通过对Spring Cloud核心组件的深入解析和源码分析,我们可以更好地理解这些组件的工作原理和最佳实践。在实际应用中,我们可以根据项目的需求选择合适的组件进行集成,构建出健壮的微服务生态。原创 2024-03-24 00:01:19 · 1029 阅读 · 0 评论 -
快速上手Spring Cloud一:Spring Cloud 简介
在数字化浪潮席卷而来的今天,微服务架构以其高度的可伸缩性、灵活性和独立性成为了企业应用架构的首选。而在微服务架构的众多技术栈中,Spring Cloud以其丰富的功能、稳定的性能和良好的社区支持,赢得了广大开发者的青睐原创 2024-03-23 23:48:32 · 421 阅读 · 0 评论 -
简述Spring Bean生命周期
如果这个 Bean 的 Spring 配置中配置了 destroy-method 属性,会自动调用其配置的销毁方法。以上就是spring bean的完整生命周期。原创 2022-11-22 17:30:00 · 2691 阅读 · 0 评论 -
并发编程线程基础知识:守护线程
守护线程–也称“服务线程”,它是后台线程,在没有用户线程可服务时会自动离开。原创 2022-11-20 23:45:00 · 651 阅读 · 0 评论 -
编程逻辑入门必备:演绎推理
所谓推理,是指由一个或几个已知的判断,推导出一个未知结论的思维过程。推理的作用是从已知的知识得到未知的知识,特别是可以得到不可能通过感觉、经验掌握的未知知识。演绎推理从一般规律出发,运用逻辑证明或数学运算,得出特殊事实应遵循的规律。演绎推理是前提和结论之间具有必然联系的推理,是前提与结论之间具有充分条件或充分必要条件联系的必然性推理。演绎推理的逻辑形式对于理性的重要意义在于,它对人的思维保持严密性、一贯性有着不可替代的校正作用。这是因为演绎推理保证推理有效的根据并不在于它的内容,而在于它的形式。原创 2022-11-01 10:00:11 · 1131 阅读 · 0 评论 -
二进制运算符:&(与运算)、|(或运算)、~(取反运算)、^(异或运算)、位移运算符
对于XN 形式的运算,含义是将 X 向左或向右移动 N 位,X 的类型可以是 int,uint,long,ulong,byte,sbyte,short 和ushort。在执行按位异或运算时,如果两个二进制数的相应位都为1或两个二进制数的相应位都为0,则返回 0;:按二进制形式把所有的数字向右移动对应位数,低位移出(舍弃),高位的空位补符号位,移位后得到的数字为正数则补0,负数补1。在数字没有溢出的前提下,对于正数和负数,左移一位都相当于乘以2的1次方,左移n位就相当于乘以2的n次方。.........原创 2022-08-30 23:07:28 · 18742 阅读 · 2 评论 -
SaTokenException: 非Web上下文无法获取Request问题解决
因为异步的原因,他会丢掉ThreadLocal中原来线程的数据,从而获取不到loginUser,这种情况下我们可以在方法内的局部变量中先保存原来线程的信息,在异步编排的新线程中拿着局部变量的值重新设置到新线程中即可。原创 2022-05-31 16:55:32 · 9049 阅读 · 1 评论 -
分组:Stream不得不知的操作
groupingBy在分类操作的时候非常有用,我们可以直接将数据分好组。在后续需要调用的时候,直接get就好,就不需要进行二次计算操作了。在执行速度和代码可读性方面都有不错的提升。原创 2022-05-22 20:19:11 · 312 阅读 · 0 评论 -
IDEA编译:“错误: 找不到符号”问题解决
正常来讲,注解是不能在编译中发现的。注解是运行时动态去识别的。只有在运行的时候才会被触发。编译是不能识别的。那么@Builder为什么能够识别呢?那是因为,它是用来辅助编译的,它编译完成之后,代码里面有Builder模式的代码了。不信的话你可以找下对应的class文件看看。原创 2022-05-19 10:49:14 · 7370 阅读 · 1 评论 -
@Validated注解对应类型(一)
背景今天在entity的属性上,添加@NotEmpty属性的时候失败了。@NotEmpty这个很好理解,就是非空校验。查看了下,发现说是因为字段类型是Integer,不支持。但是这玩意放在属性上面,在运行时才去检查当前类型。这也确实有点扯蛋了。所以就弄点时间简单看下。@Validated简介@Validated是Spring Validator校验机制使用的。作用域一般就是解放我们原来对入参的校验操作,免得我们在代码里面写所以就花点时间,把源码都看了下,发现还..原创 2022-05-18 23:26:13 · 1433 阅读 · 1 评论 -
解决JSON parse error: Cannot deserialize instance of `java.lang.Integer` out of VALUE_TRUE token; nest
前端联调的时候,不小心出错了。错误信息如下JSON parse error: Cannot deserialize instance of `java.lang.Integer` out of VALUE_TRUE token; nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of `java.lang.Integer`..原创 2022-05-18 18:28:38 · 8882 阅读 · 1 评论 -
npm install 报错 C:\Program Files\Git\cmd\git.EXE ls-remote -h -t git://github.com/adobe-webplatform解决
git config --global url."https://".insteadOf git:// 解决该问题原创 2022-05-17 16:11:41 · 6673 阅读 · 4 评论 -
jsdelivr cdn报错无法访问
很多接触开源的朋友可能知道jsdelivr,而且经常使用这个cdn服务,这是一个非常快的免费的cdn服务,所有公开的javascript npm包和github仓库,都可以使用jsdelivr来作为静态资源服务器,而且免费、超快!原创 2022-05-17 16:06:30 · 2428 阅读 · 0 评论 -
Vue项目中过滤器(filters)的用法
过滤器使用场景在调取接口的返回数据的时候,我们经常能够得到各种Number类型的数据。这种格式的数据,很多时候都是表明对应的类型。如果直接返回到页面上展示,对于操作人员来讲,没有任何意义。所以,一般的情况下,我们需要把格式对应类型的中文名称显示出来。这个时候一般的操作情况是使用类似的转换方法,将值传递过去,然后进行转换显示。在VUE中,我们可以使用Vue的filter钩子函数来实现。实现方式代码格式{{}}中实现filters顺序: {{参数 | filter..原创 2022-05-16 23:07:32 · 6210 阅读 · 0 评论 -
Required Integer[] parameter ‘xxx‘ is not present”报错的解决方案
背景在使用批量删除的时候,前端同学说报错了。自我调试了下,发现Required Integer[] parameter 'xxx' is not present方法在后端使用的是post的方式。因为删除只需要用到id所以在传递参数的时候就使用了Integer[]请求的时候,使用了@RequestBody的方式。方法如下:@ApiOperation(value = "删除")@RequestMapping(value = "/delete", method = Requ..原创 2022-05-12 00:00:00 · 11833 阅读 · 1 评论 -
简单分析在Vue的mounted中获取对象为null问题
背景因为 需要在项目中需要将获取的列表对象赋值给另外一个控件。所以使用了mounted按照vue的生命周期,在create()中增加了获取数据的getList()方法,然后赋值。然后在mounted()中增加了对赋值对象的相关操作。vue生命周期图问题按照理想的情况,应该可以将赋值后的对象进行相关操作的。但是实际结果却是打脸了,获取不到对象数据。console.log打印出来的结果为null。按照道理来讲,不应该哈。解决方案度娘了下,发现还真是..原创 2022-05-10 10:18:16 · 2568 阅读 · 0 评论 -
解决Unsatisfied dependency expressed through field ‘baseMapper‘; nested exception
早上起来的时候发现报了个类似的错误。Unsatisfied dependency expressed through field ‘baseMapper‘; nested exception大概意思就是说当前的dao没有办法映射了。仔细看了下网上的问题,一般情况是以下两种情况。1、依赖的问题使用spring boot整合mybatis-plus导入的时候出错的。用错了依赖。2、@Mapper注解的问题。把dao上的@Mapper注解删掉我的项目在放假前还是好好的,我仔..原创 2022-05-09 14:41:05 · 19238 阅读 · 0 评论 -
Mysql的ClassforName初探
在使用开源爬虫的时候,发现需要配置mysql的DriverClassName。因为这个是固定的,所以一般没怎么看。然后随便复制一个放里面了。发现居然报错了。好奇心的驱使下,我把开源代码拉下来,然后跟踪了下代码。发现代码中这行使用了Class.forName()。简单点来讲,就是动态的加载这个类。把原来机器调用的时候,用Class.forName()改成手工操作。为啥要手工操作,如果你有多个不同的数据源,你又没有配置进去。要想做成多租户的方式,用这个方式让客户自己去配置自己的业务库,这个就方便多了。原创 2022-04-30 06:00:00 · 717 阅读 · 0 评论 -
Consider defining a bean of type问题解决
这个问题主要是因为项目拆包后,在原有的引用项目中无法找到对应的包的路径。所以,解决方法是让原来引用的项目可以找到资源的路径就可以了。在项目的Application启动文件里,使用@MapperScan注解,把当前的路径引用进去就可以了。...原创 2022-04-25 16:20:22 · 49392 阅读 · 0 评论 -
JAVA后台开发提升注解篇 @Deprecated
如果不加这个注解,代码跑起来是不会有任何问题的。如果加了之后,你的接口文档(例如swagger)就会在当前接口上增加一条删除线,这样调用端就知道该接口废弃了,他就不会再调用了。那么他怎么知道调用新的呢?这个就需要你再接口文档中写明对应的接口新文档了。对于这样好的合作伙伴,前端调用方肯定会很喜欢的,觉得你的接口质量棒棒的,这样是不是给人感觉你的能力很不错呢?原创 2022-04-25 15:59:45 · 1013 阅读 · 0 评论 -
MP下queryWrapper使用mysql函数问题解决
背景先简单说下背景,因为工作需求,需要统计一天时间内的指定类型的数据。如果使用> + < 来实现的话,很简单的。因为对数据库比较熟悉,就直接使用了mysql的自带的to_day函数。TO_DAYS函数这个函数就是把当前是时间戳直接转换为天的一个数据。就是按照从年份0开始计算的开始的天数。示例:SELECT TO_DAYS(now())结果如下:这样的话,在使用这个函数的时候就不需要> 和 <了。基于SQL语句,我直接在代码中调用...原创 2022-04-24 20:06:27 · 4531 阅读 · 1 评论 -
Function.identity()初探
Function.identity()返回一个输出跟输入一样的Lambda表达式对象,等价于形如t -> t形式的Lambda表达式原创 2022-04-25 16:16:34 · 1519 阅读 · 0 评论 -
将redis中的hash值全部查找出来
在使用项目中,比较少用hash函数的读操作,所以特意查找了下。使用以下方法,将返回当前key对应的hash中存放的所有数据。返回结果格式为map<hk,hv> redisTemplate.opsForHash().entries(k);我使用的是spring自带的redis的方法。查找了下,调用的public interface HashOperations<H, HK, HV>中的方法。 Map<HK, HV> entries(..原创 2022-04-01 12:37:15 · 8067 阅读 · 0 评论 -
java8List.sort()排序常用方法
对于一些普通的数据类型(比如 String, Integer…),它们默认实现了Comparable 接口,实现了 compareTo 方法,我们可以直接使用。而对于一些自定义类,它们可能在不同情况下需要实现不同的比较策略,我们可以使用特定的 Comparator 实现进行比较原创 2022-03-30 00:09:47 · 34210 阅读 · 0 评论 -
controller中获取heard中参数方法
在controller层获得参数方法具体实现如下:获得当前HttpServletRequest对象protected HttpServletRequest getRequest(){ return ((ServletRequestAttributes) (RequestContextHolder.currentRequestAttributes())).getRequest();}将hearder中的参数放到map中。protected Map<String..原创 2022-03-24 19:03:14 · 3336 阅读 · 0 评论 -
mysql 如何判断 “字符串“ 是否为 “数字“
{str} REGEXP {pattern}{str} 代表匹配的字符。{pattern}代表匹配的模式返回结果,如果匹配成功,则返回true,否则返回false。原创 2022-02-17 18:18:24 · 2024 阅读 · 0 评论 -
IllegalArgumentException: Could not resolve placeholder ‘XX’ in value “${XX}“问题记录
其实这个问题,主要是因为心大导致的。有的时候因为写多了,然后到处复制,结果复制后修改不及时。平时多注意下,基本上这类问题都可以自行杜绝的,没有什么技术活。原创 2022-01-13 18:02:59 · 3671 阅读 · 0 评论 -
Mysql内容查找替换
前言基本上用java的都是用的Mysql数据库来进行数据的存储服务。Mysql里面有很多自带的查找函数,掌握它其实是很有必要的。今天和大家分享的是如何进行内容的查找替换操作。背景有个数据字段product_name,因为前期设计的原因,将中英文保存到了一起。假如存储内容如下:帕图斯酒庄红葡萄酒(Petrus, Pomerol, France)因为业务的变动,需要对其拆分,使用两个字段来进行存放。解决思路常规解决思路:1、使用instr函数找到拆分的位置 ;2..原创 2021-12-21 20:25:10 · 3155 阅读 · 1 评论 -
fastjson中对象转换中看到的一些现象
引出的背景今天在用IDEA进行代码review的时候。发现有的小伙伴在代码上显示了一条波浪线。仔细一看代码如下:JSON.parseObject(value, List.class)这里使用了fastjson,但是这里一看就看的出来,使用的不是很流畅。先讲讲fastjson什么是fastjsonfastjson是阿里开源的一个json操作库。从名字就可以看出来。它支持json和java对象类型之间的互换操作。fastjson中json转对象常用方法fastjson中j...原创 2021-12-16 18:58:31 · 685 阅读 · 0 评论 -
Spring MVC的@RequestMapping多URL映射实现
修改背景项目在执行一半的时候,因为架构调整,需要对整个目录都进行调整,按照拆分,原有的mvc的映射路径需要批量修改。考虑到项目已经是上线状态,需要同时兼容在线和开发版本。解决方法因为使用的是springMVC。所以不可避免的会用到RequestMapping注解字段。如果要修改的话有两种方案:1、所有的新的都走新的URL,所有都重新创建一个Controller,然后实现的话跳转到原有的里面去。这种方案的话修改量太大,而且存在一些不可控的风险。2、研究RequestMapping。..原创 2021-12-10 12:10:29 · 3689 阅读 · 2 评论 -
npm install 报“https://github.com.cnpmjs.org/nhn/raphael.git“ fatal: unable to access ‘https://异常解决记录
项目场景:突然的一天,发现执行项目的npm install的时候提示,raphael.git SSL异常。问题描述:在执行npm install的时候,突然执行报错。报错内容如下fatal: unable to access 'https://github.com/nhn/raphael.git/': OpenSSL SSL_read: Connection was reset, errno 10054原因分析:按照一般的情况来分析,应该是被墙了。网络上的答案千篇一律的反馈..原创 2021-12-08 17:40:11 · 4443 阅读 · 0 评论 -
windows下 node版本管理工具nvm
node版本管理工具,可以很方便的替换不同的node执行环境原创 2021-12-08 17:38:41 · 826 阅读 · 0 评论 -
node和npm版本对应关系
查看官方说明,这个最不会骗人。ttps://nodejs.org/zh-cn/download/releases/原创 2021-12-08 16:59:49 · 5473 阅读 · 0 评论 -
npm小技巧: 安装指定的依赖版本
在npm中安装指定的版本号,在其后加 ‘@版本号’npm install --save 依赖@版本号例如安装node-sassnpm install --save node-sass@6.0.1原创 2021-11-24 11:39:06 · 5562 阅读 · 0 评论 -
微信支付申请扫描提示”操作超时,请重新扫码确认问题“解决
在申请微信支付账号的时候,按照微信网站的提示”操作超时,请重新扫码确认“所有的操作一模一样,没有任何违规的地方。按照微信支付平台的要求,一步步走下来的。在手机上允许登录。但是直接跳转到微信平台后,提示成功,然后就跳转到操作超时页面了。百度了下,https://developers.weixin.qq.com/community/develop/doc/000ce2f5c28cc0279009502fb51400中提示是因为浏览器的原因。建议提示换成国产的浏览器或者IE试下。我换成原创 2021-09-06 11:31:42 · 3121 阅读 · 5 评论