`
jiaguwen123
  • 浏览: 413569 次
  • 性别: Icon_minigender_2
  • 来自: 深圳
社区版块
存档分类
最新评论

java中++和+=的执行原理有什么不同?

 
阅读更多
i+=1 运行的底层Heap申请一个区域存放i,在数据区域开劈一个区域存放1,2个内存段被数据被送入到寄存器中进行运算,运算结果被放到heap中,数据区域运算后被自动释放后有GC回收
i++ 是将heap中数据直接送到寄存器中进行运算,运算结果会直接存放在heap中。
从上面的

可以写个测试程序测试:
for(int i=0;i<100000;i++){
i++;
}和
for(int i=0;i<100000;i++){
i+=1;
}
第二个每运行一次需要在数据区域申请内存存放1,用完后再释放。
如果要提升i+=1的运行效率的话,可以讲1作为一个静态变量存储,如:
public static int cnt = 1;
for(int i=0;i<100000;i++){
i+=cnt;
}
因为静态变量只要申请一次就永久存在内存中了,第二次使用时直接从内存中取用而不用不停的申请内存和释放内存了
分享到:
评论

相关推荐

    java中for(int i= 0; i<=10;i=i++)System.out.print(i);为什么无限输出0

    在Java编程语言中,`for`循环是一种常用的迭代结构,用于重复执行一段代码直到满足特定条件为止。在本文中,我们将深入探讨一个有趣的`for`循环示例,并解释为什么该示例会导致一个无限循环并无限输出数字0。 #### ...

    appium的java实现+appium原理

    3. 配置构建路径,引入Appium类库(如java-client-4.2.2.jar)和Selenium客户端及服务端(selenium-java-2.53.0.zip和selenium-server-standalone-2.53.0.jar)。 4. 新建一个类(如AppiumTestLianjia.java)。 5. ...

    学生社团管理系统(Java swing + JDBC + Mysql实现)

    在压缩包文件中,“SduAct”可能包含了系统的主要Java源代码和资源文件,开发者可以查看这些文件了解具体的实现细节。“visio图片”可能包含了系统的设计图或流程图,帮助理解系统架构和工作流程。“数据库创建”...

    java++jsp+网络电视代码Java源码

    标题中的"java++jsp+网络电视代码Java源码"表明这是一个关于使用Java和JSP技术开发的网络电视应用的源代码项目。这个项目可能包含了播放、控制、用户界面等相关功能的实现,对于学习和理解Java在网络编程,尤其是流...

    c++--++==java

    标题中的"C++--++==Java"似乎是在表达C++与Java之间的某种关系或者对比,但这个表达在编程语法中并没有实际意义。不过,这确实暗示了我们要探讨的是两种语言的异同以及Java的发展历程。 Java是一种广泛使用的面向...

    java + webservice + sqlserver

    综上所述,"java + webservice + sqlserver"项目涉及到了Java Web服务的开发、客户端调用、以及与SQLServer数据库的交互,这是一项综合性的技术实践,要求开发者具备Java编程、Web服务原理、数据库管理和调试技巧。...

    java+jsp+servlet+dao+oracle做得分页 增删改查操作

    在IT行业中,Java是一种广泛应用的编程语言,尤其在企业级应用开发中占据着核心地位。JSP(JavaServer Pages)是Java技术的一部分,用于创建动态网页。Servlet是Java中的一个服务器端程序,常用于处理HTTP请求。DAO...

    java+多线程+同步详解Java源码

    在Java中,多线程允许同时执行多个代码段,从而提高程序的执行效率,特别是在处理I/O密集型或计算密集型任务时。同步机制则用于在多线程环境下控制资源的访问,确保数据的一致性和完整性。 一、Java多线程 1. **...

    java+mysql学生选课系统

    本项目是一个基于Java后端开发语言和MySQL数据库系统的练手之作,虽然没有提供详细的文档或PPT,但通过源代码我们可以深入理解其背后的原理和实现方法。 首先,Java作为开发语言,具有跨平台、面向对象的特点,广泛...

    java+compile.rar_java netbean compi_编译原理 java

    在“java+compile.rar_java netbean compi_编译原理 java”这个压缩包中,我们主要关注的是使用Java和NetBeans进行编译原理的实践。 编译原理是计算机科学的重要组成部分,它涉及到将高级编程语言转换为机器可理解...

    Java 图像钝化与锐化

    在实际开发中,我们可能还会使用到Java的`java.awt.image.ConvolveOp`类,它可以更高效地执行卷积操作,特别是对于大图像和复杂的核。 此外,`ZPhotoer`这个文件可能是一个Java图像处理工具的源代码,包含了一些...

    Java面试解析总结:Java+Redis+数据库+解决方案+分布式...docx

    - **Java内存分配与回收策略**:Java中对象的创建和销毁遵循一定的规则,了解这些规则有助于优化内存使用。 #### Java并发篇 - **Synchronized关键字**:Synchronized关键字是Java中最基本的同步机制之一,它可以...

    深入理解Java虚拟机(jvm性能调优+内存模型+虚拟机原理).zip

    首先,我们要了解Java虚拟机(JVM)是Java程序运行的平台,它负责解释和执行Java字节码,为Java应用程序提供了一个跨平台的运行环境。JVM的核心功能包括类加载、字节码验证、内存管理、垃圾收集等。 在JVM性能调优...

    动力节点JAVA基础+进阶源代码和笔记.rar

    10. **JVM原理**:理解Java虚拟机的工作原理,包括类加载机制、内存管理(堆、栈、方法区等)、垃圾回收等,有助于优化代码性能和避免内存泄漏。 11. **数据库操作**:使用JDBC进行数据库操作,包括连接数据库、...

    简单的留言板程序+java+jsp+access

    这是一个基于Java、JSP和Access数据库的简单留言板程序。该程序提供了一个基本的交互平台,让用户可以在网站上留下他们的信息,而无需注册或登录。以下是关于这个程序的一些关键知识点: 1. **Java**: Java是一种...

    基于java+mysql的atm管理系统

    【基于Java+MySQL的ATM管理系统】是一种使用Java编程语言和MySQL数据库技术开发的应用程序,主要目的是模拟实际的自动取款机(ATM)功能,为用户提供存款、取款、查询余额等服务。这个项目是初学者在学习完Java基础...

    30+个视频+深入理解Java虚拟机(jvm优化+内存模型+虚拟机原理)

    Java虚拟机(JVM)是一种用于执行Java字节码的虚拟机环境。它允许Java程序在任何支持JVM的平台上运行而无需重新编译。JVM的关键特性包括平台独立性、内存管理和自动垃圾回收等。了解JVM的工作原理对于提高Java应用...

    学生信息管理系统(java+SQL)

    在`StuDemo.java`中,可能会有以下代码片段: ```java import java.sql.*; public class StuDemo { public static void main(String[] args) { String url = "jdbc:mysql://localhost:3306/StudentDB"; String ...

    Java零基础 - Java的加载与执行原理剖析.md

    ### Java零基础 - Java的加载与执行原理剖析 #### 一、概述 Java作为一种流行的编程语言,其程序的执行依赖于Java虚拟机(JVM)。本文将深入剖析Java程序从编写到执行的整个过程,包括Java程序的加载、验证、准备、...

Global site tag (gtag.js) - Google Analytics