自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

聚沙成塔

个人开发经验点滴积累

  • 博客(86)
  • 收藏
  • 关注

原创 Java异常常见面试题--2

6. NoClassDefFoundError 和 ClassNotFoundException 区别?NoClassDefFoundError 是一个 Error 类型的异常,是由 JVM 引起的,不应该尝试捕获这个异常。引起该异常的原因是 JVM 或 ClassLoader 尝试加载某类时在内存中找不到该类的定义,该动作发生在运行期间,即编译时该类存在,但是在运行时却找不到了,可能是变异...

2020-03-02 20:26:36 171

原创 Spring Boot 五种热部署方式

1、模板热部署在 Spring Boot 中,模板引擎的页面默认是开启缓存的,如果修改了页面的内容,则刷新页面是得不到修改后的页面的,因此我们可以在application.properties中关闭模版引擎的缓存,如下:Thymeleaf的配置:spring.thymeleaf.cache=falseFreeMarker的配置:spring.freemarker.cach...

2020-02-26 19:21:49 163

转载 MongoDB入门

MongoDB 闪亮登场自我介绍MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。MongoDB 最大的特点就是无 Schema 限制,灵活度很高。数据格式是 BSON,BSON 是一种类似 JSON...

2020-02-25 22:22:19 243

转载 Java经典面试题整理及答案详解(二)

1.说一下java类集类集是java实现的数据结构应用,如果只是使用,那么类集的操作非常简单,因为类集的核心接口有List,Set、Map、Iterator、Enumeration;List子接口:是可以根据索引号取得内容,而在list集合里最容易问到的问题:ArrayList(包装了数组的集合,比较常用,数组是可变的)、LinkedList(链表的实现,搜索数据的时间复杂度为:n) 区别;...

2020-02-19 19:48:48 165

转载 Java经典面试题整理及答案详解(一)

1. 使用InputStream用什么方法?答:Read()方法2. 在JQuery里面如何绑定一个事件?答:on(“click”,function)3. 在JQuery里面你使用的Ajax处理函数有哪些?答:$. post()、$.get()、$.ajax()、$.jsonp()4. 在Spring里面控制层的方法返回的是什么?答:String或ModelAndView5...

2020-02-19 19:47:36 126

转载 经验整理dubbo-zookeeper-RPC-100

我搭建过,如何搭建?引用:https://blog.csdn.net/mijichui2153/article/details/811022770、搭建java和tomcat环境一、搭建zookeeper下载zk软件安装包zookeeper-3.5.3-beta.tar,存放在tomcat目录/usr/mysoftware/tomcat ,创建建立logs文件夹和data文件夹用于存放...

2020-02-16 15:31:39 183

转载 Java集合常见面试题--1

Map1. Map的底层结构腾讯19年秋招这个题乍一看没有什么思路(因为Map是个集合,当然也有可能是我记错了),所以我们可以先介绍一下Map然后转到HashMap中Map是一种使用键值对存储的集合。Map会维护与Key有关联的值。两个Key可以引用相同的对象,但Key不能重复,典型的Key是String类型,但也可以是任何对象。在整个Map系列中,AbstractMap抽象类实现...

2020-02-14 19:50:54 209

原创 SpringCloud

1.什么是 Spring Cloud?Spring cloud流应用程序启动器是基于Spring Boot的Spring集成应用程序,提供与外部系统的集成。Spring cloud Task,一个生命周期短暂的微服务框架,用于快速构建执行有限数据处理的应用程序。...

2020-02-12 14:55:12 87

转载 JAXP使用实例

一、JAXP简单介绍jaxp是javaSE的一部分,它的解析器在JDK的javax.xml.parsers包里面。四个类:分别是针对dom和sax解析使用的类dom:DocumentBuilder:解析器类这是一个抽象类,不能new。此类的实例可以从DocumentBuderFactory.newDocumentBuilder()方法获取。包含一个方法,可以解析xml...

