自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Smily-王婷婷

新路历程

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

原创 带你搞懂【JVM类加载机制】

文章目录一、是什么?二、 过程1.程序2. 类加载过程3.类加载器4.类加载器初始化过程5.双亲委派机制5.1加载过程5.2为什么要有这种双亲委派机制一、是什么?  不了解JVM加载过程,可能我们依旧能写好代码,但是了解JVM类加载过程,可以让我们能更加深入的了解底层运行过程,对于我们优化,以及代码逻辑的编写有很大的作用。今天小编带大家来领略一下JVM类加载机制;二、 过程1.程序  首先,从一段简单成程序入手,去探索他的精髓;package com.tt.jvm;import com.ent

2021-04-13 17:22:41 338 1

原创 图片上传到阿里云OSS

目录Why?What?How?Why? 有一个需求是上传图片到阿里云上的OOS中,可能对于一些 没有用阿里云部署项目的不是很了解,现在小编就带大家入门一下;What? 对象存储服务(Object Storage Service,OSS 是一种海量、安全、低成本、高可靠的云存储服务,适合存放任意类型的文件。容量和处理能力弹性扩展,多种存储类型供选择,全面优化存储成本。所以我们在项目中需要一些图片、文件上传,很推荐使用;How? OOS支持的上传文件有多种,比如“简单上传”、“表

2020-07-14 11:25:31 628

原创 跟面试官谈【线程池】

目录What?Why?分类?1. newCachedThreadPool1.1.what?1.2 代码实例1.3 执行结果1.4 源码分析1.5 缺点2.newFixedThreadPool2.1 What?2.2 代码实例2.3 结果2.4 源码分析2.5 缺点3. newScheduledThreadPool3.1 what3.2 代码示例3.3 执行结果3.4 源码分析3.5 缺点4、new...

2020-03-15 17:01:46 518 1

原创 Java 阻塞队列实现【生产者-消费者】

目录阻塞队列What?Why?分类应用阻塞队列What? 当队列是空的时,从队列中获取元素的操作将会被阻塞,或者当队列是满时,往队列里添加元素的操作会被阻塞;Why?.阻塞队列不用手动控制线程什么时候该被阻塞,什么时候该被唤醒,简化了操作。防止队列容器溢出,防止数据丢失。分类Collection–>Queue–>BlockingQueue–>7个实现类A...

2020-03-14 21:17:41 628

原创 【SpringBoot】 性能优化

调优方案1.扫包优化2.JVM参数优化2.1 本地项目调优3.将Servlet容器变成Undertow3.1 操作步骤如下3.2.结果验证4.总结 很多人都用过SpringBoot,它给我们带来的便利,这里我不过多赘述了,然后这里我介绍一下SpringBoot的一些优化,可以让我们用着更加顺畅; 调优主要体现在下面几个方面:扫包优化;JVM参数优化将Tomcat容器改变成Underto...

2020-03-13 14:11:46 274

原创 深入了解Redission分布式锁

文章目录1. 分布式锁的条件2. 实现分布式锁的方案3. Redission分布式锁原理4.场景应用 现在我们采用的系统都是分布式,比如我们Sychnized上锁,因为他是JVM层面的,所以如果是两台机器的话,这时候它就无能为力了,这时候我们可以用Reddisson。1. 分布式锁的条件互斥性高效性支持阻塞和非阻塞支持公平锁和非公平锁2. 实现分布式锁的方案.数据库实现(乐观...

2020-03-09 23:10:29 1103 1

原创 ElasticSearch使用内置IK分词器,出现错误“request body or source parameter is required”

引出 我们都知道ElasticSearch中有内置的IK分词器,然后我们启动ES后,可以尝试一下默认的IK分词器是什么效果的。在地址栏输入“http://127.0.0.1:9200/_analyze?analyzer=chinese&pretty=true&text=手机充值”,显示下面的错误:然后上网查询了一些资料,然后才知道,原来是因为版本的不同,然后书写格式有变化,我...

2019-08-06 10:35:49 10460 13

原创 Mysql系列之索引篇

文章目录是什么?为什么使用?注意事项?分类?数据结构 为了提高数据库的查询效率,然后我们会给一些字段增加索引,但是大家有没有考虑过,索引是什么?我们为什么要用索引?增加了索引就一定快吗?如何实现按照索引查找呢?索引的数据结构有哪些呢?它分为哪几类呢?大家别懵,下面就深入去探个究竟吧!是什么? 索引是为了加快对表中数据行的检索而创建的一种分散存储的数据结构;通俗来说吗,索引就类似于书的目录,通...

2019-08-04 10:30:15 172 2

原创 Hystrix报错:Unable to connect to Command Metric Stream

目录原因分析解决方案原因  在使用hystrix-dashboard面板的时候,然后我们然后显示错误“Unable to connect to Command Metric Stream”分析 出现这个问题,首先我们需要检查一下,我们所依赖的jar是否有问题,需要依赖其次是看启动项是否添加注解:@EnableHystrixDashboard,然后上网查了一下,网上说:我们看到hytr...

2019-07-30 11:33:51 1296 5

原创 Redis在Linux系统上安装,make编译报错

文章目录引入解决方法引入  在进行Redis安装的过程中,需要进行“make”命令进行编译,然后编译不成功,错误如下:解决方法首先通过命令“yum -y install gcc-c++” 因为redis是基于C++语言的;然后再进行make编译,但是我还是报下面的错误;然后进行进行 一下编译的清除,然后重新进行编译,就OK了;显示reids-cli \redis-server...

2019-07-27 11:31:43 680 2

原创 SpringBoot整合Swagger生成接口文档

引入 现在的项目大多数都是前后端分离,所以对于后端开发,我们需要一个接口工具帮我们进行接口的整理、也方便我们测试。推荐postMan和Swaager形式,然后postMan需要自己手写接口,然后参数需要手动粘贴,但是相比于它,Sagger就相对方便很多了,他会根据后台的代码,然后自动生成接口以及参数名。应用在pom.xml中引入相应的依赖jar包配置Swagger2配置文件`@C...

2019-07-25 09:45:34 769 4

原创 开启内网穿透之旅--NATAPP

目录引入应用引入 我们在程序中的接口需要外网接口进行调用的时候,都知道我们的接口是本地,如果被外网调用时不可能的,所以这时候也需要我们用外网来映射我们的接口,也就是所说的“内网穿透“----能让外网访问我们内网的接口;应用  为了达到内网穿透的效果,我采用的是NatApp这个工具。它里面提供了免费的通道,然后我已注册免费的为例;打开购买隧道,免费版根据需要选择隧道协议,这里以w...

2019-07-24 10:17:21 1422 2

原创 SpringCloud的Client注册不到Eureka,显示“Completed shut down of DiscoveryClient”

引入 在Client注入到Eureka中,然后一直报错“Completed shut down of DiscoveryClient”。方案 然后我首先查看了 application.yml文件,看一下是不是Eureka的地址有问题,检查了遍,确保没有问题,然后检查了启动项上的引导类,@EnableEurekaClient,也没有问题。后来检查了pom.xml文件,发现少引入了依赖 然后...

2019-07-16 15:57:09 4269 4

原创 【SpringBoot】深剖--自动装配原理

 早上大鸟刚到公司,然后就看到小菜已经早早做到了工位上了,小菜看到大鸟后,立刻来兴趣了,“大神,继续解决我的问题吧,你看我昨天思考它睡觉都没有睡好,我昨天也查了一下,但是还是想跟你磨擦一下,嘿嘿,外一有新火花呢!”大鸟看看小菜这么好学,而且看上班时间还在, 开启了讲故事模式。 大鸟打开电脑,“来,咱们一起看源码!介绍一下这些注解,首先解答第一个问题:为什么Controller没有加包扫描,然后也...

2019-07-16 08:30:58 232 4

原创 【SpringCloud】Eureka开启Security安全验证后,服务注册不上去

CSRF(Cross-site request forgery)跨站请求伪造,也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。尽管听起来像跨站脚本(XSS),但它与XSS非常不同,XSS利用站点内的信任用户,而CSRF则通过伪装成受信任用户的请求来利用受信任的网站。与XSS攻击相比,CSRF攻击往往不大流行(因此对其进行防范的资源也相当稀少)和难以防范,所以被认为比XSS更具危险性。

2019-07-14 21:00:06 3410 3

原创 【SpringCloud】之Eureka增加安全验证

引入 在项目开发中,项目经理让我把Eureka进行用户安全认证,我还想这还不简单,导入依赖,然后配置好用户名密码,不就可以了,说干就干,最后还把自己入坑了,给大家介绍一下踩坑经历吧,让大家尽量避免一下。Why? 因为在生产环境上,输入地址直接就可以进入到Eureka服务治理界面,这样很容易被别人盗取信息,而且是非常不安全的,所以项目经理从项目的安全级别,然后让我加上Eureka的安全验证。...

2019-07-14 17:56:25 815 4

原创 【SpringBoot】基础入门(一)

 在公司的闲谈中,我们聊起了公司的架构,久经沙场的大鸟,想考一考刚毕业 的小菜,说“小菜,听说你对架构很了解,那咱们公司用的SpringBoot,你能介绍一下吧!” 这个问道了小菜擅长点了,他说,这还不简单,然后霹雳吧啦说了一大串。他说:SpringBoot是一个快速整合第三方的框架,他很大程度上简化了XML配置,完全注解化,内置Web服务,帮助开发者能够实现快速开发,SpringBoot的We...

2019-07-13 15:30:12 216 3

原创 【Mybatis】框架快速入门

文章目录What核心系统架构图对于JDBC的优化输入参数深入输出结果封装数据源分类1.UnPooled2.Pooled3.JNDIWhat Mybatis是持久层ORM框架,它是对于JDBC的封装,支持定制的SQL、存储过程以及高级映射,然后避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。Mybatis可以使用简单的XML或注解来配置和映射原生信息,将接口和Java的POJO映射成数...

2019-07-13 09:07:21 160 2

原创 【SpringMVC】入门,这"一篇"文章就够了(一)

文章目录简介一、是什么二、优势三、对比Struts应用简介一、是什么 SpringMVC是一种基于Java实现的MVC设计模型的请求驱动类型的轻量级WEB模块,通过注解让一个简单的java类成为处理请求的控制器。它主要分为model(数据模型)、view(JSP、HTML请求)、Controller(接收用户请求)。二、优势 SpringMVC的优点很多,这里不一一概述,介绍几个主要的:...

2019-07-09 16:59:25 288 2

原创 Spring 基于AOP的事务控制

文章目录WhatHow基于XML声明式事务的配置基于注解的声明式事务What 事务是我们在进行数据操作的时候,要操作的事情,是一个完整的单元,不可再分的。它包括几个特性:原子性、一致性、可见性、隔离性;How 在Spring容器中,事务是被封装到事务管理器中,Spring事务管理器的接口是org.springframework.transaction.PlatformTransaction...

2019-07-05 21:06:35 2680 4

原创 深入理解【JVM】垃圾回收

文章目录如何确定垃圾?一、引用计数法缺点二、可达性分析法引用垃圾回收算法一、标记-清除算法缺点二、复制算法优点缺点三、标记整理算法四、分代收集算法垃圾收集器一、Serial垃圾回收器优点二、ParNew垃圾回收器 跟同事小Q在排查内存溢出的问题的时候,然后最后确定是JVM,但是对于JVM内部机制原理,我们两眼一抹瞎,都干瞪眼了,最后还是请假大牛,才搞明白JVM如何进行垃圾回收的,赶紧来刷一波分享...

2019-07-01 19:09:20 185 33

原创 org.yaml.snakeyaml.scanner.ScannerException: while scanning for the next token found character '@' t

文章目录问题原因解决方案问题 SpringBoot在启动的启动的时候,突然报错:原因 上网查了一下,原来是没有找到读取到配置文件;解决方案在pom.xml文件中引入依赖,,就可以运行成功了<dependency><groupId>org.yaml</groupId><artifactId>snakeyaml</artifac...

2019-06-25 09:51:58 7239 13

原创 【JVM】Demo实战总结(一)

文章目录是什么?基本结构加载子系统运行时数据区1.程序计数器2.虚拟机栈3.本地方法栈4.Java堆执行引擎是什么? JVM(java virtual machine),它是运行java字节码的虚拟机。包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收、堆和一个存储方法域。它是运行在操作系统之上的。基本结构JVM主要有三个主要的子系统构成,包括类加载子系统、运行时数据区、执行引擎。如下...

2019-06-24 20:21:29 340 7

原创 【多线程】Thread.currentThread()和This的区别

文章目录缘由分析结果缘由  很多人认为多线程中的Thread.currentThread()和this都是显示当前线程的意思,其实不然,他们两个代表不同的意思,下面用一个小例子说明一下。package currentThreadAndThis;public class MyThread extends Thread { public MyThread(){ Syst...

2019-06-18 08:37:40 29500 13

原创 【多线程】run和start的区别

文章目录概述代码示例概述Start()是启动一个新的线程,然后新的线程会调用run()方法,但是start()方法不可以重复调用,若会出现异常Exception in Thread “main” java.lang.IllegalThreadStateException.而且启动线程,会出现异步的效果,即线程创建和启动是随机的run()方法类似一个一个普通方法,如果单独调用,仅仅会在当前线...

2019-06-17 15:36:37 754 7

原创 【多线程】Thread和Runnable区别

文章目录线程?实现方式Thread类线程? 线程是进程中独立运行的子任务,比如我们运行的QQMuic.exe的时候,然后就会有很多的子任务,而且不同的子任务可以共同工作,这时候每一个子任务就是一个线程,多个子任务共同工作,就是多线程。使用多线程,很大程度上缩短了用户等待时间,而且使CPU的利用率大幅度的降低。实现方式 多线程的编程方式有两种:一是集成Thread类,另一种是实现Runnab...

2019-06-17 15:13:43 18418 18

原创 【Java并发】剖析volatile实现原理

文章目录来源?是什么?原理?应用?来源?  我们都知道在多个线程并发的情况下,会出现脏数据等,这个时候我们需要加锁,一般想到的是synchronized,但是这个时候重量级的锁,需要线程上下文切换和调度,消耗的成本比较高,这时候引入了轻量级的valatile。是什么?  官方解释:Java编程语言允许线程访问共享变量,为了确保共享变量能被准确和一致地更新,线程应该确保通过排他锁单独获得这个...

2019-06-13 20:54:14 197 8

原创 【Spring】之玩转常用注解

文章目录是什么优势注解分类一、创建对象型二、注入数据型三、作用范围型四、 生命周期型注解与XML的比较注解XML是什么  Sping 是一个以IOC和AOP为核心的,然后一个轻量级的开源框架,它为显示层和业务层等提供了很多应用技术,而且整合了很多的第三方类库,逐渐成为使用最多的Java EE企业应用开源框架。优势  很多的优势更大大增加了Spring的使用,灵活、动态的设计,也让越来越多...

2019-06-09 20:53:47 186 6

原创 【Nginx】入门到配置

文章目录是什么?正向代理反向代理配置nginx.conf主要的模块配置location 配置语法配置规则优先级功能一、负载均衡是什么? Nginx是一个高性能的反向代理服务器和高性能web服务器;延伸一下,很多人可能对于正向代理、反向代理不是很清晰,首先来具体了解一下。正向代理 正向代理,代理的客户端;比如我们要与后台访问数据,然后直接请求代理服务器就可以,然后代理服务器会根据我们的请求...

2019-06-02 18:05:46 122 6

原创 【redis】哨兵机制(上)

文章目录一、引入二、是什么?三、功能四、工作原理五、故障转移处理一、引入 我们都知道在主从复制下,如果一个主服务器宕机了,不能继续提供服务,所以这时候,我们需要人工将节点晋升为主节点,并且需要通知其他的应用更新节点,但是如果这种故障转移的处理方式是我们最不想看到的,但是值得高兴地是Redis从2.8开始,引进了哨兵机制,然后将上述过程变成了自动化,大大方便了我们,提供了效率和准确性;二、是什...

2019-05-28 11:10:24 450 9

原创 【redis】持久化方案

文章目录入门RDB一、介绍二、触发快照三、实现原理四、优缺点AOF一、介绍二、文件写入三、文件同步四、重写机制五、优缺点如何选择入门 当进程意外宕机或者出现故障,可能就会存在数据丢失的情况,这时候,redis的持久化就起到了很大的作用,防止了数据丢失。redis主要提供了两种持久化方案:RDB和AOF两种方式;RDB一、介绍 RDB是通过生成快照(snapshotting)的形式完成的,...

2019-05-26 09:45:46 378 8

原创 Redis入门,有这篇文章就够了

文章目录是什么?特性?五种数据类型String1.存储方式2.内部编码3.应用场景Hash1.存储方式2.内部编码3.应用场景list1.存储方式2.特点3.内部编码4.使用场景set1.存储方式2.特点3.内部编码4.使用场景zset1.使用场景2.特征3.内部编码4.使用场景图文展示是什么? Redis它是key-value兼职对的Nosql数据库,它与其他的关系型数据库不同的是,它是将数...

2019-05-24 17:56:50 238 7

原创 BeanUtils.copyProperties的用法

文章目录what?why?How?源码what? BeanUtils它提供了对java反射和自省API的包装。它里面还有很多工具类,这里我们介绍一下copyProperties。why?  我们如果有两个具有很多相同属性的JavaBean,一个很常见的情况就是Struts里的PO对象(持久对象)和对应的ActionForm,传统的方式对属性逐个赋值:casesUserIntegralEn...

2019-05-24 11:39:00 159541 41

原创 分布式通信框架--RMI

文章目录分布式对象模型远程对象本地对象模型RMI基本原理如何实现具体应用分布式对象模型远程对象不仅是可以被本地进程访问,也可以远程进程调用;本地对象仅仅可以是本地进程使用模型下图中,A、B各代表一台服务器,当他们各自自己调用的时候,即为本地对象,当A中的对象调用B中的,则为远程对象,这时候如果要保证A、B中的对象之间能够可靠的进行消息通信,采用的是TCP协议作为通信协议RMI基本...

2019-05-11 21:01:11 163 4

原创 消息共享之RabbitMQ

文章目录是什么为什么AMQP(Advanced Message Queuing Protocol)高级消息队列协议AMQP模型RabbitMQ架构图RbbitMQ消息流转图总结是什么是一个开源的消息代理和队列服务器,用来通过普通协议在完全不同的应用之间共享数据,RabbitMQ是使用Erlang语言来编写的,并且RabbitMQ是基于AMQP协议的为什么1.开源、性能优秀、稳定保障2.提...

2019-03-12 15:37:01 656 6

原创 Oracle---“存储过程”PK“存储函数”

文章目录存储过程存储函数对比存储过程存储过程使我们在大型数据库系统中,然后为了完成一组sql的语句,然后经编译后存储在数据库中,然后我们直接通过调用存储过程的名称和传入相应的参数,然后我们都很熟,在开发中也是经常用到的。实例:create[or replace] procedure 过程名[(参数名 in/out 数据类型)]ASbegin PLSQL 子程序体End;存储函...

2019-03-03 18:47:20 209 3

原创 逆向工程,报错“java.math.BigInteger cannot be cast to java.lang.Long”

文章目录缘由缘由在工作中,运用逆向生成工具进行生成的时候,然后显示报错“”java.math.BigInteger cannot be cast to java.lang.Long“,进行了一些排查才知道,是因为mysql引入的包版本过低,我本地的mysql 版本是8,所以将mysql的jar,改成mysql-connector-java-8.0.12.jar,切记一定要builde 路径,这...

2019-02-23 19:59:31 9077 7

原创 mysql连接提示时区错误“The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one”

文章目录前提解决方案前提在项目中,用到mysql数据库,但是在连接的时候报时区的错误,然后上网查了一下,原来是SYSTEM为SQL默认美国时间,但是我们中国要比他们迟8小时,所以导致时间不统一;错误如下:java.sql.SQLException: The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents ...

2019-02-11 14:10:33 2529 6

原创 Tomcat未启动成功,显示“ No Spring WebApplicationInitializer types detected on classpath”

文章目录前言解决方案前言在进行SSM搭建的时候,最后一步需要用tomcat启动程序,最后启动的时候,报错显示“No Spring WebApplicationInitializer types detected on classpath”,通过查看console日志,以及上网查询,下面是我的解决方案。解决方案控制台显示的报错信息:原来问题是,tomcat的端口号8080被占用了,然...

2019-02-10 09:12:44 13795 2

原创 Maven之小菜到大鸟进阶(四)--解决传递依赖

文章目录解决传递依赖1.Maven 自己调节原则2.排除依赖3.版本锁定-----指定项目中依赖的版本。(推荐使用)解决传递依赖传递依赖:A(项目)依赖B,B依赖C(1.2版本),那么B就是A的直接依赖,然后C就是A的传递依赖,这时候如果在导入一个D,则D依赖C(1.5),这时候如何处理呢?1.Maven 自己调节原则(1)第一声明者优先原则 :谁先定义的就用说的传递依赖;(2)路径近者...

2019-02-05 22:09:20 164 2

空空如也

空空如也

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

TA关注的人

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