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

java基础之面试篇三---int,float,long,double取值范围,内存泄露

 
阅读更多

         java中int,float,long,double取值范围是多少?很简单的问题,刚学java就碰到,久了就会生疏,看了些文章,感觉稍微有点不全,这里取大牛们的经,总结了一下。

        先上船,再买票,代码如下:

   

写道
public class TestOutOfBound {
public static void main(String[] args) {

System.out.println(Integer.MAX_VALUE-(-Integer.MAX_VALUE)); //内存溢出
System.out.println(Integer.MAX_VALUE); //2的31次方-1,10个数位,正的20亿左右,用在钱上面不一定够
System.out.println(Integer.MIN_VALUE); //负的2的31次方
System.out.println(Long.MAX_VALUE); //2的64次方-1,19个数位,很大了,可放心用在钱上面
System.out.println(Long.MIN_VALUE); //负的2的64次方
System.out.println(Float.MAX_VALUE); //2的128次方-1,38个数位,比long多了一倍,这个主要用来做简单数学精确运算使用
System.out.println(Float.MIN_VALUE); //2的-149次方
System.out.println(Double.MAX_VALUE); //2的1024次方-1,308个数位,是float数位的10倍,主要用来做复杂运算和天文运算
System.out.println(Double.MIN_VALUE); //2的-1074次方



}
}

 运行结果如下:

-2
2147483647
-2147483648
9223372036854775807
-9223372036854775808
3.4028235E38
1.4E-45
1.7976931348623157E308
4.9E-324

 

   int和long都是很循规蹈矩的符合2的n次方的说法,int是32位,long是64位,唯有float和double像两个淘气的小孩子让人会捉摸不透。float和double的表示形式与int和long是不一样的,他们采用的是IEEE 754标准,这个标准可以这样理解:

(1)两者还是32位的,和int一样,最小值只是他们的精度,是正数,这是需要注意的。如果要取到他们负最大,在他们的最大值前加个符号就好了,如-Float.MAX_VALUE,就是float能表示的负的最大了。

(2)float从左到右,第一位是符号位,2-9位共8位表示整数位,2的8-1次方等于128,后面23位是表示小数的,所以最大值是2^128-1;

(3)double从左到右,第一位是符号位,2-12是共11位表示整数位,2的11-1次方等于1024。剩余20位表示小数,所以最大值是2^1024-1.

(4)如上面代码,当正的最大减去负的正最大,就产生了内存泄露。溢出的结果是不对的。

 

总结:int 和long,float和double的存储要分别对待.要取到实实在在的最大最小值,只需要取到最大值就行了。

 

2
1
分享到:
评论
3 楼 zhangdong92 2017-06-28  
另外内存泄漏一般也不是指计算时溢出。而是指某些对象已经不再使用,但是按照规则不会被GC回收,这种对象越来越多就会导致占据内存一直增长
2 楼 zhangdong92 2017-06-28  
Long.MAX_VALUE应该是(2^63)-1,而不是64次方
Long.MIN_VALUE应该是-(2^63)
因为long占8个字节,64bit,所以所有long的可能数值(正数、负数、0的个数加起来)不会超过2^64个
1 楼 dongqianlin 2015-01-09  
double应该是64位。

