java中基本数据类型与对象引用类型的默认初始化值学习

import org.junit.Test;

public class TestInit {
    boolean boo;
    char cha;
    byte by;
    short shor;
    int in;
    float flo;
    long lon;
    double dou;
    String str;

    @Test
    public void aa() {
        System.err.println("boolean:" + boo);
        if (cha == ‘\u0000‘) {
            System.err.println("char:" + (int) cha);
            System.err.println(cha);
        }
        System.err.println("byte:" + by);
        System.err.println("short:" + shor);
        System.err.println("int:" + in);
        System.err.println("long:" + lon);
        System.err.println("float:" + flo);
        System.err.println("double:" + dou);
        System.err.println("String:" + str);
    }
}

以上为测试程序,输出结果为:

boolean:false
char:0
byte:0
short:0
int:0
long:0
float:0.0
double:0.0
String:null

结论:

布尔值: boolean默认false

字符: char,

整数:byte,short,int,long为0

实数: float,double为double类型的0.0

对象引用为null

补充:

(1)、new方式创建对象保存到堆中,保存其地址的引用,对于基本数据类型来说,java采取和c、c++相同方式,创建的变量直接存储值,置于栈顶,更加高效。

(2)、Java中每种基本数据类型所占存储空间大小,不依赖于机器硬件架构变化而变化,即基本数据类型所占存储空间具有不变性。

(3)、所有数值类型都有正负号,没有无符号的数值类型

各个基本数据类型的大小及精度如下表:

基本类型 大小 最小值 最大值 包装类型
boolean -- -- -- Boolean
char 16bit,2个字节(byte) Unicode 0 Unicode 2^16-1即,65535 Character
byte 8bit,1个字节 -128 127 Byte
short 16bit,2个字节 -2^15即32768 +2^15-1,即32767 Short
int 32bit,4个字节 -2^31即2147483648,约-21亿 +2^31-1,即2147483647,约约+21亿 Integer
long 64bit,8个字节 -2^63即9223372036854775808,约-922亿亿 +2^63即9223372036854775807,约+922亿亿 Long
float 32bit,4个字节 1.4E-45,即1.4*(1/10^45) 3.4028235E38,即3.4028235*10^38 Float
double 64bit,8个字节 4.9E-324,即4.9*(1/10*324) 1.7976931348623157E308即1.7976931348623157*10^308 Double

表说明:1)、boolean类型所占存储空间大小没有明确指定,仅仅定义能够取字面值true,false

2)、各个数值类型的最大值,最小值,均可通过包装类型的MIN_VALUE与MAX_VALUE获取,如Double.MIN_VALUE。

3)、jdk1.5后提供自动装拆箱机制,基本数据类型和包装类型自动转换。

4)、表格中按照从上到下精度由低到高(boolean除外),从高精度到低精度需显示强制转换(boolean除外)。

附加:高精度数字

BigInteger:支持任意精度的额整数,可以表示任何大小整数值,而不会丢失信息。

BigDecimal:支持任何精度的定点数,如可以进行精确的货币运算。

高精度数字缺点:运算速度比较慢,以速度换取精度。

java中基本数据类型与对象引用类型的默认初始化值学习

时间: 2024-12-21 16:49:30

java中基本数据类型与对象引用类型的默认初始化值学习的相关文章

关于java中基础数据类型传值和引用类型传值的总结