2020-02-11 14:40:52 534

转载 消息队列常见问题总结

一、为什么使用消息队列?消息队列有什么优点和缺点?Kafka、ActiveMQ、RabbitMQ、RocketMQ 都有什么优点和缺点?面试官心理分析其实面试官主要是想看看:第一,你知不知道你们系统里为什么要用消息队列这个东西?不少候选人,说自己项目里用了 Redis、MQ,但是其实他并不知道自己为什么要用这个东西。其实说白了,就是为了用而用,或者是别人设计的架构,他从头到尾都没思考过。...

2020-02-10 07:02:15 354

转载 Spring介绍-2

四、Spring的体系结构(1)Core Container(核心)Beans与Core它们提供spring框架最基本的功能,包含IoC与di。Context上下文对象,基于beans与cores。spEL是spring提供的一个语言表达式。(2)Data Access/Integration数据访问集成(3)WebSpring本身提供Spring mvc。也可以与其它的w...

2020-02-09 06:29:10 75

转载 Spring介绍

一、Spring是什么Spring 是分层的 Java SE/EE 应用 full-stack 全栈式轻量级开源框架,以 IoC(Inverse Of Control:反转控制)和 AOP(Aspect Oriented Programming:面向切面编程)为内核,提供了展现层 SpringMVC 和持久层 Spring JDBC 以及业务层事务管理等众多的企业级应用技术,还能整合开源世界众多...

2020-02-08 06:10:31 217

转载 Java中的序列化

序列化的意义我们在内存中创建可复用的 Java 对象,但一般情况下,只有当 JVM 处于运行时,这些对象才可能存在,即,这些对象的生命周期不会比 JVM 的生命周期更长。但在现实应用中,就可能要求在 JVM 停止运行之后能够保存(持久化)指定的对象,比如将用户数据保存在磁盘中、数据库中,并在将来重新读取被保存的对象。不同Java系统之间经常会有交换数据、通信的需求,但是网络中的数据传输都是以...

2020-02-07 06:49:42 88

转载 MVC---表单标签库

前言spring MVC表单标签库,能够简化我们的代码开发,提高开发效率,那么如何简化代码开发呢?一起来看看吧????EL获取业务数据我们首先做一个小案例,用EL表达式获取业务数据,以此来体现出spring MVC表单标签库特点。案例背景:控制器返回业务数据到视图层,视图层通过EL获取业务数据绑定到JSP页面表单中。(1)创建student实体类public cl...

2020-02-07 06:47:27 212

转载 K8s常用运维命令

一. 查看集群信息[root@k8s-master~]# kubectl cluster-infoKubernetes master is running at http://localhost:8080To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.[root@k8s...

2020-02-05 07:09:08 1574

转载 notifyAll()

一. 序当做多线程同步时,等待-通知机制是我们比较常用的一种选择,而 Java 中,等待-通知机制有多种实现,我们接触最早也是最熟悉的,应该就是 Java 语言内置的 synchronized 配合 wait()/notify()/notifyAll() 这三个方法来实现。如何利用 synchronized 实现等待-通知机制,我想大家都比较熟悉,就无需多说了。notify() 和 not...

2020-01-31 06:21:20 1034

转载 java分布式(分布式架构)

开头的话,架构多半和业务关联在一起,如果只是简单的图书管理系统、选课系统或者什么简单的财务系统,用不着分布式。只有大型公司、高并发的业务才需要分布式的帮助。当然,架构本身要和业务模型紧密配合才能发挥作用。很长一段时间,java都是最流行的编程语言。我想,一方面是由于java可以用来开发网站后端程序,另外一方面java可以用来开发android这样的客户端程序。当然,很多人会说,...

2020-01-30 06:46:50 2279 1

转载 TCP/IP卷一:74---TCP超时与重传之(快速重传(重复ACK))

