----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------
/**方法重载
* 当定义的功能相同 但参与运算的位置内容不同
* 那么 这时就定义一个函数名称以表示起功能 方便阅读
* 而同过参数列表的不同来区分多个同名函数
*
* 提高代码的复用性 避免重复代码出现 重复代码封装调用
* 重载和返回类型没有关系 重写才有关系
* 返回类型 形参类型 参数个数 都属于重载
* 方法名相同当返回类型不一 参数类型顺序一致 不属于重载 系统不知道调用那个方法
* @param args
*/
\
数组
同一种类型数据的集合 其实数组就是一个容器
数组的好处
可以自动给数组中的元素从0 开始编号 方便操作这些元素
格式 []表示这是个数组
元素类型[] 数组名 = new 元素类型[元素个数或数组长度] (new 在内存中产生一个容器实体)
int [] x=new int[3]; x不是int类型 x是数组类型
栈内存 使用完毕 会自动释放 每一片内存中的数据出理方式不一样 局部变量会在栈内存中开辟空间
堆内存 new 出来的实体 new一个就在堆里产生一片空间
(垃圾回收)堆 栈(自动释放) (赋值)来进行联系 即使引用或者是指向堆内存中的地址值(数组地址值 16进制)
堆内存对象都有一个存放位置 数组在堆内存中存放的时候有一个起始位置
堆内存对象都有默认初始化值 int 0| double 0.0 |float 0.0f |boolean false
当一个实体在对内存当中没有任何引用所使用它的话 java虚拟机就识别为垃圾 会被垃圾回收机制在对内存中清除
2个引用指向了同一个对象 第一个改变了该对象的属性 另一个由于指向的是同一个对象 那他也会变化 (单例模式)
引用数据类型的特点 (重点)
java 垃圾回收机制
当内存中的实体用的多了就占用空间 空间是有限的 C++中回收是由程序员手动操作的
java中堆内存中不再被使用中的实体被回收机制清楚
int [] arr =new int [4]; 都是可以的 介意这个
int arr[] =new int [4]; 数据不明确知道长度可以这么做
数组可以由静态初始化方式定 义
int [] arr=new int []{3,2,45,6,9}; 这个地方不要指定数组长度了 这是在数据明确的情况下
int arr[]=new int [3]; 里面默认的都是0
当要查询的数据超过数组长度 就会越界 语法报错
当执行对内存中的栈内存变量=null 后就表示与对内存中原先指向的数据没有关系了
操作的话就话报空指针异常 (领悟)当引用没有指向 或为null的情况下 还在操作实体
获取最值 需要进行比较 每一次比较都会有一个较大的值 因为改制不确定
通过一个变量进行临储
让数组中的每一个元素都和这个变量进行比较
如果大于变量中的值 就用该变量记录较大值
当所有的元素都比较完成 那么该变量中存储的就是数组中德最大值
Arrays.sort(arr) arr数组
Substring 有个 reverse() 可以将里面的字符窜 倒过来
2维数组 int[][] arr=new int[2][4]; 表示有一二维 数组内包含2个包含4个元素的一维数组
int[]x int[]y[]
int[] x,y[]; 这个表示x 是一维数组 y是二维数组
java 面向对象
类和对象的关系:
类就是:对现实生活中事务的描述
对象:就是这类事务实实在在存在的个体
成员变量和局部变量:
作用范围
成员变量作用于整个类中
局部变量作用与函数中 或者语句中
在内存中的位置
成员变量 在堆内存中 因为对象的存在 才在内存中存在
局部变量 存在栈内存中
注意:
私有仅仅是封装的一种表现形式 封装并不是私有
构造函数与一般函数在写法上 与用法上不同
构造函数在对象一初始化 就执行 而一半方法是一半方法调用才执行 是添加对象具备的功能
一个对象建立 构造函数只运行一次
而一半方法可以被该对象多次调用
方法被对象调用
构造代码块是给所有对象进行初始化
而构造函数是给对应的函数进行初始化
构造代码块 不同对象的共性的写在构造代码块里 都执行
this看上去 是用于区分局部与类部成员变量
this为什么可以解决这个问题呢 this代表的是什么
answer: this就代表本类的对象,
注意: /***this代表它所在函数所属对象的引用 **/
this 的饮用 : 当定义类中功能时 该函数类部要用到调用该函数的对象时 这时 用this来表示这个对象
但凡 本类功能类部使用到了本类对象用this来表示
构造函数之间的调用 用到类似this(name)
this语句用于构造函数之间互相调用
this只能构造在函数的第一行
this调用不能造成构造函数间出现死循环
static 特点:
1 随着类的加载而加载 也就是说 静态会随着类的消失而消失 说明生命周期长
2 优先于的对象存在 明确一点 静态是先存在的 对象是后存在的
3 被所有对象所共享
4 可以直接被类名调用
实例变量 类变量
1 存放位置:
类变量随着类的加载而存在于方法区中
实例变量随着对象的建立而存在于堆内存中
2 生命周期
类变量生命周期最长 随着累的消失而消失
实例变量生命周期随着对象的消失而消失 (new出来的都是在堆内存中 引用类型也在堆内存中)
静态使用注意事项
1 静态方法只能访问静态成员
2 非静态方法既可以访问静态也以访问非静态
静态方法中不可以定义this super关键字
因为静态优先于对象存在 所以静态方法中不可以出现this
主函数 作为程序的入口 可以被jvm调用
主函数的定义
public 代表着该函数访问权限是最大的
static 代表着主函数随着类的家在就已经存在了
void 主函数没有具体的返回值
main 不是关键字 但是可以被jvm识别
函数的参数(String[] args) 参数类型是一个数组 该数组中的元素是字符窜 字符窜类型的数组
主函数是固定格式的
----------------------- android培训、java培训、java学习型技术博客、期待与您交流! ----------------------
详情请查看: