”new“在 Java 中意思是”新的“,可以说是 Java 开发者最常用的关键字。在 Java 中 new 的操作往往意味着在内存中开辟新的空间,这个内存空间分配在内存的堆区。

堆是用来存放由 new 创建的对象和数组,即动态申请的内存都存放在堆区。栈是用来存放在方法中定义的一些基本类型的变量和对象的引用变量。

Java 中一般使用 new 来创建对象,它可以动态地为一个对象分配地址。它的通用格式如下:

classname obj = new classname( );

其中,obj 是创建的对象,classname 是类的名字,类名后边的( )指明了类的构造方法。构造方法定义了当创建一个对象时要进行的操作。

下面我们通过 String 这个类举例说明。

public class Test {public static void main(String[] args) {String a = "歪比巴卜";String b = new String("歪比巴卜");String c = "歪比巴卜";String d = new String("歪比巴卜");System.out.println(a == b);System.out.println(a == c);System.out.println(d == b);System.out.println(a);a = "Java";System.out.println(a);}
}

输出结果为:

false
true
false
歪比巴卜
Java

不同方式定义字符串时堆和栈的变化:

  1. String a; 只是在栈中创建了一个 String 类的对象引用变量 a。
  2. String a = “歪比巴卜”;在栈中创建一个 String 类的对象引用变量 a,然后查找栈中有没有存放“歪比巴卜”,如果有则直接指向“歪比巴卜",如果没有,则将”歪比巴卜“存放进栈,再指向。
  3. String a = new String(“歪比巴卜”);不仅在栈中创建一个 String 类的对象引用变量 a,同时也在堆中开辟一块空间存放新建的 String 对象“歪比巴卜”,变量 a 指向堆中的新建的 String对象”歪比巴卜“。

1.8 深入解析new运算符相关推荐

  1. 根据运算符优先级解析SQL规则表达式

    1.需求 测试数据库使用Greenplum,生产库使用GBase 普通表:存储客户数据,千万级别,结构如下 stat_date代表日期:user_id代表用户id:serial_number代表手机号 ...

  2. csp初赛复习(往年真题+解析)

    排序算法 前缀/后缀表达式 二进制补码.反码 最短路 图片/音频/视频文件格式 ⋅\cdot⋅ 以比较作为基本运算,在 N 个数中找最小数的最少运算次数为( ). A. NNN B. N−1N-1N− ...

  3. java中左移运算符解释_java左移右移运算符

    位运算(只对byte.short.char.int.long有效) 左移和右移运算相当于实现整数乘以或除以2的n次方 2.7三元运算符表达式1的结果为true时,就为第二个表达式,如果为...... ...

  4. 【学习笔记10】JavaScript三元运算符和比较运算符

    一.三元运算符 (一)语法一:直接执行程序 // 通过输入框输入数据var num = Number( window.prompt('请您输入数据') );// if语句if( num % 2 === ...

  5. DB2 错误码解析

    DB2 错误代码大全--SQLSTATE 消息 SQLSTATE 消息 本节列示 SQLSTATE 及其含义.SQLSTATE 是按类代码进行分组的:对于子代码,请参阅相应的表. 表 2. SQLST ...

  6. RoboMaster遥控器数据解析

    位运算及遥控器数据解析 移位运算符 遥控器数据获取 遥控器数据解码 RoboMaster遥控器官方例程里面有一个数据解析函数,下面就来为同学们解析数据解析(套娃). 程序源码如下: //遥控器数据解析 ...

  7. pythone二级题库 + 刷题软件 (超详细解析,看完必过) 第七套

    刷 题软件(模拟python二级考试) 操作题刷题软件 公众h:露露IT 回复:python二级 1.选择题 1.树的度为3,且有9个度为3的结点,5个度为1的结点,但没有度为2的结点.则该树中的叶子 ...

  8. 大学计算机模拟考试常见试题与解析

    UPDATE INFO 2016-12-26 更新6题(11-16) 第一题 答案 A 解析 ASCII码 空格符 32 数字0 48 数字9 57 大写字母(从A~Z) 65-90 小写字母(从a~ ...

  9. 河科大c语言上机实验答案,2016年河南科技学院信息工程学院C语言上机编程考研复试题库...

    一.选择题 1. 以下选项中,能用作数据常量的是( ). 答:D [解析]A 项错误,十六进制数用数学0和字符x (或大写字母X )开头:B 项错误,八进制整数常量以数字0开始,有效数字为0〜7; C ...

最新文章

  1. PHP并发验证,PHP接口并发测试的方法(推荐)
  2. 通过PDO 连接SQL Server
  3. redis stream java消息队列_Redis-消息队列的两种实现方式
  4. Servlet基础(三) Servlet的多线程同步问题
  5. Discuz!X安装配置
  6. coco2dx c++ HTTP实现
  7. map集合的常用方法和遍历
  8. Android自定义事件总线,android事件总线EventBus3.0使用方法详解
  9. Python编程基础08:循环结构
  10. 代理 设置wsl_为 WSL2 一键设置代理
  11. tensorflow项目构建流程
  12. 海外市场鸿蒙系统,华为海外市场已恢复,鸿蒙系统首发应用在荣耀智慧屏,8月上市...
  13. 身为程序猿——谷歌浏览器的这些骚操作你真的会吗
  14. 测试用例编写方法——场景法
  15. 改变cmd窗口的前景色和背景色
  16. 小程序canvas输出gif格式的图片作为表情
  17. 鸽巢排序(Pigeonhole sort)
  18. GitHub上广受欢迎的下载神器:youtube-dl
  19. android高德SDK无法定位,高德地图 getLocation无法定位的问题
  20. 家长会计算机教师致辞,初中生物教师家长会发言稿

热门文章

  1. Dataset之iGAN:iGAN数据集的简介、安装、使用方法之详细攻略
  2. BlockChain:区块链/加密数字货币落地技术应用高质量相关文章
  3. SSH免密码登录命令无法生效?直接复制粘贴也可以!
  4. Python-装饰器-案例-获取文件列表
  5. 第二次周考题目答案整理
  6. sklearn中各算法类的fit,fit_transform和transform函数
  7. ios警告与提示对话框
  8. Delete Master Data时的注意事项
  9. poj 1077 eight
  10. 电脑蓝屏原因分析利器