自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(61)
  • 问答 (1)
  • 收藏
  • 关注

原创 05- 还在双引号添加字符串?- 文本块

使用过java的string的时候,当我们使用json,sql,xml在代码里面进行初始化的时候,大量的\n,“” 的真的是噩梦,导致无法顺畅的阅读,我一般调试的时候,会把他打印到console上进行阅读或者格式化, 但是在JDK15 这个问题正式的得到了解决。

2024-03-23 22:58:31 258

原创 04- 人有多大胆,地有多大产 到 按需分配 - sealed JDK17

关键字对继承和实现的子类进行了进一步的控制,从之前人有多大胆,地有多大产的野蛮接口继承滥用的情况,导致开发者对于自己的类失去了控制,对于之后的改造要顾及之前的使用情况导致的问题,到现在按需分配,限制继承和实现的类,又限制的开放了收口,达到双赢的局面。关键词进行修饰的类或者接口,会拖离之前密封的限制,从而自由进行使用,这个就是说的收口,为什么还有non-sealed这种关键词,这样不是还是会进行滥用?permits也是关键词,后面是允许进行集成的子类名称, 被其他的类进行实现的话,会进行报错。

2024-03-17 19:24:41 421

原创 03- javaBean 新花样? record 新特性

JDK16 最终增加了record关键字,record定义的类希望成为编译器做了哪些事情呢?可以通过 idea,里面的功能进行covert record to class ,进行转化, 等价处理。

2024-03-10 11:52:17 178

原创 02-接口interface 新花样

JDK8:我要实现流,我要让集合类实现stream() 方法我:你准备怎么实现JDK8: 我要在interface Collection 上新加一个方法 stream我:Collection 上加一个方法可是大事啊,Collection 在java里面可是有很大的势力的啊,麾下实现类数不胜数,世界各地都在使用实现类,你加一个方法,所有的实现类都要进行实现。

2024-03-03 09:37:50 157

原创 01- var 来java 串门了?

var的引入最先是在JDK 10 中进行添加的,在后面的JDK 11进行了改进。最终纳入了java的新特性里面,使用过其他语言的var,会发现var的强大或者随意,java里面var 会变成这样么?

2024-02-25 22:37:59 160

原创 00-还在java8 前导篇

作为一个使用java8很久的人,突然一抬头发现java版本已经更新到了20啦,哇,今夕是何年?有一种在大学宿舍打了一个夏天的电脑,出门发现已经开始下着大雪了,但是咱们还穿着短裤衩的场景。。亡羊补牢哈哈,吃上java新版的红利还是很有必要的,所以想写写一个系列,专门来进行java新版本新特性的学习和实践,吃上java的红利哈哈。

2024-02-20 23:20:10 270

原创 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");

2020-11-17 23:23:03 902

原创 算法第四讲(使用栈走迷宫 深度优先)

算法第四讲(使用队列走迷宫 深度优先)从2019年9月开始,会把《数据结构》经典的算法介绍一遍。加油,89lovelc问题介绍问题分析算法思想代码实现总结...

2019-10-13 11:46:41 428

原创 算法第三讲(使用队列走迷宫 广度优先)

算法第三讲(使用队列走迷宫 广度优先)从2019年9月开始,会把《数据结构》经典的算法介绍一遍。加油,89lovelc问题介绍问题分析算法思想代码实现运行结果总结...

2019-10-09 23:06:13 878 1

原创 算法第二讲(字符串匹配KMP)

算法第二讲(字符串匹配)从2019年9月开始,会把《数据结构》经典的算法介绍一遍。加油,89lovelc问题介绍问题分析算法思想代码实现总结

2019-09-25 23:52:34 143

原创 Hadoop:DataNode工作图解

Hadoop:DataNode工作图解记录hadoop学习之旅的问题和笔记,89lovelc,加油

2019-09-25 16:24:40 162

原创 Hadoop:NameNode工作图解

Hadoop:NameNode工作图解记录hadoop学习之旅的问题和笔记,89lovelc,加油NameNode 工作机制图解namenode 工作在第一次格式化的时候,会创建fsimages和edits文件,如果不是第一次启动的话,就会把编辑日志(edits文件)和镜像文件(fsimages)加载内存中。客户端对元数据进行CRUD操作。namenode接收到操作,先将操作记...

2019-09-24 14:59:49 278

原创 Hadoop:HDFS读写操作图解

