Java 是一种“强类型”的语言,声明变量时必须指明数据类型。变量(variable)占据一定的内存空间。不同类型的变量占据不同的大小。

Java中共有8种基本数据类型,包括4 种整型、2 种浮点型、1 种字符型、1 种布尔型,请见下表。

Java基本数据类型
数据类型 说明 所占内存 举例 备注
byte 字节型 1 byte 3, 127  
short 短整型 2 bytes 3, 32767  
int 整型 4 bytes 3, 21474836  
long 长整型 8 bytes 3L, 92233720368L long最后要有一个L字母(大小写无所谓)。
float 单精度浮点型 4 bytes 1.2F, 223.56F float最后要有一个F字母(大小写无所谓)。
double 双精度浮点型 8 bytes 1.2, 1.2D, 223.56, 223.56D double最后最好有一个D字母(大小写无所谓)。
char 字符型 2 bytes 'a', ‘A’ 字符型数据只能是一个字符,由单引号包围。
boolean 布尔型 1 bit true, false  

对于整型数据,通常情况下使用 int 类型。但如果表示投放广岛长崎的原子弹释放出的能量,就需要使用 long 类型了。byte 和 short 类型主要用于特定的应用场合,例如,底层的文件处理或者需要控制占用存储空间量的大数组。

在Java中,整型数据的长度与平台无关,这就解决了软件从一个平台移植到另一个平台时给程序员带来的诸多问题。与此相反,C/C++ 整型数据的长度是与平台相关的,程序员需要针对不同平台选择合适的整型,这就可能导致在64位系统上稳定运行的程序在32位系统上发生整型溢出。

八进制有一个前缀 0,例如 010 对应十进制中的 8;十六进制有一个前缀 0x,例如 0xCAFE;从 Java 7 开始,可以使用前缀 0b 来表示二进制数据,例如 0b1001 对应十进制中的 9。同样从 Java 7 开始,可以使用下划线来分隔数字,类似英文数字写法,例如 1_000_000 表示 1,000,000,也就是一百万。下划线只是为了让代码更加易读,编译器会删除这些下划线。

另外,不像 C/C++,Java 不支持无符号类型(unsigned)。

float 类型有效数字最长为 7 位,有效数字长度包括了整数部分和小数部分。例如:

 float x = 223.56F;
float y = 100.00f;

注意:每个float类型后面都有一个标志“F”或“f”,有这个标志就代表是float类型。

double 类型有效数字最长为 15 位。与 float 类型一样,double 后面也带有标志“D”或“d”。例如:

 double x = 23.45D;
double y = 422.22d;
double z = 562.234;

注意:不带任何标志的浮点型数据,系统默认是 double 类型。

大多数情况下都是用 double 类型,float 的精度很难满足需求。

不同数据类型应用举例:

public class Demo {
  public static void main(String[] args){
  // 字符型
  char webName1 = '博';
  char webName2 = '客';
  char webName3 = '园';
  System.out.println("网站的名字是:" + webName1 + webName2 + webName3);
  // 整型
  short x=22; // 十进制
  int y=022; // 八进制
  long z=0x22L; // 十六进制
  System.out.println("转化成十进制:x = " + x + ", y = " + y + ", z = " + z);
  // 浮点型
  float m = 22.45f;
  double n = 10;
  System.out.println("计算乘积:" + m + " * " + n + "=" + m*n);
  }
}

运行结果:
网站的名字是:博客园
转化成十进制:x = 22, y = 18, z = 34
计算乘积:22.45 * 10.0=224.50000762939453

从运行结果可以看出,即使浮点型数据只有整数没有小数,在控制台上输出时系统也会自动加上小数点,并且小数位全部置为 0。

对布尔型的说明

如果你有编程经验,了解布尔型,请跳过下面的教程,下面的教程针对只有C语言基础的读者(C语言没有布尔型)。

在C语言中,如果判断条件成立,会返回1,否则返回0,例如:

 #include <stdio.h>
  int main(){
3   int x = 100>10;
  int y = 100<10;
5   printf("100>10 = %d\n", x);
6   printf("100<10 = %d\n", y);
  return 0;
}

运行结果:

100>10 = 1
100<10 = 0

但是在Java中不一样,条件成立返回 true,否则返回 false,即布尔类型。例如:

 public class Demo {
  public static void main(String[] args){
3     // 字符型
4     boolean a = 100>10;
5     boolean b = 100<10;
    System.out.println("100>10 = " + a);
    System.out.println("100<10 = " + b);
    if(a){
      System.out.println("100<10是对的");
    }else{
      System.out.println("100<10是错的");
    }
13   }
}

运行结果:

100>10 = true
100<10 = false
100<10是对的

实际上,true 等同于1,false 等同于0,只不过换了个名称,并单独地成为一种数据类型。

系列文章:

Java知多少(上)

Java知多少(中)

Java知多少(下)

