摘要:
1.垃圾收集算法介绍 垃圾收集算法有很多,并且各个虚拟实现的方式也有所不同,并且其中大量的设计程序细节,所以这里只讨论算法的基本思路。 常见的垃圾收集算法:1.标记-清除算法 2.复制算法 3.标记-整理算法 4.分代收集算法 下面我们开始逐一介绍每一种算法 1.1 标记-清除算法 标记-清除算法是 阅读全文
摘要:
1.目标问题 浏览器向服务器发送一个hello请求,服务器接受请求并处理,响应Hello Word 字符串。 使用环境: jdk1.8 + maven3.6.0 + IDEA2019.1 2.实现步骤 2.1 springboot官方自动生成器 打开SpringBoot 官网: 链接 在页面最下方 阅读全文
摘要:
1.概述 java 面向对象的三大特性就是封装、继承 和多态。接下来会详细解释这三大特性的意义和作用 2.封装 2.1 封装的概念及作用 封装就是将类特有的属性隐藏起来,对外部只能是有特定的方式访问,同时,外部只需要调用该类实例的方法,并不需要知道该类实例的方法是如何实现的。就好比开车,我们只需要知 阅读全文
摘要:
1.概述 1.1垃圾回收需要完成的三件事 Lisp语言是第一门真正使用内存分配和动态垃圾收集技术的语言。当Lisp还在胚胎时期时,人们就开始思考GC需要完成的三件事: (1) 哪些内存需要回收 (2) 什么时候回收 (3) 如何回收 1.2 为什么要了解GC和内存分配 虽然经过半个多世纪的发展,目前 阅读全文
摘要:
1.悲观锁 for update 悲观锁认为每次查询数据数据都会造成数据的更新或者丢失问题,所以每次查询都会加上排它锁。 如图所示,当两条线程同时访问该sql语句时,可能会造成脏读数据user_money为原来的两倍(假设线程一执行完第一句等待,线程二将两句全部执行完,这时线程一如果继续执行则会脏读 阅读全文
摘要:
1.运行时数据区域 1.程序计数器:是一块较小的内存空间,它可以看作是当前线程所执行字节码的行号指示器,字节码解释器工作时就是通过改变程序计数器的值来选取下一条指令的地址。分支、循环、跳转、异常处理、线程恢复等基础功能都是由这个计数器来完成。 每一条线程都要有一个属于自己的独立的程序计数器,所以该块 阅读全文
摘要:
1.基本概念 至于什么是面向对象、为什么面向对象、面向对象到底有什么好处 请移步这里进行了解 1.1 面向过程与面向对象的区别与优缺点 面向过程:面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用每一个函数,适合简单的任务。 面向对象:面向对象是把构 阅读全文
摘要:
说明:由于该数据结构是由java并且是原生实现,所以与C有一些出入,不过原理是相同的 1.链表的定义 为了表示线性表元素a与a+1的逻辑关系,存储数据时,除了存储元素本身的信息之外,还存储了直接后继元素的位置信息。这两部分组成的数据元素被称为“结点”,一个结点分为两部分,存放数据元素信息的部分被称为 阅读全文
摘要:
说明:由于该数据结构是由java并且是原生实现,所以与C有一些出入,不过原理是相同的 1线性表的定义 一个线性表是由n个元素构成的有限序列(n>=0)。n=0时,线性表称为空表;当n>0时,线性表表示为(a1,a2,a3...an)a1称为线性表的第一个元素,an成为线性表的最后一个元素。除了第一个 阅读全文
摘要:
这里先简单介绍几种流程控制语句 包括if/if-else、switch语句 1.三大流程控制结构 所谓流程控制,就是说要控制程序的执行方式,根据不同的情况执行不同的代码,从而得到不同情况下的不同结果。 首先,我们先了解一下常见的三大流程结构:顺序,分支和循环 1.1 顺序结构: 顺序结构是这几种结构 阅读全文