数据类型

  • 数据类型的分类

    分为 基本数据类型和引用数据类型

    • 基本数据类型

      基本数据类型分为数值型、字符型和布尔类型

      • 数值型

        数值型分为整数型和浮点型(小数型)

        • 整数型

          包含:int、 short、 byte、long

        • 浮点型(小数型)

          包含:float、double

      • 字符型(char)

      • 布尔型(boolean)

    • 引用数据类型

      比如:数组,对象、string、接口等


  • 整数型

    包含int 、short 、float 、 double

    表示的是有符号的数值

    类型 占用字节数 取值范围
    byte 1 -2^7 ~ 2^7-1
    short 2 -2^15 ~ 2^15-1
    int 4 -2^31 ~ 2^31-1
    long 8 -2^63 ~ 2^63-1

    注意事项:

    1. 占用的字节数越大,取值范围也就越大,存储的数据也就越大

    2. 现实开发中,我们应选择合适的数据类型,切记不要超过数据类型的取值范围

      补充:开发中一般使用int类型来代替short和byte类型

      代码展示:

      public class Test{// 编写main方法,写法固定,程序的入口,能被虚拟机public static void mian(String[] args){int age = 12;System.out.println("年龄为" + age);// 输出 年龄为 12}
      }
      
    3. 整数固定值常量,可包含十进制、十六进制和八进制,但是不包含二进制

      代码展示

      public class ConstantTest{public static void main(String[] args){// 八进制固定值常量int num = 017;System.out.println(num);// 输出为15// 十六进制固定值常量int num2 = 0xFF;System.out.println(num2);// 输出为255}
      }
      
    4. 整数固定值常量默认值为int类型,int类型的取值范围是-231~231-1 ,大约在正负21亿左右,在整数固定值常量末尾加小写“l”或大写“L”就变为了long类型常量

      建议:使用大写“L”,因为小写的l易与1产生混淆

      public class ConstantDemo{// 编写main方法,写法固定,是程序的入口,,main方法中唯一能改变的就是“args”的名字,能被虚拟机识别并执行public static void main(String[] args){int num = 10000000000;System.out.println(num); // 编译错误,过大的整数}
      }
      

      运行截图:

      注意:使用整数固定值常量时切忌不要超出int类型的取值范围

      public class ConstantTest{public static void main(String args[]){long num = 10000000000L;//正确 10000000000L属于long类型的固定值常量System.out.println(num); }
      }
      
      public class ConstantTest{public static void main(String[] args){long num = 10000000000;System.out.println(num);// 出现编译错误}
      }
      
      public class ConstantTest{public static void main(String[] args){int num = 100000 * 100000; System.out.println(num);// 预计:10,000,000,000 实际:1410065408}
      }
      

      预计结果和实际结果不符的原因:

      编译时,100000 * 100000两输相乘的数都没超出int类型的取值范围,所以编译执行时,两个int类型做运算,返回的结果还是int类型

    整数如何在内存中存取的?

    存储:把整数转换成二进制,然后再存储到内存空间中

    读取:把内存中的二进制转为十进制,然后再取出

    画图说明:

    代码展示:

    public class IntDemo{public static void main(String[] args){int age = 7;System.out.println("年龄为" + age);}
    }
    

  • 浮点型

    float(又称为单精度类型) 占4字节 保留小数点6-7位
    double(又称为双精度类型) 占8字节 保留小数点15-16位

    注意:

    1. 浮点型占用的字节数越大,表示的精确度就越高

      占用的字节数越大,并不意味着取值范围就越大

    2. double表示小数更高,现实开发中,一般使用double较多

    3. 因为小数存储方式不同,尽量不要对小数做特别精确的计算

      public class DoubleTest{public static void main(String[] args){// 预计输出 0.0003 实际输出 3.0000000000000003E-4System.out.println(0.0001 + 0.0002);}
      }
      
    4. 小数固定值常量默认为double类型,在小数固定值常量末尾加上一个小写“f”|大写“F”,那该常量就变为了float类型的常量

      代码展示:

      public class DoubleTest{public static void main(String[] args){float f = 3.14;// 编译错误System.out.println(f);}
      }
      

      截图:

      原因:3.14默认为double类型


      代码展示:

      public class DoubleTest1{public static void main(String[] args){float f = 3.14f; // 编译成功System.out.println("f = " + f);// 输出 f = 3.14}
      }
      

      截图:

      原因:因为在该小数固定值末尾加了一个小写的“f”,那该常量就变为了float类型

    5. 小数固定值常量有哪些?

      十进制小数固定值常量 ,例如:3.14、123.45等

      科学计数法表示的常量,例如:3.14E3、3.14E-3等

      代码展示:

      public class Test{public static void main(String args[]){float f = 3.14e3f;System.out.println("F = " + f);double d = 3.14E-3;System.out.println("D = " + d);}
      }
      

      运行截图:

      3.14e3 等效于小数点向右移动三位,结果为3140.0

      3.14E-3等效于小数点向左移动三位,结果为0.00314

      注意:科学计数法中的“E”可以为小写字母“e”,也可以为大写字母“E”

  • 布尔型(boolean)

    条件成立|不成立 真|假
    true 成立
    false 不成立

    使用场合:常用于条件判断,条件成立返回true,条件不成立返回false

    public class BooleanTest{public static void main(String[] args){boolean flag = true;System.out.println(flag);// 输出trueflag = false;System.out.println(flag);// 输出falseflag = 3>5;System.out.println(flag); // 输出falseflag = 3<5;System.out.println(flag); // 输出true}
    }
    

    运行截图:

    问题:boolean类型占几个字节?

    答:在java规范中,没有明确规定boolean类型的字节数,我觉得占1位,因为1位可以表述两种可能,要么为true要么为false,也觉得占1字节,因为文件存储的最小单位就是字节

  • 字符型(char)

    占2个字节,表示的是无符号的数值,取值范围在0~65535

    字符固定值常量:使用一对‘’单引号包裹起来的一个字符,称为字符常量

    public class CharTest{public static void main(String[] args){char c = 'a'; // 正确char c1 = '你好'; // 错误char c2 = '号';// 正确char c3 = '11';// 错误char c4  = '9'; //正确char c5 = ' ';// 正确char c6 = '';// 错误}
    }
    

    注意:

    1. char,占2个字节,可存储65536个字符,一个英文|中文字符在内存中占两个字节

    字符和字符串的关系:

    字符和字符串有着密切联系,字符串由多个任意的字符组成,类似羊肉和羊肉串的关系。

    字符串(String)

    在Java中,String类型(字符串类型)属于引用数据类型

    字符串固定值常量:使用一对双引号“”包裹起来的内容(任意多个字符),我们称为字符串常量

    代码展示:

    public class StringDemo{public static void main(String[] args){String name = "Java";String hobby = "打篮球";String nullStr = "";String eng = "hello World";System.out.println("我的名字为" + name); // 我的名字为JavaSystem.out.println("我的爱好为" + hobby);// 我的爱好为打篮球System.out.println(nullStr);//  空串System.out.println(eng);// hello World}
    }
    

    运行结果:

    字符串的特点:

    字符串和别的数据类型做“+”操作,实际上做的就是连接符操作(拼接操作),并且返回的结果是String类型(字符串类型)

    分析:String str = “Hello” + 10;

    描述:先将10从int类型隐式类型转换转换为String类型,然后将转换出来的“10”与"Hello"做拼接操作

    public class StringDemo{public static void main(String[] args){String str = "Hello" + 10;System.out.println(str);// 输出Hello10String str1 = 20 + "Hello" + 10;System.out.println(str1);//输出 “20Hello10”// 经常 “+” 使用于以下类似场合int age = 15;System.out.println("年龄为" + age);// 输出年龄为 15}
    }
    

    运行截图:

    字符是如何在内存中存储的?

    思路:根据编码表,查找字符(数字、字母)所对应正整数

    存储:把需要存储的字符对照编码表,然后找到字符所对应的正整数,最后将该正整数转换为二进制,存入内存对应的存储空间中—>编码

    读取:通过变量名找到对应存储空间中的数值,然后将数值从二进制转换为十进制,在将十进制的数值对照编码表取出对应的字符–>解码

    画图分析:

    代码展示:

    public class CharDemo{public static void main(String[] args){char c = 'a';System.out.println(c);}
    }
    

    注意:字符无法直接转换为二进制,只有数值可以


    输出语句能输出什么内容?

    System.out.println(value)

    System.out.print(value)

    输出的Value就是数据,指的是常量 | 变量数据


    常见的编码表

    ASCII:用来现实现代英语和西欧语言的编码表

    GBK:用来表示中文用的编码

    Unicode:万国码、统一码

    核心:Unicode编码表几乎包含了全世界所有的语言

    注意:

    1. java采用的是Unicode编码表,意味着java几乎能使用全世界所有的语言,例如:标识符可以使用中文表示,但是不建议使用中文

      public class 哈哈{public static void main(String[] args){System.out.println("Hello World");}
      }
      

      运行截图:

    ASCII和Unicode编码表

    ASCII编码表前128位和Unicode编码表前128位一模一样

    '0' --对应的正整数为--> 48

    'a'--对应的正整数为--> 97

    'A'--对应的正整数为-->65

    帮助记忆:

    英文字母(AZ,az):大写字母(az)和小写字母(AZ)相差32,a表示97,A表示65,每次增1

    正整数(0~9):0表示48,1表示49,每次增1

    代码展示:

    public class CharTest{public static void main(String[] args){System.out.println((int)'a');//97System.out.println((int)'b');//98System.out.println((int)'B');//66System.out.println((int)'A');//65System.out.println((int)'1');//49System.out.println((int)'0');//48}
    }
    

    运行截图:

    如何查看char类型的字符所对应的正整数?

    1. 使用强制类型转换

      代码展示

      public class CharTest{public static void main(String[] args){System.out.println((int)'a');//97}
      }
      
    2. 使用int类型的变量来接受

      代码展示:

      public class CharTest{public static void main(String[] args){int charInt = 'a';System.out.println(charInt);//97     }
      }
      

Int类型和Char类型的区别

共同点:int 类型和char 类型在内存中存储的都是整数

正因为此共同点,意味着int类型和char类型可以互相装换

int类型–转为–>char类型

要求:int类型必须为正整数,并且未超过char类型的取值范围(0~65535),char类型强调的是无符号

char–转为–>int类型

要求:没有任何要求,所有的char类型的字符都可转换为int类型

代码展示:

// char -- 转为 -- >int 类型
public class CharIntDemo{public static void main(String[] args){System.out.println((int)'a');int charInt = '0';System.out.println(charInt);}
}

代码展示:

// int --转为-->char类型
public class CharIntDemo{public static void main(String[] args){System.out.println((char)75);// KSystem.out.println((char)48);// 0char c = 78;System.out.println(c);// Nchar c1 = 49;System.out.println(c1); // 1}
}

运行截图:

不同点:

  1. int类型占用4个字节,char类型占用2个字节,int类型的取值范围比char类型大
  2. char类型强调的是无符号,int类型强调的是有符号,int类型在内存中可以存储正|负整数,char类型在内存中只能存正整数,不能存负整数

此文章于11月20日编辑完毕,小编也是个初学者,或许有些内容写的有错误的,我对我自己的要求:有错改之,无错加冕。还望大家能在评论区指点迷津,不胜感激,同时也希望大家口下留情!!

Java中的基本数据类型讲解(数值型、字符型、布尔型)相关推荐

  1. [转载] JAVA中分为基本数据类型及引用数据类型

    参考链接: C++和Java中布尔数据类型的比较 一.基本数据类型: byte:Java中最小的数据类型,在内存中占8位(bit),即1个字节,取值范围-128~127,默认值0 short:短整型, ...

  2. php变量与数据类型,php中变量与数据类型讲解

    本文主要和大家分享一些PHP基础知识,php中变量与数据类型讲解,希望能帮助到大家. 1.什么是变量 变量就相当于一个口袋,可以往里面存放东西. 在编程语言里面,变量是用来存放数值的. 2. PHP如 ...

  3. double类型最大值_Java后端精选基础教程:Java 中的基本数据类型「连载 6」

    数据类型定义了变量可以采用的值,例如,定义变量为 int 类型,则只能取整数值. 在 Java 中有两类数据类型: 1)原始数据类型 2)非原始数据类型 - 数组和字符串是非原始数据类型,将在以后的教 ...

  4. java中的基本数据类型_Java中的基本数据类型和引用数据类型

    数据类型用于帮助确定变量可存放的一组值,以及可对这组特定值执行的操作.Java提供了在所有平台上都普遍支持的多种数据类型. 一.基本数据类型 byte:Java中最小的数据类型,在内存中占8位(bit ...

  5. Java中的变量数据类型补充

    Java中变量的数据类型的补充 变量按照数据类型进行分类 1.基本数据类型 数值型:①整数类型(byte,short,int,long)②浮点型(float,doubbe)③字符型(char)④布尔型 ...

  6. Java程序设计语言基础02:Java中的基本数据类型和运算符

    目录 1. Java中的基本数据类型 1.1 概述 1.2 基本数据类型的值域 1.2.1 byte类型 1.2.2 short类型 1.2.3 int类型 1.2.4 long类型 1.2.5 fl ...

  7. Java中的基本数据类型

    Java中的基本数据类型 1.整数型: 整数型可以是正数,也可以是负数. 整型数据在Java程序中有3种表示形式,分别为十进制.八进制和十六进制. 十进制:除了数字0,不能以0作为其他十进制数的开头. ...

  8. java基础之java中的基本数据类型

    java基础之java中的基本数据类型 学习java一段时间了,使用java也差不多一年多了,可是对于后续的java的学习真的是后劲不足,或者是说懒惰吧,回想一下这一年多,用java最多的就是Andr ...

  9. java中8种数据类型和默认值所占字节数

    java 8种基本数据类型的默认值及所占字节数 通过一段代码来测试一下 8种基本数据类型的默认值 1 package dierge; 2 3 public class Ceshi { 4 int a; ...

最新文章

  1. python的编程模式-python编程(python开发的三种运行模式)【转】
  2. spring源码分析之spring-jms模块详解
  3. 编码(2)从字节理解Unicode(UTF8/UTF16)
  4. 在即将发布的Camel 2.21版本中改进了使用Apache Camel和ActiveMQ Artemis处理大型消息的功能...
  5. 复习Java字节流_字符流使用及案例
  6. linux+mysql登录日志_Linux查看登录日志
  7. python搭建web服务器_Python搭建简单的web服务器
  8. oracle的一些基本操作,Oracle中的一些基本操作
  9. mysql+查看connection_如何查看MySQL connection id连接id
  10. 信息学奥赛一本通C++语言——1124:矩阵加法
  11. 拼图登陆拼图二维码验证_如何使用拼图快速轻松地构建静态网站
  12. halcon 旋转_HALCON高级篇:3D相机标定
  13. SAS9.4 字体安装失败或无法找到
  14. 2018华为网络技术大赛笔记
  15. LeetCode自除数
  16. 3步实现 华为云服务器IPV4-> IPV6改造方法
  17. Elasticsearch如何提升查询效率
  18. 代驾小程序开发有哪些功能
  19. java求美国数学家的年龄,第二届世界顶尖科学家论坛最年轻的参会者只有15岁
  20. 常见的HTT相应状态码

热门文章

  1. js实现获取前12个月份的数组
  2. 通达信资金净流入公式_通达信主力资金净流入公式是什么?
  3. 基于51单片机的自动浇花系统设计/基于51单片机的智能抽奖系统控制设计/基于51单片机的数字时钟与日历显示控制设计 毕业设计
  4. 优维科技EasyOps®一体化运维平台入选“大信创产品目录”
  5. 云端虚拟机规格参数快速对比说明
  6. oracle 2019 ocp,关于Oracle数据库管理2019 OCP专家认证
  7. Android学习之SwipeRefreshLayout+RecyclerView+CardView
  8. 5G基带芯片之战现状:一二三分别对应联发科华为高通
  9. 联烯基甲醇氧化合成联烯基羧酸化合物-齐岳研究
  10. html文档主体的根标签,HTML详细介绍(基础标签篇)