Hadoop:HDFS读写操作图解记录hadoop学习之旅的问题和笔记,89lovelc,加油HDFS写操作(文件上传)1.客户端里面的分布式文件系统DistributedFileSystem请求NameNode服务器,将text.txt(大于128M)上传到/user/admin 目录下2.NameNode服务在内存中检查和DataNode服务器传过来的信息,返回可以上传3.客...

2019-09-16 17:17:16 217

原创 算法第一讲(使用栈实现计算)

算法第一讲(使用栈实现计算器)从2019年9月开始,会把经典的数据结构的里面的东西介绍一遍。加油,89lovelc问题介绍用户输入一个包含+,-,*,/,正整数,圆括号的合法算数表达式,计算该表达式的结果问题分析栈的介绍前缀表达式后缀表达式算法思想代码实现运行结构...

2019-09-13 15:09:21 834

原创 mysql 记一次总结

原因接手了一个项目,主要的逻辑都是写在存储过程的,存储过程真的是黑盒子,执行的成不成功不知道,执行成功了是不是对的还不知道,但是也不得不佩服那些玩数据的,还是666的。小坑( 10 + NULL)/ 10 == 1 ?mysql 中 ( 10 + NULL)/ 10 这个式子不会等于1,会等于NULL!切记!进行运算的时候一定要保证数据不能为空,进行判断处理 IFNULL(B,0...

2018-12-26 17:07:53 111

原创 slf4j 如何启动logback,log4j源码分析

历史知道java 日志框架的,应该知道log4j,logback,slf4j竟然是一个作者写的,我的天。为啥要写三个。。这个可以去看看相关的文章,今天讨论的门面slf4j是如何驱动logback和log4j的。入口 //一般日志的开启都是在这里开始的。 private static final Logger logger = LoggerFactory.getLogger(...

2018-10-16 00:47:20 308

原创 backlog 自定义appender 做实时输出日志

backlog 自定义appender 做实时输出日志实时日志输出实时日志输出原因微服务盛行的时候,都是化整为零,导致日志的输出没有统一的管理,需要做一个统一的日志实时输出(或者说是日志实时收集的功能)。需求能够自己定义日志输出的格式能够上传给某个服务端进行访问能有开关进行在必要的时候进行关闭开关因为日志框架,现在都是按照logger,appender,encode ...

2018-10-09 17:29:57 1585

原创 标记清除算法

标记清除算法GC里面字面的意思进行理解就行,就是有标记阶段和清除阶段构成。标记阶段就是把所有的活动对象做上标记,清除阶段就是把那些没有标记的对象进行清除。伪代码 mark_sweep()_{ //标记阶段 mark(); //清除代码 sweep(); } mark(){ //对 root 对象进行遍历 标记 for( r : $root){ mark...

2018-09-23 00:06:41 918

原创 记 mysql 分区 导入导出

记录背景上线的有个表的数据已经达到千万数据量了,但是业务需求一直很紧,不能对这块进行做够的开发,所以只能出一个下策,对这个表进行分区,分区的意思就是在逻辑上是一张表,但是在物理存储上是多个文件存储的,多个文件进行存储,在查询的时候速度有相应的加快,这个可以出查分区的好处,不是本文的重点不在此处进行展开。因为是线上数据,操作需谨慎,所以打算将文件down下来,再本地做一次分区操作,看是否出错...

2018-09-11 00:13:20 1697

原创 使用spring-session redis共享session

原因之前有一篇分享过session共享的方案,redis共享session确实有很多好处,但是在原有的工程上面添加去修改session放到redis里面去,确实有一定的改动量。但是我们可以通过spring提供的spring-session和redis做到无感切换session。原理是spring做了一层拦截器,对Session做了一层封装,当我们进行调用session.setAttribut...

2018-06-27 18:28:03 392

原创 Java ClassLoader 理解

ClassLoader理解1.JVM结构和Java文件如何加载JVM结构2.ClassLoader的介绍简介:类加载器 将class文件加载到jvm中区等级(加载器分为几种) Bootstrap ClassLoader :主要是加载jvm自身的文件,是有c语言进行编写的,在程序中通常是不会进行使用的,主要进行加载rt.jarExtClassLoader :进行加载ja...

2018-03-02 22:16:04 176

原创 mysql请求超时问题

问题由于有一批数据要进行处理,数据量过大,我们在后台开启了多个线程进行跑,但是每次跑的时候,数据都没有达到一致性,而且后台报错。解决问题原因 因为事务的等待时间过长,导致的报错解决 show variables like '%timeout%';查看 innndb_lock_wait_timeout 变量修改的大一点?set innndb_lock_wait_ti

2018-02-05 15:08:25 491

原创 spring mvc 传入参数 String类型去掉空格

背景在我们的工程中,要考虑到一些人工的上的错误,一个很常见的错误就是输入参数,前后都有空格,这个在进入controller 的时候,我们就应该去掉。技术背景为ssm框架。1.考虑AOP在进入controller层的时候做一个切面,在切面的时候进行得到入参的类型,然后通过反射的思想,进行遍历对象里面的类型,如果是String类型的话,就trim操作重新赋值进去。问题1:如果入参本身就是String

2017-12-31 19:52:59 10552

原创 请求转发和重定向

含义重定向(Redirect)就是通过各种方法将各种网络请求重新定个方向转到其它位置(如:网页重定向、域名的重定向、路由选择的变化也是对数据报文经由路径的一种重定向)请求转发是服务器内部进行转发。图片比较请求转发:是在客户端发起请求后,在服务器之间的跳转,然后服务器返回页面给客户端进行显示。此时地址栏的地址没有进行改变。重定向 客户端发起请求之后,服务器会将重定向的地址发给客户端,客户端将地址

2017-11-29 23:56:25 372

原创 JAVAC 编译原理

含义javac是一种编译器,将一种语言规范转化为另一种语言规范。javac将java源代码转化为JVM能够是被的一种语言。然后JVM将JVM的语言进行转化为机器能够识别的语言。基本机构如图所示,java源代码转化为java字节码,有四个过程: 词法分析语法分析语义分析代码生成词法分析是将源代码进行转化为Token流。语法分析是将Token流转化为语法树。语义分析是把一些难懂的,复杂

2017-11-27 22:45:36 268

原创 JAVA 垃圾收集器和回收策略

所要进行回收的对象引用计数法,当对象在其他的对象上具有引用的时候,一个引用就计数加一,然后这样进行加法,如何计数为0的对象,就是需要进行回收的。但是这个存在一个问题,当对象A和对象B相互持有对方的引用的时候,这种方式就无法进行回收。可达性分析法,定义一个GC ROOT,如何被GC ROOT 引用的对象,或者对象在引用链上能够追朔到GC ROOT的话,这样的对向就不进行回收。GC ROOT有 虚

2017-11-19 21:44:00 206

原创 单例模式

问题我们的工程中存在唯一存在的对象,比如一些共享资源啥的。今天就介绍单例模式。饿汉模式/*** 单例模式 饿汉模式*/public class Singleton { private static final Singleton instance = new Singleton(); private Singleton(){} public static Singlet

2017-11-11 09:44:25 289

原创 mysql 基础脑图

数据类型整型 如果确定是正数的话,一定要加上unsigned 这样会对你的存储的最大数扩大一倍,也会校验你输入为负数的时候。时间类型,写的很清楚 date是记录日期,datetime是日期时间(都是到9999年),而timestamp 只能到2038年慎用。char 和 varchar的区别,char是定长而varchar是变长。使用char存储的时候,如果存储的长度,不够char规定的长度的

2017-10-31 21:31:55 626

原创 一致hash

场景 在分布式中,或者在负载均衡的时候。数据映射到服务器上的时候,通常使用的方法是hash算法,就是 数据%N 取模 ,N为服务器或者容器,这样的取到数据表快速,但是对其的扩容性不好,例如业务数据增加的时候,服务器的数量增加,那么 数据 %(N+M),M为增加的服务器的数量,那么对于之前的数据改动会很大,改造成本较大,不宜扩展。 原理将服务器 hash算法一下(通常是IP),得到的值放在一个环形

2017-10-30 22:37:15 249

原创 ThreadLocal

ThreadLocal 使用  使用了国人写的mysql的pageHelper进行分页的时候,有时候会想在执行sql 语句的时候,只用在前面添加一段静态代码,就可以分页了,很神奇,更重要的是web服务的时候,多个请求执行的sql语句并不是相同的,为什么添加了这个静态代码可以准确无误的得到该有的分页呢。1.pageHelper的原理  设置拦截器,在执行sql语句的时候,拦截到执行的sql语句,在判断

2017-09-18 22:10:37 600

原创 spring 和 redis的集成(使用注解方式)

spring 和 redis的集成(使用注解方式)1.原因  原因很简单,某些数据会被频繁的进行调用,之前是进行查询数据库,为了避免对数据库的压力,使用redis进行缓存,在调用接口的时候,先访问一下redis中是否存在,存在的话就在redis中进行取到,没有则进行查询数据库,并且在将查到的数据存到redis缓存中去。这让我想到了spring通过切面去定义的Cache不是可以完美的解决这个问题么。废

2017-09-14 09:37:19 1568

原创 乐观锁和悲观锁

1.起因  突然想起来的是很早一次面试的时候,面试官问我,你知不知道乐观锁和悲观锁的含义,当时没有复习到那里,只是依稀记得悲观锁是for update,这个给躺了,在这里记录一下。2.含义  悲观锁,正如其名,具有强烈的独占和排他特性。它指的是对数据被外界(包括本系统当前的其他事务,以及来自外部系统的事务处理)修改持保守态度,因此,在整个数据处理过程中,将数据处于锁定状态。悲观锁的实现,往往依靠数据

2017-08-06 14:08:03 200

原创 Truncate 和 delete 的区别

truncat delete mysql

2017-08-02 22:25:23 339

原创 session 共享问题

如果是工程搭载 在一个服务器上的时候问题 不会出现 但是如果多台合作的时候 session共享问题 就出现了1.session是什么  http请求是一次短链接的请求,客户端如果每一次访问没有什么标识的话,就会不断的任务新的客户在请求页面,也没有办法进行下一步操作,这个时候就出现了session。服务器为每位客户创建的会话,存储用户的信息,以便于在用户多次请求的时候,能够定位于相同的客户。2.自己

2017-07-29 22:54:40 322

原创 spring boot 配置 JPA

1.配置maven <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency>在pom.xml 中配置出spring boot的jpa,

2017-05-05 19:19:41 337

原创 weblogic12 在linux 上的静默安装

今天一直在弄这个东西,因为网上的一些安装都是很老的类型了,当时的weblogic是使用bin文件进行安装的,现在的oracle都是使用的jar文件进行安装的,jar的安装方式都是有图形化界面的,但是在linux上大部分是没有界面的,这个时候就可以使用官方推荐的静默安装(坑有无数,希望记载下来对你们有用);1.创建用户(root 用户使用的)在linux下面进行创建一个用户//添加用户组groupa

2017-01-10 21:43:38 2264

原创 山东出差总结

生活出差上一定将自己的洗漱用品带上,住的地方并不是一定很干净的,好吧,有点洁癖。工作专票一定不能折linux 这个就是有故事了,这次出差是我一个人出差,差一点就在linux上面给跪了,幸好对于linux有一些了解,好好总结一下。ls 显示当前目录的东西ll 详细进行显示su 用户名 切换到该用户名cd 切换 cd - 切换到上一个目录 cd 切换到主目录tail -f 文件名

2016-12-27 17:06:37 405

原创 mysql相关命令

指令-D --database=name 打开指定数据库--delimiter = name 指定分隔符-h --host= name 服务器的名称-p 密码-P --port=#是端口号--prompt =name 设置提示符-V --version 输出版本信息并且退出mysql 退出 1.exit; 2.quit; 3.\q;常用的命令显示当前服务器

2016-10-19 23:26:12 218

原创 reponseHeader 中文乱码问题

做了一个东西,在ajax中的responseHeader中取到所要的值,将其显示出来,但是里面出现了中文乱码, 在这里我重现一下这个问题。 看见了 最后的一行的”stepName”:”SQL%E6%9F%A5%E8%AF%A2” 这一行 response中设置了utf-8的格式进行解码所以最后解码成了:”stepName”:”SQL查询”我们可以看看客户端和服务器之间什么地方需要进

2016-09-23 10:59:23 3450

原创 Echarts force图形小节

先不说多的,上图看效果: 做到这个的 图形我还是用了很很长时间的,说一说。1.0版本我们老总说了,他就是看中了这个图,让我们去自己做一下,我看了看文档,最新的echarts的文档,下了一个echarts.min.js。做了一个版本,代码如下: ` ECharts <!-- 文档: 服务器传输数据的格式为 {

2016-09-07 00:28:19 17150 9

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除