不使用this,变量重名时:就近分配,使用局部变量
通过谁调用的谁就是this。
1、定义位置不一样:局部变量在方法内部,成员变量,在方法外部,直接写在类中。
2、作用范围不一样:局部变量只有方法内部才可以使用,成员变量整个类内部都可以使用。
3、默认值不一样:局部变量没有默认值,不赋值的局部变量不能用,成员变量,会有默认值。
4、内存位置不一样:局部变量位于栈内存,成员变量位于堆内存。
5、生命周期不一样:局部变量随着方法进展而诞生,随着方法出栈而消失,成员变量随着对象创建而诞生,随着对象被垃圾回收而消失。
引用:https://blog.csdn.net/w605283073/article/details/90181912
在虚拟机中,内部类型签名在字节码层面用来识别函数或者类。
在Java中,函数签名包括函数名,参数的数量、类型和顺序。
返回值和函数上声明的异常并不属于函数签名的构成部分。
1、方法就是一种封装
2、关键字private也是一种封装
封装就是将一些细节信息隐藏起来,对外界不可见。
方法举例:
max为计算数组最大值的方法,在计算数组的最大值时,只需要将参数传给方法,方法就会返回数组的最大值,具体的实现过程外界不知道。
private举例:public类型的成员比变量无法阻拦不合法的输入,可以将成员变量私有,通过提供Getter、Setter方法来间接访问成员变量
辗转相除法:十进制->二进制
乘位权:2进制转10进制
位(bit):一个数字0或者数字1,代表一位。
字节(Byte):每逢8位是一个字节,这个是数据存储的最小单位。
1 Byte= 8 bit
1 KB = 1024 Byte
依靠jvm来实现,每个平台都有自己的jvm
1、数组是一种引用类型的数据
2、数组中的多个数据类型必须统一
3、数组长度在程序运行期间不可改变
两种常见初始化
1、动态初始化,指定长度 String arr = new String[10];
2、静态初始化,指定内容,标准格式 int[] arr = new int[] {1,2,3,4},省略格式 int[] arr = {1,2,3,4}