Java Learning Day3 数组

发布时间 2023-12-01 11:05:28作者: 清川1
System.out.print;   
System.out.println;每输出一次就会换行
Integer.parseInt 字符串转int
Double.parseDouble 字符串转double

数组

存储结构连续,存储元素类型相同,随机访问

 JVM

JVM栈:JVM栈正是java中方法执行时所占有的空间、局部变量会存于栈帧中

堆:堆是JVM内存中最大的一块,new出来的东西(称之为对象或者实例)都在堆上。

方法区

程序计数器:JVM执行代码解释执行的,即是一行一行执行字节码的,程序计数器用来记录当前执行的行数

本地方法栈:和JVM栈类似,区别是本地方法栈是给本地(native)方法使用的,而不是普通方法。

 

堆内存主要决定了Java程序的数据如何存储的问题。而JVM栈用来表示方法的执行流程, 它决定了程序如何执行,或者说如何处理数据。

 

引用数据类型的创建分为两部分:

  1. 首先是在栈上分配一片空间给引用数据类型的引用,简称引用,它是一个局部变量,直接存储在栈帧中。

  2. 在堆上开辟一片空间,用于存放引用数据类型的实际信息,称之为对象或者实例

 


基本数据类型与引用数据类型有什么区别

  • 存储位置(本质区别)

    1. 基本数据类型不存在引用的概念,数据都是直接存储在栈上的栈帧里;

    2. 引用数据类型在栈帧中存储引用,引用作为一个局部变量,存储的只是该引用类型在堆上对象的内存地址。

      存储在堆上的对象存储具体信息,才是引用数据类型的实质

  • 引申出,打印变量名区别:

    1. 基本数据类型,打印变量名就是该变量具体的数值

    2. 引用数据类型,没有办法直接访问对象,打印变量名(引用)会显示该引用存储的堆上的对象的内存地址。

 

布尔类型(boolean)默认值是false

引用数据类型默认值是null

增强for:无数组下标,不会改变元素取值

可变长参数:参数个数不确定,类型确定的情况,Java会自动把可变参数当作数组处理。可变参数用于形参列表中,并且只能出现在形参列表的最后 

 this 是指向成员变量的,否则就是就近原则

 

 

1.int是基本数据类型之一,而Integer是对象类型。

2.Integer是int的包装类,int则是java的一种基本数据类型。

3.Integer变量必须实例化之后才能使用,而int变量不需要。

4.Integer实际是对象的引用,当new一个Integer时,实际上是生成一个指针指向此对象;而int则是直接存储数据值。

5.int默认值为 0,Integer默认为null

 Java有且仅有值传递,Java中的方法不能直接改变实参本身。