全面解析Java支持的数据类型及Java的常量和变量类型

基本数据类型
变量就是用来储存值而保留的内存位置。这就意味着当你创建一个变量时就会在内存中占用一定的空间。

基于变量的数据类型,操作系统会进行内存分配并且决定什么将被储存在保留内存中。因此,通过给变量分配不同的数据类型,你可以在这些变量中存储整数,小数或者字字母。

Java 中有两种有效地数据类型:

  1. 原始数据类型
  2. 引用数据类型

原始数据类型

Java 支持 8 种原始数据类型。原始数据类型是由该语言预先定义的并用关键词命名的。下面让我们深入学习一下这 8 种数据类型。

字节型(byte)

字节型是一种 8 位有正负的二进制整数
最小值是 -128(-2^7)
最大值是 127(2^7-1)
默认值为 0
字节型数据类型主要是为了在大型数组内节省空间,主要是替代整数由于字节型比整数小 4 倍。
例如:

byte a = 100 , byte b = -50

短整数(short)

短整数是一种 16 位有正负的二进制整数
最小值是 -32768(-2^15)
最大值是 32767(2^15-1)
短整数类型的数据也可以像字节型一样用于节省空间。短整数比整数小两倍
默认值为 0
例如:

short s = 10000, short r = -20000

整数型(int)

整数型是一种 32 位有正负的二进制整数
最小值是 - 2,147,483,648(-2^31)
最大值是 2,147,483,647(2^31 -1)
整数型一般默认被应用于整数值除非担心内存不够用。
默认值为 0
例如:

int a = 100000, int b = -200000

