文章目录

人,一定要靠自己

没有人会关心你付出过多少努力,撑得累不累,摔得痛不痛,他们只会看你最后站在什么位置,然后羡慕或者鄙夷

springboot项目在使用压缩软件修改依赖包配置项后,启动报错 Unable to open nested jar file 'BOOT-INF/lib/****** 有更新!

问题 springboot项目在使用压缩软件修改依赖包配置项后,启动报错,报错内容如下 Caused by: java.io.IOException: Unable to open nested jar file 'BOOT-INF/lib/bps-basic-properties-0.0.1-SNAPSHOT.jar' at org.springframework.boot.loader.jar.JarFile.getNestedJarFile(JarFile.java:256) at org.springframework.boot.loader.jar.JarFile.getNestedJarFile(JarFile.java:241) at org.springframework.boot.loader.archive.JarFileArchive.getNestedArchive(JarFileArchive.java:103) ... 4 more Caused by: java.lang.IllegalStateException: Unable to open ne....

计算机起源的数学思想 有更新!

人类的历史可以看做一部关于解放的历史。也有这样的说法,懒惰是人类进步的动力。为了偷懒,人类不断的做着各种努力,发明了各种机器工具,将自己从繁重的劳动解放出来,另一方面,每一次大的进步,都需要解放思想,同时也带来了全人类思想的大解放。在这样的历程中,计算机的出现无疑将人类从很多繁重的作业中解放了出来。与此同时,有些人开始思考能否制造出可以像人类一样进行思考的机器,以将人类从创造性的劳动和逻辑思考中解放出来,交给机器去完成。 虽然计算机的出现,不到百年,然而为了它的出现,所进行的探索和研究,早已经历经数百年的历史。当然准确的说,这些探索和研究在当时实际并不是为了计算机产生而进行的,绝大多数只是做了一个无意的铺垫。或许我们并不熟悉这样的一个过程,老实说现代的大学教育中也很少提及计算机出现之前的那些历史。实际上,了解这样的一个过程,更有助于我们理解一个事物是如何产生出来,它背后的科学原理又是如何,让我们可以透过复杂的电路外表,接触到最本质的东西。可以让我们除了对科学家们的工作表示赞叹之外,也可以深入他们当初的思想过程,近距离地进行跨越时间和空间的沟通。这对于我们自己应该如何思考问题,创造性....

C语言中三块难啃的硬骨头

C语言在嵌入式学习中是必备的知识,审核大部分操作都要围绕C语言进行,而其中有三块“难啃的硬骨头”几乎是公认级别的。 # 0x01 指针 指针公认最难理解的概念,也是让很多初学者选择放弃的直接原因。 指针之所以难理解,因为指针本身就是一个变量,是一个非常特殊的变量,专门存放地址的变量,这个地址需要给申请空间才能装东西,而且因为是个变量可以中间赋值,这么一倒腾很多人就开始犯晕了,绕不开弯了。C语言之所以被很多高手所喜欢,就是指针的魅力,中间可以灵活的切换,执行效率超高,这点也是让小白晕菜的地方。 指针是学习绕不过去的知识点,而且学完C语言,下一步紧接着切换到数据结构和算法,指针是切换的重点,指针搞不定下一步进行起来就很难,会让很多人放弃继续学习的勇气。 指针直接对接内存结构,常见的C语言里面的指针乱指,数组越界根本原因就是内存问题。在指针这个点有无穷无尽的发挥空间。很多编程的技巧都在此集结。 指针还涉及如何申请释放内存,如果释放不及时就会出现内存泄露的情况,指针是高效好用,但不彻底搞明白对于有些人来说简直就是噩梦。 在概念方面问题可以参见此前推文《对于C语言指针最详尽的讲解》,那么在指针方....

IDEA 的版本控制文件修改后所属目录的颜色变化 有更新!

IntelliJ IDEA 的版本控制默认文件修改了,所属目录的颜色是不会变化,这很不方便。如: 最近安装升级到2021.3.2版本后老的配置移动了如下操作 修改方法如下(老方法,对于2021.3之后的版本不适用): File --> settings --> version control --> 勾选 "show directories with changed descendants" 改了之后效果如下:

自定义groovy脚本在IDEA中为数据库生成PO实体类 有更新!

