随笔分类 - JAVA
HashMap详解
摘要:HashMap详解 HashMap相关介绍 HashMap是Java中的比较常见的集合,主要存放的是键值对,以key-value的形式存储,不是线程安全的。它里面的存储的key和value可以为null值,但是key只允许有一个null值。HashMap是无序的,无法保证里面存储的键值对的有序性。j
阅读全文
JAVA常见基础知识点
摘要:JAVA常见基础知识点 一、注释 Java中有三种注释,分别是单行注释、多行注释、文档注释。 单行注释:注释某一行代码。使用// 多行注释:注释某一段代码。使用/* ... */ 文档注释:用于生成JAVA文档。使用/** ... */ 二、自增自减运算符 ++是自增运算符,—是自减运算符,如果放在
阅读全文
Mybatis常见知识点
摘要:Mybatis常见知识点 ${}和#{}有什么区别 ${}是简单的字符串替换,属于静态文本替换,并且并不是在预处理的时候进行替换,实在编译的时候进行替换,可能会存在sql注入的风险。替换后的值不会自动加上单引号。 #{}是占位符,是在预编译的时候进行替换成?占位符,执行前才会把参数设置进去,相当于j
阅读全文
使用Spring AOP实现系统操作日志记录
摘要:使用Spring AOP实现系统操作日志记录 一、什么是Spring Spring 是一个广泛应用的J2EE框架,是针对bean的生命周期进行管理的轻量级容器,主要由Spring Core、Spring AOP、Spring ORM、Spring DAO、Spring Context、Spring
阅读全文
JAVA设计模式-桥接模式
摘要:JAVA设计模式-桥接模式 一、介绍 桥接模式是一种结构型模式,它主要是将抽象部分和实现部分进行分离,可以独立变化,降低类与类之间的耦合度。 举例:我们现在需要实现不同形状,每个形状还要有不同的颜色,我们传统方式是定义一个形状类,再定义每一个不同的形状实现类,继承上面的形状类,这是形状的需求已经完成
阅读全文
JVM中的进程和线程
摘要:JVM中的进程和线程 介绍 一个进程可以有很多个线程,进程之间基本上都是独立的,但是同一进程中的不同线程很可能会相互影响。每个线程有自己的程序计数器、虚拟机栈和本地方法栈。 进程的几种状态 创建状态(New): 进程刚刚被创建。 就绪状态(Ready): 进程已经准备运行,此时进程在等待处理器资源,
阅读全文
分布式Session如何存储
摘要:分布式Session如何存储 一、介绍 Session(会话),用来记录信息确定用户身份,保存在服务端。当客户端浏览器访问服务器时,服务器会把客户端信息保存在服务器上,这个就是Session。和Session对应的是Cookie,Cookie也是记录信息确定用户身份的,不同的是,Cookie存储在客
阅读全文
JWT基础概念详解
摘要:JWT基础概念详解 JWT介绍 之前我们文章讲过分布式session如何存储,其中就讲到过Token、JWT。首先,我们来回顾一下使用Token进行身份认证。 客户端发送登录请求到服务器 服务器在用户登录成功之后会生成一个token,此时这个token可能会被存储到数据库、Redis等,实现可以共享
阅读全文
JAVA基本类型和包装类型
摘要:JAVA基本类型和包装类型 前言 Java语言中的数据类型分为基本数据类型和引用类型,而我们进行Java开发的时候都听说过基本数据类型和包装类型,今天我们就来详细聊一聊Java中的基本数据类型和包装类型之间的区别。 基本数据类型 Java中的基本数据类型一共有8种基本数据类型,分别是4种整型(byt
阅读全文
JVM、JDK、JRE你分的清吗
摘要:JVM、JDK、JRE你分的清吗 前言 在我们学习Java的时候,就经常听到"需要安装JDK"、"运行需要JRE"、"JVM调优"等等,这里面的JVM、JDK、JRE你真的分得清吗,今天我们就来讲讲它们之间的关系。 JVM 学过Java的都知道,JAVA是一次编译,到处运行,这主要是通过JVM,JV
阅读全文
JAVA设计模式-代理模式
摘要:JAVA设计模式-代理模式 一、介绍 代理模式是一种结构型模式,它指的是给某一个对象提供一个代理对象,并且由代理对象控制原有对象的引用,可以增强原有对象的功能以及降低系统的耦合度。生活中例如某品牌的代理商,我们买东西通过代理商购买,不是和厂家直接购买。代理模式有静态代理和动态代理,例如,我们使用线程
阅读全文
Github上把敏感文件或者API秘钥上传公共库并开放为public权限导致秘钥泄露
摘要:Github上把敏感文件或者API秘钥上传公共库并开放为public权限导致秘钥泄露 背景 我们在开发项目时,可能会使用到一些加密文件,例如私钥,或者使用到一些云服务商提供的ak(Access Key Id)或者sk(Secret Access Key),使用这些时需要格外注意,不能泄露给别人,否则
阅读全文
SpringBoot自定义Banner信息
摘要:SpringBoot自定义Banner信息 一、介绍 本文主要介绍使用springboot框架时,我们可以自定义我们项目的相关信息,例如启动图、启动时的版本号等。 二、自定义banner 我们在启动SpringBoot项目时,控制台会打印出SpirngBoot的图形,包含SpringBoot的版本号
阅读全文
JAVA获取jvm和操作系统相关信息
摘要:JAVA获取jvm和操作系统相关信息 背景 今日搬砖🧱时需要获取系统运行时间、版本号等相关信息,使用Java自带的类进行获取系统运行的相关信息,在这整理记录分享一下,感兴趣的小伙伴可以自己尝试尝试。 Jvm 首先获取jvm相关信息,包含jvm的名称、版本号、启动时间、运行时间、环境变量、进程id等
阅读全文
Bloom Filter概念和实现原理
摘要:Bloom Filter概念和实现原理 背景 我们在判断某一个元素是否在某个集合里面时,一般是将集合里面的所有元素都保存下来,然后直接读取磁盘上的数据再进行判断,但是如果数据量很大,此时读取速度就会降低,这时我们可以将数据提前存储到内存中,内存读取速度会快很多,但是数据量在逐渐增大时,内存的开销也在
阅读全文
arthas使用介绍
摘要:arthas使用介绍 一、介绍 Arthas是阿里巴巴旗下的一款开源的JAVA诊断工具,可以进行线上监控诊断产品,实时查看应用的内存、gc、线程等信息,方便排查线上问题。 二、支持的平台 需要安装JDK6以上版本,支持Linux/Mac/Windows,是使用命令行进行交互。 三、安装 curl -
阅读全文
JAVA设计模式-外观模式
摘要:JAVA设计模式-外观模式 介绍 外观模式是一种结构型模式,主要是为了隐藏系统的复杂性,对外提供一个可以访问的接口,客户端只需要访问这个接口即可。例如:我们现在的智能家居中的场景,平常我们下班回家,需要打开电灯,烧水、拉上窗帘、打开电视、打开空调,需要做很多事情,但是现在我们只需要回家之后在家里控制
阅读全文
JAVA设计模式-装饰模式
摘要:JAVA设计模式-装饰模式 介绍 装饰模式是一种结构型模式,在不改变现有对象结构的前提下,给现有对象添加新的功能,动态增加职责,是现有类的一个包装。 角色 Component:定义一个对象接口。 ConcreteComponent:定义一个对象,是Component的具体实现类,也是被装饰的对象。
阅读全文
JAVA设计模式-适配器模式
摘要:JAVA设计模式-适配器模式 介绍 适配器模式是一种结构型模式,它主要解决接口之间的兼容问题。当我们需要使用某个类的接口时,但是这个类的接口目前并不符合我们使用需求,不能直接使用,那我们可以采取调整类和接口的方式,但是如果这个接口是第三方提供的,修改不了或者类和接口目前大量使用,并且使用稳定,不能轻
阅读全文
Jstack排查线上CPU100%
摘要:Jstack排查线上CPU100% 介绍 jstack是JVM自带的Java堆栈跟踪工具,用于生成java虚拟机当前时刻的线程快照,来帮助定位线程出现长时间停顿的原因,例如死锁、死循环等。 语法 jstack [options] pid options: -F:to force a thread d
阅读全文
浙公网安备 33010602011771号