程序=数据结构+算法
来源:互联网 发布:网络说唱歌曲大全 编辑:程序博客网 时间:2024/06/05 02:37
1.指针与对象的关系示意图:
一个指针只能指向一个对象,可以不指向任何对象,称为空指针,值为null
一个对象可以由多个指针指向它,如果一个对象没有任何指针指向它,那这个对象就是垃圾对象
2.对象的内存表示
为什么y不跟随对象的存储空间?
因为数据是静态的,不管创建多少个对象,都有一个静态数据y,这样下来,大大减少了内存的消耗,方法区也是如此。对象=数据+方法
3.字符串的内存表示
a,b,c三个指针的值相等。指向同一个对象,即,a,b,c是表示同一个对象
字符串池的特点:
1)所存储的对象的内容不会重复
2)如果串池里面的对象没有任何指针指向它,并且变成了不在被使用的对象,也不会被垃圾回收机制回收。
4.数组的内存表示
任何一个对象都不能在它的内存包含另一个对象,最多也就能包含其他对象的指针
优点:存储空间连续,
缺点:不能扩展空间,因为会破坏其他对象的存储空间
5.多态的实现
A a=new C();
A类指针c = C类的对象 (称为指针泛化),泛型。
6.单链表的实现(单链表:线性数据结构之一,数组也是一种线性结构)
优点:可以解决数组不方便数据的插入和删除的问题
缺点:随机访问慢,这点远远不如数组。
特点:存储空间不用连续
说明:将指向20的指针指向30或者其他,这样20就被删除了,至于20就变成了垃圾对象,将会被回收。
java代码实现:package cn.itcast.structure;class MyList { private int data; private MyList next; public MyList(int x) { data = x; } public void add(MyList x) { x.next = next; next = x; } public void append(MyList x) { MyList p = this; while (p.next != null) { p = p.next; } p.next = x; } public void show() { MyList p = this; while (p != null) { System.out.println(p.data); p = p.next; } }}public class DanLianBiao { public static void main(String[] args) { MyList head = new MyList(10); head.append(new MyList(30)); head.append(new MyList(40)); head.append(new MyList(50)); head.add(new MyList(20)); head.show(); }}
7.循环线性结构
如果最后一个的后继指向第一个元素,第一个元素的前驱指向最后一个元素,就成了循环链表,这样一来,在操作的时候,就不分前后了。
8.队列与栈
9.二叉树排序
两种分叉关系:1)树(无循环关系)
2)图
什么是二叉树:就是每个节点都只有两个分叉:左子树和右子树
遍历
前序遍历:总是先访问根节点,在访问左子树和右子树 (根–>左–>右)
中序遍历:先左子树,然后根,再右子树。(左–>根–>右)
个人学习时的总结:如果对大家深入理解JAVA的底层原理有帮助,请点赞,如果有不对劲的地方希望指出,谢谢!
- 算法 + 数据结构 = 程序
- 算法+数据结构=程序
- 程序=数据结构+算法
- 程序=算法+数据结构
- 程序=算法+数据结构
- 数据结构 + 算法 = 程序
- 程序=数据结构+算法
- 程序=数据结构+算法
- 【数据结构与算法】数据结构+算法=程序
- 围棋程序=围棋数据结构+围棋算法
- 为什么说程序=算法+数据结构!
- 数据结构程序&算法
- 小菜开始学习算法(返璞归真->程序=数据结构+算法)
- 程序等于数据结构加算法
- 数据结构与算法程序集
- 数据结构与算法程序集
- 程序=算法+数据结构+程序设计方法+语言工具和环境
- 算法+数据结构=程序(不断完善中……)
- mysql中创建唯一约束防止数据重复
- Lua中Userdata类型源码实现
- Springboot系列:Springboot与Thymeleaf模板引擎整合基础教程(附源码)
- [MYSQL-10]计算字段
- JavaScript类型转换
- 程序=数据结构+算法
- opencv车牌识别
- 装饰器学习笔记3:简单的函数装饰器
- 嵌入式作业
- 【区块链】以太坊私有链下智能合约部署
- windows下Qt 生成Unicode编码xml
- Linux下php7安装命令记录
- 求出1-1000之间所有的满足如下条件的数:它的每个位上的数字的3次幂之和等于它本身,比如153。
- OpenCV之查找表与直方图拉伸