摘要: 前言 GC(Garbage Collection)是我们在学习 JVM 的过程中不可避免的一道坎,接下来,我们就来系统的学习一下 GC。 做一件事情之前,我们一定要去知道我们为什么要去做,这里不仅仅指 GC,更适用我们日常的学习和生活,知其然,知其所以然,方能百战不殆。 下面我们先去了解为什么要有 阅读全文
posted @ 2019-11-15 09:13 山禾说 阅读(431) 评论(0) 推荐(2) 编辑
摘要: 概览 一个对象根据不同情况可以被划分成两种情况,当对象是一个非数组对象的时候,对象头,实例数据,对齐填充在内存中三分天下,而数组对象中在对象头中多了一个用于描述数组对象长度的部分 对象头 对象头分为两部分,第一部分称之为 "Mark Word" ,第二部分是用于获取该对象类型的 类型指针 ,如果是数 阅读全文
posted @ 2019-09-10 08:46 山禾说 阅读(429) 评论(0) 推荐(1) 编辑
摘要: 面向对象 众所周知,Java是一门面向对象的高级编程语言,那么现在问题来了,对象从哪来呢?有些人会说通过new关键字来创建一个对象,说的很好,本篇我们就来解密在new一个对象的过程中,JVM都给我们做了什么工作。 走哪来,到哪去 一个对象的诞生必定有一个类,通常我们都是通过new关键字实例化一个类来 阅读全文
posted @ 2019-09-04 08:58 山禾说 阅读(442) 评论(2) 推荐(2) 编辑
摘要: 前言 上一篇中,我们了解了JVM中的线程独占区,这节课我们就来了解一下JVM中的线程共享区,JVM中的线程共享区是跟随JVM启动时一起创建的,包括堆(Heap)和方法区()两部分,而线程独占区的程序计数器,虚拟机栈,本地方法栈的生命周期都是跟随线程的,随线程的创建而诞生,随线程的销毁而销毁。 堆(H 阅读全文
posted @ 2019-08-29 08:53 山禾说 阅读(594) 评论(0) 推荐(3) 编辑
摘要: 前言 如果我们对计算机组成有所了解,那么我们一定会知道在计算机中有一块儿特殊的区域,称之为寄存器,寄存器包括了指令寄存器和程序计数器,这两样位于CPU中,作为程序运行的 大脑 来控制程序的运行和流转。 而在JVM中,作为一种虚拟机,JVM没有指令寄存器,它是基于 栈 + 程序计数器 的体系结构来完成 阅读全文
posted @ 2019-08-26 08:58 山禾说 阅读(472) 评论(0) 推荐(2) 编辑
摘要: Java的数据类型 我们知道,Java是一种 强类型 语言,类型对于Java语言来说非常的重要不言而喻,在Java中,分为 基础数据类型 和 引用数据类型 ,其中基础数据类型分为了 四类八种 : 下面,我们来分别说一下这四类八种 整形 首先,需要说明一点,在Java的整形中不存在 类型的数值,也就是 阅读全文
posted @ 2019-08-07 08:52 山禾说 阅读(448) 评论(3) 推荐(2) 编辑
摘要: 画人画皮难画骨,知人知面不知心 阅读全文
posted @ 2019-08-05 14:09 山禾说 阅读(425) 评论(0) 推荐(1) 编辑
摘要: 我行过许多地方的桥,看过许多次数的云,喝多许多种类的酒,却只爱过一个正当年龄的JVM 阅读全文
posted @ 2019-07-26 08:54 山禾说 阅读(552) 评论(0) 推荐(2) 编辑
摘要: 前景介绍 在日常的工作中,我们经常会用到邮件服务,比如发送验证码,找回密码确认,注册时邮件验证等,所以今天在这里进行邮件服务的一些操作。 大致思路 我们要做的其实就是把Java程序作为一个客户端,然后通过配置SMTP协议去连接我们所使用的发送邮箱(from)对应的SMTP服务器,然后通过SMTP协议 阅读全文
posted @ 2019-07-18 09:14 山禾说 阅读(611) 评论(0) 推荐(1) 编辑
摘要: 背景介绍 这里给大家分享一道很有趣的面试题。 面试过程 面试官:redis我看你有使用过,说一下redis的基本类型吧? A:String,Hash,Set,List,Zset。 面试官:redis中string类型的实现有没有了解过? A:(喵喵喵?) 面试官:回家等通知吧。 面试反思 作为一个爱 阅读全文
posted @ 2019-07-09 08:38 山禾说 阅读(277) 评论(0) 推荐(2) 编辑
摘要: What —— Elasticsearch是什么? Elasticsearch是一个基于Lucene的搜索服务器,Elasticsearch也是使用Java编写的,它的内部使用Lucene做索引与搜索,但是它的目的是使用全文检索变得简单,通过隐藏Lucene的复杂性,取而代之的提供一套简单一致的RE 阅读全文
posted @ 2019-05-20 08:41 山禾说 阅读(830) 评论(2) 推荐(1) 编辑
摘要: 为什么使用Vue Simple Uploader 最近用到了Vue + Spring Boot来完成文件上传的操作,踩了一些坑,对比了一些Vue的组件,发现了一个很好用的组件——Vue Simple Uploader 再说说为什么选用这个组件,对比vue ant design和element ui的 阅读全文
posted @ 2019-05-13 09:16 山禾说 阅读(2234) 评论(4) 推荐(4) 编辑
摘要: Dubbo 简介 Dubbo是阿里巴巴公司开源的一个 高性能 优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 Spring框架无缝集成 。 它提供了三大核心能力: 面向接口 的远程方法调用 智能容错 和 负载均衡 服务 自动注册 和发现。 可以看出图中存在着五种角色 阅读全文
posted @ 2019-03-29 09:15 山禾说 阅读(2145) 评论(4) 推荐(3) 编辑
摘要: [TOC] Redis简介 Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可 基于内存亦可持久化 的日志型、 Key Value 数据库,并提供 多种语言的 API 的 非关系型数据库(NoSQL) 。 Redis的特性 1. Redis的所有操作都是原子性的, 阅读全文
posted @ 2019-03-22 09:01 山禾说 阅读(3500) 评论(2) 推荐(4) 编辑
摘要: PageHelper 说起PageHelper,使用过Mybatis的朋友可能不是很陌生,作为一款国人开发的分页插件,它基本上满足了我们的日常需求。但是,我想去官方文档看看这个东西配合Spring Boot进行使用的时候,发现了这个: 所以花了一个晚上的时间,研究了一下合理的怎么玩这个。 快速入门 阅读全文
posted @ 2019-03-15 09:07 山禾说 阅读(8436) 评论(5) 推荐(5) 编辑
摘要: Swagger2简介 简单的来说,Swagger2的诞生就是为了解决前后端开发人员进行交流的时候 API文档难以维护 的痛点,它可以和我们的Java程序完美的结合在一起,并且可以与我们的另一开发利器Spring Boot来配合使用。 开始使用 第一步:导入POM文件 第二步:添加配置类 我们需要新增 阅读全文
posted @ 2019-03-08 08:42 山禾说 阅读(5050) 评论(2) 推荐(8) 编辑
摘要: 接口日志有啥用 在我们日常的开发过程中,我们可以通过接口日志去查看这个接口的一些详细信息。比如客户端的IP,客户端的类型,响应的时间,请求的类型,请求的接口方法等等,我们可以对这些数据进行统计分析,提取出我们想要的信息。 怎么拿到接口日志 这里,我们使用的是Spring的两大杀器之AOP,通过在Co 阅读全文
posted @ 2019-02-22 07:09 山禾说 阅读(1349) 评论(4) 推荐(2) 编辑
摘要: RESTful 相信在座的各位对于RESTful都是略有耳闻,那么RESTful到底是什么呢? REST(Representational State Transfer)表述性状态转移是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是RESTful。需要注意的是,REST是 设计风 阅读全文
posted @ 2019-01-25 06:57 山禾说 阅读(1728) 评论(0) 推荐(2) 编辑
摘要: 什么是跨域 首先,我们需要了解一下一个URL是怎么组成的: // 协议 + 域名(子域名 + 主域名) + 端口号 + 资源地址 http: + // + www.baidu.com + :8080/ 只要 协议,子域名,主域名,端口号 这四项组成部分中有一项不同,就可以认为是不同的域,不同的域之间 阅读全文
posted @ 2019-01-18 07:37 山禾说 阅读(3446) 评论(9) 推荐(7) 编辑
摘要: 我们为啥要用日志? 最初我们开始接触Java的时候,我们通常会使用 将我们想要知道的信息打印到控制台。 但是,如果在服务器上我们去运行我们的Java程序,这个时候就凸显了日志对于一个系统来说的重要性,查找异常信息、分析系统运行情况等都需要用到日志。 为什么是SLF4J? 默认情况下,Spring B 阅读全文
posted @ 2019-01-11 09:05 山禾说 阅读(1277) 评论(4) 推荐(2) 编辑