05- 还在双引号添加字符串?- 文本块 使用过java的string的时候,当我们使用json,sql,xml在代码里面进行初始化的时候,大量的,“” 的真的是噩梦,导致无法顺畅的阅读,我一般调试的时候,会把他打印到console上进行阅读或者格式化, 但是在JDK15 这个问题正式的得到了解决。
04- 人有多大胆,地有多大产 到 按需分配 - sealed JDK17 关键字对继承和实现的子类进行了进一步的控制,从之前人有多大胆,地有多大产的野蛮接口继承滥用的情况,导致开发者对于自己的类失去了控制,对于之后的改造要顾及之前的使用情况导致的问题,到现在按需分配,限制继承和实现的类,又限制的开放了收口,达到双赢的局面。关键词进行修饰的类或者接口,会拖离之前密封的限制,从而自由进行使用,这个就是说的收口,为什么还有non-sealed这种关键词,这样不是还是会进行滥用?permits也是关键词,后面是允许进行集成的子类名称, 被其他的类进行实现的话,会进行报错。
03- javaBean 新花样? record 新特性 JDK16 最终增加了record关键字,record定义的类希望成为编译器做了哪些事情呢?可以通过 idea,里面的功能进行covert record to class ,进行转化, 等价处理。
02-接口interface 新花样 JDK8:我要实现流,我要让集合类实现stream() 方法我:你准备怎么实现JDK8: 我要在interface Collection 上新加一个方法 stream我:Collection 上加一个方法可是大事啊,Collection 在java里面可是有很大的势力的啊,麾下实现类数不胜数,世界各地都在使用实现类,你加一个方法,所有的实现类都要进行实现。
01- var 来java 串门了? var的引入最先是在JDK 10 中进行添加的,在后面的JDK 11进行了改进。最终纳入了java的新特性里面,使用过其他语言的var,会发现var的强大或者随意,java里面var 会变成这样么?
00-还在java8 前导篇 作为一个使用java8很久的人,突然一抬头发现java版本已经更新到了20啦,哇,今夕是何年?有一种在大学宿舍打了一个夏天的电脑,出门发现已经开始下着大雪了,但是咱们还穿着短裤衩的场景。。亡羊补牢哈哈,吃上java新版的红利还是很有必要的,所以想写写一个系列,专门来进行java新版本新特性的学习和实践,吃上java的红利哈哈。
es reindex使用 记一次HashMap的问题原因使用hashMap遍历中进行remove操作,导致报错。public static void main(String[] args) { HashMap<Integer, String> map = new HashMap<>(); map.put(1, "1"); map.put(2, "2"); map.put(3, "3"); map.put(4, "4");
算法第三讲(使用队列走迷宫 广度优先) 算法第三讲(使用队列走迷宫 广度优先)从2019年9月开始,会把《数据结构》经典的算法介绍一遍。加油,89lovelc问题介绍问题分析算法思想代码实现运行结果总结...
Hadoop:NameNode工作图解 Hadoop:NameNode工作图解记录hadoop学习之旅的问题和笔记,89lovelc,加油NameNode 工作机制图解namenode 工作在第一次格式化的时候,会创建fsimages和edits文件,如果不是第一次启动的话,就会把编辑日志(edits文件)和镜像文件(fsimages)加载内存中。客户端对元数据进行CRUD操作。namenode接收到操作,先将操作记...
Hadoop:HDFS读写操作图解 Hadoop:HDFS读写操作图解记录hadoop学习之旅的问题和笔记,89lovelc,加油HDFS写操作(文件上传)1.客户端里面的分布式文件系统DistributedFileSystem请求NameNode服务器,将text.txt(大于128M)上传到/user/admin 目录下2.NameNode服务在内存中检查和DataNode服务器传过来的信息,返回可以上传3.客...
算法第一讲(使用栈实现计算) 算法第一讲(使用栈实现计算器)从2019年9月开始,会把经典的数据结构的里面的东西介绍一遍。加油,89lovelc问题介绍用户输入一个包含+,-,*,/,正整数,圆括号的合法算数表达式,计算该表达式的结果问题分析栈的介绍前缀表达式后缀表达式算法思想代码实现运行结构...
mysql 记一次总结 原因接手了一个项目,主要的逻辑都是写在存储过程的,存储过程真的是黑盒子,执行的成不成功不知道,执行成功了是不是对的还不知道,但是也不得不佩服那些玩数据的,还是666的。小坑( 10 + NULL)/ 10 == 1 ?mysql 中 ( 10 + NULL)/ 10 这个式子不会等于1,会等于NULL!切记!进行运算的时候一定要保证数据不能为空,进行判断处理 IFNULL(B,0...
slf4j 如何启动logback,log4j源码分析 历史知道java 日志框架的,应该知道log4j,logback,slf4j竟然是一个作者写的,我的天。为啥要写三个。。这个可以去看看相关的文章,今天讨论的门面slf4j是如何驱动logback和log4j的。入口 //一般日志的开启都是在这里开始的。 private static final Logger logger = LoggerFactory.getLogger(...
backlog 自定义appender 做实时输出日志 backlog 自定义appender 做实时输出日志实时日志输出实时日志输出原因微服务盛行的时候,都是化整为零,导致日志的输出没有统一的管理,需要做一个统一的日志实时输出(或者说是日志实时收集的功能)。需求能够自己定义日志输出的格式能够上传给某个服务端进行访问能有开关进行在必要的时候进行关闭开关因为日志框架,现在都是按照logger,appender,encode ...
标记清除算法 标记清除算法GC里面字面的意思进行理解就行,就是有标记阶段和清除阶段构成。标记阶段就是把所有的活动对象做上标记,清除阶段就是把那些没有标记的对象进行清除。伪代码 mark_sweep()_{ //标记阶段 mark(); //清除代码 sweep(); } mark(){ //对 root 对象进行遍历 标记 for( r : $root){ mark...
记 mysql 分区 导入导出 记录背景上线的有个表的数据已经达到千万数据量了,但是业务需求一直很紧,不能对这块进行做够的开发,所以只能出一个下策,对这个表进行分区,分区的意思就是在逻辑上是一张表,但是在物理存储上是多个文件存储的,多个文件进行存储,在查询的时候速度有相应的加快,这个可以出查分区的好处,不是本文的重点不在此处进行展开。因为是线上数据,操作需谨慎,所以打算将文件down下来,再本地做一次分区操作,看是否出错...
使用spring-session redis共享session 原因之前有一篇分享过session共享的方案,redis共享session确实有很多好处,但是在原有的工程上面添加去修改session放到redis里面去,确实有一定的改动量。但是我们可以通过spring提供的spring-session和redis做到无感切换session。原理是spring做了一层拦截器,对Session做了一层封装,当我们进行调用session.setAttribut...