4 Juno99

尚未进行身份认证

暂无相关简介

等级
TA的排名 10w+

关于PC寄存器的两个问题

PC寄存器概念每个线程启动的时候,都会创建一个PC(Program Counter,程序计数器)寄存器。PC寄存器用来存储指向下一条指令的地址,也即,将要执行的指令的代码,又执行引擎来读取下一条指令。 每一个线程都有它自己的PC寄存器,也是该线程启动时创建的,是线程私有的,就是一个指针。 是一个非常小的内存空间,几乎可以忽略不记。也是运行速度最快的存储区域。也是唯一一个在Java虚拟机规范中没有规定任何OutOfMemoryError情况的区域。 这块内存区域很小,它是当前线程所执行的字节码的行号指

2020-05-26 12:37:03

Java类加载器之双亲委派机制

概念在学习双亲委派机制之前首先要了解Java类加载器以及类加载过程,参见我的另一篇博客:https://blog.csdn.net/Jhno99/article/details/106296449Java虚拟机对class文件采用的是按需加载的方式,也就是说,当需要使用该类时才会将它的class文件加载到内存生成class对象。而且加载某个类的class文件时,Java虚拟机采用的是双亲委派模式,即把请求交由父类处理,它是一种任务委派模式。工作原理如果一个类加载器收到了类加载请求,...

2020-05-25 21:54:49

类加载器以及类加载过程

一、类加载子系统的作用类加载器子系统负责从文件系统或者网络中加载class文件,class问价在文件开头有特定的文件标识。 ClassLoader只负责class文件的加载,至于它是否可以运行,则又Execution Engine决定。 加载的类信息存放在一块称为方法区的内存空间。除了类的信息外,方法区中还会存放运行时常量池信息,可能还包含字符串常量和数字常量(这部分常量信息是Class文件中常量池部分的内存映射)举例来说:二、类的加载过程step1:加载通过一..

2020-05-25 16:04:15

IDEA插件加载失败,Marketplace plugins are not loaded问题

打开idea的插件市场会加载很长时间,最终显示加载失败第一次遇见这个问题的时候,搜到一个解决方案是将Appearance&Behavior===》System Settings===》Updates内的Use secure connection选项的√去掉,顺利解决。第二次又遇见这个问题,但此时没有勾选这一选项,发现是防火墙没有关,遂关掉,顺利解决。...

2020-05-23 16:14:19

OOP编程七大原则

1.开闭原则 开闭原则是七大设计原则中最常见、最基本的,在spring的静态代理模块就有用到。 定义:软件实体对扩展是开放的,但对修改是关闭的。意思就是说在不修改软件实体的基础上去扩展其他功能。 问题的由来:在软件的生命周期的,因为变化、升级和维护等原因需要对软件原有代码进行修改时,可能会给旧的代码引入错误,也可能还是我们不得不对整个功能进行重构,并且需要原有代码经过重新测试。 解决办法: 当软件需要变化时,尽量通过扩展软件实体的行为来实现变化,而不是...

2020-05-18 16:06:19

深入理解CAS

概念CAS,也就是compare and swap,比较并交换,是一条CPU并发原语,实现并发算法时常常用到的一种锁机制。它是区别于synchronized同步锁的一种乐观锁。synchronized关键字保证同步时是独占资源的,是悲观锁。原理CAS是一种无锁算法,CAS有3个操作数,内存值V,旧的预期值A,要修改的新值B。当且仅当预期值A和内存值V相同时,将内存值V修改为B,否则什么...

2020-04-27 16:20:21

深入理解Java虚拟机

一、概念(什么是JVM) VM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。 引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序...

2020-04-14 09:56:16

git分支相关命令以及分支工作流

创建分支git branch <分支名> git branch -v 查看分支切换分支git checkout <分支名> 创建并切换到本分支 git checkout -b <分支名>合并分支先切换到主干 git checkout master (只有master才有merge操作权限) git merge <分支名>...

2020-04-08 20:42:56

systemtcl restart 和systemtcl reload的区别

systemtcl restart 和systemtcl reload的区别restart = stop+ startreload = 重新读取配置文件其他CentOS7关于服务的常用命令restart = stop+ startreload = 重新读取配置文件有些服务是不提供reload功能的大部分服务的reload是不用重启服务,只是重新加载配置文件,这样就不会把服务停掉了。其他C...

2020-04-08 20:29:31

SpringMVC的工作流程

简洁明了,源自尚硅谷老师课件

2020-04-07 21:09:32

