java基础笔记(一)
一、函数
1. 函数的定义:定义在类中实现特定功能的独立小程序
2. 函数的特点:定义函数可以将功能代码进行封装
提高该功能的复用
函数只有在调用的时候才会有效
可以提高代码的复用性
函数没有返回值时,函数类型可以定义为void,return可以省略
函数内部只能调用函数,不能在函数内部定义函数
函数的结果应该返回给调用者,交由调用者处理
3. 函数应用:明确定义的功能返回的结果是什么
明确定义的功能,是否需要未知参数的参与
4. 函数重载:在一个类中可以定义多个同名的函数,只要函数的参数个数和参数类型 不同即可
好处:提高了代码的可阅读行,优化了代码
特点:与返回值无关,只看参数列表
二、数组
1. 定义:同一种类型数据的集合,数组就是一组容器
2. 好处:对数组中的数据从0进行编号,便于都数据进行管理
3. 内存结构:栈内存:用于存储局部变量,使用结束,自动释放内存空间
堆内存:数组和对象,通过new建立的实体都会存放在堆内存中
每一个实体在堆内存中都会有一个内存地址值
每一个变量在内存中都会有一个默认初始值
实体使用结束,会在不确定的时间内通过垃圾回收机制释放
4. 数组常见问题:数组脚标越界异常(ArrayIndexOutOfBoundsException)
访问了数组不存在的脚标导致
空指针异常(NullPointerException)
数组没有对应实体,操作却指向了数组实体中的元素
选择排序:每循环一次,最值在最前面
冒泡排序:每循环一次,最值在最后面
三、面向对象
1. 理解:面向对象是相对于面向过程而言,面向对象和面向过程都是一种编程思想,面向过程强调功能的行为,面向对象将功能封装到对象中,强调具备功能的对象,面向对象是基于面向过程的。
2. 匿名对象:当对象的方法只被调用一次的时候,可以使用匿名对象,简化代码书写
匿名对象可以作为实际参数进行传递
3. 特征:封装:隐藏对象的属性和实现细节,仅对外提供公共访问方式
1) 构造函数和构造代码块:构造代码块是对所有的对象进行初始化,构造函数时对指定的对象进行初始化
2) Static:随着类的加载而加载
优先于对象而存在
被所有对象所共享
可以直接被类名调用
静态方法只能访问静态成员
静态方法中不可以有this、super关键字
3)java文档的生成:javadoc –d doc –author –versionxxx.java
(保存在D盘doc目录下,并标明作者和版本号)
4)静态代码块:对类进行初始化操作。随着类的加载而加载,只执行一次,优先于主函数
5)对象的初始化过程:new对象之后,将加载.class文件
对静态代码块进行加载,类初始化
在堆内存这种开辟空间,分配内存地址
在堆内存中建立对象特有属性,并初始化
对属性进行显示初始化
对对象进行构造代码块初始化
对构造函数进行初始化
内存地址赋给栈内存中的变量
6)单例设计模式的实现:先禁止其他类创建该对象
(构造函数私有化)
为了其他类可以访问,本身创建一个对象(静态)
提供一个方法,供外界调用该对象(静态)
饿汉式:先初始化,进入内存就创建对象
懒汉式:方法调用时,才创建对象