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为静态成员变量,其存储在方法区中且只有一个,是共享的,所以每次当访问它时,都会影响它的值

1.2认识null


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.3成员变量初始化


很多时候我们不希望成员变量使用默认值, 而是需要我们显式设定初值. 那么此时有五种方法供我们成员变量初始化:

1:默认初始化,即程序所赋予的默认值,上面已经讲过,此处不再过多陈述。

2:就地初始化:即在定义成员变量时便进行初始化,如下所示:

public String name = “张三”;

public int age = 18;

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

Kafka实战笔记

关于这份笔记,为了不影响大家的阅读体验,我只能在文章中展示部分的章节内容和核心截图

image.png

  • Kafka入门
  • 为什么选择Kafka
  • Karka的安装、管理和配置

image.png

  • Kafka的集群
  • 第一个Kafka程序
  • image.png

afka的生产者

image.png

  • Kafka的消费者
  • 深入理解Kafka
  • 可靠的数据传递

image.png

image.png

  • Spring和Kalka的整合
  • Sprinboot和Kafka的整合
  • Kafka实战之削峰填谷
  • 数据管道和流式处理(了解即可)

image.png

  • Kafka实战之削峰填谷

image.png

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
Sprinboot和Kafka的整合**

  • Kafka实战之削峰填谷
  • 数据管道和流式处理(了解即可)

[外链图片转存中…(img-00QzZWf9-1713288966806)]

  • Kafka实战之削峰填谷

[外链图片转存中…(img-dHhcOsIY-1713288966806)]

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值