SpringMVC中如何解决post和get请求的中文乱码问题

Post请求中文乱码解决方案最直观的方法就是配置过滤器在web.xml中添加如下代码块<filter> <filter-name>CharacterEncodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEnco...

2020-04-07 20:24:26

Java基础知识

1. 重载和重写的区别:https://blog.csdn.net/wintershii/article/details/805587392. String 和 StringBuffffer、StringBuilder 的区别是什么?String 为什 么是不可变的? https://www.cnblogs.com/su-feng/p/6659064.html3.自动装...

2020-03-29 17:55:31

Java单例设计模式(Singleton)

单例设计模式,即某个类在整个系统中只能有一个实例对象可被获取和使用的代码模式。例如:代表JVM运行环境的Runtime类要点某个类只能有一个实例 :构造器私有化 它必须自行创建这个实例:含有一个该类的静态变量来保存这个唯一的实例 他必须自行向整个系统提供这个实例:对外提供获取该实例对象的方式,可以直接暴露或者用静态变量的get方法获取常见形式1.饿汉式:直接创建对象,不存在线...

2020-03-28 10:47:00

使用Nginx实现负载均衡以及负载均衡算法

总结地非常详细的负载均衡算法讲解https://blog.csdn.net/gu_wen_jie/article/details/82149003

2020-03-26 11:33:19

Nginx配置文件nginx.conf解读

nginx配置文件由三部分组成第一部分 全局块从配置文件开始到events块之间的内容,主要会设置一些影响nginx服务器整体运行的配置指令。比如,worker_process 1;这是nginx服务器并发处理服务的关键配置,worker_process值越大,可以支持的并发处理量也越多,但是会受到硬件、软件设备的制约。第二部分 events块events块设计的指令...

2020-03-22 17:46:44

nginx基本概念

什么是nginx Nginx 是高性能的 HTTP 和反向代理的服务器,处理高并发能力是十分强大的,能经受高负 载的考验,有报告表明能支持高达 50,000 个并发连接数。 反向代理(1)正向代理 需要在客户端配置代理服务器进行指定网站访问 (2)反向代理 暴露的是代理服务器地址,隐藏了真实服务器 IP 地址。 负...

2020-03-21 22:09:02

Docker私有仓库搭建

Docker官方的Docker hub(https://hub.docker.com)是一个用于管理公共镜像的仓库,我们可以从上面拉取镜像 到本地,也可以把我们自己的镜像推送上去。但是,有时候我们的服务器无法访问互联网,或者你不希望将自己的镜 像放到公网当中,那么我们就需要搭建自己的私有仓库来存储和管理自己的镜像。私有仓库搭建拉取私有仓库镜像 docker pull...

2020-03-20 22:08:02

docker compose-概述

微服务架构的应用系统中一般包含若干个微服务,每个微服务一般都会部署多个实例,如果每个微服务都要手动启停,那维护的工作量会很大。要从Dockerfile build image 或者去dockerhub 拉取image 要创建多个container 要管理这些container服务编排:按照一定的业务规则批量管理容器Docker Compose 是一个编排多容器分布式部署的工具,提供命...

2020-03-20 20:56:03

dockerfile镜像原理

在讲解镜像原理之前首先了解以下知识: Linux文件系统由bootfs和rootfs两部分组成 bootfs:包含bootloader(引导加载程序)和 kernel(内核) rootfs: root文件系统,包含的就是典型 Linux 系统中的/dev,/proc,/bin,/etc等标准目录和文件 不同的linux发行版,bootfs ...

2020-03-20 11:35:15

Docker应用部署

MySQL部署需求:在Docker容器中部署MySQL,并通过外部MySQL客户端操作MySQL Server首先明确一下几点:容器内的网络服务和外部机器不能直接通信 外部机器和宿主机可以直接通信 宿主机和容器可以直接通信因此,我们进行一个端口映射,如下图,外部容器访问3307端口,就映射到3306端口步骤:搜索MySQL镜像 docker search mys...

2020-03-18 11:25:06

查看更多

勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv3
    勤写标兵Lv3
    授予每个自然周发布7篇到8篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 学习力
    学习力
    《原力计划【第二季】》第一期主题勋章 ,第一期活动已经结束啦,小伙伴们可以去参加第二期打卡挑战活动获取更多勋章哦。
  • 原力新人
    原力新人
    在《原力计划【第二季】》打卡挑战活动中,成功参与本活动并发布一篇原创文章的博主,即可获得此勋章。