![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 95
星河之码
不惟有超世之才,亦必有坚忍不拔之志。
展开
-
JVM 的分代模型
我们知道在Java虚拟机中,当对象被创建出来后,是放在堆内存中的,那么在堆内存里面,对象又是怎么存储的呢?是所有对象都放在一起吗?我们先做一个假设,假设堆内存没有做任何区分,所有对象的从创建到销毁都是在放在一起。这回引起什么问题呢?思考一个问题,,当对象不在被使用了,GC在要去清理的时候,它怎么知道自己要清理那些对象呢?所有GC每次执行的时候都将堆内存所有对象全部扫描吗?原创 2023-08-28 10:00:00 · 294 阅读 · 0 评论 -
Jvm 的内存模型
本地内存是所有线程都共享的一部分内存,原创 2023-08-16 10:00:00 · 161 阅读 · 0 评论 -
Dockerfile
Dockerfile其实就是我们用来构建Docker镜像的源码,跟编程源码不同,它本质上一些命令的集合,有自己的逻辑和语法格式。Dockerfile可以让用户个性化定制Docker镜像满足实际的需求。总结下来主要是以下三点Dockerfile 是 Docker 中用于定义镜像自动化构建流程的配置文件在 Dockerfile 中,包含了构建镜像过程中需要执行的命令和其他操作Dockerfile 可以明确设定 Docker 镜像的制作过程,帮助我们在容器体系下能够完成自动构构建。原创 2023-04-26 23:09:46 · 186 阅读 · 1 评论 -
Docker私服
Docker 官方的Docker Hub是一个用于管理公共镜像的仓库,我们可以从上面拉取镜像到本地,也可以把我们自己的镜像推送上去。但是,如果我们的服务器无法访问互联网,或者需要使用自己的自己私有镜像,此时我们就需要搭建自己的私有仓库,来存储和管理自己的镜像。官方私服企业私服一般我们个人用不到这个,而在企业应用中官方显得不是很友好,没有界面,所以一般都是使用的企业私服。原创 2023-03-31 08:15:00 · 1012 阅读 · 0 评论 -
Docker三剑客之Docker-compose
在实际的生产中,一般都是使用一个docker容器部署一个应用进程,这种情况下,当部署多个不同应用或者一个应用部署多个实例的时候,就要运行多个容器。多个容器协同工作需要一个管理者来管理他们,定义这些容器如何相互关联。compose 就是做这件事的。compose、machine 和 swarm 是docker 原生提供的三大编排工具。简称docker三剑客。原创 2023-01-08 22:18:38 · 385 阅读 · 0 评论 -
Docker数据卷
我们在运行一个docker容器的时候,会产生一系列的数据文件,这些数据文件在我们删除docker容器的时候也会被删除,如果当我们希望把这些数据留下来当做其他的用途的时候,就需要将docker的文件持久化下来,实现数据共享,那么这个数据怎么共享呢。原创 2022-12-31 12:06:42 · 619 阅读 · 0 评论 -
从根本上理解Synchronized的加锁过程
从上面的描述无论是修饰代码块还是修饰方法,都要获取一个Monitor锁,那么什么是Monitor锁呢?Monitor即监视器,可以理解为一个同步工具或一种同步机制,通常被描述为一个对象。每一个Java对象就有一把看不见的锁,称为内部锁或者Monitor锁。任何一个对象都有一个Monitor与之关联,当且一个Monitor被持有后,它将处于锁定状态。Synchronized在JVM中基于进入和退出Monitor对象,通过成对的MonitorEnter和MonitorExit指令来实现方法同步和代码块同步。原创 2022-12-25 23:05:26 · 1180 阅读 · 0 评论 -
一篇ThreadLocal走天下
在面试的时候经常会有人文ThreadLocal是啥,首先明确的一点是:虽然ThreadLocal提供了一种解决多线程环境下成员变量的问题,但是ThreadLocal与线程同步无关,它解决的也不是多线程共享变量的问题。那么ThreadLocal到底是什么,又解决了什么问题呢?原创 2022-12-18 22:10:49 · 537 阅读 · 0 评论 -
并发基础(五):ThreadPoolExecutor源码解析
线程池将【创建出来的线程】都封装为 Worker,以Worker的形式维护线程运行任务的中断控制状态, 线程池模型的本质是生产者-消费者模型,生产者不断地往 workQueue 中丢 task, workQueue 负责源源不断地输送着任务,而 worker(线程) 不断地从workQueue获取任务来执行。原创 2022-12-11 22:03:29 · 538 阅读 · 0 评论 -
并发基础(四):线程池
线程池技术是一种多线程处理形式,将任务添加到队列中,通过线程池中创建出来的现成执行这些任务,省去了创建线程和销毁线程的消耗,我认为有点类似JAVA中Spring托管对象的思想在里面。原创 2022-11-26 23:33:06 · 868 阅读 · 0 评论 -
并发基础(二):CPU多级缓存与缓存一致性
为了解决CPU处理器与内存之间的读写效率的问题,在CPU和内存之间加入了高速缓存。那么这个缓存是如何解决它们之间的问题的呢?又带来了什么问题呢?通过这篇文章来了解一下这些问题原创 2022-11-01 10:00:00 · 1028 阅读 · 0 评论 -
并发基础(一):并发理论
线程安全在进程中有多个线程同时运行同一段代码时,线程安全就是通过同步机制保证各个线程都可以正常且正确的执行,运行结果与预期是一致的。线程不安全不提供数据访问保护,有可能出现多个线程先后更改数据造成所得到的数据是脏数据。原创 2022-09-19 23:21:39 · 225 阅读 · 0 评论 -
MySQL(二):SQL运行机制
尺有所短,寸有所长;不忘初心,方得始终。请关注公众号:星河之码我们一般都不会去操作数据库本身,而是通过SQL语句调用MySQL,由MySQL处理并返回执行结果。那么SQL语句是如何执行sql语句的呢?Sql语句执行过程图解:从图中可以看出sql的执行基本上分为五步:建立连接(Connectors&Connection Pool)查询缓存(Cache&Buffer)解析器(Parser)预处理器(preprocessor)查询优化器(Optimizer)操作引擎执行.原创 2022-04-08 10:15:00 · 778 阅读 · 0 评论 -
MySQL(一):架构体系
来聊聊MySQL的基础架构体系原创 2022-04-05 18:53:49 · 686 阅读 · 0 评论 -
Kafka工作原理
Kafka工作原理与过程KafKa核心概念补充Consumer Groupconsumer group是kafka提供的可扩展且具有容错性的消费者机制。组内有多个消费者共享一个公共的group ID。组内的所有消费者会协调在一起平均消费订阅主题的所有分区。Kafka Consumer Group 的特点一个partition中的消息只能被同一个consumer group中的一个consumer消费一个partition中的消息可以同时被多个consumer group消费一个组内cons原创 2021-09-26 21:28:45 · 197 阅读 · 0 评论 -
Redis 哨兵模式之实现原理篇
由经验而得的智慧,胜于学习而得的智慧。个人文章精选合集更多文章分享请关注微信公众号 星河之码Redis 哨兵集群实现高可用哨兵的介绍哨兵(sentinel)是Redis的高可用性(High Availability)的解决方案。主要有以下功能:集群监控:负责监控 redis master 和 slave 进程是否正常工作。消息通知:如果某个 redis 实例有故障,那么哨兵负责发送消息作为报警通知给管理员。故障转移:如果 master node 挂掉了,会自动转移到 slave nod.原创 2021-08-04 11:25:23 · 197 阅读 · 0 评论 -
Redis 主从复制
Redis 主从复制由经验而得的智慧,胜于学习而得的智慧。个人文章精选合集更多文章分享请关注微信公众号 星河之码Redis高可用的方案包括持久化、主从复制(及读写分离)、哨兵和集群。持久化侧重解决的是Redis数据的单机备份问题(从内存到硬盘的备份)而主从复制则侧重解决数据的多机热备。此外,主从复制还可以实现负载均衡和故障恢复。一、什么是主从复制主从复制指将一台Redis服务器(master)的数据其他的Redis服务器(slave)的过程。数据的复制是单向的,只能由主节点到从节原创 2021-07-30 11:12:29 · 355 阅读 · 0 评论 -
Redis性能解析--Redis为什么那么快
面试过程中经常会被问到「Redis 为什么快?」因为它是基于内存实现和单线程模型。很多人仅仅只是知道基于内存实现,其他核心的原因模凌两可。Redis 为了高性能,从各方各面都进行了优化, Redis 性能为什么如此高,不仅仅只是因为单线程和内存存储。Redis常用的数据类型常用的 5 种数据类型和应用场景如下:String: 缓存、计数器、分布式锁等。List: 链表、队列、微博关注人时间轴列表等。Hash: 用户信息、Hash 表等。Set: 去重、赞、踩、共同好友等。Zset:原创 2021-07-24 16:31:33 · 658 阅读 · 0 评论 -
Java 敏感信息脱敏
package com.cignacmb.util;import org.apache.http.util.TextUtils;import org.apache.commons.lang3.StringUtils;public class PolicyUtil { /** * 手机号前三后四脱敏 * @param mobile * @author edwin *...原创 2020-03-13 12:30:17 · 887 阅读 · 0 评论 -
JSONObject.toJSONString 过滤掉值为空的key
JSONObject.toJSONString 过滤掉值为空的key,若不需要过滤,需要用到fastjson的SerializerFeature序列化属性 public Token policyBigDate(String token,Map<String, Object> map){ Token ken = null; try { Str...原创 2020-03-13 12:34:07 · 1107 阅读 · 0 评论 -
Java IO 之CSV
csv作为一种excel的一种文本格式,数据格式简单,以","分割,常用来作为数据的导入导出操作。元数据以数组的形式传输,数组内部常见的数据格式:Java bean一:CSV输出 通过字符拼装得到getXXX,以反射的形式过去实体的get方法,从而取值package com.iaspec.atsign.sysmgrt.util;impor...原创 2020-03-13 12:33:32 · 187 阅读 · 0 评论 -
springMVC国际化配置
一:应用 多语言配置一般用在前端页面,后台返回的提示信息以及js中,在前后端交互过程中保证语言的一致性,一般采用cookie或者session来存取语言参数,以此保证同步。二:springmvc配置 在springMVC中添加如下配置项 <!-- 存储区域设置信息 SessionL...原创 2019-02-25 23:34:24 · 280 阅读 · 0 评论 -
ssm框架之配置
以下为本人对ssm框架配置项的一些理解,自己搭了一个ssm工程测试了一下,没有发现什么问题,如果发现有问题,欢迎指正,转载请注明出处。在ssm框架中主要的配置有web.xml,applicationContext.xml,springMVC.xml,mybatis.xml,以及jdbc.properties,log4j.properties,pom.xml等。(mybatis.xml中的配置简...原创 2019-02-13 20:35:20 · 381 阅读 · 0 评论 -
监听器,过滤器,拦截器
监听器(listener),过滤器(filter),拦截器(interceptor)是在开发过程中应用广泛的工具,对三者的区别以及作用做一个总结。如果发现有问题,欢迎指正,转载请注明出处。一.执行顺序: 在常用的ssm框架中,对于监听器,过滤器是配置在web.xml中,执行顺序为:context-param-->listener-->fi...原创 2019-02-18 02:15:43 · 484 阅读 · 0 评论 -
自定义注解----AOP
一.注解的作用: 在开发过程中时刻都会用到注解,它能够使得编程更加简洁,代码更加清晰。最近有用到自定义注解,记录一下注解的定义与使用。二.应用: 打日志、分析代码执行时间、权限控制、事务处理、访问频率控制、异常处理等三.自定义注解编写规则:Annotation型定义为@interface, 所有的Annotation会自动...原创 2019-02-03 13:47:15 · 418 阅读 · 0 评论