自定义groovy脚本在IDEA中为数据库生成PO实体类 转载自 - 吃竹子的程序熊- OSCHINA 在文章底部有完整的代码实现 前言 我们可能会遇到下列这种问题: 公司的一个小项目,被拆分成了API和后台管理两个服务,但是因为二者共用一个数据库,所以存在着大量相同的数据库实体定义. 因此我们不得不在这两个服务中分别提供一样的实体定义,当我们的表结构发生变更时,我们可能会忘记修改某一个项目中对应的实体,久而久之,我们会发现,某个项目中的某个实体对象和数据库表定义相差甚远. 这时候,我们就可以考虑拆出一个common项目用来存放二者公共的代码,数据实体类作为一个不可变的对象,单独维护在common项目中,并保证common中的实体对象和数据库一一对应. 那么,我们需要手动的去为每个表建立相应的实体类吗?如果表结构发生变化,我们还要手动去更改相应的实体类吗? 答案当然是不,借助于IDEA的数据库插件Database,我们可以通过提供一个groovy脚本来批量生成数据表对应的实体类. 这样,不仅简化了代码编写,同时还能统一实体类的生成逻辑. 关于IDEA中脚本的使用方式参见文档:Ge....

googel s2 算法 java demo版本

相关资料 halfrost 的 git 仓库,包含空间搜索系列文章:https://github.com/halfrost/Halfrost-Field s2 官网:https://s2geometry.io s2 地图/可视化工具(功能强大,强烈推荐): http://s2.sidewalklabs.com/regioncoverer/ 经纬度画圆/画矩形 地图/可视化工具 :https://www.mapdevelopers.com/draw-circle-tool.php 经纬度画多边形 地图/可视化工具 :http://apps.headwallphotonics.com csdn参考文章:Google S2 常用操作 :https://blog.csdn.net/deng0515001/article/details/88031153 S2官方PPT:https://docs.google.com/presentation/d/1Hl4KapfAENAOf4gv-pSngKwvS\_jwNVHRPZTTDzXXn6Q/view#slide=id.i....

正则表达式引擎NFA基础逻辑 有更新!

1为什么要了解引擎匹配原理 一个个音符杂乱无章的组合在一起,弹奏出的或许就是噪音,同样的音符经过作曲家的手,就可以谱出非常动听的乐曲,一个演奏者同样可以照着乐谱奏出动听的乐曲,但他/她或许不知道该如何去改变音符的组合,使得乐曲更动听。 作为正则的使用者也一样,不懂正则引擎原理的情况下,同样可以写出满足需求的正则,但是不知道原理,却很难写出高效且没有隐患的正则。所以对于经常使用正则,或是有兴趣深入学习正则的人,还是有必要了解一下正则引擎的匹配原理的。 2正则表达式引擎 正则引擎大体上可分为不同的两类:DFA和NFA,而NFA又基本上可以分为传统型NFA和POSIX NFA。 DFA Deterministic finite automaton 确定型有穷自动机 NFA Non-deterministic finite automaton 非确定型有穷自动机 Traditional NFA POSIX NFA DFA引擎因为不需要回溯,所以匹配快速,但不支持捕获组,所以也就不支持反向引用和$number这种引用方式,目前使用DFA引擎的语言和工具主要有awk、egrep 和 lex。 PO....

navicat Linux 破解

n官方的下载 http://navicat.rainss.cc/down.php 这是激活工具地址 http://navicat.rainss.cc/

锂离子电池的容量为什么会衰减变化?

一、锂离子电池容量衰减现象分析正负极、电解液及隔膜是组成锂离子电池的重要成分。锂离子电池的正负极分别发生锂的嵌入脱出反应,其正负极的嵌锂量成为影响锂离子电池容量的主要因素。因此,必须维持锂离子电池正负极容量的平衡性,才能确保电池具备最佳性能。 通常来说,锂离子电池常用有机溶剂和电解质(锂盐)组成的电解质溶液,该电解质溶液应当具备足够的导电性、稳定性,并且能够与电极实现相容。对于隔膜来说,其性能是决定电池内阻及界面结构的主要因素,对电池容量衰减变化情况有着直接的影响。若隔膜的质量和性能优越,将会显著提升锂离子电池的容量和综合性能。一般情况下,隔膜在电池中主要起着分隔电池正极和电池负极的作用,避免正负极发生接触而导致电池短路,同时还能够放行电解质离子,以充分发挥电池效用。 锂离子电池中的化学反应不仅仅包括锂离子嵌入和脱出过程中的氧化还原反应,还包括诸如负极表面SEI膜的生产和破坏、电解液的分解以及活性材料的结构变化和溶解等副反应,这些副反应都是造成锂离子电池容量衰减的原因。 电池循环过程中发生容量衰减和损失是必然现象,因此,为了提高电池容量和性能,国内外各领域的学者充分研究了锂电池容量损失....

