2-22 方法、面向对象、类、JVM内存、构造方法

news2024/12/29 0:48:11

文章目录

  • 方法的重载
  • 面向对象
  • 类、属性和方法
    • 成员变量默认值
    • 属性
    • JVM简单内存分析
      • 栈空间
      • 堆空间
  • ==
  • 构造方法
    • 执行过程
    • 构造器注意点

方法的重载

一个类中名称相同,但是参数列表不同的方法
参数列表不同是指:

  1. 形参类型
  2. 形参个数
  3. 形参顺序

面向对象

  1. field —— 列、字段、属性
  2. 面向对象和面向过程相辅相成,面向对象离不开面向过程

类、属性和方法

成员变量默认值

字符型布尔型应用类型
\u0000falsenull

属性

  1. 属性用于定义该类或该类对象包含的数据或者说静态特征
  2. 属性作用范围是整个类体
  3. 若我们没有手动初始化,则Java会使用默认的值对属性做其初始化

JVM简单内存分析

JVM 中有栈和堆两个重要的空间,但并不代表只有这两个空间

栈空间

存储基本数据类型&引用数据类型地址的空间,
栈空间的特点——有效存储时间固定

有效存储时间固定,是指栈空间中的变量只在其包含本身的最近两个花括号内有效,
花括号内语句运行结束,那么栈空间中存储的数据也会被回收

堆空间

堆空间中存储Java中所有引用类型的值,而栈空间中存的是引用类型的存储空间地址
但凡是遇到new那就是在堆空间中开辟空间,也就是在堆空间中存储

Integar a = new Integar("123");
int b = 123;

==

  • 当两边都是基本数据类型时:比较的是值
  • 当两边都是引用数据类型时:比较的是地址
  • 当一边基本一边引用时:比较值
Integer a = new Integer("123");
int b = 123;
System.out.println(a==b);//true

构造方法

执行过程

  1. 分配对象空间,并将对象成员变量初始化为0或空
  2. 执行属性值的显式初始化(若在类中就已经手动赋初值,则这一步才会真正赋值,相当于之前是默认初始化)
  3. 执行构造方法
  4. 返回对象的地址给相关的变量

构造器注意点

  1. 构造器通过new关键字调用
  2. 构造器虽然有返回值,但是不能定义返回值类型(肯定返回本类),不能在构造器中使用return返回值
  3. 若没有手动定义构造器,则编译器会自动定义一个无参构造方法
  4. 构造器的方法名必须和类名保持一致

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1472078.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JAVA工程师面试专题-《JVM篇》

目录 一、运行时数据区 1、说一下JVM的主要组成部分及其作用? 2、说一下 JVM 运行时数据区 ? 3、说一下堆栈的区别 4、成员变量、局部变量、类变量分别存储在什么地方? 5、类常量池、运行时常量池、字符串常量池有什么区别?…

Amazon Generative AI | 基于 Amazon 扩散模型原理的代码实践之采样篇

以前通过论文介绍 Amazon 生成式 AI 和大语言模型(LLMs)的主要原理之外,在代码实践环节主要还是局限于是引入预训练模型、在预训练模型基础上做微调、使用 API 等等。很多开发人员觉得还不过瘾,希望内容可以更加深入。因此&#x…

软件设计师软考题目解析05 --每日五题

想说的话:要准备软考了。0.0,其实我是不想考的,但是吧,由于本人已经学完所有知识了,只是被学校的课程给锁在那里了,不然早找工作去了。寻思着反正也无聊,就考个证玩玩。 本人github地址&#xf…

132.乐理基础-快速识别音程(二)

