博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java语言基础——数据类型
阅读量:5314 次
发布时间:2019-06-14

本文共 3208 字,大约阅读时间需要 10 分钟。

 Java  数据类型

   java 中的数据类型,分引用类型基本数据类型,基本数据类型有 8 种 ,引用类型将在面向对象时详细讲解,此处了解即可。
1 . 8种基本数据类型
 整形: byte, short, int, long
 浮点形:   float, double
 字符型:   char
 Boolean型:   boolean

2 .整数类型

整数类型有byte, short, int ,long都是有符号(补码)整数(即能表示负数).

类型 占位 最大值 最小值
byte  8位补码 0x7f(127) 0x80(-128)
short 16位有符号数 0x7fff(32767)  0x8000(-32768)
int 32位   0x7fffffff(2G-1)2^31-1 或21亿   0x80000000(-2G)
long 64位  2^63-1 -2^63

例:

//byte b = 128;  超范围赋值,会报编译错误byte b = 127;byte c = -128;short s = 32767;//short s2 = 0x8000; //错误,超范围short s2 = 0xffff8000;  //可以,最小值

long 类型的字面量需要使用"L"或者"l"后缀,否则编译不同过,因为整数值的默
认字面值是int 类型,12123123123明显超出了int 的范围,所以报错,但是在后
面加L,则表示该数是long类型的
例:

1  public class BinDemo{2   public static void main(String[] args){3    long l1 = 12123123123;//报错4    long l2 = 12123123123L;//正确5   }6  }

3.3浮点数类型
 用于表示小数的数据类型。浮点数原理:也就是采用二进制科学奇数发。
 * 10进制浮点数科学计数法: 219345 = 2.19345*5(10^5)
 * 2进制浮点数科学计数法:   10111 = 1.0111*(2^100)
 以2.19345*(10^5) 为例介绍如下概念:
 尾数: .19345
 指数: 5
 基数: 10

 float类型共32位(与int 相同),其中1位为符号位,指数8位,尾数32位。需要强调的是float的精度是23位

    (即能精确表达23位的数,超过就被截取了)。小数是以尾数长度来表示精确度的,比如pi=3.14,它的精度
    是2位,pi = 3.1415,它的精度就是4位。
 比较有趣的是int 的精度比float要大,因为int的精度是31位,大于float.因为int 类型的范围是(-2^31)~(2^31-1)而
    float的范围是(-2^128)~(-2^128-1),所以:
 (此处加黑)int类型的数据能表示的范围比float类型小,int类型数据表示的精度比float大。
例子

1 /** 浮点数的特点 */ 2 public class FloatDemo{ 3  public static void main(String[] args){ 4   int a = 0x7fffffff;  //int类型最大值 5   int b = 0x7ffffff0;  //比a大15 6    7   float fa = a;    8   float fb = b; 9   System.out.println(fa);  10   System.out.println(fb);11   System.out.println(a==b);  //false int类型的值相比较a>b12   System.out.println(fa==fb); // ture   相同的数,float类型竟然相同13  }14 }

float类型因为精度过低,所以一般很少使用,一般我们使用double

double类型能够表示64位,其中1位是符号位,11位指数,52位尾数

注:浮点数运算时只是尽可能精确,所以不要对浮点数进行比较,比的不准。

例子

/** 浮点数的特点 */public class FloatDemo{ public static void main(String[] args){  int a = 0x7fffffff;  //int类型最大值  int b = 0x7ffffff0;  //比a大15    float fa = a;     float fb = b;  System.out.println(fa);    System.out.println(fb);  System.out.println(a==b);  //false int类型的值相比较a>b  System.out.println(fa==fb); // ture   相同的数,float类型竟然相同 }}

3.4字符类型char

 字符类型是经常用到的,是16位无符号整数,是一个二进制数,这个数值是一个字符的unicode编码值

 unicode编码,是全国范围内的编码方法,编制了英文,中,日,韩,阿拉伯等8万多个字符(unicode在设计时
就旨能表示世界上所有的文字)
 java中的char 范围是0~65535不能表示全部unicode,但是表示unicode最常用部分够用了
 在程序中为一个字符赋值,字符字面量使用单引号,可以为char赋值的有字符,数字,符号
例子

1 /** 浮点数的特点 */ 2 public class FloatDemo{ 3  public static void main(String[] args){ 4   int a = 0x7fffffff;  //int类型最大值 5   int b = 0x7ffffff0;  //比a大15 6    7   float fa = a;    8   float fb = b; 9   System.out.println(fa);  10   System.out.println(fb);11   System.out.println(a==b);  //false int类型的值相比较a>b12   System.out.println(fa==fb); // ture   相同的数,float类型竟然相同13  }14 }

输出结果为:
0
a

注意:特殊字符采用[转义字符]表示,如:

 '\n'  表示回车
 '\t'  表示table键
 '\\'  表示\
 '\'' 表示单引号
 '\"'表示双引号
 '\u4e2d'表示unicode 编码对应的字符
当控制台显示为"?"时候,代表本操作系统中找不到该数字对应的字库

并不是所有字符都可见,例如'\u0000'表示为小方块或者不可见

3.5boolean布尔类型

表达:真(true)/假(false).一般用于判断语句块中
例子

public class Demo {   public static void main(String[] args) {      boolean kaihui = false;      if(kaihui == true){       System.out.println("下班回家");      }else{       System.out.println("加班开会");      }   }}输出结果为:加班开会

注:true和false不是java关键词

转载于:https://www.cnblogs.com/hqr9313/archive/2012/04/09/2439679.html

你可能感兴趣的文章
移动设备和SharePoint 2013 - 第3部分:推送通知
查看>>
SOPC Builder中SystemID
查看>>
MySQL数据库备份工具mysqldump的使用(转)
查看>>
NTP服务器配置
查看>>
【转】OO无双的blocking/non-blocking执行时刻
查看>>
ul li剧中对齐
查看>>
关于 linux 的 limit 的设置
查看>>
HDU(4528),BFS,2013腾讯编程马拉松初赛第五场(3月25日)
查看>>
vim中文帮助教程
查看>>
MySQL基础3
查看>>
云计算数据与信息安全防护
查看>>
全局设置导航栏
查看>>
RxJS & Angular
查看>>
面向对象(多异常的声明与处理)
查看>>
MTK笔记
查看>>
ERROR: duplicate key value violates unique constraint "xxx"
查看>>
激活office 365 的启动文件
查看>>
无法根据中文查找
查看>>
[简讯]phpMyAdmin项目已迁移至GitHub
查看>>
转载 python多重继承C3算法
查看>>