长整型(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, int b = -200000L

浮点型(float)

浮点型数据是一种单精度的 32 位 IEEE 754 标准下的浮点数据。
浮点型数据主要是为了在大型浮点数字数组中节约内存。
默认值是 0.0f。
浮点型数据不能用于如货币这样的精确数据。
例如:

float f1 = 234.5f

双精度型(double)

双精度型数据是一种双精度的 64 位 IEEE 754 标准下的浮点数据。
这种数据类型主要是默认被用于表示小数的值,一般是默认的选择。
双精度型数据不能用于如货币这样的精确数据。
默认值是 0.0d
例如:

double d1 = 123.4

布尔型(boolean)

布尔型数据代表一个信息比特。
它只有两个可能的值:真(true)和假(false)
这种数据类型用于真假条件下的简单标记。
默认值是假(false)
例如:

boolean one = true

字符型(char)

字符型数据是简单的 16 位 Unicode 标准下的字符。
最小值是: '\u0000' (或 0)。
最大值是: '\uffff' (或 65,535 )。
字符型数据可以用来储存任意字母。
例如: char letter A(字符型的字母A) ='A'
引用数据类型
引用数据类型是由类的编辑器定义的。他们是用于访问对象的。这些变量被定义为不可更改的特定类型。例如:Employee, Puppy 等等。
类对象和数组变量就是这种引用数据类型。
任何引用数据类型的默认值都为空。
一个引用数据类型可以被用于任何声明类型和兼容类型的对象。
例如:

Animal animal = new Animal("giraffe");

Java 常量
常量是代表固定值的源代码。他们直接以代码的形式代表而没有任何估计。
常量可以被分配给任意的原始变量类型。例如:

byte a = 68;
char a = 'A'

字节型,整数型,长整型和短整型也可以由十进制,十六进制和八进制计数系统表示。

当用这些技术系统表示直接量时,前缀 0 是为了标明八进制,前缀 0x 是为了标明十六进制。例如:

int decimal = 100;
int octal = 0144;
int hexa = 0x64;

Java 中的字符串型常量的规定和其他大多数语言一样,也是要写在双引号中间。字符串型直接量的例子如下:

"Hello World"
"two\nlines"
"\"This is in quotes\""

字符和字符串型常量可以包含任意的 Unicode 字母。例如:

char a = '\u0001';
String a = "\u0001";

Java 语言也支持一些特殊的转义序列的字符和字符串直接量。他们是:

转义字符 含义
\n 换行 (0x0a)
\r 回车 (0x0d)
\f 换页 (0x0c)
\b 退格 (0x08)
\s 空格 (0x20)
\t tab
\" 双引号
\' 单引号
\ 反斜杠
\ddd 八进制字符 (ddd)
\uxxxx 十六进制 UNICODE 字符 (xxxx)

变量类型
变量可以给我们提供我们程序可以操纵的命名的存储。Java 中的每种变量都有特定的类型,这决定了变量的大小和它的设计占用内存空间;这一些列的值可以存储在那个内存空间中;变量可以应用的操作。

在使用前你必须现将所要使用的变量进行声明。声明变量的基本格式如下:

data type variable [ = value][, variable [= value] ...] ;
这里的 data type 是 Java 的一种数据类型,variable 是一种变量的名称。要声明一个以上的特定变量类型,你可以采用逗号分隔开。

下面是 Java 中有效的变量声明和赋值的例子:

int a, b, c; // Declares three ints, a, b, and c.
int a = 10, b = 10; // Example of initialization
byte B = 22; // initializes a byte type variable B.
double pi = 3.14159; // declares and assigns a value of PI.
char a = 'a'; // the char variable a iis initialized with value 'a'

Java 中共有三种变量:

  1. 本地变量
  2. 实例变量
  3. 类、静态变量

本地变量

  • 本地变量在方法、构造器或者块中声明
  • 本地变量在方法、构造器或者块进入时被创建,一旦退出该变量就会被摧毁
  • 可访问描述符不能用于本地变量
  • 本地变量仅在已经声明的方法、构造器或者块中可见
  • 本地变量在栈深度内部实施
  • 本地变量没有默认值,因此本地变量必须被声明并且在第一次使用前要给它赋值

例子

这里,age(年龄)是本地变量。这是在 pupAge() 方法下定义的,它的范围仅限于这个方法。

public class Test{
 public void pupAge(){
  int age = 0;
  age = age + 7;
  System.out.println("Puppy age is : " + age);
 }

 public static void main(String args[]){
  Test test = new Test();
  test.pupAge();
 }
}

上述代码会输出如下结果:

Puppy age is: 7

例子
下面的例子使用了本地变量 age 但是没有进行初始化,所以在编辑是就会显示错误。

public class Test{
 public void pupAge(){
  int age;
  age = age + 7;
  System.out.println("Puppy age is : " + age);
 }

 public static void main(String args[]){
  Test test = new Test();
  test.pupAge();
 }
}

编辑时会产生如下错误:

Test.java:4:variable number might not have been initialized
age = age + 7;
^
1 error

实例变量

  • 实例变量在类中声明,但是它在方法、构造器或者块外。
  • 当堆中的对象被分配了一个空间时,每个实例变量的位置就被创建了。
  • 当对象采用关键字“ new ”创建时实例变量就被创建了,当对象被销毁时它也就被销毁了。
  • 实例变量的值必须被一个以上的方法、构造器或者块,或者类中必须出现的对象的状态的重要部分所引用。
  • 实例变量可以在类水平上在使用前或者使用后声明。
  • 实例变量可以用可访问描述符。
  • 实例变量对类中的所有方法、构造器或者块可见。一般来讲,推荐将这些变量私有(访问层面)。然而子类的可见性可用可访问描述符给予那些变量。
  • 实例变量有默认值。数字的默认值为零,布尔型默认值为假,对象引用默认值为空。在声明或者构造器内可以进行赋值。
  • 实例变量可以采用直接在类中叫名字方式访问。然而在静态方法和不同的类(实例变量可以被访问)中应当使用完全限定名称。ObjectReference.VariableName

例子

import java.io.*;

public class Employee{
 // this instance variable is visible for any child class.
 public String name;

 // salary variable is visible in Employee class only.
 private double salary;

 // The name variable is assigned in the constructor.
 public Employee (String empName){
  name = empName;
 }

 // The salary variable is assigned a value.
 public void setSalary(double empSal){
  salary = empSal;
 }

 // This method prints the employee details.
 public void printEmp(){
  System.out.println("name : " + name );
  System.out.println("salary :" + salary);
 }

 public static void main(String args[]){
  Employee empOne = new Employee("Ransika");
  empOne.setSalary(1000);
  empOne.printEmp();
 }
}

上述代码会输出如下结果:

name : Ransika
salary :1000.0

类、静态变量

  • 类变量也叫静态变量,它是在类中用 static 关键字声明的,但是它在方法、构造器或者块之外。
  • 每个类中只有一个类变量,不管这个类有多少对象。
  • 除了作为常量被声明之外,类变量很少被应用。常量是被作为 public、private, final 和 static 被声明的变量。实例变量的初始值不会被改变。
  • 静态变量存储在静态内存中,很少采用静态变量而不是声明结束或者用常量public 或 private 之一。
  • 静态变量随着程序的开始和结束而开始和结束。
  • 可见性和实例变量相似。然而大多数静态变量被声明为public由于他们必须为类的使用者所用。
  • 默认值和实例变量相似。对于数字的默认值为零,布尔型默认值为假,对象引用默认值为空。在声明或者构造器内可以进行赋值。除此之外,可以在特殊的静态初始化区赋值。
  • 静态变量可以用类的名称访问。ClassName.VariableName
  • 当静态变量被作为 public static final 声明时,变量(常量)名称都要用大写字母。如果静态变量不是 public 和 final,它的命名方法和实例变量和本地变量相同。

例子

import java.io.*;

public class Employee{
 // salary variable is a private static variable
 private static double salary;

 // DEPARTMENT is a constant
 public static final String DEPARTMENT = "Development ";

 public static void main(String args[]){
  salary = 1000;
  System.out.println(DEPARTMENT+"average salary:"+salary);
 }
}

上述代码会输出如下结果:

Development average salary:1000

注:如果变量从类外访问,常量就必须以 Employee.DEPARTMENT 访问。

(0)

相关推荐

  • java中变量和常量详解

    变量和常量 在程序中存在大量的数据来代表程序的状态,其中有些数据在程序的运行过程中值会发生改变,有些数据在程序运行过程中值不能发生改变,这些数据在程序中分别被叫做变量和常量. 在实际的程序中,可以根据数据在程序运行中是否发生改变,来选择应该是使用变量代表还是常量代表. 变量 变量代表程序的状态.程序通过改变变量的值来改变整个程序的状态,或者说得更大一些,也就是实现程序的功能逻辑. 为了方便的引用变量的值,在程序中需要为变量设定一个名称,这就是变量名.例如在2D游戏程序中,需要代表人物的位置,则需

  • Java关键字、标识符、常量、变量语法详解

    一.关键字 关键字:被Java语言赋予特定含义的单词.组成关键字的字母全部小写.注:goto和const作为保留字存在,目前并不使用.main并不是关键字. 二.标识符 标识符:就是给类,接口,方法,变量等起名字时使用的字符序列. 组成规则:英文大小写字母.数字字符.$和_ 注意事项:不能以数字开头.不能是Java中的关键字.区分大小写 我们通常会给下面的这些东西起一个标识符: 包.类或者接口.方法和变量.常量 三.注释 单行注释的格式: //注释文字 多行注释的格式: /* 注释文字 */ 文

  • Java 常量与变量的区别详细介绍

       常量:其值不变即为常量. 语法: 数据类型 常量名 = 值; double PI = 3.14; 备注: 一般默认常量名大写. 变量与常量之间关系(量间关系) 先来一个简单的实例,好了解 Java 里变量与常量之间的关系. 下面的程序里声明了两种 Java 经常使用到的变量,分别为整型变量 num 与字符变量 ch.为它们赋值后,再把它们的值分别显示在控制台上: 下面的程序声明了两个变量,一个是整型,一个是字符型 public class TestJava{ public static v

  • 全面解析Java支持的数据类型及Java的常量和变量类型

    基本数据类型 变量就是用来储存值而保留的内存位置.这就意味着当你创建一个变量时就会在内存中占用一定的空间. 基于变量的数据类型,操作系统会进行内存分配并且决定什么将被储存在保留内存中.因此,通过给变量分配不同的数据类型,你可以在这些变量中存储整数,小数或者字字母. Java 中有两种有效地数据类型: 原始数据类型 引用数据类型 原始数据类型 Java 支持 8 种原始数据类型.原始数据类型是由该语言预先定义的并用关键词命名的.下面让我们深入学习一下这 8 种数据类型. 字节型(byte) 字节型

  • Java switch支持的数据类型详解

    目录 switch支持的数据类型 支持的数据类型 实现 switch支持的10种数据类型和注意事项 switch支持的数据类型 switch注意事项 switch支持的数据类型 随着Java的不断发展,switch支持的数据类型也有了变化,下面就来讲述switch如何来实现对新增数据类型的支持. 支持的数据类型 基本数据类型:int,byte,short,char 基本数据类型封装类:Integer,Byte,Short,Character 枚举类型:Enum(JDK 5+开始支持) 字符串类型

  • Java switch case数据类型原理解析

    这篇文章主要介绍了Java switch case数据类型原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 Java 中 switch case 语句用来判断一个变量与一系列值中某个值是否相等,每个值称为一个分支. 语法格式如下: switch(expression){ case value : //语句 break; //可选 case value : //语句 break; //可选 //你可以有任意数量的case语句 default

  • Java入门基础之Java的基本语法与Java所支持的数据类型

    Java 应用程序可以被定义为对象的集合,这些对象通过调用各自的方法来进行通信.下面让我们具体看一看类,对象,方法,实体变量是什么含义. 对象:对象具有状态和行为.例如:狗有它的状态-颜色,名字,品种,同时也有行为-摇尾巴,汪汪叫,吃东西.对象时类的一个实例. 类:类可以被定义为描述对象所支持的类型的行为和状态的模板或蓝图. 方法:方法是一种基本的行为.类中可以包含很多方法.在方法中,可以编写逻辑,操纵数据,执行动作. 实体变量:每个对象都有它的特殊的实体变量的集合,一个对象的状态是由那些实体变

  • 深入解析Java中的数据类型与变量

    Java数据类型转换(自动转换和强制转换) 数据类型的转换,分为自动转换和强制转换.自动转换是程序在执行过程中"悄然"进行的转换,不需要用户提前声明,一般是从位数低的类型向位数高的类型转换:强制类型转换则必须在代码中声明,转换顺序不受限制. 自动数据类型转换 自动转换按从低到高的顺序转换.不同类型数据间的优先关系如下:     低--------------------------------------------->高     byte,short,char-> int

  • Java的基本数据类型和运算方法(必看篇)

    编码 ASCII--0~127 65-A 97-a 西欧码表---ISO-8859-1---0-255---1个字节 gb2312----0-65535---gbk---2个字节 Unicode编码体系---utf-8---3个字节 中 f bit位 Byte字节 1Byte = 8bit 1KB=1024B MB GB TB PB---计算机中存储单位 常量 整数常量---所有的整数 3,99,107 小数常量---所有的小数 3.5 100.9 字符常量---用单引号将一个字母.数字.符号标

  • 详解 Java中日期数据类型的处理之格式转换的实例

    详解 Java中日期数据类型的处理之格式转换的实例 概要: 日期以及时间格式处理,在Java中时间格式一般会涉及到的数据类型包括Calendar类和Date类. Date类: 1.Date类型转String类型(以时间格式1970-01-01 01:01:01为例) //yyyy-MM-dd HH:mm:ss表示24时间进制 SimpleDateFormat sDateFormat=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); String

  • Java为什么基本数据类型不需要进行创建对象?

    Java是一门面向对象的语言,即一切皆是对象!那么为何数据类型中还分为:基本类型和对象? Java中有8种基本数据类型boolean.byte.short.char.int.flaot.long.double,基本数据类型作为Java语言的一部分,但基本数据类型不是对象,基本数据类型放在堆栈中,对象放在堆中.堆的读写速度远不及栈,如果使用基本数据类型相当于在栈上进行操作,对变量的创建和销毁速度非常快.相反,如果用类进行定义变量,需要在堆中进行操作,创建和销毁速度都比较慢. 出于性能方面的考量,为

  • 初识Java基础之数据类型与运算符

    目录 数据类型 布尔类型 字符串类型String 拼接字符'+' 转义字符 运算符 加减乘除 模运算 增量赋值运算符 自增运算符和自建运算符 赋值运算符 判断运算符 逻辑判断符 按位运算符 移位运算 条件运算符 运算符优先级 总结 数据类型 布尔类型 Java当中的bool类型也是两个:true(真) 和false(假) 不同于C语言,在C语言中,我们可以将一个数字放在bool类型中,0为假,非0为真 int fun(){ return 1; } bool a = fun(); 在Java中,b

  • Java中常用数据类型的输入输出详解

    目录 1.Char型 1.1  输入格式: 1.2  举例说明 2.int型 1.1  简单的int格式输入: 1.2  举例说明 2.1带空格的int格式输入 : 2.2  举例说明 3.1  复杂int格式的输入 3.2  举例说明 3.double型 4.多次输入 1.1  输入格式 1.2  举例说明 5.数组 1.1  数组输入格式: 2.1  数组转换成字符串 6.字符串 1.1  字符串转换成整型,浮点型(以整型为例) 1.2  整型,浮点型转换成字符串 2.1  字符串转换成字符

随机推荐