SpringAOP多切面 有更新!

多切面执行时,采用了责任链设计模式。 切面的配置顺序决定了切面的执行顺序,多个切面执行的过程,类似于方法调用的过程,在环绕通知的proceed()执行时,去执行下一个切面或如果没有下一个切面执行目标方法,从而达成了如下的执行过程:(目标方法只会执行一次) 执行的顺序和配置顺序等有关 目标方法执行前: 前置,环绕前(顺序可以变) 目标方法执行后: 最终,环绕后,最终(顺序可以变) 责任链设计模式:为解除请求的发送者和接收者之间的耦合,而使多个对象都有机会处理这个请求。将这些对象连成一条链,并沿着这条链传递该请求,直到有对象处理它 因为责任链设计模式first切面中调用poceed方法后,继续沿着责任链去调用second切面中的环绕前-----然后掉poceed方法 ----此时没有切面了---沿着责任链去调用addUser()方法---调用结束addUser(),在执行环绕second环绕后。。。。。 如果目标方法抛出异常 通知间的跳转顺序 多个切入点责任链模式如下图 Aspect1 和Aspect2两个切面类中所有通知类型的执行顺序,Method是具体的切入点,order代表....

在我心中这,才是真正的文艺工作者。 有更新!

最近,有一个过气男团,让人格外意难平。 为何意难平? 别家的男艺人都重回热搜了,他们却仍「寂寂无名」。 先有王力宏直播露脸,一脸络腮胡子堪比鲁滨逊,一夜刷爆热搜: 再有苏有朋成2021最热门学霸艺考生。 20多年前的成绩被扒出来,照样吊打娱乐圈一众伪学神。 一直默默等待着「他们」的名字重回顶流。 7月11日,微博上突然爆了这么一个话题#来了,团粉嗑疯#。 ©️网络 远在海岸线另一端的香港红馆里,悄悄火了这么几个写着「Good Show」的花篮。 这是黎明在香港红馆举办的个人演唱会现场,花篮的落款分别是——好友郭富城、刘德华、张学友。 没经历过那个时代的人,永远不懂这四个名字并列在一起的威力。 就像满娱乐圈都在炒作新四小天王,却再也没人敢和他们并肩。 他们曾经称霸一整个亚洲,曾耀眼到只是回想都觉得光芒万丈。 而如今,他们已冷门成了一小簇人的狂欢。 他们成了00后嘴里的过气歌手,成了中文互联网浪潮里,需要耐心考古的存在。 我们爱的男孩都老了,平均年龄50+。 黎明55岁了,在红馆给粉丝跳舞,演唱会开一场少一场。 张学友刚过完60大寿。 刘德华紧随其后,再过两月,就60岁了。 郭富....

Lambda表达式对递归的优化(下) - 使用备忘录模式(Memoization Pattern) 有更新!

原文链接 使用备忘录模式(Memoization Pattern)提高性能 这个模式说白了,就是将需要进行大量计算的结果缓存起来,然后在下次需要的时候直接取得就好了。因此,底层只需要使用一个Map就够了。 但是需要注意的是,只有一组参数对应得到的是同一个值时,该模式才有用武之地。 在很多算法中,典型的比如分治法,动态规划(Dynamic Programming)等算法中,这个模式运用的十分广泛。 以动态规划来说,动态规划在求最优解的过程中,会将原有任务分解成若干个子任务,而这些子任务势必还会将自身分解成更小的任务。因此,从整体而言会有相当多的重复的小任务需要被求解。显然,当输入的参数相同时,一个任务只需要被求解一次就好了,求解之后将结果保存起来。待下次需要求解这个任务时,会首先查询这个任务是否已经被解决了,如果答案是肯定的,那么只需要直接返回结果就行了。 就是这么一个简单的优化措施,往往能够将代码的时间复杂度从指数级的变成线性级。 以一个经典的杆切割问题(Rod Cutting Problem)(或者这里也有更加正式的定义:维基百科)为例,来讨论一下如何结合Lambda表达式来实现备忘....