记一次OutOfMemoryError: Metaspace诊断

起因 线上新运行的一个微服务,启动过程到稳定之后,服务一致没有问题,但是在运行一小段时间之后,经常服务状态不可用,访问改服务的Restful接口处于503状态 初步分析 刚开始的时候并没有意识到这个问题的严重性,以为是服务器突发的问题 ,采取的手段 就是暴力重启,可是重启之后一小段时间内确实...

2019-07-06 09:48:06

阅读数 24

评论数 0

Java CAS原理分析

概念 CAS:Compare and Swap

2019-07-04 13:20:55

阅读数 9

评论数 0

Java OutOfMemoryError 分析

异常分类 Java OutOfMemoryError分为四大类:Java heap space、Permgen space、Metaspace、GC overhead limit exceeded Java heap space 当创建对象时,堆内存中的空间不足以存放新的对象,就...

2019-06-28 13:15:28

阅读数 8

评论数 0

JVM堆内存分配及垃圾回收算法

堆内存划分 Java堆是被所有线程共享的一块内存区域,虚拟机又把堆内存划分为新生代、老年代、永久代三块区域。 新生代(Young)又被划分为三个区域:Eden、From Survivor、To Survivor 默认情况下 新生代 ( Young ) 与老年代 ( Old ) 的比例的值...

2019-06-21 22:56:32

阅读数 17

评论数 0

Java锁机制

Java锁的划分 Java锁具体可分为悲观锁/乐观锁、自旋锁/适应性自旋锁、偏向锁、轻量级锁/重量级锁、公平锁和非公平锁、可重入锁/非可重入锁、共享锁/排他锁 具体划分如下: 乐观锁VS悲观锁 特征 对于同一个数据的并发操作,悲观锁认为自己在使用数据的时候一定有别的线程来修改数据,因...

2019-06-20 12:57:09

阅读数 43

评论数 0

Java中的Volatile关键字

1

2019-06-15 13:06:27

阅读数 9

评论数 0

JVM 内存结构介绍整理

Jvm内存模型 JVM内存共分为虚拟机、堆、方法区、程序计数器、本地方法栈五个部分。 虚拟机栈 每个线程都有一个私有的栈,随着线程创建而创建。每个栈空间都存放着栈帧,每个方法都会创建一个栈帧,栈帧主要存放了局部变量列表(局部变量表主要存放了编译器可知的各种数据类型[boo...

2019-06-14 13:07:57

阅读数 28

评论数 0

Java Object对象

Object.getClass()和Object.class区别 类名.class叫做“类字面量”,因class是关键字, 所以类名.class编译时确定。而getclass()是某个具体的方法来调用,是运行时根据实际实例确定,getClass()是动态而且是final的 HashCo...

2019-06-14 00:37:45

阅读数 14

评论数 0

Java 单例模式与线程安全

1.恶汉式 public class Singleton { private static Singleton INSTANCE = new Singleton(); public static Singleton getInstance() { retur...

2019-05-11 23:06:24

阅读数 6

评论数 0

IT博文收集

1.浮动IP概念及作用 https://blog.csdn.net/readiay/article/details/53538085 2.SpringBoot appliaction 原理 https://www.cnblogs.com/xiaoxi/p/7999885.html 3.OR...

2019-05-10 13:10:49

阅读数 9

评论数 0

Java Synchronized锁

一、Synchronized锁的重入 (1)当一个线程获得一个对象的锁时,改锁里运行时可以再次请求获取该对象的锁 (2)该线程请求其他线程持有的对象锁时,该线程会阻塞住,请求自己持有的对象锁时会请求成功 (3)Synchronized锁住的是对象,调用该对象的其他Synchronized修饰...

2019-05-10 00:38:17

阅读数 12

评论数 0

Spring Bean 的生命周期

Bean的完整生命周期经历了各种方法调用,这些方法可以划分为以下几类: 1、Bean自身的方法  :  这个包括了Bean本身调用的方法和通过配置文件中<bean>的init-method和destroy-method指定的方法 2、Bean级生命周期接口方法  :...

2019-05-09 13:12:41

阅读数 13

评论数 0

Spring之路—常用注解收集

【@Component】——标注一个普通的Spring Bean类 【@Controller】——标注一个控制器组件类 【@Service】——标注一个业务逻辑组件类 【@Repository】——标注一个Dao的组件类 【@Bean】——标示为一个bean 【@ComponentSca...

2019-05-08 13:25:28

阅读数 8

评论数 0

短连接和长连接扫盲

短连接 连接->传输数据->关闭连接 比如HTTP是无状态的的短链接,浏览器和服务器每进行一次HTTP操作,就建立一次连接,但任务结束就中断连接。 具体就是 浏览器client发起并建立TCP连接 -> client发送HttpRequest报文 -&am...

2019-05-07 14:09:14

阅读数 8

评论数 0

Spring Cloud服务框架概述

【Spring Cloud】 Spring Cloud为开发者提供了快速构建分布式系统的通用模型的工具(包括配置管理、服务发现、熔断器、智能路由、微代理、控制总线、一次性令牌、全局锁、领导选举、分布式会话、集群状态等)。 主要项目包括: Spring Cloud Config:由Git存储库支...

2019-05-07 13:58:35

阅读数 11

评论数 0

Java 中的ThreadLocal

What is ThreadLocal ? 1.ThreadLocal 是一个创建线程局部变量的类 2.通常情况下 ,一个对象中创建的变量是可以被任何一个线程访问的,也就是共享变量,ThreadLocal 创建的变量只能被当前线程访问,其他线程无法访问和修改 Why is ThreadLoc...

2019-03-11 22:10:31

阅读数 4

评论数 0

Linux高频率命令收集

【Linux命令】 1.跳到文本的最后一行:按“G”,即“shift+g” 2.跳到最后一行的最后一个字符 : 先重复1的操作即按“G”,之后按“$”键,即“shift+4”。 3.跳到第一行的第一个字符:先按两次“g”, 4.跳转到当前行的第一个字符:在当前行按“0”。 5.grep ...

2019-02-26 18:40:48

阅读数 35

评论数 0

SpringBoot集成Mybatis

SpringBoot与SpringFrameWork最大的区别是约定优于配置,今天尝试下如何使用注解而不是基于XML配置来使用Mybatis 【SpringBoot集成Mybatis】 1.pom依赖配置 <!-- 导入Mysql数据库链接jar包 --&am...

2019-02-26 18:23:33

阅读数 16

评论数 0

Python爬虫爬取大街网工作数据

最近工作状态不饱满,想看看招聘网站上Java工程师都能给多少钱,于是就试试动手写爬虫,最开始使用的是requests,结果发现请求一直报403,估计是网站都有反爬虫手段,目前水平有限,不知道怎么反爬虫,看来这条路行不通 # -*- coding: utf-8 -*- import re imp...

2019-02-25 22:57:24

阅读数 243

评论数 0

Java线程异常逃逸与捕获

Java线程内部执行异常会不会Throw?贴个代码更有说服力 package com.app.thread; public class OThread implements Runnable { @Override public void run() { S...

2019-02-22 11:18:45

阅读数 33

评论数 0

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