JAVAand笔记
Java流程控制笔记
- 凡是属于IO流的类如果不关闭会一直占用资源,要养成好习惯用完就关掉
- 顺序结构,它是任何一个算法都离不开的一种基本算法结构
- 字符的本质还是数字
break用于强行退出循环
continue用于终止某次循环过程
Scanner对象
-
next();
- 一定要读取到有效字符后才可以结束输入
- 对输入有效字符之前遇到的空白,next()方法会自动将其去掉
- 只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符
- next()不能得到带有空格的字符串
-
nextLine():
- 以Enter为结束符,也就是说 nextLine()方法返回的是输入回车之前的所有字符
- 可以获得空白
Java方法
方法的重载
规则:
- 方法名称必须相同
- 参数列表必须不同(个数不同、或类型不同、参数排列顺序不同等)
- 方法的返回类型可以相同也可以不相同
- 仅仅返回返回类型不同不足以成为方法的重载
递归思想
递归结构包括两个部分:
递归头:什么时候不调用自身方法。如果没有头,将陷入死循环。
递归体:什么时候需要调用自身方法。
Java内存分析
-
堆
- 存放new的对象和数组
- 可以被所有的线程共享,不会存放别的对象引用
-
栈
- 存放基本变量类型(会包含这个基本类型的具体数值)
- 引用对象的变量(会存放这个引用在堆里面的具体地址)
-
方法区
- 可以被所有的线程共享
- 包含了所有的class和static变量
Java数组
数组对象本身是在堆中的。
ArrayIndexOutOfBoundsException:数组下标越界异常!
三种初始化:
- 静态初始化:创建+赋值
- 动态初始化:包含默认初始化
- 数组的默认初始化
稀疏数组
- 记录数组一共有几行几列,有多少个不同值
- 把具有不同值的元素和行列及值记录在一个小规模的数组中,从而缩小程序的规模