JVM内存结构
javac编译完源文件以后,会生成一个或多个字节码文件。
我们使用JVM中的类加载器和解释器对生成的字节码文件进行解释运行。这表示,需要将字节码文件对应的类加载到内存中,射界内存解析。
- 虚拟机栈:即平时提到的栈结构。我们将局部变量存储在栈结构中
- 堆:我们将 new出来的结构(比如数组、对象)加载到堆空间里。同时,对象的属性(非static)也是加载到堆结构中。
- 方法区:存放类的加载信息、常量池和静态域。
属性和方法
- 相同点
- 不同点
万事万物皆对象
- 在Java语言范畴中,我们都将功能、结构等封装到类中,通过类的实例化,来调用具体的功能结构
- 涉及到Java语言与前端Html、后端数据库交互时,前后端的结构在Java层面交互时,都体现为类、对象
匿名对象
new Phone().sendEmail();
- 理解:匿名对象是指:我们创建的对象,没有显式的赋给一个变量名。
- 特征:匿名对象只能调用一次
- 使用:
自定义数组的工具类
方法的重载
- 定义:在同一个类中,允许存在一个以上的同名方法,只要他们的参数不同
- 两同一不同:同一个类、同一个方法名;参数列表不同、参数个数不同、参数类型不同、参数的顺序不同
- 是否是重载:跟方法的权限修饰符、返回值类型、形参变量名、方法体都没有关系
·
可变个数形参
值传递
关于变量的赋值:
- 如果变量是基本数据类型,此时赋值的变量所保存的数据值
- 如果变量是引用数据类型,此时复制的是变量所保存的数据的地址值