目录
前言:
构造方法:
构造标准JavaBean类:
对象内存图:
前言:
本片会详细的介绍JAVA中JavaBean类的手动构建,IDEA为我们提供的快捷键生成JAVA bean的方式,以及介绍一个可以快速生成javaBean类的插件ptg。在最后我们还会对java中的内存图做介绍,帮助我们更加深度的认识JavaBean类。
我们先介绍一下java一个类中最关键的的部分:构造方法
构造方法:
构造方法也叫构造器,构造函数。
作用:在创建对象的时候给成员变量进行初始化的。
语法:
public class student{
修饰符 类名(参数)
{
方法体;
}
}
特点:
- 方法名与类名相同,大小写也要一致。
- 构造函数没有返回值类型,连void也没有。
- 没有返回值,(不能由return 带回结果数据)。
执行时机:
- 创建对象的时候由虚拟机进行调用,不能手动调用构造方法。
- 每创建一次对象,就会调用一次构造方法。
如果我们自己不写任何的空参构造方法,虚拟机会自己帮我们实现一个空仓构造方法。
注意事项:
- 如果没有定义构造方法,系统将给出一个默认的无参构造类型的构造方法。
- 如果定义了构造方法,系统将不再提供默认的构造方法。
构造方法也可以进行重载,我们有参构造和无参构造本质上就是对构造函数的重构。
构造标准JavaBean类:
注意点:
- 类名需要见名知意。
- 成员变量用private修饰(私有化类的成员变量,通过提供set或者get接口来为该成员变量进行读写权限控制)
- 至少提供两个构造方法
- 无参构造方法
- 带全部参数的构造方法
4.成员方法:
- 提供每一个成员变量对应的set以及get函数
- 如果由其他行为,需要补全。
例如我们构造一个含有成员变量name和age的person类,并提供接口对其实现可读可写功能:
package com.itheima.demo1;
public class person {
private String name;
private int age;
public person(){};
public person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
而除了手搓构造函数之外,java也给我们提供了两个快捷键,一键生成构造函数:
- Alt + insert
- Alt + Fn + insert
之后点击构造函数
此时就进入了快捷构造界面,选中谁就会以谁作为参数完成构造函数。我们一般是将所有的成员变量都选作为参数,因此我们就Ctrl + A来选中所有成员变量,然后点击下面的构造,这样就实现了快速完成构造函数。
如果我们要快速为每个成员变量提供get和set接口,我们就选中Getter和Setter来快速实现
Ctrl + A 选中所有变量之后,点击确定就可以实现快速构建成员变量的get和set函数。
但这也比较麻烦,我们可以在插件市场下载ptg插件,安装之后右键点击选中Ptg To JavaBean。
它可以一键生成一个标准javaBean类。
Java内存分布:
java内存分配介绍:
在Java中,内存被划分为以下几个区域:
- 1. 栈(Stack):所有的基本数据类型和对象引用变量都是存储在栈上的。栈结构具有先进后出的特点。当一个方法被调用时,会在栈上创建一个栈帧,用于存储方法的参数和局部变量,当方法执行完成后,这个栈帧会被销毁。
- 2. 堆(Heap):所有的对象实例都是存储在堆上的。堆内存是由Java虚拟机自动管理的,使用垃圾回收器来回收没有被引用的对象实例。
- 3. 方法区(Method Area):存储类的信息、常量、静态变量等。它是所有线程共享的内存,用于存储所有使用的类和其字段、方法等信息。
- 4. 本地方法栈(Native Method Stack):与栈类似,但是存储的是Java调用本地方法时的参数和局部变量。和Java栈不同,本地方法栈中的函数不是Java方法,而是需要使用本地语言(如C/C++)编写的本地代码。
- 5. 寄存器(Register):最快的存储区域,存储的是Java虚拟机执行的指令和数据。
需要注意的是,栈和堆的大小可以通过JVM参数来调整,并且不同的JVM实现可能会有不同的内存管理策略。
在Java中,寄存器被用来存储JVM的内部数据,如指令、栈顶指针和局部变量等。这些寄存器并不是Java程序在实际执行时的物理存在,而是由JVM在内存中模拟的虚拟寄存器,也就是虚拟机栈中的局部变量表和操作数栈。
需要注意的是,JVM会使用CPU内部的寄存器来加速Java程序的执行,这些寄存器被称为物理寄存器。但这些物理寄存器并非由Java程序直接使用,而是由JVM和操作系统等底层软件进行管理和调用。因此,一般来说,我们谈到寄存器时,是指Java虚拟机中的虚拟寄存器。
总结:
虽然IDEA也给我们提供了快捷的方式来快速构建构造函数以及set和get函数,但是我们也要自己学会手动构建一个JavaBean类。
今天的内容到这里就结束了,感谢大家的阅读。
如果我的内容对你有帮助,请点赞,评论,收藏。创作不易,大家的支持就是我坚持下去的动力!