相关推荐

    short,int ,long,float取值范围

    ### IEEE754标准下的short、int、long、float取值范围详解 #### 一、IEEE754标准概述 IEEE754标准是用于浮点数表示的一种国际标准,由电气电子工程师学会(IEEE)制定,旨在为不同平台间的浮点数表示提供统一的...

    面试---1. Java&设计模式.pdf

    #### 三、Java基础数据类型 Java中的基础数据类型包括整型、浮点型、逻辑型和字符型。每种类型都有固定的字节数和取值范围: - **整型**:byte(1字节)、short(2字节)、int(4字节)、long(8字节)。 - byte:取值...

    java中基本数据类型的取值范围

    Java 中基本数据类型的取值范围 Java 语言中的基本数据类型可以分为两大类:基本类型和扩展类型。在本节中,我们将学习 Java 语言的基本数据类型。...了解这些基本数据类型的取值范围和特点是 Java 程序设计的基础。

    C++数据类型及取值范围

    了解这些数据类型和它们的取值范围是编写C++程序的基础,因为它决定了变量能够存储的最大和最小值,以及如何有效地分配内存。在编程时,根据实际需求选择合适的数据类型可以避免溢出错误并优化性能。此外,类型转换...

    java面试题-附答案

    在面试中,Java 的基础知识是考察候选人技能的关键部分。以下是一些关于Java的基础知识点: 1. JDK 和 JRE 的区别: JDK (Java Development Kit) 是 Java 开发工具包,它是开发和运行 Java 应用程序所需的一切。它...

    Java基础-个人总结-超详细清楚-用于面试-针对无基础或有基础回忆.docx

    - Java提供了八种基本数据类型:`byte`(1字节),`short`(2字节),`int`(4字节),`long`(8字节),`float`(4字节),`double`(8字节),`boolean`(占用1个或8个字节,取决于实现)以及`char`(2字节)。...

    JAVA程序员面试题-数据类型

    int是Java的基础数据类型,占用4个字节的内存空间,而Integer是int类型的包装类。包装类允许程序员在需要的时候将int类型的值包装成对象。当使用对象的方式处理int值时,可以调用包装类提供的各种方法来处理数据,...

    java程序员手札-基础篇-01

    1. **基本数据类型与变量**:Java有八种基本数据类型,包括整型(byte、short、int、long)、浮点型(float、double)、字符型(char)和布尔型(boolean)。理解它们的取值范围和使用场景是编程的基础。 2. **...

    Java逻辑基础题1-数据类型和运算符-答案.docx

    Java 中有八种基本数据类型:byte、short、int、long、float、double、boolean 和 char。每种数据类型都有其特点和应用场景。 * byte:整数类型,占用 1 字节,取值范围 -128 到 127。 * short:整数类型,占用 2 ...

    各种数据类型的取值范围

    本篇文章将深入探讨不同数据类型的取值范围,并提供一份详细的速查表及注意事项,帮助开发者更好地理解和运用这些基础知识。 #### 速查表 | 数据类型 | 取值范围 | 字节数 | 备注 | |------------------|---------...

    C语言基本数据类型的长度和取值范围

    在探讨C语言的基本数据类型及其长度与取值范围时,我们首先需要理解这些概念的基础含义。数据类型定义了变量能够存储的数据种类以及该数据在内存中的占用空间大小。长度指的是数据类型在计算机内存中占用的字节数。...

    Java数据类型练习.doc

    Java 中有八种基本类型:byte、short、int、long、float、double、boolean、char。每种类型都有其特定的用途和取值范围。 * byte:8 位整数,取值范围为 -128 到 127。 * short:16 位整数,取值范围为 -32768 到 ...

    java经典面试题--101-120.doc

    Java 语言中,面向对象程序设计是核心概念之...每种类型的变量在内存中占据相应的字节数,并且有各自的取值范围和默认值。例如,`int`类型的默认值是0,`boolean`的默认值是`false`,`char`的默认值是`\u0000`,等等。

    50个Java常用面试题

    - int类型的数据在Java中的取值范围是-2^31 到 2^31-1,即-2,147,483,648 到 2,147,483,647。 5. char类型的取值范围: - char类型在Java中占用16位,可以存储一个Unicode字符,其取值范围是0到2^16-1,即0到65,...

    Java基础面试题(题目+答案)

    ### Java基础面试题知识点解析 #### 一、Java的基本数据类型及其包装类 Java中有八种基本数据类型,它们分别为: - **整数类型**:`byte` (8位)、`short` (16位)、`int` (32位)、`long` (64位)。 - **浮点数类型*...

    Java语言程序设计-基础篇-中文ppt-第二章.ppt

    5. **基本数据类型**:深入理解Java中的基本数据类型,包括byte、short、int、long、float、double和char,以及它们的取值范围和用途。 6. **运算符与表达式**:介绍各种运算符(算术、关系、逻辑等)以及如何使用...

    CoreJava面试宝典

    ### CoreJava面试宝典知识点详解 #### Java变量的基本概念 - **变量的性质**:在Java中,变量类似于自然语言中的代词,用于存储数据。 - **Java的类型特性**: - Java是一种**强类型语言**,这意味着每个变量都...

    C语言数据类型及取值范围.doc

    4. `long`和`int`通常相同,占用4字节,有符号和无符号的取值范围同`int`。 5. `long long`: 占用8字节,有符号取值范围是-9223372036854775808到9223372036854775807,无符号则是0到18446744073709551615。 6. 浮点...

    JAVA J2EE基础 面试题汇总

    Java支持八种基本数据类型,包括四种整数类型(`byte`、`short`、`int`、`long`)、两种浮点类型(`float`、`double`)、一个字符类型(`char`)和一个布尔类型(`boolean`)。每种类型都有其默认值和取值范围,例如...

    java基础学习

    abstract boolean break byte case catch char class const continue default do double else extends final finally float for goto if implements import instanceof int interface long native new package ...

Global site tag (gtag.js) - Google Analytics