自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(44)
  • 收藏
  • 关注

原创 虚拟机字节码执行引擎

五、虚拟机字节码执行引擎1、概述执行引擎是Java虚拟机最核心的组成部分之一从外观上看起来,所有的Java虚拟机的执行引擎都是一致的:输入的是字节码文件,处理过程是字节码解析的等效过程,输出的是执行结果。2、运行是栈帧结构栈帧是用于支持虚拟机进行方法调用和方法执行的数据结构,是虚拟机运行时数据区中的虚拟机栈的栈元素。每一个栈帧都包括了局部变量表、操作数栈、动态链接、方法返回地址和一些额外的富家信息。当前栈帧所关联的方法称为当前方法2.1、局部变量表是一组变量值存储空间,用于存放

2021-03-22 10:13:33 171

原创 虚拟机类加载机制

四、虚拟机类加载机制1、概述虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载2、类加载的时机2.1、生命周期类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括了:加载验证准备解析初始化使用卸载加载、验证、准备、初始化和卸载顺序是确定的,但是解析阶段则不一定。类的初始化(没有初始化)有道new、getstatic、putstatic或invo

2021-03-22 10:05:16 173

原创 类文件结构

三、类文件结构1、概述我们编写的程序编译成二进制本地机器码已不再是唯一选择,越来越多的程序语言选择了与操作系统和机器指令无关的、平台中立的格式作为程序编译后的存储格式。2、无关性的基石各种不同平台的虚拟机与所有平台都统一使用的程序存储格式----字节码是构成平台无关性的基石。3、Class类文件的结构Class文件是以一组8位字节为基础单位的二进制流,各个数据项目严格按照顺序紧凑地排列在Class文件之中。无符号数属于基本的数据类型,以u1、u2、u4、u8来分别代表一个字节,2个字

2021-03-22 10:04:35 173

原创 垃圾收集器与内存分配策略

二、垃圾收集器与内存分配策略1、对象已死?1.1、引用计数法使用给对象添加一个引用计数器,每当有一个地方引用它时,计数器值就加1,当引用失效时,计数器值就减一;任何时刻计数器都为0 的对象就是不可能被使用的。缺点很难解决对象之间的相互循环引用的问题因为对象相互引用导致他们的引用计数都不为0,例如:objA.instance = objB 及 objB.instance = objA,于是引用计数算法无法通知GC收集器回收他们1.2、根搜索算法思路通过一系列名为GC

2021-03-19 11:47:14 91

原创 Java 内存区域与内存溢出异常

一、Java内存区域与内存溢出异常1、运行是区域1.1、程序计数器特点线程私有没有规定OutOfMemoryError情况的区域执行Native方法,计数器值为空作用当前线程所执行的字节码的行号指示器,通过改变计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等帮助线程切换之后能恢复到正确的执行位置。1.2、Java虚拟机栈特点线程私有,生命周期与线程相同方法执行时产生的内存模型:即是一个创建一个栈帧,存储局部变量表、操作栈、动态链

2021-03-18 15:09:24 66

原创 Java 如何获取当前时间的前一段时间、以及给定一段时间的时间集合

1、相关日期处理public class DateUtil { public static SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); private static SimpleDateFormat sdf2=new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss"); public static SimpleDateFormat sdf3=new SimpleDateFormat("

2020-07-23 17:46:17 732

原创 分布式之服务注册 -- Zookeeper

