java基础3:Java数据类型
来源:互联网 发布:翁其钊 知乎 编辑:程序博客网 时间:2024/06/06 09:44
java基础3:Java数据类型
Java语言是强类型语言,对于每一种数据都定义了明确的具体数据类型,在内存总分配了不同大小的内存空间。
Java总共有两种数据类型,主要有基本类型和引用类型,基本类型有8种,引用数据类型(数组、类、接口)有3种。
在计算机内部,所有信息都采用二进制表示,每个二进制由0和1两种状态,一个字节有8位,也就是由8个0或1构成,如果short类型的6在计算机中是如何存储的,short是两个字节,那么short 6的二进制为:00000000 00000110,int类型的6在计算机中存储为32位:00000000 00000000 00000000 00000110。
如:
byte score;//保存单科分数
short age;//保存年龄
int sumScore;//保存总分
long fileSize;//保存文件长度
foat x,y;
double result;//保存运算结果
char sex;//保存性别
boolean isContinue;//表示是否继续
String name;//表示姓名
1.整数型
byte/short/int/long
Java语言整数型常量有三种表示方法
l 十进制
l 八进制,八进制0开头,如:013
l 十六进制,十六进制0x开头,如:0x23
Java语言整数型默认为int类型,如果要声明成long类型在变量值后加入L,如:
long l = 999999999999L
2.浮点型
Java语言中浮点类型包括:float/double
Java语言中浮点类型默认为double
3.布尔类型(true、false)
4.基本类型的转换
(1)默认转换:byte-short-int-long-float-double。
(2)强制转化:大转小,注意:只要不超出范围可以将整型值直接赋值给byte,short,char。
【示例代码】
public class DataTypeTest06 {
public static void main(String[] args) {
//出现错误,1000超出了byte的范围
//byte a = 1000;
//正确,因为20没有超出byte范围
//所以赋值
byte a = 20;
//变量不能重名
//short a = 1000;
//正确,因为数值1000没有超出short类型的范围
//所以赋值正确
short b = 1000;
//正确,因为默认就是int,并且没有超出int范围
int c = 1000;
//正确,可以自动转换
long d = c;
//错误,出现精度丢失问题,大类型-->>小类型会出现问题
//int e = d;
//将long强制转换成int类型
//因为值1000,没有超出int范围,所以转换是正确的
int e = (int)d;
//因为java中的运算会会转成最大类型
//而10和3默认为int,所以运算后的最大类型也是int
//所以是正确的
int f = 10/3;
//声明10为long类型
long g = 10;
//出现错误,多个数值在运算过程中,会转换成容量最大的类型
//以下示例最大的类型为double,而h为int,所以就会出现大类型(long)到小类型(int)
//的转换,将会出现精度丢失问题
//int h = g/3;
//可以强制转换,因为运算结果没有超出int范围
//int h = (int)g/3;
//可以采用long类型来接收运算结果
//long h = g/3;
//出现精度损失问题,以下问题主要是优先级的问题
//将g转换成int,然后又将int类型的g转换成byte,最后byte类型的g和3运算,那么
//它的运算结果类型就是int,所以int赋值给byte就出现了精度损失问题
//byte h = (byte)(int)g/3;
//正确
//byte h = (byte)(int)(g/3);
//不能转换,还有因为优先级的问题
//byte h = (byte)g/3;
//可以转换,因为运算结果没有超出byte范围
//byte h = (byte)(g/3);
//可以转换,因为运算结果没有超出short范围
short h = (short)(g/3);
short i = 10;
byte j = 5;
//错误,short和byte运算,首先会转换成int再运算
//所以运算结果为int,int赋值给short就会出现精度丢失问题
//short k = i + j;
//可以将运算结果强制转换成short
//short k = (short)(i + j);
//因为运算结果为int,所以可以采用int类型接收
int k = i + j;
char l = 'a';
System.out.println(l);
//输出结果为97,也就是a的ascii值
System.out.println((byte)l);
int m = l + 100;
//输出结构为197,取得a的ascii码值,让后与100进行相加运算
System.out.println(m);
}
}
- java基础3:Java数据类型
- 【Java基础】Java数据类型
- java基础(3)--数据类型
- Java基础--------(3)数据类型
- java 基础数据类型
- Java基础数据类型
- Java基础 - 数据类型
- java基础数据类型
- java基础--数据类型
- java 基础数据类型
- JAVA-基础数据类型转换
- JAVA基础数据类型
- Java基础:数据类型
- java基础语法--数据类型
- Java 基础数据类型
- Java基础 数据类型
- MongoDB 基础java数据类型
- java byte 数据类型(基础)
- 算法提高 线段和点
- php中的常用函数
- cv2:dll load failed: 找不到指定的模块
- Python的函数
- PHP基础
- java基础3:Java数据类型
- HDOJ 5063 Operation the Sequence (优化后的暴力)
- 阿里云服务器linux系统配置svn
- Kali Linux 2.0 2016.2 开启 SSH 服务方法
- 浮动
- SQLite 锁机制学习总结 锁状态转换及锁机制实现代码分析
- 安卓四大组件-内容提供器-2_访问其他程序中的数据
- java设计模式之备忘录模式
- java swing简介