栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java 数据类型及变量

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java 数据类型及变量

一、Java 中的数据类型

Java 中的数据类型有 基本数据类型 和 引用数据类型 两大类。

  • 基本数据类型的大小确定,变量声明后即分配内存;引用数据类型的变量创建后,不会立即分配内存,但会保存一个内存地址
  • 基本数据类型的变量名指向具体的数值;引用数据类型的变量名指向存数据对象的内存地址
  • 基本数据类型存放在栈内存中,读写速度快;引用数据类型存放在堆内存中,但会在栈内存中存放一个地址,指向堆内存中的具体数据信息
  • 基本数据类型之间是值的传递;引用数据类型之间是引用的传递
  • 基本数据类型变量判断值是否相等用 “==” 或 “!=”;引用数据类型的变量判断值是否相等可以通过重写 equals() 方法,“==”或“!=”是判断引用是否相同

1. 基本数据类型

基本数据类型有 字节型(byte),短整型(short),整型(int),长整型(long),单精度浮点型(float),双精度浮点型(double),字符型(char),布尔型(boolean) 八种,具体数据信息如下图

2. 引用数据类型

除八大基本数据类型之外的都是引用数据类型,包括 String、类、接口、数组、集合……

最常用的引用数据类型应该就是 String (字符串)了,这是一种特殊的引用数据类型,经常被初学者误认为是基本数据类型,后面有时间我会专门整理一下关于它的内容

另外,针对八大基本数据类型,还有专门的包装类将基本数据类型封装成对象,如 Integer(int 的包装类)、Character(char 的包装类)、Byte(byte 的包装类)……其他的都是对应首字母大写

基本数据类型的包装类最主要的功能就是用于基本数据类型和 String 类型之间的转换,还有些基本数据类型不太方便的情况下,转换成包装类即可(比如有些方法传入的参数可能为空时,用基本数据类型可能会报错,用包装类就不会)

3. 数据类型转换

1)自动类型转换

如果操作两个兼容的不同类型的数据做计算,则结果(表达式)自动提升为较大的那个数据类型

不需要特殊操作,但有前提:

  • 两种数据类型要兼容(通俗一点就是差不多的类型,比如 int 和 double,两者都为数字)
  • 目标类型大于源类型(即由类型小的向类型大的转,比如 int 转成 double 可以,反之不行)
int a = 3;
double b = 2.5;

double c = a + b;

2)强制类型转换

将取值范围大的类型强制转换为取值范围小的类型,需要在被转换的数据前加上(要转成的类型)

这里的前提也是数据类型要兼容,和自动类型转换不同的是,强制是由大转小

int a = 3;
double b = 2.5;

int c = (int)(a + b);
// 或者 int c = a + (int) b; 是一样的

3)基本数据类型和包装类之间的转换(自动装/拆箱)

装箱:基本数据类型转换成包装类(原理:调用包装类的 valueOf() 方法或直接 new 包装类)

拆箱:包装类转换成基本数据类型(原理:调用包装类的 xxxValue() 方法)

Integer a = 3; //自动装箱
int b = a; //自动拆箱

4)基本数据类型转 String(字符串)

  • 基本数据类型 + 字符串 → 字符串
  • String.valueOf(基本数据类型) → 字符串
  • 包装类.valueOf(基本数据类型).toString() → 字符串
int i = 10;

String a = "" + i;

String b = String.valueOf(i);

String c = Integer.valueOf(i).toString();
// valueOf()的参数类型可以为对应基本数据类型,也可以为字符串,返回值为包装类
// toString()是将包装类转换为 String 类型的方法

5)String(字符串) 转基本数据类型

  • 包装类.parseXxx(字符串) → 基本数据类型(特例:Character 没有 parseCharacter() 方法)
  • 包装类.valueOf(字符串) → 基本数据类型(转包装类后自动拆箱)
String str = "12";

int a = Integer.parseInt(str);

int b = Integer.valueOf(str);

6)向上转型、向下转型

向上/下转型是针对引用数据类型而言的,将子类对象转换为父类对象是向上转型,反之是向下转型;向上转型类似于上面的自动类型转换,向下转型类似于上面的强制类型转换;因为和类的继承相关,这里就不做赘述了,后面讲到继承的时候再整理

7)注意:

  • 强制类型转换一般不推荐,因为转换时不是四舍五入而是直接抹零,容易造成数据精度损失
  • 当byte、char、short三种类型的变量互相做运算时,或者自己和自己本身做运算时,结果都为int型。 
二、Java 中的变量

java 是一种强类型语言,所以定义变量时必须先确定该变量的数据类型。

1. 创建变量的语法

定义变量:变量类型 变量名;

给变量赋值:变量名 = 变量值;

创建变量的同时给变量赋值:变量类型 变量名 = 变量值;

// 只创建变量不赋值
String name;
int a,b;

// 给已有的变量赋值
name = "张三";
a = 10;
b = 12;

// 创建变量并赋值
double price = 22.5;

// 注意:下面这种情况,只给 c 赋值了,a 和 b 都没有被赋值
int a,b,c = 10;   // 这里等同于 int a;int b;int c=10;
//同时定义多个同类型变量时,要各自赋值,下面则表示 a,b,c 这3个变量都为10;
int a = 10,b = 10,c = 10;

2. 变量命名规则

  • 由字母、下划线、美元符、人民币符号、数字中的一种或多种组成
  • 不能以数字开头
  • 不能使用关键字,如 public 、class 等
  • 见名知义,最好使用小驼峰命名法
    (小驼峰:当变量名由多个单词构成时,第一个单词全小写,后面的单词都首字母大写
     大驼峰:当变量名由多个单词构成时,所有单词的首字母都大写,常用于类名)

3. 常量

常量定义:final + 变量定义(常量命名:全大写,组合词用下划线)

final double PI = 3.14;
final double MAX_SCORE = 100;

ps:关于 final,单词意为最终的,在 java 中:

  • final 变量 ==> 常量(不能变)
  • final 方法 ==> 最终方法(不能被重写)
  • final 类 ==> 最终类(不能被继承)
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/877675.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号