jvm 字符串常量池存的是对象还是对象的引用
JVM 字符串常量池存储的是字符串对象的引用。在Java中,字符串常量池是一种存储字符串对象的特殊区域,用于存储原始程序中出现的字符串常量。如果多个字符串常量的值相同,那么它们在常量池中会共享一个对象,即通过存储相同字符串的引用来节省内存空间。这种共享的机制可以通过使用字符串的 intern() 方法来实现。
java中如何在类中定义引用类型的成员变量,比如数组、二维数组、其他类的对象
1.定义的时候并没有分配哦 你所定义的是一个实例变量,而不是静态变量,
2.你的类中没有写构造方法,所以会有一个默认的构造方法完成对象的实例创建,在对象创建后,通过对象实例即可访问到m那个对象了
Java里什么是引用类型
Java的数据基本类型:
一.数值型
1.1整数类型(byte,short,int,long)
2.字符类型
2.1 char
3.布尔类型
3.1 boolean
java中什么是null的对象
一、null是代表不确定的对象
Java中,null是一个关键字,用来标识一个不确定的对象。因此可以将null赋给引用类型变量,但不可以将null赋给基本类型变量。
比如:int a = null;是错误的。Ojbect o = null是正确的。
二、null本身不是对象,也不是Objcet的实例
null本身虽然能代表一个不确定的对象,但就null本身来说,它不是对象,也不知道什么类型,也不是java.lang.Object的实例。
三、Java默认给变量赋值
在定义变量的时候,如果定义后没有给变量赋值,则Java在运行时会自动给变量赋值。赋值原则是整数类型int、byte、short、long的自动赋值为0,带小数点的float、double自动赋值为0.0,boolean的自动赋值为false,其他各供引用类型变量自动赋值为null。
这个具体可以通过调试来看。
四、容器类型与null
List:允许重复元素,可以加入任意多个null。
Set:不允许重复元素,最多可以加入一个null。
Map:Map的key最多可以加入一个null,value字段没有限制。
数组:基本类型数组,定义后,如果不给定初始值,则java运行时会自动给定值。引用类型数组,不给定初始值,则所有的元素值为null。
五、null的其他作用
1、判断一个引用类型数据是否null。 用==来判断。
2、释放内存,让一个非null的引用类型变量指向null。这样这个对象就不再被任何对象应用了。等待JVM垃圾回收机制去回收。
java中对象数组
首先我们需要创建一个class: class Student{ String name; double score; String num; Student(String n,double s,String m){ name=n; s=score; num=m; } public static void printInfo(){ System.out.println(num+","+name+","+score); } } 接下来我们对此类进行数组的创建: //1 Student stu[]; //声明数组。 stu=new Student [3]; //创建数组,这里是创建的一个引用的数组,每一个引用并没有确切的地址。 for(int i=0;i //为数组创建对象,也就是说为创建的引用关联到确切的地址。 stu[i]=new Student(); } //2 Student stu[]=new Student [3]; for(int i=0;i