摘要:
所谓的"尾递归"可以简单的理解为调用函数自身的语句是函数的最后一句需要执行的语句; 为什么要使用尾递归:当一个函数递归调用自己时会生成一个新的栈帧,所以会导致栈的深度增加,当栈的深度过深时可能会导致爆栈(计算机的内存是有限的,并且栈的大小一也是有限制的)。 而使用尾递归的话,编译器就会优化执行的指令 阅读全文
摘要:
一、核心概念 最近开始学习rust语言,总的来说学习成本是要比java之类的语言要高一些,不过也还没到无法接受的程度。买了本《Rust编程之道》学习,私以为将下图里标记的部分概念全部理解吃透了,那么rust大体上就学会了,剩下的就是多开发和实践了 二、 总结 1. rust最重要的核心:保证内存安全 阅读全文
摘要:
最近突然发现通过 applicationContext.getBeansOfType(Class) 有时会获取不到指定类型的实例对象,代码如下: 通过allHander获取指定名称的ModuleHandler时获取不到,但是对象其实是存在的。造成这个问题的原因其实是 applicationConte 阅读全文
摘要:
一、二分法 思路: 假设要求一个数字 A 的平方根,可以想象一个长为a、宽为b的矩形,这个矩形的面积就是数字A 。 当长=宽时,这个矩形就是正方形。在面积不变的情况下,使矩形变成正方形就需要调整长、宽的值,无非是长变短一点、宽变长一点,通过不停的迭代,直到长=宽时就能求出A的平方根,由于一个数的平方 阅读全文
摘要:
最近用maven构建一个老项目时,总是报出永久代内存溢出 查了下资源,其原因就是maven构建会调起jdk,而如果maven构建的项目过大就可能导致内存不够用。 解决办法很简单:增大永久代内存空间 操作如下,设置一个maven的环境变量 MAVEN_OPTS 即可,如下图(我是osx系统,其他系统也 阅读全文
摘要:
java中的线程设计有多种状态,每种状态代表的意义不同,为了避免诸如个人错误的理解之类的东西,直接上源码看官方注释是最准确的 阅读全文
摘要:
scala官方文档地址:https://docs.scala-lang.org/tour/tour-of-scala.html 阅读全文
摘要:
该异常是由于从java9开始就将以前版本自带的javaee模块给单独抽离出来了(javax等等),所以如果使用到了被抽离的模块内容,则会抛出 “java.lang.NoClassDefFoundError ” 的异常,处理方式是需要使用到什么模块,则引入什么模块即可。不存在冲突的情况下, 最好使用m 阅读全文
摘要:
由于公司安排需要集成openRASP,花了些功夫终于集成了,但是测试的时候发现sql注入的例子某些时候无法被正确拦截到,因此花了一周时间研究一下具体原因。 下面是rasp执行sql校验的大致流程图: 但是该流程有一个较为严重的 "瑕疵" ,就是 "安全校验"这一步。 安全校验是: java代码 -- 阅读全文
摘要:
引用知乎文章:https://zhuanlan.zhihu.com/p/51374915 ,这是目前看到讲的最清楚的一片文章。 阅读全文