DeepSeek速成巩固基础JVM和类加载和数据结构。

java编译过程:文件.java->(java.c)->文件.class

可以通过JVM实现跨平台

JDK包括Jre和JVM,Jre包括JVM

堆:新生代和老年代

新手代包括Eden和s区,Eden填满了去填S1,S1满了去S2,

S2满了去老年代。

一般是1:2,堆空间,新生代能用的是90%,前复制算法,后标记-清理-整理算法。

内部回收问题MinGC,新生代内存不足是触发MinGC,且MinGC会触发MajorGC。

持久代:方法区内放静态常量,类之类的,基本上不会被清理。

类加载

A.java->(用java.c编译)字节码文件A.class->运行阶段(加载,验证,准备,解析,初始化)->电脑能阅读的文件,整体过程

类加载器:启动类继承-----扩展类继承-----系统类继承-----自定义类加载器。

这就是双亲委派模型,先让父类加载器完成。

常用的数据结构:数组,链表,堆,栈,队列,树,图和hash表。

结构:

线性结构:一对一。

树形结构:一对多。

图形结构:多对多。

数组:

随机访问特性:原理内存连续分配。

访问快,但是删除增加慢。

索引的底层是数组。索引和数组的优点是查询速度快,删除增加慢。

链表:有指针域和数据域组成,数据指向下一个指针域。和数组相反优点是查询慢,删除增加快。

栈:就像杯子,先进后出,后进先出。

队列:排队,先进先出,后进后出。

树:

  • 1)每个节点有0个或多个子节点;
  • 2)没有父节点的节点称为根节点;
  • 3)每一个非根节点有且只有一个父节点;
  • 4)除了根节点外,每个子节点可以分为多个不相交的子树;
  • 5)右子树永远比左子树大,读取顺序从左到右

二叉树:

前中后序:

根的位置:根左右,左根右,左右根。

堆:堆可以看做是一颗用数组实现的二叉树

根节点最大的堆叫做最大堆或大根堆,根节点最小的堆叫做最小堆或小根堆。

哈希表:左侧是数组,右侧是链表,key-value,数组指向链表,链表指向链表。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值