- 博客(8)
- 收藏
- 关注
原创 包装类的介绍和使用
原理就是该包装类有一个缓存数组(Integer类型),缓存范围是-128到127,如果你传入valueof的数字在该范围内,那么就会直接将这个缓存数组中的对应的该Integer类对象返回,由于都是同一个数组中的对象,所以i1和i2指向地址相同,i1和i2相等。上图中注释部分是自己敲得代码,在经过编译后变成了下面的代码,如i1,这个valueof(100),就是一个自动装箱的过程,就是把一个基本数据类型转化为引用类型。除了int,和char之外,其他基本类型对应包装类的名称都是将首字母大写。
2023-04-08 16:21:12
134
原创 创建和初始化对象的过程(整个构造方法的执行流程),和类的加载过程
1、加载:查找和导入Class文件2.链接:其中解析步骤是可以选择的 (a)检查:检查载入的class文件数据的正确性 (b)准备:给类的静态变量分配存储空间 ,并且执行默认初始化(c)解析:将符号引用转成直接引用3、类的初始化:对静态变量,静态代码块执行显示初始化工作。3.类的显示初始化,从object类向下依次对静态变量和代码块进行显示初始化。上溯:首先为子类进行内存空间的分配,同时进行默认值初始化,然后上溯到其父类,父类也进行内存空间的分配,同时进行默认值初始化,继续上溯到object类。
2023-03-29 21:42:08
146
原创 java中的值传递
引用数据类型:比如说要向某个方法中传入一个对象,引用数据类型传递分为两个部分,引用变量和对象,这两个部分放在不同的地方,引用变量在栈中,而对象是放在堆内存中的,引用变量指向对象。传的时候会将引用变量的值复制一份传入给方法中,而引用变量的值也就是其所指向对象的地址,由于引用变量的值相同,也就是所指向地址值相同,所以可以在方法中修改引用变量执行对象的具体内容。要传入某方法public.....(int b )中,就会把a的值复制一份传入给一个新的变量b,所以在方法中怎样对b修改都不会影响到a的值。
2023-03-23 16:16:39
286
原创 final关键字以及抽象类
1.修饰类修饰类就表示该类是最终类,不可以别继承,无子类。2.修饰实例变量和类变量以及局部变量这就表示该变量不可以被修改,也就是常量,如果别被修饰的实例变量没有进行手动赋值,那么其所在类的都必须对该变量赋值。由于局部变量和不同成员变量和类变量不同,局部变量缺少其他两个变量在class文件拥有的属性,故,也就是说final,static,private等修饰局部变量没有意义。3.修饰成员方法修饰后就不可以进行重写,也就表明该方法的实现必须通过改类的一个对象。
2023-03-22 19:42:45
41
原创 多态的使用总结,this关键字不能在静态方法中使用,对构造方法的理解,static关键字详解
对于father类里面特有的方法,可以通过a对象直接调用,而father类里面有,并且在child类里面经过重写的方法,那么经过a调用时,就会直接调用子类的该方法,而对于子类里面特有的方法,也就是父类里面没有的,那么可以把对象a进行类型转换后,在调用该特有方法。也就是说,对象a只可以直接执行father类里面有的,执行的结果要看子类是否重写了,如果重写过了,就直接执行子类的,如果没有重写,那就直接执行父类的。例如father a=new child ();
2023-03-18 18:03:29
425
原创 方法的重载和可变参数和递归和Java内存分析
方法的重载 就是通过多写几个方法,扩展一个方法的功能,比如既可以两个数相加又可以三个数相加。本张图片很重要。 可变参数 可变是指参数的数量可变,而不是参数的类型可变 本质是数组,上图中numbers就是一个数组,就是数组的长度未知,要通过自己的输入来确定数组长度。 递归(能不用递归就不用)多层调用计算机效率很低 函数自己调用自己 如计算5的阶乘 J ava内存分析 数组可静态初始化也可动态初始化 数组默认初始化:数组是引用类型,它的元素相当于类的实
2023-02-20 13:43:47
43
空空如也
王爽的汇编语言第3版和第4版有何区别?都是16位的吗?哪个更适合自学者?
2023-02-08
TA创建的收藏夹 TA关注的收藏夹
TA关注的人