先看一组代码: public static void main(String[] args) { int a = 1; int b = 2; int[] array = {1,2}; swap(a, b); System.out.println(a + " " + b); swap(array, 0, 1); System.out.println(array[0] + " " + array[1]); } public static void swap(int x,

细谈JAVA中的数据类型

Java数据类型简介: Java是一种强类型的语言,数值类型主要分为基本数据类型和引用数据类型,其中基本的数据类型分为8种,具体细节点及一些注意点如下. java中的基本数据类型: 字符类型: 关键字:char  所占字节:2字节细节点:1.java中的字符类型采用Unicode编码,加之2字节,因此java中的数据类型可以直接存储一个汉字,例如:char sex = '男';注意点:1.声明字符类型时用的是单引号' ',而不是双引号""; 2.其实在正常开发中,绝大多数汉字所占的字节

Java中基本数据类型和包装类

参考:深入剖析Java中的装箱和拆箱; Java中基本数据类型和包装类互转中 缓冲机制的使用; java学习笔记:装箱和拆箱,包装器和缓冲池 Java 各 类型数据在内存中分配情况详解 一 java内存分配 这里只是在网上找的一些资料; Java 中的数据类型分为 1. 基本类型(原始数据类型) byte short int long float double char boolean 基本类型的变量持有原始值. 2. 符合数据类型(引用类型),引用类型持有引用值(即对某个对象的引用,而非对象本

JAVA 中基本数据类型及引用数据类型

一.基本数据类型: byte:8 位 (bit),即 1 个字节,最大存储数据量是 255,存放的数据范围是 - 128~127 之间.默认值 0 short: 16 位,即 2 个字节,取值范围 - 32768~32717,默认值 0 int:32 位,即 4 个字节,取值范围 - 2147483648~2147483647,默认值 0 long: 64 位,即 8 个字节 - 2^63~2^63-1,默认值 0L float: 浮点型,在内存中占 32 位,即 4 个字节,用于存储带小数点的

java中的数据类型和运算符的总结归类。

首先学习java肯定先要了解java的发展史,以及java的特点,常见的dos命令,jdk的安装,如何开发java程序等等一下概念行的东西,这里面我都不一一说了. 今天这一章主要想总结一下java中的数据类型和运算符2大方面. 再说数据类型之前先说一下标识符的命名规则: 总的命名规则:见名知意.如果有多个单词组成,首单词小写,其余单词的首字母大写(驼峰命名法).1.首字母只能是字母,下划线和$2.其余字母可以字母,下划线,$和数字3.不能使用预留关键字4.严格区分大小写(总体来说和c语音一样)

Java中的类和对象

类和对象 类:类是对对象的抽象,也就是说类是同一类对象的总称,这些对象具有相同的属性和方法. 对象:对象就是一个具体的事物,Java作为面向对象的语言,可以说在Java中万事万物皆对象.对象本身具有自己的属性和方法. 举个生活中的例子:我们生活中常见的人.手机.电脑.车.鸟等等就可以认为是类,然后每一个不同的人就是人这个类的对象,小米6,苹果7就是手机类的不同对象. 知道了什么是类,那么类里面有什么呢? 先来看一下类的定义方法: public class 类名{ 访问修饰符 类型名 属性名 :

Java基础---Java中的数据类型(五)

Java中的数据类型 通常情况下,为了方便物品的存储,我们会规定每个盒子可以存放的物品种类,就好比在"放臭袜子的盒子"里我们是不会放"面包"的!同理,变量的存储也讲究"分门别类"! Java 语言是一种强类型语言.通俗点说就是,在 Java 中存储的数据都是有类型的,而且必须在编译时就确定其类型. Java 中有两类数据类型: 在 Java 的领域里,基本数据类型变量存的是数据本身,而引用类型变量存的是保存数据的空间地址.说白了,基本数据类型变量

Java中的变量和对象

1.   栈(stack)与堆(heap)都是Java用来在Ram中存放数据的地方.与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆.2.   栈的优势是,存取速度比堆要快,仅次于直接位于CPU中的寄存器.但缺点是,存在栈中的数据大小与生存期必须是确定的,缺乏灵活性.另外,栈数据可以共享,详见第3点.堆的优势是可以动态地分配内存大小,生存期也不必事先告诉编译器,Java的垃圾收集器会自动收走这些不再使用的数据.但缺点是,由于要在运行时动态分配内存,存取速度较慢.3.   Java

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