上一个内容:131.乐理基础-快速识别音程(一)-CSDN博客 上一个内容里练习的答案: 无论哪两个音,也就是无论升降记号多么离谱,该怎样去判断它是什么音程,首先就要记住(现在只需要只需要…

es6 中的生成器 generator / 迭代器 / async /await 到底是个啥,使用场景

生成器 generator 到底是个啥 是一个函数 可以用来遍历数据结构是解决异步编程的一种方案进行数据流的生成和控制协程和状态机返回一个生成器对象/可迭代对象 生成器对象: 生成器对象是由生成器函数返回的对象,它符合迭代器协议(Iterator Pr…

车规级MCU的行业走向

1 主要厂家 车规级MCU(车用微控制器单元)的主要厂家包括: NXP半导体:NXP是全球领先的车规级MCU提供商之一,提供广泛的产品用于汽车控制和管理系统。英飞凌科技:作为汽车半导体的领导者之一,英飞…

现代化数据架构升级:毫末智行自动驾驶如何应对年增20PB的数据规模挑战?

毫末智行是一家致力于自动驾驶的人工智能技术公司,其前身是长城汽车智能驾驶前瞻分部,以零事故、零拥堵、自由出行和高效物流为目标,助力合作伙伴重塑和全面升级整个社会的出行及物流方式。 在自动驾驶领域中,是什么原因让毫末智行…

Spring Session:Redis序列化配置|Session事件监听

Spring Session是可配置的。 Redis Configuration JSON序列化配置 Spring Session默认使用Java对象序列化机制对Session属性值进行序列化。 预定义类SysUser 先来定义一个SysUser类,在下面的演示案例中会用到。 package com.example.demo.model.entity;import j…

Linux环境下的性能分析 之 CPU篇(二)

2、CPU的使用情况分析 a、类似任务管理器的top & htop 说到对CPU的性能分析,大家一定不会忘记windows下那个最熟悉的工具:任务管理器。 有了这个玩意儿,我们就可以看到CPU的利用率,以及每一个进程所占用的CPU资源。那在Linu…

C++类和对象篇

1.类的定义 在C语言结构体中,只能定义变量,C扩展了类的概念,能够在类定义函数;同时,struct仍然可以使用,但更常用class来表示类 1.1类中函数的两种定义方式 函数的声明和定义都在类中 class Date { public:…

【前端素材】推荐优质后台管理系统Space平台模板(附源码)

一、需求分析 综上所述,后台管理系统在多个层次上提供了丰富的功能和细致的管理手段,帮助管理员轻松管理和控制系统的各个方面。其灵活性和可扩展性使得后台管理系统成为各种网站、应用程序和系统不可或缺的管理工具。 当我们从多个层次来详细分析后台…

【c语言】字符函数和字符串函数(上)

前言 在编程的过程中,我们经常要处理字符和字符串,为了⽅便操作字符和字符串,C语⾔标准库中提供了⼀系列库函数~ 欢迎关注个人主页:逸狼 创造不易,可以点点赞吗~ 如有错误,欢迎指出~ 目录 前言 1. 字符分…

代码随想录刷题第43天

第一题是最后一块石头的重量IIhttps://leetcode.cn/problems/last-stone-weight-ii/,没啥思路,直接上题解了。本题可以看作将一堆石头尽可能分成两份重量相似的石头,于是问题转化为如何合理取石头,使其装满容量为石头总重量一半的…

DataSpell 2023:专注于数据,加速您的数据科学之旅 mac/win版

JetBrains DataSpell 2023是一款专为数据科学家和数据分析师设计的集成开发环境(IDE)。这款IDE提供了强大的数据分析和可视化工具,旨在帮助用户更快速、更高效地进行数据科学工作。 DataSpell 2023软件获取 DataSpell 2023在保持其一贯的数…

【零代码研发】OpenCV实验大师工作流引擎C++ SDK演示

学习《OpenCV应用开发:入门、进阶与工程化实践》一书 做真正的OpenCV开发者,从入门到入职,一步到位! OpenCV开发痛点 传统图像算法开发最好的开源解决方案是OpenCV视觉库,但是OpenCV中收录了2000的传统算法&#xf…

SpringMVC 学习(七)之报文信息转换器 HttpMessageConverter

目录 1 HttpMessageConverter 介绍 2 RequestBody 注解 3 ResponseBody 注解 4 RequestEntity 5 ResponseEntity 6 RestController 注解 1 HttpMessageConverter 介绍 HttpMessageConverter 报文信息转换器,将请求报文(如JSON、XML、HTML等&#x…

【Java EE初阶二十三】servlet的简单理解

1. 初识servlet Servlet 是一个比较古老的编写网站的方式,早起Java 编写网站,主要使用 Servlet 的方式,后来 Java 中产生了一个Spring(一套框架),Spring 又是针对 Servlet 进行了进一步封装,从而让我们编写网站变的更简单了;Sprin…

打造自己的AIGC应用(一)入门篇

其实细数AI的发展历程非常之久,而让AI的应用一下子出现在人们眼前的其实就是ChatGPT的出现,这意味着AIGC应用已经从概念为王变的非常实用了。伴随着ChatGPT的出现,大量的开源大模型也如雨后春笋一样出现。就现在而言,打造一个自己…

49 kmalloc 的实现

前言 这里说的是 内核中分配小对象的一种内存分配方式 kmalloc 呵呵 经典程度不必多说了, 内核使用的大多数 不经常使用的小对象基本上是基于 kmalloc 这里 我们来看一下 kmalloc, kmalloc 基于 slab, 因此 这里不会赘述太多 如何分配对象 kmalloc 是系统中分配小空间…

面试题JS篇

目录 Js 基本数据类型有哪些Ajax 如何使用如何判断一个数据是 NaN?Js 中 null 与 undefined 区别闭包是什么?有什么特性?对页面会有什么影响JS中模块化的方法Js 中常见的内存泄漏什么是事件冒泡?事件委托是什么?如何确…