《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,点击传送门,即可获取!
2:“访问” 既包含读, 也包含写.
3:对于一个成员变量如果没有显式设置初始值, 那么会被设置一个默认的初值.
下面来介绍下成员变量(不管是静态成员变量还是实例成员变量)在不赋值情况下的默认取值吧:
byte short int long默认取值为 0
float 默认取值为0.0f;
double 默认取值为0.0
boolean 默认取值为false
char 默认取值为’\u0000’(最终输出时为空)
1.1.2静态成员变量
static关键字修饰成员变量,简称静态成员变量,又称类变量
1.访问方式:通过类名.静态成员变量名进行访问
2.内存的存储方式:方法区
3.特点:静态的只有一份,且不依赖对象
代码示例:
class Man {
public static int count;
}
public class LeiHeDuiXiang {
public static void main(String[] args) {
Man.count++;
System.out.println(Man.count);
Man.count++;
System.out.println(Man.count);
Man.count++;
System.out.println(Man.count);
}
}
//输出结果为:
1
2
3
因为count为静态成员变量,其存储在方法区中且只有一个,是共享的,所以每次当访问它时,都会影响它的值
null 在 Java 中为 “空引用”, 表示不引用任何对象. 类似于 C 语言中的空指针. 如果对 null 进行 . 操作就会引发异常.
代码示例:
class Person {
public String name; public int age;
}
class Test {
public static void main(String[] args) { Person person = new Person();
System.out.println(person.name.length()); // 获取字符串长度
}
}
// 执行结果
Exception in thread “main” java.lang.NullPointerException at Test.main(Test.java:9)
同时假如我们给一个对象的引用赋值为null时,当输出这个引用此时还是为null,而假如此时不为空的话,输出值又会为多少呢?
Person person1 = new Person();
System.out.println(person1);
上述代码最终的输出结果为如下:
Person为类,@为分隔符,4554617c为对象地址的哈希值,那么为什么最终的输出结果为这个呢?我们来看下源码便一清二楚了
1首先来看println处的源码:
Object类为所有类的父类,valeOf方法是将引用x转化为字符串,那么是如何转化的呢?我们接着看valeOf的源码:
此处判断这个引用是否为空,若为空,则返回null,若不为空,则返回这个引用所调用的toString方法的返回值,那么我们再来看toString方法的源码吧:
我们可以看到,toString方法返回的是类的名字加上一个分隔符号@再加上一个把哈希值变成十六进制的数字
总结:1.当我们输出对象的引用时,此时我们会在底层调用Object类的toString方法,返回一个对象地址的十六进制哈希值
2.toString 方法会在 println 的时候被自动调用. 将对象转成字符串这样的操作我们称为 序列化.
3. toString 是 Object 类提供的方法, 我们自己创建的 Person 类默认继承自 Object 类, 可以重写 toString 方法实现我们自己版本的转换字符串方法. (关于继承和重写这样的概念, 我们后面会重点介绍).
4.IDEA快速生成Object的toString方法快捷键:alt+f12(insert),此处我们没有重写这个默认的toString方法,并无大碍,后面会详细介绍。
很多时候我们不希望成员变量使用默认值, 而是需要我们显式设定初值. 那么此时有五种方法供我们成员变量初始化:
1:默认初始化,即程序所赋予的默认值,上面已经讲过,此处不再过多陈述。
2:就地初始化:即在定义成员变量时便进行初始化,如下所示:
public String name = “张三”;
public int age = 18;
总结
在清楚了各个大厂的面试重点之后,就能很好的提高你刷题以及面试准备的效率,接下来小编也为大家准备了最新的互联网大厂资料。
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,点击传送门,即可获取!
WU5S-1714442118655)]
[外链图片转存中…(img-aaiIeQVr-1714442118655)]
[外链图片转存中…(img-hXXDLIWw-1714442118655)]
[外链图片转存中…(img-bpuCWs2F-1714442118655)]
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,点击传送门,即可获取!