1、Zookeeper配置文件tickTime:Client-Server通信时间说明:Zookeeper服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个tickTime时间就会发送一个心跳。tickTime以毫秒为单位、initLimit:Leader-Follower初始通信时限说明:集群中的follower服务器与leader服务器之间初始连接时能容忍的最多心跳数(ti...

2020-04-26 00:11:48 221

原创 Spring in Action -- AOP篇

1、什么是面向切面编程?概念:通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。2、AOP术语2.1、通知(Advice)在AOP术语中,切面的工作被称为通知、Spring切面可以应用5中类型的通知前置通知(Before):在目标方法被调...

2020-04-25 16:53:16 187

原创 在SpringBoot中使用Shiro做权限以及认证(示例代码,数据库设计等)

1、环境SpringBoot 2.2.4.RELEASE <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.2.4.RELEASE</version&g...

2020-04-20 19:05:07 195

原创 SpringBoot 中怎么来处理前端传来参数校验异常

1、前提导入依赖 <dependency> <groupId>javax.validation</groupId> <artifactId>validation-api</artifactId> <version>2.0.1.Final</...

2020-04-17 17:44:31 883

原创 怎么让mybatis plus 帮我们设置分页,以及抽取注解

1、编写一个配置类@Configuration标明是配置类,spring会扫描加载@EnableTransactionManagement在这里表明开启事务注解@MapperScan("")需要扫描的mapper也在这里表明这样的话在主启动类里面就不用表明这些注解了@Configuration@EnableTransactionManagement // 开启事务注解@Mappe...

2020-04-17 13:09:21 220

原创 SpringCloud分布式中怎么使用open-feign来相互调用微服务(前提是服务都要注册到注册中心【zookeeper,或者nocas】)

1、引入open-feign <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> &...

2020-04-17 12:48:37 716

原创 在项目中使用Enum封装静态变量

抛弃传统的public static final定义静态变量使用enum会让代码更加简洁,并且可以定义信息public class Constant { public enum XX{ // 变量 XTYPE_BAST(1,"XXX"),XTYPE_SALE(0,"XXX"); private int code; priva...

2020-04-17 12:00:56 302

原创 项目中给前端页面返回数据的封装方法(状态码,错误信息等)

1、以Map的形式封装这里以k,v键值对的方式封装了一个返回给页面的数据分别封装了error,ok等两个方法,并且每个方法有单个构造方法可以使用,并且返回自身,方便后面拼装数据put方法就是用来放要返回给页面的数据示例:正确返回return R.ok().put("data",返回对象);public class R extends HashMap<String, Object...

2020-04-17 11:50:11 4177

原创 SpringBoot中如何自定义基于JSR303简单的校验注解

1、环境SpringBoot 2.2.2.RELEASE依赖validation-api(这里只是引入该功能的依赖) <dependency> <groupId>javax.validation</groupId> <artifactId>validation-api</artifa...

2020-04-11 00:08:15 315

原创 CentOS 7安装kibana详解

第一步下载地址 https://www.elastic.co/cn/downloads/kibana将安装包上传到CentOS上面第二步解压tar -zxvf kibana-6.5.1-linux-x86_64.tar.gz -C /usr/local/kibana/修改配置文件# Kibana is served by a back end server. This ...

2020-03-23 13:08:09 303

原创 CentOS 7---单机部署多个Elasticsearch实例

第一步安装详情请看我另一篇文章 安装Elasticsearch第二步在你的解压目录中复制多一份elasticsearch赋予权限给你创建的用户(我的是els)若相关目录或者文件没有权限,启动时会报错,到时候你给它付全贤即可chown -R 你创建的用户 要赋权限的目录/文件第三步因为是单机,所以要配置DNS,让两个请求的ip都是你的本机vim /etc/ho...

2020-03-23 11:22:56 583

原创 CentOS7安装FastDFS详解

第一步安装gcc环境(若以安装可以忽略)yum install -y gcc gcc-c++第二步安装libevent(运行时需求)yum -y install libevent第三步安装libfastcommon下载地址:https://github.com/happyfish100/libfastcommon将下载的安装包上传到CentOS,解压(我是解压到/u...

2020-03-22 22:42:43 339

原创 Centos7下安装tomcat(8.5.53)详解

第一步Tomcat是需要jdk才能运行 , 如果没有安装jdk请看我的另一篇有关安装jdk的文章。CentOS安装jdk第二步下载tomcat安装包(我的下载目录为/usr/local/tomcat)wget https://mirrors.cnnic.cn/apache/tomcat/tomcat-8/v8.5.53/bin/apache-tomcat-8.5.53.tar.g...

2020-03-22 16:21:44 1411

原创 CentOS 7 yum 安装与配置 JDK详解

第一步检查你的机器是否有安装jdkjava -versionyum list installed | grep [java][jdk]如果有请先卸载(如上图)卸载yum -y remove java-1.8.0-openjdk* //表时卸载所有openjdk相关文件输入yum -y remove tzdata-java.noarch //卸载tzdata-java...

2020-03-22 15:52:18 524

原创 CentOS7命令行安装rz,sz详解

第一步yum install gcc进入/tmp目录下cd tmpwget下载lrzsz安装包(若没有wget ,先下载wget),yum install wgetwget http://www.ohse.de/uwe/releases/lrzsz-0.12.20.tar.gz第二步解压tar zxvf lrzsz-0.12.20.tar.gz进入解压目录...

2020-03-22 13:23:35 1931

原创 CentOS7安装Nginx 详解

第一步要添加CentOS 7 EPEL仓库,请打开终端并使用以下命令:sudo yum install epel-release第二步现在Nginx存储库已经安装在您的服务器上,使用以下yum命令安装Nginx :sudo yum install nginx在对提示回答yes后,Nginx将在服务器上完成安装。第三步Nginx不会自行启动。要运行Nginx,请输入...

2020-03-22 12:46:03 252

原创 CentOS7安装Nodejs详解

第一步进入你想安装的目录(本文在/usr/local/node/下)安装gcc,make,openssl,wget(如果之前已经安装,可以忽略此操作)yum install -y gcc make gcc-c++ openssl-devel wget第二步进入该网站可以下载你想要的node 版本 node下载官网执行下面语句下载wget https://nodejs.or...

2020-03-22 11:34:11 175

原创 CentOS7安装redis(5.0+)详解

第一步下载redis安装包可以去以下地址查看版本,redis下载地址进入你要下载该安装包的目录(本文是在**/usr/local/redis**目录下),执行语句开始下载wget http://download.redis.io/releases/redis-5.0.8.tar.gz第二步赋予操作权限,777代表全部权限(有些系统可以不用)chmod 777 redis-...

2020-03-21 20:52:17 513

原创 CentOS7安装mysql(5.7)详解

第一步进入你要安装的目录下面语句wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm若提示没有wget,则下载wgetyum -y install wget下载下来的mysql安装源如图第二步在线安装mysqlyum -y localinstall mysql57-...

2020-03-20 17:53:52 232

原创 A typical case is HTML attributes for event handlers (e.g. "onload"), in which textual data from va

thymeleaf th:onclike 传入多个字符串原代码th:οnclick="'javascript:searchHot(\''+${hot.name}+'\')'"此问题并不是错误,而是springboot版本的原因,新版本(2.xxx版本)中用用着办法是会报错的,老版本(我试的是1.3版本)用这个方法可行的。解决办法th:onclick="searchHot([[$...

2020-03-12 23:48:29 553

原创 阿里服务器(Centos7+)部署Elasticsearch

标题需要修改四处配置文件jvm.options,elasticsearch.yml,vi /etc/security/limits.conf,vi /etc/sysctl.confOpenJDK 64-Bit Server VM warning: If the number of processors is expected to increase from one, then you sho...

2020-03-10 12:27:46 440

原创 Cannot have more than one plugin implementing a REST wrapper

安装readonlyrest启动es时报错at org.elasticsearch.cli.Command.main(Command. ~[elasticsearch-cli-6.4.1.jar:6.4.1] at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch. ~[elasticsearch-6.4.1.j...

2020-03-08 19:53:55 1923 1

原创 com.alibaba.fastjson.JSONException: syntax error, expect {, actual [, pos 0,问题记录

版本:fastjson-version 1.2.62在转换为对象集合时不能用强转的方法,例如:List<User> UserList = (List<User>)JSON.parseObject(keyJSON, User.class);这样就会出现标题所示的错误解决办法List<User> UserList = JSON.parseObje...

2020-03-06 22:16:32 2047

原创 Redis 缓存击穿、缓存穿透和缓存雪崩

1、缓存击穿定义: 缓存中的key一般设有过期时间,如果某个key过期了,恰在这个时候,有大量的并发请求访问这个key,则这些请求都会到达DB,导致DB瞬间压力过大,压垮DB。解决方案:1.设置互斥锁,mutex:当缓存失效时不时立即去访问数据库,而是使用缓存工具的操作成功带返回值的操作,比如redis的setnx(set if not exit),memcache的add,利用...

2020-03-05 23:21:08 216

原创 SpringBoot程序连接阿里服务器mysql 出现Access denied for user 'root'@'自己电脑的公网ip' (using password: YES)

1、事件起因我用的是阿里服务器,在里面安装了MySQL,在用SpringBoot连接的时候,出现标题所示错误。Access denied for user ‘root’@‘自己电脑的公网ip’ (using password: YES)2、第一想法数据库远程权限未开放,所以进行修改进入MySQL mysql -u root -p输入密码后登录GRANT ALL PRIV...

2020-02-28 18:21:30 475

原创 SpringBoot连接mysql出现com.mysql.cj.exceptions.UnableToConnectException: CLIENT_PLUGIN_AUTH is required

1、解决办法我出现错误时用的jdbc驱动是8.0以上,降低之后未出现该错误。 <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> ...

2020-02-28 18:01:11 4399

原创 springboot连docker的mysql报错 Access denied for user 'root'@'192.168.56.1' (using password: NO)

1、问题:报错IP 不是我数据库容器的ip,是VirtualBox配置的IPjava.sql.SQLException: Access denied for user ‘root’@‘192.168.56.1’ (using password: NO)springBoot里面的原配置spring.datasource.data-password=123456spring.dataso...

2020-02-20 00:55:59 1652 1

原创 Java8新特性---Lambda 表达式

1、Lambda 表达式简介:是一个匿名函数,返回了是子定义接口的对象实例注意:不是所有接口都可以使用lambda 表达式,只有当接口里面只有一个需要实现的方法的时候才可以使用lambda表达式,不过并不是代表接口里面只可以写一个接口,在jdk1.8中引入了在接口的里面的方法加上default可以定义为默认的实现空方法2、简单例子public class ThreadDemo { ...

2020-02-16 23:18:51 182

原创 RabbitMQ入门及简单案例

1、是什么?1.1、RabbitMQ简介:RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。RabbitMQ服务器是用Erlang语言编写的,而群集和故障转移是构建在开放电信平台框架上的。所有主要的编程语言均有与代理接口通讯的客户端库。支持多系统、多种语言RabbitMQ 作用:异步,解耦,缓冲,消息分发。RabbitMQ 主要分为3个部分,...

2020-02-06 17:46:32 328

原创 Oracle VM VirtualBox 获取 VirtualBox COM 对象失败 解决办法

1、相关报错信息下面是打开VirtualBox 的报错信息获取 VirtualBox COM 对象失败.应用程序将被中断.Failed to instantiate CLSID_VirtualBox w/ IVirtualBox, CLSID_VirtualBox w/ IUnknown works.PSDispatch looks broken by some installer ...

2020-02-06 17:19:34 3200

原创 Node.js入门以及简单示例。

1、Node.js是什么?首先Node.js不是一门语言,不是库,不是框架,它是一个javaScript运行时环境,简单来讲就是Node.js可以解析和执行javaScript代码,以前只有浏览器可以解析javaScript代码,也就是说现在的javaScript可以完全脱离浏览器来运行,一切归功于Node.js浏览器中的javaScript包含EcmaScript(基本语法、if 、var...

2020-02-06 16:27:19 530

原创 如何在Idea中安装Node才能运行js文件

1、安装Node.js详情请看我的另一篇文章有关Node.js的安装。这里不过多的赘述相关链接:Node安装2、在Idea中配置Node1.在 Intellij IDEA 中安装 node plugins,点击FIle,选择“setting”,选择“plugins”,输入“node”搜索,选择第一个,再点击安装即可。安装成功后重启idea,让插件生效。3、测试...

2020-01-08 18:28:00 6280

原创 MongoDB入门以及简单案例

MongoDB什么是MongoDBMongoDB是一个基于分布式文件存储 的数据库。是为了快速开发互联网web应用而设计的数据库系统。MongoDB的设计目标是极简、灵活、作为Web应用栈的一部分。MongoDB的数据模型是面向文档的,所谓文档是一种类似于JSON的结构,简单理解MongoDB这个数据库中存的是各种各样的JSON三个概念数据库–数据库是一个仓库,在仓库中可以...

2020-01-06 23:03:58 576

原创 Windows10--Node.js安装及环境配置

1、’Node.js下载安装打开官网链接Node.js官网安装,下载与你计算机相匹配的版本。这里示例:下载下来的安装包2、点击安装!安装成功,点击finish!!!.3、验证安装以及配置至此Node.js已经安装完成,可以先进行下简单的测试安装是否成功了,后面还要进行环境配置在键盘按下【win+R】键,输入cmd,然后回车,打开cmd窗口,输入一下内容,若安装成功就会如图下所示...

2020-01-06 21:07:49 1671

空空如也

空空如也

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

TA关注的人

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