Java知多少(10)数据类型及变量的更多相关文章

  1. Java知多少(20)变量的作用域

    在Java中,变量的作用域分为四个级别:类级.对象实例级.方法级.块级. 类级变量又称全局级变量或静态变量,需要使用static关键字修饰,你可以与 C/C++ 中的 static 变量对比学习.类级 ...

  2. Java知多少(完结篇)

    Java知多少(1)语言概述 Java知多少(2)虚拟机(JVM)以及跨平台原理 Java知多少(3) 就业方向 Java知多少(4)J2SE.J2EE.J2ME的区别 Java知多少(5) Java ...

  3. Java知多少(上)

    Java知多少(1)语言概述 Java知多少(2)虚拟机(JVM)以及跨平台原理 Java知多少(3) 就业方向 Java知多少(4)J2SE.J2EE.J2ME的区别 Java知多少(5) Java ...

  4. 01-Java基础知识:数据类型与变量、标识符、运算符、表达式

    Java基础知识:数据类型与变量.标识符.运算符.表达式 一.数据类型 Java定义了基本数据类型.引用数据类型.自定义类型. 八种基本数据类型:byte (1). short (2).  int ( ...

  5. Java数据类型和变量

    Java中存在2种数据类型,下面我们来详解一下: 基本数据类型: 引用数据类型: 可以用一张表来记录: 基本数据类型 整型 byte:1个字节8位,取值范围为:[-128, 127],直接写值:(by ...

  6. Java学习笔记(一):数据类型与变量

    数据类型 Java中存在2种数据类型,下面我们来详解一下: 基本数据类型: 引用数据类型: 可以用一张表来记录: 基本数据类型 整型 byte:1个字节8位,取值范围为:[-128, 127],直接写 ...

  7. Java之数据类型,变量赋值

    Java中的基础数据类型(四类八种): 1.整数型 byte----使用byte关键字来定义byte型变量,可以一次定义多个变量并对其进行赋值,也可以不进行赋值.byte型是整型中所分配的内存空间是最 ...

  8. Java知多少(31)static关键字以及Java静态变量和静态方法

    static 修饰符能够与变量.方法一起使用,表示是“静态”的. 静态变量和静态方法能够通过类名来访问,不需要创建一个类的对象来访问该类的静态成员,所以static修饰的成员又称作类变量和类方法.静态 ...

  9. Java数据类型以及变量的定义

    1130136248   Java的基本数据类型 变量就是申请内存来存储值.也就是说,当创建变量的时候,需要在内存中申请空间. 内存管理系统根据变量的类型为变量分配存储空间,分配的空间只能用来储存该类 ...

随机推荐

  1. 团队作业第六次——团队Github实战训练

    作业格式 课程名称:软件工程1916|W(福州大学) 作业要求:团队作业第六次-团队Github实战训练 团队名称:葫芦娃队 作业目标:确定和分析选题,绘制评审表 github地址:https://g ...

  2. 在网站中使用Bing Translator插件翻译文章。

    前一阵子给项目增加了翻译的功能,用的是Bing Translator Widget,今天看见有个兄弟写自定义自己的博客,我就尝试着把这个插件加到了自己的博客中.还真的好用.大家先看下效果,觉得好的请继 ...

  3. C# 判断输入的字符串是否只包含数字和英文字母

    /// <summary> /// 判断输入的字符串是否只包含数字和英文字母 /// </summary> /// <param name="input&quo ...

  4. TFT LCD显示原理详解

    <什么是液晶> 我们一般认为物体有三态:固态.液态.气态,其实这只是针对水而言,有一些有机化和物 还有介于固态和液态中间的状态 就是液晶态,如下图(一):                 ...

  5. 汉化 android studio

    Analyze APK...android.jar\com\android\tools\idea\apk\viewer AnalyzeApkAction.class

  6. 洛谷.4008.[NOI2003]editor文本编辑器(块状链表)

    题目链接 st(n)表示sqrt(n) 为使块状链表不会退化,通常将每块的大小S维持在[st(n)/2,2st(n)]中,这样块数C也一定[st(n)/2,2st(n)]中 在此使用另一种方法(方便) ...

  7. ECS——CentOS7下使用yum安装MariaDB

    CentOS 6 或早期的版本中提供的是 MySQL 的服务器/客户端安装包,但 CentOS 7 已使用了 MariaDB 替代了默认的 MySQL.MariaDB数据库管理系统是MySQL的一个分 ...

  8. 潭州课堂25班:Ph201805201 第十课 类的定义,属性和方法 (课堂笔记)

    类的定义 共同属性,特征,方法者,可分为一类,并以名命之 class Abc: # class 定义类, 后面接类名 ( 规则 首字母大写 ) cls_name = '这个类的名字是Abc' # 在类 ...

  9. 一个成功的Git分支模型

    原文: http://www.juvenxu.com/2010/11/28/a-successful-git-branching-model/ 本文中我会展示一种开发模型,一年前该模型就已经被我用在所 ...

  10. 服务 Service 简单案例 MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...