![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
笔记
编程界的切格瓦拉
独立不改,周行不殆。
展开
-
nacos是如何做不同namespace的隔离的
Nacos对于不同的命名空间的隔离是通过,在客户端发送请求的时候,就附带了一个name space参数。那么客户端是如何进行name space的隔离的呢?是Client包下面的NacosConfigService这个类,内部封装了namespace变量。用户可以通过传properties进去,来指定。...原创 2020-10-11 01:24:55 · 1056 阅读 · 0 评论 -
How to solve startup.sh: 100: startup.sh: [[: not found when starting nacos .
How to solve startup.sh: 100: startup.sh: [[: not found when starting nacosuse this bash -f startup.sh -m standloneinstead ofsh startup.sh -m standlone原创 2020-09-06 11:02:58 · 176 阅读 · 0 评论 -
内存空间的分配与回收
当一个进程需要一定内存的时候,操作系统要怎样记录,哪些内存已经被分配出去,哪些还空闲以及进程所需要的内存应该在哪里开辟呢?当一个进程运行结束之后,怎样将这个进程占用的内存空间进行回收呢?这就涉及到内存空间的分配与回收。操作系统对内存的管理包括两个方面。1 内存空间的分配与回收内存空间管理 一般会采用基本分页存储管理的思想,就是把内存分成一个个的小分区,再按照进程大小把进程拆分成一个个小部分,这样不会造成内存碎片,提高了内存的利用率。页式管理将内存空间分成一个个大小相等的分区(每个4k),每原创 2020-07-01 15:27:54 · 652 阅读 · 0 评论 -
逻辑地址与物理地址
物理地址是一个对象在内存单元中的真正的地址。逻辑地址是一个对象相对于进程起始位置的相对地址。原创 2020-07-01 14:09:57 · 435 阅读 · 0 评论 -
操作系统虚拟页的页表表项
为了能够实现页面置换算法中的请求调页,需要在页表的下面增加一些位,来辅助完成这样的工作。每一页上的表项里面有4个位是比较重要:逻辑页号------------访问位--------修改位--------保护位----------驻留位----------物理页帧号驻留位表示该页是在内存中还是在外存。如果该位为1 代表该页位于内存中,0表示位于外存中。保护位表示允许对该页做何种类型的访问,如只读,可读写,可执行等修改位表示此页在内存中是否被修改过。当系统回收该物理页面时,根据此位来决定是否把它原创 2020-07-01 13:50:52 · 1012 阅读 · 0 评论 -
虚拟内存的概念与实现
首先内存(主存)它的读写速度是要比硬盘快很多的,但是内存的容量相对于硬盘来说非常低,为了解决这个问题,就引入了虚拟内存的概念。虚拟内存的目的虚拟内存的目的有三个:1 将将储存视为操作系统的高速缓存,在主存中,我们只保留活动的区域,而那些不常活动的对象就放在硬盘中。2 为进程提供一个统一的地址空间,来简化内存的管理。3 保护进程的地址空间不被破坏。一些基本概念页表:可以理解为位于内存中的一个大数组,它的基本组成单位是页表项;页表项:分为两个部分:标志位和地址位虚拟页:主存和磁盘之间的基本传递原创 2020-07-01 12:06:00 · 245 阅读 · 0 评论 -
中断、异常、系统调用的概念
系统调用是由应用程序发起的,意思是应用程序主动向操作系统发出服务请求。异常是由不良的应用程序发起的,意思是非法指令或者其他坏的处理状态,比如内存出错。中断是由外设发起的,它来自于不同硬件设备的计时器或者网络的中断。...原创 2020-07-01 10:06:16 · 439 阅读 · 0 评论 -
Minor gc和 full gc的触发条件
Minor gc的触发条件是eden区被打满。full gc的触发条件有四个:1 System.gc()2 老年代空间不足3 方法区空间不足不过JDK1.8之后方法区移除了,永久代改成了元空间,所以方法区应该不太能可能成为瓶颈。4 通过minor gc后,进入老年代的平均大小,大于老年代的可用的最大连续内存。...原创 2020-07-01 09:36:32 · 110 阅读 · 0 评论 -
java内存快照工具jmap使用方法
jmap -histo:live {pid} 打印每个class的实例数目,内存占用类全名信息。注:[C是char数组。[I是int数组。[是byte数组。jmap -dump:format=b,file=aaa.txt {pid}输出内存快照到aaa.txt.这个输出出来的内存快照一般都比较大,至少要数M...原创 2020-07-01 09:08:37 · 537 阅读 · 0 评论 -
JVM三种自带的类加载器
Jvm自带三种类加载器,分别是BootStrapClassLoader,ExtClassLoader,AppClassLoader。原创 2020-06-17 18:00:05 · 622 阅读 · 0 评论 -
Java类的主动使用和被动使用
Java对类的使用包括主动使用和被动使用。其中被动使用不会初始化类,但有可能会加载类,并且在加载的过程中,如果遇到了class文件的缺失,或者是找不到class文件类加载器只会在首次主动使用它们的时候才会报错,如果一直都没有主动使用则不会报错。主动使用的情况分为6种。1.New,直接使用。2访问某个类或接口的静态变量。3调用静态方法。4反射某个类。5初始化一个子类。被动使用的情况分为三种。1通过子类调用父类的静态方法,子类不会被初始化。2构造一个该类的数组,该类不会被初始化。3引用类中原创 2020-06-17 14:46:49 · 181 阅读 · 0 评论 -
进程和线程的区别以及各自特点
进程是操作系统中独立运行的资源分配的基本单位。线程是进程下面的执行某个任务的轻量级的单元。举个例子,比如说打开了一个微信,就是开了一个进程。而微信里面,每传输一个语音,或者弹出一个对话框或者传输一段文字,都会开一个单独的线程。在java的技术栈里面,不同的进程有各自的堆和方法区,而同一进程下的不同线程,堆和方法区是共享的。...原创 2020-06-17 12:01:12 · 144 阅读 · 0 评论 -
Http报文结构
Http请求报文包含两个部分:报文首部和报文主体。这两个部分之间使用一个空行来划分。其中报文主体可以为空。报文首部的结构。一请求行。GET /index.html HTTP/1.1二首部字段1 User-agent用于传达浏览器的种类。比如 User-Agent: Mozilla/5.02 Accept.用于传达客户端,希望服务端返回的文件类型以及各个文件类型的相对的优先级。accept:Text/html,Application/xml,Application/xhtml...原创 2020-05-25 09:13:15 · 214 阅读 · 0 评论 -
什么是restful风格的API
1每一个urI表示一种资源也就是网络上的一个实体,只包含名词,不包含动词。2客户端和服务器端之间,传递这种资源的表现层。3客户端通过get post put delete4个http动词,对服务器端资源进行增删改查来实现"表现层状态转化"...原创 2020-05-25 08:09:57 · 187 阅读 · 0 评论 -
Web开发中,Session的工作原理
!原创 2020-05-23 23:05:50 · 192 阅读 · 0 评论 -
内存泄漏和内存溢出常见的情况,内存溢出的解决办法
内存泄露memory leak是指有一些对象无法及时的被GC掉 导致一些内存空间无法释放。内存溢出out of memory是指在内存泄漏堆积到一定程度之后,把jdk的内存打满。内存泄漏的一些常见的情况。:1一些静态集合类比如HashMap ArrayList所引用的对象object不能被及时的Remove掉2 集合里面的对象属性被修改以后,再调用remove方法不能够起作用。3监听器我们在一些监听器中会产生一些listener对象,但是在释放被监听的对象的时候,却忘记去删除这些监听器,这就增大了内原创 2020-05-23 21:06:14 · 484 阅读 · 0 评论 -
2020-05-23
内存溢出和内存泄露的区别,和对应的jdk调优方法。内存泄露memory leak是指有一些对象无法及时的被GC掉 导致一些内存空间无法释放。内存溢出out of memory是指在内存泄漏堆积到一定程度之后,把jdk的内存打满。内存泄漏的一些常见的情况。:1一些静态集合类比如HashMap ArrayList所引用的对象object不能被及时的Remove掉2 集合里面的对象属性被修改以后,再调用remove方法不能够起作用。3监听器我们在一些监听器中会产生一些listener对象,但是在释放被原创 2020-05-23 21:00:15 · 100 阅读 · 0 评论 -
MyBatis中使用POJO对象定义QueryVo来实现查询
where查询条件具有单一性的话,我们可以通过#{} ${}来表示对某字段的筛选;但是如果需要进行复杂查询,也可以通过定义一个pojo对象来实现。首先,介绍一下OGNL表达式OGNL表达式支持通过类名.属性名来达到类名.成员方法名()的效果。如一个自定义的User类 user对象中,可以通过user.username来访问user.getUsername()。编写实体类(记得mysql里建个表哦)/entity getter setter省略/public class User implem原创 2020-05-09 09:40:11 · 1055 阅读 · 0 评论