商品管理的后台系统
面向接口
- 模块分离开发,相当于把商品和管理功能分开,商品作为java bean,这个类起到封装(构造函数,getter,setter,toString)
- 确定接口(方法) ,一般在后台系统中增删改查.
- 确定abstract类-à单个模块,抽象类中某些方法不能在当前功能模块中实现.(如果项目客户需求还没有具体,这个方法就是抽象)
- 确定类,实现接口,把方法的逻辑完成.一般查询的方法比较多的.
- 注意:
- 商品模块,ArrayList 把商品放在ArrayList,商品模块是有商品编号的去重问题. 采用HashMap(线性+链表+红黑树)
- 商品编号的制定规则, 存储的是HashMap,返回数据是ArrayList, 删除或者修改时, remove方法传参意义不一定, 一个是key, 一个是索引, 把index加入到 key中.
- Size仿字符串源码,记录char[]数组长度的值 ,size-1就是一个元素,本身size就是元素的个数.
- 采用HashMap返回键对应的值的集合,也就是所有商品,返回类型是Collection.
思想: 规避在程序中不断进行for循环.(数据量多用迭代器)
主类:整合
系统, 把功能用菜单的方式,由用户去选择
条件语句,后台字节码
If -----à goto
Switch 开始hashCode,后面equals
用条件,官方源码把条件转化成数组,数组执行函数功能,数组是存储数据的.
实例化的类不想总实例化,用静态,必须接口中的静态必须实现,再则静态方法中的全局变量是静态变量,静态类不需要面向接口.工具类需要在内存中,工具类是程序中用到算法.
While(true)中出现nextInt,这里进行try...catch并且跟上nextInt输入, 执行速度无法控制.
While(true)中出现try----catch,很难控制菜单循环问题,try后面的内容就相当于函数一样,理解自己的保护.
Next()接收字符串很稳定,付出代码需要用数组来存储数据,进行转化,转化效率低,字符串底层就是字符数组. 只接收字符数组第一位.char在内存中只用一个字节存储.
优化:
- 避免循环(自己函数中用自己函数,递归)
- 变量应用存储字节最小。
- 条件用数组解决。
批量:
来自于文件
快捷方法:
文件
常用的文件就是没有格式的文件,这个文件只是文件
图片文件
(带格式先不讨论)
Java提供了IO模块,这里实现很多类,类进行文件的操作
读文件/写数据/重命名/删除
1、手动导入io模块
2、文件操作都有错误产生,有文件不存在情况。IOException
File类中
File中不存在去操作文件内容,只操作文件
New File没有异常报错,只是给File在传入文件名。
对文件的操作可以从基本的增删改查去操作
增: 创建一个文件
createNewFile 创建新文件,这个文件是空文件
如果a.txt文件没有就创建一个新的空文件,
如果文件存在,并不覆盖,不处理 。
删除:
delete方法删除文件
文件夹的相关操作
mkdir只能建立一层,af
mkdirs是建立多层
文件夹的删除还是delete,但是删除一层