数组:
相同数据类型的集合【容器】
注意点
- 创建的数组对象是放在堆内存中
- 数组名是存放在栈的,并且存放的是数组的首地址
- 数组元素的内容空间是连续的
- 如果给了数组大小,那么元素有默认值的:
- 如果类型是引用类型,那么默认值是null
- 如果是基本数据类型:byte short char int long -> 0 float ->0.0f double -> 0.0d boolean -> false
常见错误
- 下标越界
- 空指针
所有的引用类型变量都可以赋值一盒null值–数组就是一个引用类型变量
数组必须进行new初始化才能够使用其中的元素
如果只是进行了一个null,没有进行new创建,那么将会发生空指针异常–NullPointerException
原因:忘了new
解决:补上new
【面试题】String求长度是属性还是方法?数组的大小是属性还是方法?
数组的length是属性,String是length()方法
增强for(即for each结构)
(作用):1.遍历数组2.遍历部分集合
(语法):for(元素类型 名称 :数组名)
常见排序算法:1.冒泡排序 2.选择排序
递归
- 含义:有限次数自己调用自己
- 注意点:有可能造成栈溢出
例子:斐波那契数列
可变参数
(一个方法中只能有一个可变参数,且只能是最后一个参数)
反编译后其实是say(new String[]{“11”,”22”,”33”})
面向(含义):关注、强调
面向过程:我们需要力地完成某一个特定功能
面向对象
- 含义
当需要完成一件事情的时候,我们只需要找一个能够处理该事情的对象去完成,此时我们就变成了指挥者
- 面向对象优点
- 适合大型项目开发
- 更加符合人类正常思维方式
- 从之前执行者变成调用者,此时不再关注实现的细节,反而关注相关的对象
- 注意点
- 不是说面向对象优于面向过程
- 对象的方法也是就面向过程的
类
- 含义
相似特征和行为的归类(抽象)是创建对象的模板;现有类再有对象
- 语法(最基础)
范围修饰符 其他修饰符 class 类名(首字母大写){
N个特征;[成员变量、字段]
0-N个行为;[方法]
}
- 注意点
- 一个Java文件中可以有多个类,但是只能有一个public修饰的类
- java文件名必须和public 修饰的类名一样
GC
- 含义
JDK中优先级较低的后台线程,用来释放堆中的孤立对象(没有被引用的对象)
- 机制
- 某个对象称为孤立对象的时候(没有被引用的对象),该内存便成为垃圾,GC就会自动释放该内存块
- GC只回收堆中的内存,与栈内存【栈怎么回收:当方法调用的结束的时候对应的内存就会被释放】无关
- GC是JVM内部优先级比较低的线程,不用程序员去参与【手动调用:调用System.gc()可以通知GC执行一次工作】
- 回收场景