Java的数据类型

  创建变量时,需要在内存中申请空间。内存管理根据变量的类型为变量分配空间,分配的空间,只能用来存储该类型的数据。

Java的两大数据类型:

1.内置数据类型; 

2.引用数据类型。

1.内置数据类型:一共8种。六种数字(四个整数型、两个浮点型),一种字符类型,一种布尔型。

byte:8位、有符号的,以二进制补码表示的整数;

最小值是 -128(-2^7);

最大值是 127(2^7-1);

默认值是 0。

注意:byte用在大型数组中节约空间,主要代替整数,因为byte变量占用的空间只有int类型的四分之一。

eg:byte a=100,byte b=-50.

short:16位、有符号的,以二进制补码表示的整数;

最小值是 -32768(-2^15);

最大值是 32767(2^15 - 1);

默认值是 0;

注意:Short 数据类型也可以像 byte 那样节省空间。一个short变量是int型变量所占空间的二分之一;

例子:short s = 5000,short r = -10000。

int:32位、有符号的,以二进制补码表示的整数;

最小值是 -2,147,483,648(-2^31);

最大值是 2,147,483,647(2^31 - 1);

默认值是 0 ;

一般地整型变量默认为 int 类型;

eg:int a=50000,int b=-400000

long:64位、有符号的,以二进制补码表示的整数;

最小值是 -9,223,372,036,854,775,808(-2^63);

最大值是 9,223,372,036,854,775,807(2^63 -1);

这种类型主要使用在需要比较大整数的系统上;

默认值是 0L;

例子: long a = 100000L,Long b = -200000L。

注意:"L"理论上不分大小写,但是最好大写。

float:单精度、32位、符合IEEE标准的浮点数;

float 在储存大型浮点数组的时候可节省内存空间;

默认值是 0.0f;

浮点数不能用来表示精确的值,如货币;

例子:float f1 = 234.5f。

double:双精度、64 位、符合IEEE 754标准的浮点数;

浮点数的默认类型为double类型;

double类型同样不能表示精确的值,如货币;

默认值是 0.0d;

例子:double d1 = 123.4。

boolean:表示一位的信息;

只有两个取值:true 和 false;

这种类型只作为一种标志来记录 true/false 情况;

默认值是 false;

例子:boolean one = true。

char:单一的 16 位 Unicode 字符;

最小值是 \u0000(即为0);

最大值是 \uffff(即为65,535);

char 数据类型可以储存任何字符;

例子:char letter = 'A'

public class PrimitiveTypeTest {

    public static void main(String[] args) {    

       System.out.println("基本类型:byte 二进制位数:" + Byte.SIZE); 

        System.out.println("包装类:java.lang.Byte"); 

        System.out.println("最小值:Byte.MIN_VALUE=" + Byte.MIN_VALUE); 

        System.out.println("最大值:Byte.MAX_VALUE=" + Byte.MAX_VALUE); 

        System.out.println(); 

 System.out.println("基本类型:double 二进制位数:" + Double.SIZE);

        System.out.println("包装类:java.lang.Double"); 

        System.out.println("最小值:Double.MIN_VALUE=" + Double.MIN_VALUE); 

        System.out.println("最大值:Double.MAX_VALUE=" + Double.MAX_VALUE); 

        System.out.println(); 

 System.out.println("基本类型:char 二进制位数:" + Character.SIZE); 

        System.out.println("包装类:java.lang.Character"); 

        // 以数值形式而不是字符形式将Character.MIN_VALUE输出到控制台          System.out.println("最小值:Character.MIN_VALUE="    + (int) Character.MIN_VALUE);

// 以数值形式而不是字符形式将Character.MAX_VALUE输出到控制台          System.out.println("最大值:Character.MAX_VALUE="  + (int) Character.MAX_VALUE); 

    } 

}

注:Float和Double的最小值和最大值都是以科学记数法的形式输出的,结尾的"E+数字"表示E之前的数字要乘以10的多少次方。比如3.14E3就是3.14 × 103 =3140,3.14E-3 就是 3.14 x 10-3 =0.00314。

2.引用数据类型

引用类型指向一个对象,指向对象的变量是引用变量。这些变量在声明时被指定为一个特定的类型,比如 Employee、Puppy 等。变量一旦声明后,类型就不能被改变了。

对象、数组都是引用数据类型。

所有引用类型的默认值都是null。

一个引用变量可以用来引用任何与之兼容的类型。

例子:Site site = new Site("Runoob")。

Java常量

常量在运行的时候不可以被修改。

在Java中我们使用final关键字来修饰常量,声明方式和变量类似:

final double PI = 3.1415;

常量名称通常大写。

字面量可以赋给任何内置类型的变量。例如:byte a = 68;char a = 'A'

byte、int、long、和short都可以用十进制、16进制以及8进制的方式来表示。前缀 0 表示 8 进制,而前缀 0x 代表 16 进制 。 decimal = 100  ;  int octal = 0144;  int hexa = 0x64;

Java语言支持一些特殊的转义字符序列。

转自https://www.runoob.com/java/java-basic-datatypes.html

自动类型转换

整型、实型(常量)、字符型数据可以混合运算。运算中,不同类型的数据先转化为同一类型,然后进行运算。

转自https://www.runoob.com/java/java-basic-datatypes.html

数据类型转换必须满足如下规则:

1. 不能对boolean类型进行类型转换。

2. 不能把对象类型转换成不相关类的对象。

3. 在把容量大的类型转换为容量小的类型时必须使用强制类型转换。

4. 转换过程中可能导致溢出或损失精度,例如:int i =128; byte b = (byte)i;

因为 byte 类型是 8 位,最大值为127,所以当 int 强制转换为 byte 类型时,值 128 时候就会导致溢出。

5. 浮点数到整数的转换是通过舍弃小数得到,而不是四舍五入。

(int)23.7 == 23;        (int)-45.89f == -45

强制类型转换

1. 条件是转换的数据类型必须是兼容的。

2. 格式:(type)value type是要强制类型转换后的数据类型

public class QiangZhiZhuanHuan{ 

 public static void main(String[] args){ 

 int i1 = 123;

        byte b = (byte)i1;//强制类型转换为byte        

System.out.println("int强制类型转换为byte后的值等于"+b);

    }

}

隐含强制类型转换

1. 整数的默认类型是 int。

2. 浮点型不存在这种情况,因为在定义 float 类型时必须在数字后面跟上 F 或者 f。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,684评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,143评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,214评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,788评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,796评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,665评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,027评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,679评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,346评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,664评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,766评论 1 331
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,412评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,015评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,974评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,073评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,501评论 2 343

推荐阅读更多精彩内容

  • 第一类:逻辑型boolean 第二类:文本型char 第三类:整数型(byte、short、int、long) c...
    Jasonme阅读 1,063评论 0 4
  • 棉 色赤,形斑。 凌烈烈,炽妍妍。 姿荣杏月,品重人寰。 红梅相比胜,古贝自为坚。 花落意擎干劲,命归尘没德全。 ...
    潇寒月阅读 733评论 11 7
  • renderJSon、JSonKit、JSON工厂配置集成第三方
    pure_joy阅读 154评论 0 0
  • 不是所有人都有自己的梦想,至少这个社会并没有把每一种有可能的梦想都承认并推广,所以我们看到的更多的有音乐梦想,写作...
    Tina嬷嬷阅读 350评论 0 2