请谨慎使用Java基本类型的对象类

能使用基本类型的情况请尽量使用基本类型,避免使用对应的对象类。如:一般首荐int、long、float、double,尽量少使用Integer、Double、Float、Double类型。因为在某些情况下,Java会自动的装箱及拆箱操作,从而造成程序性能问题。

在我本地电脑运行如下两个程序,出现了较大的性能差异:

public class LongTest {
    public static void main(String[] args) {
        long startTime=System.currentTimeMillis();
  
        Long sum=0L;
        for(long i=0;i<Integer.MAX_VALUE;i++){
            sum+=i;
        }
        System.out.println(sum);
  
        long endTime=System.currentTimeMillis();
        System.out.println("耗时:"+(endTime-startTime)+"毫秒");
    }
}

该程序运行耗时:8458毫秒;

public class LongTest1 {
    public static void main(String[] args) {
        long startTime=System.currentTimeMillis();
      
        long sum=0L;
        for(long i=0;i<Integer.MAX_VALUE;i++){
            sum+=i;
        }
        System.out.println(sum);
      
        long endTime=System.currentTimeMillis();
        System.out.println("耗时:"+(endTime-startTime)+"毫秒");
    }
}

该程序运行耗时:1364毫秒;

由此可见,基本类型的对象类要比基本类型性能低,在非必要的情况下,尽量使用基本类型进行代码的编写。

时间: 2024-10-31 12:16:33

请谨慎使用Java基本类型的对象类的相关文章

Java基础之类和对象

Java基础之类和对象 类和对象 定义: 类:类是一个模板,它描述一类对象的行为和状态 对象:类是一个模板,它描述一类对象的行为和状态 类 package com.imooc.animal; public class cat { String name="小猫咪"; public void run() { System.out.println("小猫快跑!"); } public void run(String name) { System.out.println(

java中基本类型封装对象所占内存的大小(转)

这是一个程序,java中没有现成的sizeof的实现,原因主要是java中的基本数据类型的大小都是固定的,所以看上去没有必要用sizeof这个关键字. 实现的想法是这样的:java.lang.Runtime类中有一些简单的能涉及到内存管理的函数: Every Java application has a single instance of class Runtime that allows the application to interface with the environment in

浅析java设计模式(一)----异构容器,可以存储任何对象类型为其他类提供该对象

最近在着手重构一个java UI桌面项目,发现这个项目在一开始的时候由于需求不明确,以及开发人员对swing框架不熟悉等问题造成了页面代码混乱的情况:为了能够在各个类里都可以拿到其他类的引用去进行相应的页面响应操作,在每一个类的构造方法中都传入了主类的引用,在主类中提供了所有类的get()方法,这样的做法显得十分的臃肿,就像这样: 打开主页面后会显示窗体B,窗体B的按钮支持我们打开窗体A,窗体A按钮支持修改B中属性.我们只能通过在主页面的类中使用get(),set()方法来持有A和B的引用,在A

java基础 第一章 对象入门

第1章 对象入门 "为什么面向对象的编程会在软件开发领域造成如此震憾的影响?" 面向对象编程(OOP)具有多方面的吸引力.对管理人员,它实现了更快和更廉价的开发与维护过程.对分析与设计人员,建模处理变得更加简单,能生成清晰.易于维护的设计方案.对程序员,对象模型显得如此高雅和浅显.此外,面向对象工具以及库的巨大威力使编程成为一项更使人愉悦的任务.每个人都可从中获益,至少表面如此. 如果说它有缺点,那就是掌握它需付出的代价.思考对象的时候,需要采用形象思维,而不是程序化的思维.与程序化设

java反射-反射实例化对象-反射获得构造方法-反射获得普通方法-获得属性

链接:https://www.zhihu.com/question/24304289/answer/38218810来源:知乎著作权归作者所有,转载请联系作者获得授权. Class<?> cls = Class.forName("cn.mldn.demo.Person"); // 取得Class对象 第一步:获得对象,构造方法,普通方法,属性 Object obj = cls.newInstance() Constructor<?> cons = cls.get

Effective Java:对于所有对象都通用的方法

前言: 读这本书第1条规则的时候就感觉到这是一本很好的书,可以把我们的Java功底提升一个档次,我还是比较推荐的.这里我主要就关于覆盖equals.hashCode和toString方法来做一个笔记总结,希望能够与君共勉. 概述: 这一章主要是说明一些对于所有对象都通用的方法.我们知道Java的多态是其特色之一,而多态的体现方式中就有一种方式叫做"重写".这些概念性的东西我想在大学我们学习Java的初期,老师就会如数家珍一样地灌输给我们,不过,在那个时候有多少人真的了解了什么是重载,什

深入理解Java注解类型(@Annotation)

"-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 深入理解Java注解类型(@Annotation) - zejian的博客 - 博客频道 - CSDN.NET zejian的博客 目录视图 摘要视图 订阅 [活动]2017 CSDN博客专栏评选 &nbsp [5月书讯]流畅的Python,终于等到你!    &am

【Java】课后动手动脑 类与对象

1.代码及实验结果 当"=="施加于原始数据类型变量时,是比较变量所保存的数据是否相等 当"=="施加于引用类型变量时,是比较这两个变量是否引用同一对象. 引用代表地址,所以"=="实际上相当于比较两个引用类型变量中保存的对象地址是否相同. 2.代码及实验结果 如果类提供了一个自定义的构造方法,将导致系统不再提供默认构造方法. 3.代码及实验结果 Java字段初始化的规律:按照顺序初始化,如果有多个方法对字段初始化,将按照最后一次初始化输出. 4

1.Java基础之System对象

毕向东老师Java基础学习笔记——System对象 今天学习Java中的System对象后,感觉这个对象对我们主要有以下几点用处. 1.获取当前操作系统版本和类型. 2.获取当前操作系统的path中的环境变量. 范例代码如下: /* System:类中的方法和属性都是静态的. out:标准输出,默认是控制台. in:标准输入,默认是键盘. 描述系统一些信息 获取系统属性信息:Propcrtics */ import java.util.*; class SystemDemo { public s