首页 > 编程语言 >对Java中new关键字的理解

对Java中new关键字的理解

时间:2024-01-09 22:44:08浏览次数:24  
标签:Java 构造方法 对象 关键字 引用 一个 new

在编写Java程序中,最常用的就是new,那么new这个关键字到底做了什么(目前的理解,后续再补充)

在Java中,new关键字用于创建对象的实例。当使用new关键字时,它会在堆内存中为对象分配空间,并调用对象的构造方法来初始化对象的状态。相当于分配了一个内存地址,每new一个就有一个新地址,

当使用new关键字创建对象时,实际上发生了几个重要的步骤:

  1. 分配内存空间: new关键字会在堆内存中为对象分配足够的空间,以容纳该对象的所有成员变量。

  2. 调用构造方法: 在分配内存后,会调用对象的构造方法。构造方法负责初始化对象的状态,可以设置对象的属性或执行其他必要的操作。

  3. 返回对象引用: new关键字返回一个指向新创建对象的引用。该引用可以用于在程序中操作、访问和传递对象。

声明一个变量来指向一个对象,即引用

当通过类来声名一个对象的时候,这个变量要通过new来获取对象。

先从简单看,要声明一个变量,需要写:type name;

这将告诉编译器将使用name引用一个type类型的对象。用一个原始变量,这个声明也保留了适当的内存量的变量。

也可以在自己的类上声明一个引用变量。例如:Point  originone

        如果只是声明一个像originone这样的引用变量,其值将待定,直到有一个对象真正被创造和分配给它。只是简单地声明一个引用变量而并没有创建一个对象。对于这样,需要使用new运算符。在代码中使用它之前,必须指定一个对象给originone。否则,得到一个编译器错误-----空指针异常。

   

实例化一个类对象

        new运算符实例化一个类对象,通过给这个对象分配内存并返回一个指向该内存的引用。new运算符也调用了对象的构造函数。

        注意:“实例化一个类的对象”的意思就是“创建对象”。创建对象时,正在创造一个类的“实例”,因而“实例化”一个类的对象。

        new运算符需要一个单一的,后缀参数,需要调用构造函数。构造函数的名称提供了需要实例化类的名称。

        new运算符返回它所创建的对象的引用。此引用通常被分配给一个合适的类型的变量,如:Point  originone =new Point(23,94);

  

初始化一个类对象

像有很多构造方法的时候,那么形参的选则就极为重要,然后通过选择出来的构造方法声明对象,那么没选择到的就没法调用。

 

标签:Java,构造方法,对象,关键字,引用,一个,new
From: https://www.cnblogs.com/sixsix666/p/17955514

相关文章

  • Java语言程序设计(基础篇 原书第10版)PDF
    《Java语言程序设计(基础篇原书第10版)》是Java语言的经典教材,中文版分为基础篇和进阶篇,主要介绍程序设计基础、面向对象编程、GUI程序设计、数据结构和算法、高级Java程序设计等内容。本书以示例讲解解决问题的技巧,提供大量的程序清单,每章配有大量复习题和编程练习题,帮助读者掌握编......
  • Java字节码文件详解​
    03.字节码文件详解JVM的组成从字节码文件的执行流程看JVM的组成:1.准备好字节码文件(自己编译或其他人传给你)2.使用类加载器ClassLoader加载(此时JVM已参与)3.运行时数据(JVM管理的内存)4.执行引擎(即时编译器、解释器垃圾回收器等):将字节码文件中的指令解释成机器码,同时使用即时编译器优化......
  • 通过印模生成电子印章-Java源代码
    以下代码是处理印模图片的核心代码,通过以下代码可以将公章图片转换为电子印章图片。制作方式分为四步:1、在白纸上加盖印章;2、把加盖印章的白纸扫描,形成图片;3、将图片通过下面的代码进行自动透明化抠图处理;4、程序返回自动透明化抠图处理后的电子印章图片。5、处理后的电子印章效果(......
  • java生成企业公章图片源代码
    企业公章图片在电子签章业务中应用广泛,在电子签章应用过程中首先需要生成公章图片,然后再使用公章图片结合数字签名技术完成电子签,这样就实现了从可视化到不可篡改的数字化电子签章功能,以下是企业公章图片生成源代码。importcom.resrun.utils.Base64;importorg.apache.pdfbox.io.......
  • java的idea使用maven下载依赖速度过慢解决
    idea页面双击shift键,搜索settings.xml然后将以下代码复制到xml中间的settings中间切换为阿里源<mirrors><!--mirror|Specifiesarepositorymirrorsitetouseinsteadofagivenrepository.Therepositorythat|thismirrorserveshasanIDthatmatc......
  • java8日期时间格式化DateTimeFormatter多个格式
    原文地址:datetimeformatter.ofpatternmultipleformats-掘金DateTimeFormatter 是一个用于日期时间格式化和解析的类。使用 ofPattern 方法可以创建一个格式化器,该方法接受一个日期时间格式的字符串作为参数。如果您需要在同一个 DateTimeFormatter 对象中支持多种不同的......
  • Java多线程编程中的异常处理策略
    第1章:引言大家好,我是小黑,咱们今天聊聊异常处理。想必大家在写代码的时候都遇到过各种各样的异常吧?有时候,一个小小的异常如果处理不当,就可能导致整个程序崩溃。特别是在多线程环境下,异常处理就像是在拆雷,稍不留神,程序就可能“炸”了。为啥多线程编程中的异常处理这么重要呢?咱们......
  • JavaScript apply、call、bind 函数详解
    apply和callapply和call非常类似,都是用于改变函数中this的指向,只是传入的参数不同,等于间接调用一个函数,也等于将这个函数绑定到一个指定的对象上:letname='window'functiongetName(param1,param2){console.log(this.name)console.log(param1,param2)}letobj=......
  • Java学习建议
    很多大学生、在职员工、IT爱好者都会选择学习Java来提升自己的专业技能,那么在学习之前做好充分的准备也是必须的。建议大家不妨仔细研究下如何快速系统入门,这样才利于更好的掌握Java技术。以下是对于Java学习的一些建议,供参考。 1.了解Java,明确自己的学习目标 Java是一门面向对......
  • 基于Java的在线教育平台设计与实现
    一、 选题依据及意义随着电子技术和网络信息的迅速发展,互联网正在政治、经济、文化各个领域引发着一场影响广泛而深远的革命。利用互联网展开的网上教育,已经越来越成为衡量一个地方教育综合发展的重要指标之一。21世纪是一个网络平台的信息时代,随着网络应用的普及和深入,目前网络......