- 博客(11)
- 收藏
- 关注
原创 java多线程(三)—— java内存模型JMM
java多线程(三)—— java内存模型JMM 此篇文章准备研究的就是java中的JMM,也就是java内存模型(Java Memory Model),那到底为什么要有JMM?什么又是JMM呢?它又有什么作用?它和java内存结构又有什么样的区别?1、cpu缓存 要知道为什么有JMM,JMM是什么?我们得要从cpu缓存模型说起,当我们介绍完cpu缓存模型,并且知道了cpu缓存模型中所会出现的问题以后,对于JMM就会有很直观的认识,那cpu缓存模型长啥样呢?请由我慢慢道来。1.1、cpu缓存模型
2021-06-01 19:40:10
195
原创 java多线程(二)—— synchronized锁原理
java多线程(二)—— synchronized锁原理1、java对象头1.1、普通对象头 java中的对象是由三部分组成,分别是对象头、对象体和对齐填充;对象体是存储一个对象属性值和父类的属性值的地方,并且jvm虚拟机中要求一个对象大小必须是8字节的整数倍,通过对齐填充达到这个要求;而通过对象头来描述一个Java对象是何种对象,且是属于那个类的对象,对象头中的Klass Word存储的是Class对象的地址,表明该对象是属于那个类,标记字段Mark Word则存储了该对象运行时数据,如哈希码(h
2021-05-27 22:37:16
361
原创 java多线程(一)—— 基础使用篇
java多线程(一)—— 基础使用篇1、线程的创建1.1、继承Threadpublic class main { public static void main(String[] args) { Thread t1 = new MyThread();//创建一个自己定义的线程 t1.setName("mythrea");//设置线程的名字 t1.start();//通过调用start()来进行线程的运行 }}class MyThre
2021-05-24 14:54:46
114
原创 springmvc——DispatcherServlet源码解析
1、DispatcherServlet的类结构。 以上就是DispatcherServlet的类结构,它最终是继承了HttpServlet,所以它最终会被tomcat容器所实例化,然后具体对于DispatcherServlet的初始化和对请求的响应是通过DispacherServlet、FrameworkServlet、HttpServletBean一起联合实现。2、DispatcherServlet的初始化调用DispatcherServlet的无参构造函数。然后再调用从HttpSe
2021-05-15 10:53:21
963
2
原创 javaweb项目的文件结构
javaweb项目的文件结构1、前言 最近使用Intellij idea搭建一个springmvc的web项目时,突然发现,自己好像对web项目的文件结构不是很清晰,对于项目中应该有那些文件夹、文件夹里面又是怎么的文件、他们的作用又是什么?这些好像有点似懂非懂,所以索性就好好研究一下javaweb项目的文件结构是怎样的,如何用Intellij idea搭建一个基于spirngmvc框架的javaweb项目,又是如何部署到tomcat服务器中?2、tomcat项目结构 我想要研究清楚javaweb
2021-05-13 19:48:59
15490
3
原创 jvm详解(二)—— 类加载子系统
类加载子系统1、class文件结构 我们都知道,Java程序的运行过程是首先编写java源程序,然后通过编译器将源程序编译成class文件,也就是Java字节码文件,然后通过jvm虚拟机将字节码文件加载到内存中,再由jvm虚拟机中的执行引擎进行执行字节码中的指令,那jvm虚拟机是如何根据字节码文件将对应的数据或指令加载到内存中呢?又是如果去解析且执行对应的指令呢?我们就得先去了解一下字节码文件的结构是怎样的,这样就能知道jvm虚拟机是如果去加载内存、又如果去解析指令。1.1 class文件的组成
2021-04-21 20:47:06
151
2
原创 jvm详解(一)—— jvm结构与运行时数据区
jvm(一)1、jvm的基础认识 定义: jvm是java程序的运行环境的一部分,也是最重要的一部分,它与操作系统直接交互,而操作系统能够操作计算机硬件,所以jvm能间接的操作计算机硬件。java代码通过编译器将其编译成字节码文件,jvm通过加载字节码文件,然后进行运行内存的申请与字节码文件中指令的解释,达到java程序运行的目的。 特性:跨平台。通过安装不懂平台的jvm虚拟机来实现跨平台性。垃圾回收 组成:类加载器子系统运行时数据区执行引擎2、jvm的位置关系
2021-04-16 19:50:37
198
原创 第二章 线性表之单链表(二)
第二章 线性表(二)1、链表 定义: 链表是一种逻辑结构为线性表的格式,而它在物理存储单元上是非连续、非顺序的存储结构。他的存储的元素单元由一个链表节点所构成,这个节点包括对应的存储数据和指向下一个节点的指针,链表之间的连接也就是靠节点中的指针来进行关联。它和顺序表的差别就是存储结构的不同。 链表节点: 在链表中,每一个数据元素包括两个部分,一个部分是数据部分(data),另一个部分是指向下一个节点的指针(next),链表通过一个数据节点中的next指针,指向下一个节点来达到将所有的数据节点连接
2020-11-14 15:22:52
108
原创 第二章 线性表之顺序表(一)
第二章 线性表(一)1、 线性表的基本概念 线性表定义:线性表是具有相同数据类型的n个数据元素的有序序列,其中n为表常,当n=0时即为空表,一般表示为:L=(a1,a2,a3,a4,....,ai,ai+1..,an)L = (a_1,a_2,a_3,a_4,....,a_i,a_{i+1}..,a_n)L=(a1,a2,a3,a4,....,ai,ai+1..,an) 其中aia_iai表示的就是数据结构中的数据元素,它是由多个数据项所构成,表示的是第i个元素,这个
2020-11-13 16:14:40
263
原创 第一章 数据结构基本概念
第一章 数据结构基本概念1.1 数据结构概念和术语数据:数据使信息的载体,是描述客观事物属性的数、字符以及所有能输入到计算机中并被计算机程序处理的符号的总称。数据元素:数据元素是数据的基本单位,通常作为一个整体进行考虑和处理,数据元素是再数据结构中被考虑操作的最小单位。它一般情况下由若干个数据项组成,数据项即是构成数据元素的最小单位,也是最基本的数据单位。例如一条学生记录就是一个数据元素,而它是由学号、姓名、性别等小的数据项所构成。数据对象:就是数据元素的一个集合,就叫做数据对象,例如:一个班的学生
2020-10-20 09:36:29
90
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人