自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

方圆几里的博客

当做知识梳理储备的库

原创 JVM(六)---jvm压缩指针

一 什么是oop   OOP = “ordinary object pointer” 普通对象指针。 启用CompressOops后,会压缩的对象:     1. 每个Class的属性指针(静态成员变量)     2. 每个对象的属性指针     3. 普通对象数组的每个元素指针   当...

2020-05-26 17:07:01 3 0

原创 Java多线程高并发(一) CAS原理

一 问题引入 当我们测试多个线程操作a++的时候,会出现以下结果 public class CasDemo2 { public static void main(String[] args) { Castest castest=new Castest(); ...

2020-05-18 17:35:25 39 0

转载 java内存模型以及valatile关键字

java内存模型(Java Memory Model,JMM)是java虚拟机规范定义的,用来屏蔽掉java程序在各种不同的硬件和操作系统对内存的访问的差异,这样就可以实现java程序在各种不同的平台上都能达到内存访问的一致性。可以避免像c++等直接使用物理硬件和操作系统的内存模型在不同操作系统和...

2020-05-07 17:35:51 48 0

原创 数据库系统原理

一、事务 概念 事务指的是满足 ACID 特性的一组操作,可以通过 Commit 提交一个事务,也可以使用 Rollback 进行回滚。 ACID 1. 原子性(Atomicity) 事务被视为不可分割的最小单元,事务的所有操作要么全部提交成功,要么全部失败回滚。 回滚可以用回...

2020-03-11 17:06:47 60 0

原创 JVM(五)---OutOfMemoryError实例

一 前言 OutOfMemoryError异常是在编程过程中因为程序的处理问题或者jvm参数配置的问题而导致的错误。在虚拟机的这几个运行时区域都有发生OutOfMemoryError的可能:java堆,虚拟机栈,本地方法栈 ,方法区,运行时常量池,直接内存。下面针对这些例举几个代码例子来说明。 ...

2019-10-24 17:52:13 51 0

转载 Node.js安装及环境配置之Windows篇

from:https://www.cnblogs.com/zhouyu2017/p/6485265.html 一、安装环境 1、本机系统:Windows 10 Pro(64位) 2、Node.js:v6.9.2LTS(64位) 二、安装Node.js步骤 1、下载对应你系统的Node.js...

2019-07-15 10:44:22 75 0

转载 idea阿里代码规范检查工具的安装使用

阿里代码规范检查工具的安装使用 阿里巴巴于 10 月 14 日在杭州云栖大会上,正式发布众所期待的《阿里巴巴 Java 开发规约》扫描插件! 简单了解一下这插件 该插件由阿里巴巴 P3C 项目组研发。 代码已经开源,GitHub:https://github.com/alibaba/p3c...

2019-07-08 13:25:30 4226 1

转载 Executor线程池框架详解

为什么引入Executor线程池框架 new Thread()的缺点 每次new Thread()耗费性能 调用new Thread()创建的线程缺乏管理,被称为野线程,而且可以无限制创建,之间相互竞争,会导致过多占用系统资源导致系统瘫痪。 不利于扩展,比如如定时执行、定期执行、线程中断 采...

2019-07-01 21:50:27 82 0

转载 tomcat日志排查

tomcat里的几类日志: Catalina localhost manager host-manager access 前言:有时候我们会碰到代码本地测试没问题,然鹅发到生产却出现了问题。这时候想解决问题,在本地测试没多大效果的,最好的办法是去生产上把日志搂出来,根据异常日志来排查问题,但是生...

2019-06-26 20:21:04 786 0

转载 Linux实时查看日志的四种命令详解

如何在Linux中实时查看日志文件的内容?那么有很多实用程序可以帮助用户在文件更改或不断更新时输出文件的内容。在Linux中实时显示文件内容的常用命令是tail命令(有效地管理文件)。 1. tail命令 - 实时监控日志 如上所述,tail命令是实时显示日志文件的最常用解决方案。但是,显...

2019-06-26 20:11:42 8639 0

原创 Dubbo源码解析(二)---Extension 机制

一 什么是Extension 机制 Dubbo的类加载机制是模仿jdk的spi加载机制; Jdk的SPI扩展加载机制:约定是当服务的提供者每增加一个接口的实现类时,需要在jar包的META-INF/service/目录下同时创建一个以服务接口命名的具体实现类,该文件里面就是保存的实现该接口的具...

2019-06-18 19:25:47 423 0

转载 Java Annontation(注解)详解

java中经常用到注解(Annontation),索性整理了下关于注解的相关知识点: 一、概念 Annontation是Java5开始引入的新特征,类似与.NET 中的attribute。中文名称一般叫注解。它提供了一种安全的类似注释的机制,用来将任何的信息或元数据(metadata)与程序元...

2019-06-18 12:10:52 117 0

转载 dubbo注册中心

Dubbo目前支持4种注册中心,(multicast zookeeper redis simple) 推荐使用Zookeeper注册中心, Multicast注册中心 不需要启动任何中心节点,只要广播地址一样,就可以互相发现 组播受网络结构限制,只适合小规模应用或开发阶段使用。 组播地址段:...

2019-06-13 14:17:12 2671 0

原创 Dubbo源码解析(一)---架构概述

一 前言 之前的文章描述了如何简单的搭建dubbo服务,会用只是迈入了初级阶段。要想更好的理解原理,只能通过源码。为什么要看源码呢?因为好的源码是一些大牛级别的工程师呕心沥血的结晶,这里面渗透着好多东西,比如设计模式,算法,以及我们可以更清楚的从开发者的角度去理解代码。所以在接下来的时间里会记...

2019-06-11 14:54:58 2436 0

原创 java设计模式之装饰模式

一 什么是装饰模式 装饰器模式 装饰器模式又称为包装(Wrapper)模式。装饰器模式以多客户端透明的方式扩展对象的功能,是继承关系的一个替代方案。 装饰器模式的结构 通常给对象添加功能,要么直接修改对象添加相应的功能,要么派生子类来扩展,抑或是使用对象组合的方式。显然,直接修改对应的类的...

2019-06-11 11:58:37 62 0

转载 java设计模式之观察者模式

1 初步认识 观察者模式的定义:   在对象之间定义了一对多的依赖,这样一来,当一个对象改变状态,依赖它的对象会收到通知并自动更新。 大白话:   其实就是发布订阅模式,发布者发布信息,订阅者获取信息,订阅了就能收到信息,没订阅就收不到信息。 2 这个模式的结构图 3、可以看到,该...

2019-06-10 17:13:41 54 0

原创 springboot实战笔记(十六)---- 监控 Spring Boot 的健康状况

一使用 Actuator 检查与监控 1.1 创建项目,添加Actuator依赖,pom.xml文件如下 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="ht...

2019-06-02 17:17:12 75 0

原创 springboot实战笔记(十五)----springboot多环境配置

一 前言 我们在工作当中一般分为三个环境:开发环境,测试环境,生产环境,所以我们在启动项目的时候在不同的环境中启动,此时 我们需要进行springboot多环境配置。 二 准备工作 创建一个简单的项目进行模拟,创建项目,如下 application-dev.properties: ...

2019-05-31 19:55:05 85 0

原创 springboot实战笔记(十四)----springboot异常处理

一 前言 在系统中异常的出现是无可避免的,那么对于异常的处理,如何将出现异常后返回给前台不同的提示呢?而且以不同页面效果展示给前端呢?接下来说一下springboot其中常见两种处理异常的方式,自定义 HandlerExceptionResolver 的类处理异常。还有一个是@Control...

2019-05-31 15:55:40 75 0

原创 微服务的设计原则

一 前言 微服务是一种架构风格。一个大型的复杂软件应用,由一个或多个微服务组成。系统中的各个微服务可被独立部署,各个微服务之间是松耦合的。每个微服务仅关注于完成一件任务并很好的完成该任务。那么关于微服务的设计原则有哪些呢?如下: AKF 拆分原则 前后端分离原则 无状态服务 RestF...

2019-05-30 20:01:16 716 0

原创 springboot实战笔记(十三)----springboot热部署

一 何为热部署 对于Java应用程序来说,热部署就是在运行时更新Java类文件,也就是更新完文件后不需要你重启应用。springboot常见的部署方式有: springloader插件 DevTools工具 二 项目创建 1.pom.xml <project xmlns=&quo...

2019-05-30 17:06:41 63 0

原创 springboot实战笔记(十二)----springboot常见表单数据校验

一 创建模拟用户注册项目 pom.xml文件: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instanc...

2019-05-29 17:35:26 189 0

原创 springboot实战笔记(十一)----springboot整合freemarker

一 创建springboot项目 pom.xml文件如下: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-ins...

2019-05-29 13:28:02 158 0

原创 springboot实战笔记(十)----springboot整合jsp

一 创建一个springboot项目 pom.xml文件如下: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-i...

2019-05-28 21:30:27 153 0

原创 springboot实战笔记(九)----springboot文件上传

一 创建springboot项目 pom.xml文件如下: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-ins...

2019-05-28 19:38:02 54 0

原创 springboot实战笔记(八)----访问静态资源的方式

一 前言 springboot访问静态资源有以下两种方式: SpringBoot 从 classpath/static下访问,注意目录名称必须是static ServletContext 的根目录下 二 static目录下访问 简单的启动springApplication后,访问资源...

2019-05-28 16:33:24 55 0

原创 springboot实战笔记(七 )----springboot整合Listener

一 前言 在以往的web.xml方式中,我们是通过以下形式进行配置Listener的: <listener> <listener-class>com.bjsxt.listener.FirstListener</listener-class> </...

2019-05-28 15:54:07 99 0

原创 springboot实战笔记(六 )----springboot整合Filter

一 前言 在以往的web.xml方式中,我们是通过以下形式进行配置的: <filter> <filter-name>FirstFilter</filter-name> <filter-class>com.bjsxt.filter.Fir...

2019-05-28 15:28:31 34 0

原创 springboot实战笔记(五)----springboot整合servlet

一 前言 在以前的web.xml方式中,我们是通过以下形式进行配置的: <servlet> <servlet-name>FirstServlet</servlet-name> <servlet-class>com.bjsxt.s...

2019-05-28 14:37:39 106 0

原创 JVM常见面试题

一什么是内存溢出,内存泄漏 :当一个对象已经不需要再使用本该被回收时,另外一个正在使用的对象持有它的引用从而导致它不能被回收,这导致本该被回收的对象不能被回收而停留在堆内存中,这时候产生内存泄漏, 让我们来看看下面这个例子,看看为什么内存泄漏会发生。在如下例子中,对象A引用了对象B。A的生...

2019-05-03 16:47:15 1096 0

原创 JVM(二)---HotSpot 虚拟机对象探秘

一 前言 通过上一篇JVM(一)我们大致知道了JVM虚拟机的内存的概况,接下来来了解下HotSpot 虚拟机在 Java 堆中对象分配、布局和访问的全过程。 二 对象的创建 1.类加载检查:虚拟机遇到一条 new 指令时,首先将去检查这个指令的参数是否能在常量池中定位到这个类的符号...

2019-04-27 14:21:33 57 0

原创 JVM(四)---分代垃圾回收

一 前言 本篇重点整理现在最普遍使用的垃圾回收算法,分代垃圾回收算法。 基于对对象生命周期分析后得出的垃圾回收算法。把对象分为年青代、年老代、持久代,对不同生命周期的对象使用不同的算法(上述方式中的一个)进行回收。现在的垃圾回收器(从J2SE1.2开始)都是使用此算法的。 二 概念 JV...

2019-04-26 15:56:18 82 0

原创 JVM(三 )---基本垃圾回收算法

按照基本回收策略分 引用计数(Reference Counting): 比较古老的回收算法。原理是此对象有一个引用,即增加一个计数,删除一个引用则减少一个计数。垃圾回收时,只用收集计数为0的对象。此算法最致命的是无法处理循环引用的问题。 标记-清除(Mark-Sweep): 此算法执行...

2019-04-26 14:22:43 37 0

原创 JVM(一)---原理与运行机制

一 原理及运行机制 我们都知道java语言的最大优点在于他的跨平台概念,为什么能跨平台?因为有了这个jvm,中文为java 虚拟机.正因为它的存在所以有了一次编译,到处运行一说.. Java是一种技术,它由四方面组成:Java编程语言、Java类文件格式、Java虚拟机和Java应用程序接口(...

2019-04-26 13:23:26 63 0

转载 @Transactional注解在什么情况下会失效,为什么。

首先我们来了解@Transactional这个注解: @Transactional注解事务的特性: 1.service类标签(一般不在接口上)上添加@Transactional,可以将整个类纳入spring事务管理,在每个业务方法执行时都会开启一个事务,不过这些事务采用相同的管理方式。 2....

2019-04-06 14:37:47 363 0

转载 ArrayList在循环过程中删除中出现的问题

前言 之前搜索面试题的时候,出现了一个题:一个ArrayList在循环过程中删除,会不会出问题,为什么?心里想的答案是肯定会有问题但是又不知道是为什么,在搜索到答案后,发现里面其实并不简单,所以专门写篇文章研究一下。 for循环正向删除 先看示例,再解析原因: public static...

2019-04-05 20:53:06 652 2

原创 Spring源码解析(二)---spring容器的基本实现

一 前言 我们都知道spring两大核心原理:IOC与AOP. IOC:(全称:Inverse Of Control )控制反转,容器主动将资源推送给它所管理的组件,组件所做的是选择一种合理的方式接受资源。 通俗点讲:就是一个容器工厂,里面加工了各种资源对象,当我们需要的时候直接从里面取...

2019-03-28 14:15:26 112 0

原创 Spring源码解析(一)---spring源码的下载编译

前言 spring是一种开源的轻量级的 Io C 和AOP 的容器框架,具体原理操作配置在本人写的spring框架分类中详细介绍了,spring框架详解。我们知道了如何使用以及它的基本特征,但是对其内在是如何实现该功能的没有深刻的了解过。所以新建一个系列,会通过spring源码结合自身的理解,...

2019-03-23 19:10:30 462 0

原创 java设计模式之工厂模式

一 简介 工厂模式:工厂模式是我们最常用的实例化对象模式了,是用工厂方法代替new操作的一种模式。打个比方:我们需要一样物品,我们只需要拿钱去买来就可以,不用关心它是怎么生产出来的 工厂模式分为三类: 简单工厂模式(Simple Factory):不利于产生系列产品; 工厂方法模式(F...

2019-03-21 16:51:01 34 0

转载 java设计模式之单例模式

1 引子 单例模式是指某个类有唯一的实例。 最常见的获取单例的方法有两种:饿汉式和懒汉式。懒汉式单例模式: public class Single1 { private static Single1 single1; private Single1(){} public st...

2019-03-21 10:35:03 46 0

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