一、快速重传介绍快速重传机制基于接收端的反馈信息来引发重传,而非重传计时器的超时。 因此与超时重传相比,快速重传能更加及时有效地修复丢包情况。典型的TCP同时实现了两者重复ACK在详细讨论快速重传前,首先需要了解当接收到失序报文段时,TCP需要立即生成确认信息(重复ACK),并且失序情况表明在后续数据到达前出现了丢段,即接收端缓存出现了空缺。发送端的工作即为尽快地、高效地填补该空缺当失序数...

2020-01-29 07:22:53 913

转载 (a== 1 && a ==2 && a==3)可能为true吗?

前言这是一个JavaScript问题,我本身是Java工程师,对JS并没有很深的研究,但这个问题让我觉得很有意思。当我第一次看到这个题目的时候,以为是Java问题,思考了好久没有找到实现的可能。那你认为,在Java中有可能吗?valueOf和toString这个问题的一个关键点就是在于利用==双等号工作原理,==和===有什么区别呢?最主要的就是用==的时候会涉及到类型转换,如果双...

2020-01-28 06:01:27 315

转载 shell脚本基础--2

shell中变量的用法使用变量的情况:1.当脚本中使用某个字符串较频繁并且字符串长度很长时就应该使用变量代替2.使用条件语句时,常使用变量判断大小 if [ $a -gt 1 ]; then … ; fi3.引用某个命令的结果时,用变量替代 n=wc -l test.txt4.写和用户交互的脚本时,变量也是必不可少的 :[root@linux ~]# read -p "input ...

2020-01-27 06:51:51 160

转载 shell脚本基础

shell简介:shell是一种脚本语言,可以使用逻辑判断、循环等语法,可以自定义函数,是系统命令的集合shell脚本结构和执行方法1.shell脚本开头需要加#!/bin/bash2.以#开头的行作为注释3.脚本的名字以.sh结尾,用于区分这是一个shell脚本4.执行方法有两种:1)bash test.sh2)./test.sh#第二种执行方式需要有执行权限(chmod +x...

2020-01-26 08:09:36 172

转载 Java编码ASCII、GB2312、GBK、Unicode、UTF-8、UTF-16 编码方式详解

1 ASCIIAmerican Standard Code for Information Interchange。最早最通用的单字节编码系统,因为发明时间早,所以ASCII编码表的设计较为简单。结构ASCII表是单字节字符表,此表中一个(英文)字符用一个字节表示在ASCII中从00000000(第0个)~00011111(第31个)前32被用来作为控制字符表示各种类似:响铃、退格、换页...

2020-01-24 07:44:18 464

转载 Spring Boot 知识点--2

什么是自动配置?Spring 和 SpringMVC 的问题在于需要配置大量的参数。我们能否带来更多的智能?当一个 MVC JAR 添加到应用程序中的时候,我们能否自动配置一些 beans?Spring 查看(CLASSPATH 上可用的框架)已存在的应用程序的配置。在此基础上,Spring Boot 提供了配置应用程序和框架所需要的基本配置。这就是自动配置问题三:什么是 Sprin...

2020-01-11 12:59:56 141

转载 Spring Boot 打成的 jar 和普通的 jar

Spring Boot 项目最终打包成的 jar 是可执行 jar ,这种 jar 可以直接通过 java -jar xxx.jar 命令来运行,这种 jar 不可以作为普通的 jar 被其他项目依赖,即使依赖了也无法使用其中的类。Spring Boot 的 jar 无法被其他项目依赖,主要还是他和普通 jar 的结构不同。普通的 jar 包,解压后直接就是包名,包里就是我们的代码,而 Spri...

2020-01-09 19:56:39 416

原创 解决微服务缓存常见问题——缓存击穿

简介:以简短语言说明缓存击穿概念及应对场景“缓存”和“击穿”什么是缓存?缓存就是数据交换的缓冲区。我们通常的理解缓存的主要作用是提高查询效率。其实它还有着另一个非常重要的作用,就是上面提到的“缓冲”也就是对下层资源的保护作用。如何理解击穿很简单,我们上面提到的缓存的另外一个主要作用是“缓冲”对下层资源的防护,那么“击穿“就是让你的缓冲失效,从而对被保护的资源进行”冲击“。...

