- 博客(83)
- 收藏
- 关注
原创 黑马微服务—Docker
镜像就是包含了引用程序、程序运行的系统函数库、运行配置等文件的文件包。构建镜像的过程其实就是把上述文件打包的过程。
2024-08-05 21:28:15
1532
2
原创 Elasticsearch(高性能分布式搜索引擎)-上篇
首先简单介绍了elasticsearch,后又了解了索引库的操作、文档操作以及JavaRestClient
2024-08-05 21:07:46
1263
原创 SpringMVC接收数据+SpringTask
介绍了@RequestMapping注解的作用以及Param参数、 路径参数 JSON参数、 Cookie数据请求头数据的接收以及Spring Task
2024-06-05 09:53:08
1119
原创 第一章计算机网络
网络(Network)由若干**结点(Node)和连接这些结点的链路(Link)**组成。比如图1中左侧网络是由四个节点和三个链路组成。图1 网络多个网络还可以通过路由器互连起来,这样就构成了一个覆盖范围更大的网络,即互联网(或互联网)。因此,互联网是“网络的网络(Network of Networks)”因特尔(Internet)是世界上最大的互联网络(用户数以亿计,互联的网络数以百万计)。internet与Internet的区别。
2024-03-10 11:31:43
1389
原创 第十七章垃圾回收器
垃圾收集器没有在规范中进行过多的规定,可以由不同的厂商、不同版本的JVM来实现。由于JDK的版本处于高速迭代过程中,因此Java发展至今已经衍生了众多的GC版本。从不同角度分析垃圾收集器,可以将GC分为不同的类型。垃圾收集机制是Java的招牌能力极大地提高了开发效率。这当然也是面试的热点。那么,Java常见的垃圾收集器有哪些?截止JDK 1.8,一共有7款不同的垃圾收集器。每一款不同的垃圾收集器都有不同的特点,在具体使用的时候,需要根据具体的情况选用不同的垃圾收集器。
2024-03-10 11:21:00
934
原创 第十六章垃圾回收相关概念
随着元数据区的引入,方法区内存已经不再那么窘迫,所以相应的ooM有所改观,出现00M,异常信息则变成了:“java.lang.OutOfMemoryError: Metaspace"。对于一个普通的对象,如果没有其他的引用关系,只要超过了引用的作用域或者显式地将相应(强)引用赋值为null,就是可以当做垃圾被收集了,当然具体回收时机还是要看垃圾收集策略。单例的生命周期和应用程序是一样长的,所以单例程序中,如果持有对外部对象的引用的话,那么这个外部对象是不能被回收的,则会导致内存泄漏的产生。
2024-03-10 11:00:02
825
原创 第十五章垃圾回收相关算法
标记阶段:引用计数算法、可达性分析算法清除阶段:标记清除算法、复制算法、标记-压缩算法如图1中,如果p=null,按理来说,后面三个节点也不要了。但是由于都存在引用,计数器都为1,导致引用计数算法无法将其视为垃圾进行GC,所以出现了内存泄漏。但是注意,这种内存泄漏只在引用计数算法中存在,其他算法可以解决这个问题。又因为Java中没有使用这类算法,所以Java中不存在这种内存泄漏问题。程序运行结果中出现了GC,则说明Java确实使用的不是引用计数算法,因为即使栈中两个引用为Null了,但是堆中这两个实例还分
2024-03-10 10:51:23
1088
原创 第十四章垃圾回收概述
垃圾收集,不是Java语言的伴生产物。早在1960年,第一门开始使用内存动态分配和垃圾收集技术的Lisp语言诞生。关于垃圾收集有三个经典问题:哪些内存需要回收?什么时候回收?如何回收?垃圾收集机制是Java的招牌能力,极大地提高了开发效率。如今,垃圾收集几乎成为现代语言的标配,即使经过如此长时间的发展,Java的垃圾收集机制仍然在不断的演进中,不同大小的设备、不同特征的应用场景,对垃圾收集提出了新的挑战,这当然也是面试的热点。什么是垃圾( Garbage)呢?垃圾是指在。
2024-03-10 09:10:09
692
原创 第十三章StringTable
比如s3.intern(),则在堆中的字符串常量池就有一个新的引用,该引用指向s3在堆中指向的new String(“11”)对象。当s4 = '‘11’'时,很容易知道s4的“11”是指向字符串常量池中的“11”,而由于字符串常量池中只保存了指向堆中“11”的引用,所以s4实际上也是指向堆中的“11”对象。调用 intern 方法时,如果根据 equals(Object) 方法的判断,字符串池中已包含一个与此字符串对象相等的字符串,则返回字符串池中的字符串。大的网站平台,需要内存中存储大量的字符串。
2024-03-10 09:08:23
582
原创 第十二章执行引擎
图1 JVM架构前面讲完了图1JVM架构中的大部分,只剩下执行引擎没讲了,这次讲一下执行引擎。图2 执行引擎执行引擎是Java虚拟机核心的组成部分之一。“虚拟机”是一个相对于“物理机”的概念,这两种机器都有代码执行能力,其区别是物理机的执行引擎是直接建立在处理器、缓存、指令集和操作系统层面上的,而虚拟机的执行引擎则是由软件自行实现的,因此可以不受物理条件制约地定制指令集与执行引擎的结构体系,能够执行那些不被硬件直接支持的指令集格式。JVM的主要任务是负责装载字节码到其内部,但。
2024-03-10 09:06:03
694
原创 第十章对象的实例化内存布局与访问定位
意思是所有用过的内存在一边,空闲的内存在另外一边,中间放着一个指针作为分界点的指示器,分配内存就仅仅是把指针向空闲那边挪动一段与对象大小相等的距离罢了。意思是虚拟机维护了一个列表,记录上哪些内存块是可用的]再分配的时候从列表中找到一块足够大的空间划分给对象实例,并更新列表上的内容。将对象的所属类(即类的元数据信息)、对象的HashCode和对象的GC信息、锁信息等数据存储在对象的对象头中。如果内存不是规整的,已使用的内存和未使用的内存相互交错,那么虚拟机将采用的是空闲列表法来为对象分配内存。
2024-02-24 11:35:32
729
原创 第八章 堆
图1 JVM架构-简图前面已经介绍了类加载子系统、本机方法接口和本地方法库,以及运行时数据区中的程序技术器、本地方法栈、虚拟机栈。本节介绍运行时数据区的堆一个JVM实例(一个实例对应一个进程)只存在一个堆内存,堆也是Java内存管理的核心区域。Java堆区在JVM启动的时候即被创建,其空间大小也就确定了。是JVM管理的最大一块内存空间。堆内存的大小是可以调节的。try {Run——>Debug Configurations得到图2图2 修改堆内存在红色矩形框中输入。
2024-02-24 11:29:27
1187
原创 第七章 本地方法栈
第七章 本地方法栈1. 本地方法栈Java虚拟机栈用于管理Java方法的调用,而本地方法栈用于管理本地方法(第六章本地方法)的调用。本地方法栈,也是线程私有的。允许被实现成固定或者是可动态扩展的内存大小。(在内存溢出方面是相同的)如果线程请求分配的栈容量超过本地方 法栈允许的最大容量,Java虚拟机将会抛出一个 stackoverflowError 异常。如果本地方法栈可以动态扩展,并且在尝试扩展的时候无法申请到足够的内存,或者在创建新的线程时没有足够的内存去创建对应的本地方法栈,那么Jav
2024-02-24 11:19:03
262
原创 第六章 本地方法接口
简单地讲,一个Native Method就是一个Java调用非Java代码的接口。该方法的实现由非Java语言实现,比如c。这个特征并非Java所特有,很多其它的编程语言都有这一机制,比如在c++中,你可以用extern "c"告知C++编译器去调用一个c的函数。在定义一个native method时,并不提供实现体(有些像定义一个Java interface),因为其实现体是由非java语言在外面实现的。本地接口的作用是融合不同的编程语言为Java所用,它的初衷是融合c/C++程序。
2024-02-24 11:17:31
932
原创 第五章虚拟机栈
由于跨平台性的设计,Java的指令都是根据栈来设计的。不同平台CPU架构不同,所以不能设计为基于寄存器的。优点是:跨平台,指令集小(八位),编译器容易实现。基于寄存器的方式和具体CPU耦合比较高,指令集是十六位的缺点是:性能下降,实现同样的功能需要更多的指令。
2024-02-24 11:15:37
931
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人