当前位置: 首页 > news >正文

什么是数据结构?

1、一种非常经典的数据结构。
栈数据结构:stack
2、什么是数据结构?
数据结构通常是:存储数据的容器。而该容器可能存在不同的结构。
数据结构和 java 语言实际上是没有关系,数据结构是一门独立的学科。
在大学计算机专业中,数据结构是必须的一门课程。
3、常见的数据结构有哪些?
数组、链表、图、二叉树、栈、队列. . . .
java 语言把常用的数据结构都已经写好了,可以直接用就行。但如果期望有更高的造诣,
建议数据结构还是需要精通一下。
4、和数据结构通常出现在一块的是:算法。
算法:排序算法、查找算法、…算法

JVM三块主要的内存:栈内存、堆内存、方法区内存。
方法区最先有数据:方法区中放代码片段。存放 class 字节码。
栈内存:方法调用的时候,该方法需要的内存空间在栈中分配。
方法不调用是不会在栈中分配空间的。方法只有在调用的时候才会在栈中分配空间,并且调用时就是压栈。
方法执行结束之后,该方法所需要的空间就会释放,此时发生弹栈动作。

方法调用叫做:压栈。分配空间
方法结束叫做:弹栈。释放空间

栈中存储什么?
方法运行过程中需要的内存,以及栈中会存储方法的局部变量。

为什么要画内存图?
更深层次的理解代码,在代码没有运行之前就能猜测出结果。
会内存图,后期调错的时候会有很大的帮助。

5、JVM的内存结构中三块比较重要的内存空间。
方法区:
存储代码片段,存储 xxx.class 字节码文件,这个空间是最先有数据的,类加载器首先将代码加载到这里。
堆内存:对象内存空间,成员中的实例变量
栈内存:
stack栈当中存储什么?
每个方法执行时所需要的内存空间(局部变量)。
6、关于数据结构中的栈数据结构
原则:
后进先出
先进后出
栈数据结构相关的术语:
栈帧:永远指向栈顶部的元素(栈顶元素具有活跃权。)
栈顶元素
栈底元素
压栈,入栈,进栈,push
弹栈,出栈,pop

什么是数据结构?什么是算法?
有一本书:数据结构与算法。
数据结构和算法的选择很重要,选择对了,程序的执行效率大大提升。可以很好的优化程序。
7、分析程序运行过程中的内存变化
方法只定义不调用是不会执行的。
方法调用时:压栈(在栈中给该方法分配空间)
方法执行结束时:弹栈(将该方法占用的空间释放,局部变量的内存也释放。)

http://www.lryc.cn/news/275339.html

相关文章:

  • GOOS=darwin 代表macOS环境
  • hfish蜜罐docker部署
  • 我的创作纪念日——redis的历史纪录
  • 【Bootstrap5学习 day10】
  • 2024年学习计划
  • 学习笔记:C++之 switch语句
  • C++ 具名要求-全库范围的概念
  • 分布式(4)
  • XCTF-Misc1 USB键盘流量分析
  • 毛概笔记。
  • postman使用方法指南,最全面的教程
  • 工业物联网上篇——什么是IIOT?
  • 【JavaEE】Java多线程状态-- 多线程篇(10)
  • 坐标转换 | EXCEL中批量将经纬度坐标(EPSG:4326)转换为墨卡托坐标(EPSG:3857)
  • STM32学习笔记二十:WS2812制作像素游戏屏-飞行射击游戏(10)探索游戏平衡
  • Windows 搭建ninja 编译c++的环境
  • 环形链表【链表】【哈希】
  • Hive实战:网址去重
  • 206.【2023年华为OD机试真题(C卷)】最大N个数与最小N个数的和(JavaPythonC++JS实现)
  • 【刷题日记】青少年CTF-Misc(一)
  • 《未知星途:自我掌握命运》
  • 一个简单的KNN实现方法
  • Vue实现加减法验证码
  • PDF最强处理工具-StirlingPDF
  • SpringCloud系列篇:入门讲解Spring Cloud是什么
  • GEE:随机数
  • H266/VVC率失真优化与速率控制概述
  • thinkphp6入门(14)-- 多关联模型查询
  • MT8766安卓核心板规格参数_MTK8766核心板模块方案定制
  • k8s的声明式资源管理(yaml文件)