`

改善Java代码质量---数据类型

    博客分类:
  • Java
 
阅读更多

   

在Java当中有8种基本数据类型,分别是byte,char,short,int,long,float,double,boolean还有其对应的封装类型Byte,Character,Short,Integer,Long,Float,Double,Boolean,那我们究竟对他们有多少的了解呢? 

 

1.用偶判断,不用奇判断 

    在Java中可以使用取余的方式来进行奇数还是偶数的判断:

public static void main(String[] args) {  
        int num = -1;  
        System.out.println(num % 2 == 1 ? "奇数" : "偶数"); // 输出结果为偶数  
    }  

    从上面代码中,-1怎么可能是偶数呢?首先我们就需要了解Java是如何取余的 :

public static int remainder(int dividend, int divisor) {  
        return dividend - dividend / divisor * divisor;  
        //java中整数除以整数还是整数。
    }  

    -1 % 2的运算结果还是-1,以后记得写成num % 2 == 0 

 

2.对精确货币计算使用BigDecimal类型 

      在使用货币计算时,我们首先想到的是使用double类型,但在计算机世界中,浮点类型有可能是不准确的,他只能无限的接近某一个值,而不会完全精准,这是因为二进制的原因,就像用10进制无办法表示10 / 3一样,所以对于精确的货币计算,应该使用BigDecimal类型,而且BigDecimal和数据库中的NUMBER和DECIMAL类型很好的匹配。

 

3.注意类型的默认转换 

     在Java当中,当大的类型与小类型进行运算时,该运算会自动提升为大类型,这种转换成为加宽类型,例如long类型和int类型进行运算后会自动提升为long类型

public static void main(String[] args) {  
        // 2147483647为int最大值  
        long num = 2147483647 + 1;  
        System.out.println(num); // 运行结果为 -2147483648  
    }  

    以上代码中,2147483647为int类型的最大值,我使用long类型来接受int最大值+1应该是没问题的,但事实并不是如此,这是因为在Java中是先运算再进行类型转换的,二者都是int类型,所以运算结果也应该是int类型,所以超出了int类型的最大范围,此时应修改为2147483647L + 1

 

4.数值类型最大值应使用Java提供常量 

 

      在3的例子当中,我们使用了int的最大值214748364,当然读者可能是有超人的记忆把int的最大值和最小值记住了,但short类型long类型呢,所以我们应该使用Java自带的常量来获取数值类型的最大值和最小值

public static void main(String[] args) {  
        // int类型最大值  
        int maxInt = Integer.MAX_VALUE;  
        // int类型最小值  
        int minInt = Integer.MIN_VALUE;  
        // long类型最大值  
        long maxLong = Long.MAX_VALUE;  
        // long类型最小值  
        long minLong = Long.MIN_VALUE;  
        // short类型最大值  
        short maxShort = Short.MAX_VALUE;  
        // short类型最小值  
        short minShort = Short.MIN_VALUE;  
    }  

 

 5.注意数值的边界判断 

 

    public static void main(String[] args) {  
        test(Integer.MAX_VALUE + 1);  
    }  
    public static void test(int num) {  
        if (num < 2000) {  
            System.out.println("执行");  
        }  
    }  

 

    test方法的逻辑非常简单,若然int类型的数值少于2000就执行,当我使用int类型的最大值+1时,就因为类型越界而变成int的最少值,所以满足少于2000的条件从而执行方法,所以对于严谨的程序,应该进行 业务/正最大/负最小 的边界判断,特别是从前台接受过来的值。

 

6.提防包装类的null值 

    包装类型是基本类型的包装类,当使用包装类型时,其实就生成了对象,当然对象是允许为null的,所以需要注意包装类型的!null判断。

 

7.理解基本类型-->包装类型装箱拆箱过程 

    以下为Intger类型例子,Double和Float等同理:

    从基本类型-->包装类型是调用包装类型的valueOf()方法来进行转换 

    从包装类型-->基本类型是调用包装类型的intValue()方法来进行转换 

 

8.优先选择基本类型 

    基本类型是存在栈的,而包装类型因为是对象,所以是存在堆中,在处理速度上,由于基本类型是原生类型,所以速度更快。其实换个思维也可以思考到,包装类型封装了属性和方法,生成的速度会比基本类型慢,而且当包装类型进行运算时,都将调用intValue()方法然后再调用valueOf()方法封装回包装类型,所以在可行的情况下,优先选择基本类型,但在特定的框架例如Hibernate中推荐使用包装类型。

 

 

 

 

分享到:
评论

相关推荐

    编写高质量代码 改善Java程序的151个建议 PDF高清完整版

    《编写高质量代码 改善Java程序的151个建议》是一本专注于提升Java编程质量的专业书籍。书中详细列举了151条实用的建议,旨在帮助开发者编写出更高效、可读性更强且易于维护的Java代码。以下是对这些建议的详细解读...

    Core Java Volume I-Fundamentals

    9. 注解(Annotations)是Java 5之后出现的特性,它允许程序员将元数据嵌入到Java代码中,这对于改善代码的可读性和可维护性有重要作用。 以上知识点都是学习Java编程不可绕过的基础,是构建Java应用程序的基石。...

    java-1.8-source.zip

    通过对这些源代码的学习,开发者不仅可以了解 Java 语言的设计和实现细节,还可以掌握如何利用这些新特性和API来提高开发效率和代码质量。此外,深入研究虚拟机(JVM)的源码,如垃圾收集器的工作原理、类加载机制等...

    java-jdk1.8-jdk-8u151-windows-x64.zip

    总之,Java JDK 1.8 Update 151为Windows x64用户提供了一个强大的开发环境,其新特性极大地改善了开发体验和代码质量。正确安装和配置后,开发者可以充分利用这些新特性来构建高效、易维护的Java应用程序。

    JAVA8API-官方文档下载-中文版

    **JAVA8 API 中文官方文档概述** JAVA8 API 是Java开发者的重要参考资料,它详细阐述了Java 8平台的核心类库,包括各种接口、类...通过学习和应用这些知识,开发者可以编写出更加高效、简洁的Java代码,提升软件质量。

    java jdk-8u60-windows-x64

    8. **类型接口推断**:Java 8增强了编译器的类型推断能力,使得开发者在使用泛型和lambda表达式时可以省略更多的类型信息,代码更加简洁。 9. **并行数组操作**:`java.util.Arrays`类增加了并行处理数组的方法,如...

    .java代码重构

    《.java代码重构》 代码重构是软件开发过程中的一个重要环节,它涉及到对现有代码的改进,以提高代码的可读性、可维护性,同时并不改变其外在行为。在Java编程中,代码重构是一种常见的实践,尤其在大型项目中,...

    java JDK-17 64位包

    安装JDK 17 64位包后,开发者可以在IDE如IntelliJ IDEA、Eclipse等中配置JDK 17,然后开始编写和运行Java程序,利用其新特性提高开发效率和代码质量。同时,对于已经在使用JDK 17之前的版本的企业,建议进行兼容性...

    改善Java程序的151个建议

    本章节从Java的基础出发,围绕着语言特性和编码规范提供了若干实用且深刻的建议,帮助开发者避免常见陷阱,提高代码质量。接下来,我们将详细探讨书中提到的前三条建议及其背后的原理。 ### 建议1:不要在常量和...

    学生成绩分析和弱项辅助系统论文-java-文档-学生成绩分析和弱项辅助系统文档

    - **2.1 MySQL数据库**:MySQL是当前最流行的开源关系型数据库管理系统之一,支持多种数据类型,具有高性能、高稳定性和良好的扩展性。 - **2.2 Vue前端技术**:Vue.js是一种用于构建用户界面的前端框架,以其简洁的...

    JAVA源码JAVASmart系统-题库及试卷管理模块的设计与开发(源代码+论文)

    通过采用先进的Java技术和成熟的技术框架,该系统不仅能够有效提高教师的教学效率,还能显著改善学生的学习体验。未来,随着技术的不断进步和应用场景的扩展,题库及试卷管理系统的功能将会更加完善,更好地服务于...

    java编码规范-《The Elements of Java Style》翻译本

    《The Elements of Java Style》是一本权威的Java编码风格指南,旨在帮助开发者编写出高质量的Java代码。以下是对这本书中核心知识点的简要概括: 1. **命名规则**:在Java编程中,变量、方法和类的命名应该清晰、...

    java--熊焕卫-不好的设计

    在Java编程领域,良好的设计是确保代码质量、可维护性和扩展性的重要因素。"java--熊焕卫-不好的设计"这一主题旨在探讨并避免在Java编程中常见的不良设计实践。熊焕卫可能是该主题的作者或讲师,他通过这个话题分享...

    乡村养老服务管理系统论文-java-文档-乡村养老服务管理系统文档-文档

    - **字典管理**:系统中各类数据的分类管理,如服务类型、费用标准等。 - **文娱活动管理**:组织老年人参与的各种娱乐文化活动。 - **活动报名管理**:老年人报名参加活动的相关信息管理。 - **健康档案管理**:...

    java代码重构经验总结

    综上所述,Java代码重构是提升代码质量和开发效率的重要手段。通过遵循重构原则、掌握重构技巧、识别并消除代码“坏味道”,以及采用合理的异常处理策略,可以显著提升软件的稳定性和可维护性。

    编写高质量代码:改善Java程序的151个建议pdf和源码 高清

    《编写高质量代码:改善Java程序的151个建议》是一本专为Java开发者准备的实战指南,旨在提升代码质量并帮助程序员从初级迈向高级。这本书涵盖了从基础到高级的各种编程实践,通过151个具体的建议,为读者提供了一个...

    改善Java程序的151个建议 扫描版 pdf

    《改善Java程序的151个建议》这本书是Java开发者提升技能的重要参考资料,它涵盖了大量实用的编程技巧和最佳实践,旨在帮助具有基础Java编程能力的程序员进一步提高代码质量和效率。以下将根据书名和描述,结合Java...

    自己写的转换器,包含各种基本的数据类型。

    总的来说,自定义类型转换器是解决框架默认转换机制不足的有效手段,对于理解和优化业务流程、提高代码质量具有重要意义。通过对这个压缩包的学习,开发者可以深入理解Struts1框架的工作原理,同时也能掌握自定义...

    java 代码重构优化 Java 代码优化 java设计优化

    以上就是关于Java代码重构、优化以及设计优化的一些关键点,这些知识不仅能提升代码质量,还能帮助开发者更好地应对项目中的各种挑战。通过深入学习《重构-改善既有代码的设计》这样的经典书籍,你可以进一步提升...

    Java枚举数据类型.doc

    总结来说,Java枚举类型是为了解决传统整型枚举模式的不足而设计的,它提供了类型安全、良好的可读性和可扩展性,是编写高质量Java代码的重要工具。在实际开发中,应优先考虑使用枚举类型来定义固定的、有限的选项...

Global site tag (gtag.js) - Google Analytics