2020-01-08 19:57:29 897 2

转载 RocketMQ 延迟消息

延迟消息是实际开发中一个非常有用的功能,本文第一部分从整体上介绍秒级精度延迟消息的实现思路,在第二部分结合RocketMQ的延迟消息实现,进行细致的讲解,点出关键部分的源码。第三步介绍延迟消息与消息重试的关系。1 延迟消息介绍基本概念:延迟消息是指生产者发送消息发送消息后,不能立刻被消费者消费,需要等待指定的时间后才可以被消费。场景案例:用户下了一个订单之后,需要在指...

2020-01-06 20:27:31 1593

原创 MySQL 四种隔离级别

什么是事务事务是应用程序中一系列严密的操作,所有操作必须成功完成,否则在每个操作中所作的所有更改都会被撤消。也就是事务具有原子性,一个事务中的一系列的操作要么全部成功,要么一个都不做。事务的结束有两种,当事务中的所以步骤全部成功执行时,事务提交。如果其中一个步骤失败,将发生回滚操作,撤消撤消之前到事务开始时的所以操作。另外,这篇分布式事务不理解?一次给你讲清楚!推荐大家阅读。事务的 A...

2020-01-05 11:05:07 90

转载 17 个常用的 JVM 参数

大家都知道,jvm在启动的时候,会执行默认的一些参数。一般情况下,这些设置的默认参数应对一些平常的项目也够用了。但是如果项目特别大了,需要增加一下堆内存的大小、或者是系统老是莫明的挂掉,想查看下gc日志来排查一下错误的原因,都需要咱们手动设置这些参数。各个参数介绍1.verbose:gc表示,启动jvm的时候,输出jvm里面的gc信息。格式如下:[Full GC 178K...

2020-01-04 23:06:45 840

转载 Linux中如何让某个进程后台运行

实际使用时,即使当前终端断开,也需要进程能够一直运行,本文罗列一下可以让进程持续运行的几种方式。1. 标准service大部分采用rpm、deb等发行的安装包,默认都提供此种方式。而且通常情况下当程序安装完成后,会自动注册到系统的服务列表(通常是在/etc/init.d/目录创建软连接);当然也可以自己根据当前系统手动创建对应的文件来实现服务的注册(例如centos7+的systemctl方...

2020-01-03 21:58:51 1867

转载 Java 如何测量时间:从 API 到内核调用

问题即使是最基本的问题,只要打破砂锅问到底也会变得非常有趣。这篇文章,我会深入探究Java如何测量时间。本文从最基础的Java API开始逐层深入:从OpenJDK源代码、glibc,一直到Linux内核。研究各种环境下的性能开销,并尝试对结果进行推理。文中会探索Java时间测量过程:从某个活动从开始,一直到活动结束经过的时间。对于提高性能、监控操作和强制超时很有帮助。...

2019-12-31 18:44:47 394

转载 Java 在 Linux 中性能调优最佳实践

在应用程序进行性能调优时,应当在优化代码的同时考虑代码运行的硬件。本文将介绍在Linux上把Java性能推到极致需要注意的方方面面。线程争用 减少关键部分的代码量。 优先考虑使用同步代码块,其次才是同步方法。 优先考虑在同步代码块上加锁。 密切注意锁定资源的顺序,你可能会遇到死锁。 隔离低并发、中等并发和高并发用例,区别对待。 ...

2019-12-29 00:03:53 358

转载 nginx基础--1

概述Nginx是一款轻量级的HTTP服务器,采用事件驱动的异步非阻塞处理方式框架,这让其具有极好的IO性能,具有处理高并发的能力。时常用于服务端的反向代理和负载均衡。划重点:处理高并发,反向代理,负载均衡。安装(windows)download可以自行选择适合自己电脑的版本(开发版本/稳定版本/历史版本)–推荐稳定版(stable)傻瓜式安装就行了,完事点一下nginx.exe,浏览器...

2019-12-28 18:43:47 73

原创 JAVA IO流

字节流和字符流的区别字节流和字符流操作的本质区别只有一个:字节流是原生的操作,字符流是经过处理后的操作。画个图,字节流在操作时不会用到缓冲区,也就是不会用到内存,文件本身直接操作的,而字符流在操作时使用了缓冲区,通过缓冲区再操作文件,看下图:为什么要有字符流而不直接用字节流呢?我相信有些读者心里肯定要问这个问题,我刚开始学习的时候也想过这个问题,为什么不直接用字节流解决呢,还非要搞个...

2019-12-24 21:24:14 61

原创 将某个文件夹下的文件批量重命名

Linux系统下需要进行批量操作最好使用shell脚本,来完成。使用shel脚本批量重名的方法很多,我写了个和大家不一样的脚本。下图脚本中定义了两个函数,mk和change函数,在shell环境下使用点 . 加脚本名称直接调用。本文使用的是Centos 7系统,来接下来看执行过程,喜欢shell脚本的可以关注我。自定义mk函数这个函数就是可以创建100*100个目录,并在每个目录的...

2019-12-23 20:25:15 3245

原创 error 和 exception 有什么区别

error表示恢复不是不可能但很困难的情况下的一种严重问题,比如说内存溢出,不可能指望程序能处理这样的情况。exception表示 一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况。...

2019-12-22 21:53:26 126

转载 Spring Boot核心知识--6

六、启动引导:Spring Boot应用启动的秘密6.1 SpringApplication初始化SpringBoot整个启动流程分为两个步骤:初始化一个SpringApplication对象、执行该对象的run方法。看下SpringApplication的初始化流程,SpringApplication的构造方法中调用initialize(Object[] sources)方法,其代码如下...

2019-12-21 10:57:11 64

转载 Spring Boot核心知识--5

五、出神入化:揭秘自动配置原理典型的Spring Boot应用的启动类一般均位于 src/main/java根路径下,比如 MoonApplication类:@SpringBootApplicationpublic class MoonApplication { public static void main(String[] args) { SpringApplication....

2019-12-20 20:44:31 89

转载 Spring Boot核心知识--4

四、另一件武器:Spring容器的事件监听机制过去,事件监听机制多用于图形界面编程,比如:点击按钮、在文本框输入内容等操作被称为事件,而当事件触发时,应用程序作出一定的响应则表示应用监听了这个事件,而在服务器端,事件的监听机制更多的用于异步通知以及监控和异常处理。Java提供了实现事件监听机制的两个基础类:自定义事件类型扩展自 java.util.EventObject、事件的监听器扩展自 j...

2019-12-19 22:02:52 58

转载 Spring Boot核心知识--3

三、削铁如泥:SpringFactoriesLoader详解JVM提供了3种类加载器: BootstrapClassLoader、 ExtClassLoader、 AppClassLoader分别加载Java核心类库、扩展类库以及应用的类路径( CLASSPATH)下的类库。JVM通过双亲委派模型进行类的加载,我们也可以通过继承 java.lang.classloader实现自己的类加载器。...

2019-12-18 21:58:13 74

转载 Spring Boot核心知识--2

二、夯实基础:JavaConfig与常见Annotation2.1、JavaConfig我们知道 bean是Spring IOC中非常核心的概念,Spring容器负责bean的生命周期的管理。在最初,Spring使用XML配置文件的方式来描述bean的定义以及相互间的依赖关系,但随着Spring的发展,越来越多的人对这种方式表示不满,因为Spring项目的所有业务类均以bean的形式配置在...

2019-12-17 22:43:55 138

空空如也

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

TA关注的人

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