Surpass Day5——Java面向对象的创建和使用,2024年最新java高级工程师面试题及答案

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

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

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

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注Java)
img

正文

2)对象又被称为实例,实例变量又被称为对象变量【对象级别的变量】;

3)不创造对象,这个变量的内存空间是不存在的,只有创建了对象,这个变量的内存空间才会被创建;

1.2 成员变量、实例变量、静态变量(类变量)、局部变量


1)成员变量:作用范围是整个类,相当于C中的全局变量,定义在方法体和语句块之外,一般定义在类体当中;成员变量包括实例变量和静态变量(类变量);

成员变量没有手工赋值的话,系统默认值如下:

数据类型 默认值

————————————————————————————————————————————————

byte,short,int,long 0;

float,double 0.0;

boolean false;

char \U000;

引用数据类型       null;

2)实例变量:独立于与方法之外的变量,无static修饰,声明在一个类中,但在方法、构造方法和语句块之外,数值型变量默认值为0,布尔型默认值为false,引用类型默认值为null;

实例变量不能通过“类名”去访问,必须通过引用;

实例变量在堆内存的java对象内存中存储;

3)静态变量(类变量):独立于方法之外的变量,用static修饰,默认值与实例变量相似,一个类中只有一份,属于对象共有,存储在(方法区内存)静态存储区,经常被声明为常量,调用一般是类名.静态变量名,也可以用对象名.静态变量名调用;

public static String level = "SSS"; *//成员变量、静态变量(类变量)*

4)局部变量:类的方法中的变量,访问修饰符不能用于局部变量,声明在方法、构造方法或语句块中,在栈上分配,无默认值,必须经初始化;


2、对象的创建和使用

==========

2.1 对象和引用的定义


new运算符在栈内存中开辟的内存空间称为对象;

引用是一个变量,只不过这个变量中保存了另一个java对象的内存地址;

1)与C语言中的指针不同,指针可以指向内存空间的任意一块地址

2)java中无指针,不能直接操作堆内存,只能通过“引用”访问堆内存中对象的实例变量,保证了java语言的安全性)

2.2 对象的创建


1)通过一个类可以实例化多个对象,实例化的语法:new 类名();

2)new是java语言中的一个运算符,其作用是创建对象,在JVM堆内存中开辟新的内存空间;

int i = 10;

int 是一个基本数据类型;i是一个变量名;10是int类型的字面值;

Student s = new Student( );

Student 是一个引用数据类型s局部变量在栈内存中存储】表示引用;**new Student()**是创建一个学生对象;

2.3 JVM三大内存


方法区内存:在类的加载的时候,class字节码代码片段会被加载到该内存空间;

栈内存(局部变量):方法代码片段在执行的时候会给该方法分配内存空间,在栈内存中压栈;

堆内存:new的对象在堆内存中存储;

2.4 对象的访问


访问实例变量的语法格式:

读取数据:引用.变量名;

修改数据:引用.变量名 = 值;

2.5 实例


//用户类

public class User{

int no;//基本数据类型 实例变量

String name;//引用数据类型 实例变量

Address addr;//引用数据类型 实例变量

}

//家庭住址类

public class Address{

String city;//引用数据类型 实例变量 city是一个引用:保存内存地址的一个变量,该变量保存内存地址指向了堆内存;

String street;

String zipcode;

}

//测试类1

public class helloworld{

public static void main(String[] args){

User u = new User();

System.out.println(u.no);

System.out.println(u.name);

System.out.println(u.addr);

u.no = 110;

u.name = “jack”;

u.addr = new Address();

}

}

//测试类2

public class helloworld{

public static void main(String[] args){

User u = new User();

Address a = new Address();

u.addr = a;

System.out.println(u.addr.city);

a.city = “天津”;

System.out.println(u.addr.city);

}

}

2.6 夫妻类


//丈夫类

public class Wife{

String name;

Husband h;//丈夫对象当中含妻子引用

}

//妻子类

读者福利

秋招我借这份PDF的复习思路,收获美团,小米,京东等Java岗offer

更多笔记分享

秋招我借这份PDF的复习思路,收获美团,小米,京东等Java岗offer

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Java)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
mg-xi2MaI4A-1713575500788)]

更多笔记分享

[外链图片转存中…(img-ZzDBj9VC-1713575500788)]

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Java)
[外链图片转存中…(img-OZ6lonJH-1713575500788)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 18
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值