@liruiyi962464
2019-02-25T09:13:21.000000Z
字数 2480
阅读 552
java
java是强类型语言,每个数据都定义了明确具体的数据类型,在内存在分配了不同大小的内存空间。
- 整形:都代表整数类型但是他们的取值范围不一样
- 1个字节=8个二进制位
- boolean虽然是一个字节(但是占2个)
分类 | 数据类型 | 关键字 | 字节 | 范围 |
---|---|---|---|---|
布尔型 | 布尔型 | boolean | 1 | true false |
整形 | 字节型 | 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 | |
浮点型(小数) | 单精度浮点型 | float | 4 | 1.4013E-45——3.4028E+38 |
双精度浮点型 | double | 8 | 4.9E-324——1.7977E+308 | |
字符类型 | 字符型 | char | 2 | 0——2^16-1 |
byte num1 = 88;//声明和赋值同时进行
System.out.println(num1);//报错
//(注意:只声明但未赋值的变量不能使用)
byte num2;
num2 = 88;//先声明后赋值
- byte,short,int,log
- 内存占用字节数小类型的转换到内存占用字节数大的类型是默认进行的,反之不成立。
int num1 = 128;
long num2 = num1;//正确 转换成功 默认进行
int num1 = 128;
short num2 = num1;//错误 转换失败
System.out.println(num2);
- 整数转换换成小数是默认进行的
- 任何类型的整数转换成小数类型是默认进行的
float num1 = 128;
long num2 = num1;
System.out.println(num2);//错误 转换失败
long num1 = 128;
float num2 = num1;
System.out.println(num2);//正确 转换成功 默认进行
- 内存占用字节数小类型的转换到内存占用字节数大的类型是默认进行的,反之不成立。
float num1 = 128;
double num2 = num1;//正确 转换成功 默认进行
double num1 = 128;
float num2 = num1;//错误 转换失败
System.out.println(num2);
- char 单个字符 字符类型
- long num1 = 123; 123?(long)是错误 123 int 因为默认进行**
- long num1 =4000000000L;后边加L才是long类型的否则是默认是int类型
- byte、short除外不做考虑
- float num1 =2.36f;float变量的类型的值加小数点后面默认的值的类型为double类型
//char类型的表达方式
char sex1 = '男';
char sex2 = '女';
long num1 = 4000000000; //错误
//经过测试报错num1没有超过long的取值范围但超过了int的取值范围
//说明默认取值类型均为int类型
//标准的long类型定义方式
long num1 = 4000000000L; //(格式正确)
//后边加L才是long类型的否则是默认是int类型
float num1 = 2.36;//错误
//经过测试报错num1没有超过float的取值范围但超过了double的取值范围
//说明默认取值类型均为double类型
//标准的float类型定义方式
float num1 = 2.36f //(格式正确)
//后边加f才是float类型的否则是默认是double类型
int num1 = 123;
short num2 =(short)num1;
//强制转换 将int类型强制转换成short类型
int num1 = 65;
//将int类型强制转换成字符类型
char num2 = (char)num1;
System.out.println(num2);
//将字符类型强制转换成int类型
char c2 = '男';
int num3 = c2;
System.out.println(num3);
- 内存占用字节数小的类型和内存占用字节数大的类型做运算的时侯最终的结果为内存占用字节数大的类型
- 结论:数据类型的确定,字节数谁大听谁的
char num4 = 'A';
num4=(char)(num4+32);
System.out.println(num4);
//字符串里面的内容无限制
String str1 = "哦,耶.肾宝,味道好极了.";
String str2 = "";//空值字符串
String str3 = null; //值不存在
- java基础阶段无法将字符串类型转换成八大基本数据类型
- String str = "123";(面向对象之后会讲解字符串类型转换成基本数据类型)
- 一个字符串类型与基本类型做+号运算最终得到的是一个字符串类型
- +号只是一个连接符号
int num = 123;//定义了一个整形
String str = "输入的数字为:"+num;//结果:输入的数字为:123
String str1="123";//直接赋值法
String str2="123";//直接赋值法
String str3=new String("123");
//str1控制台输入123等价于str3的创建方法
String str4=new String("123");//新建赋值法
//==在字符串之间进行判断是判断值得地址是否相等
//str1.equals(str2)判断两个字符串的值是否相等
System.out.println(str2==str3);//false
System.out.println(str1==str2);//true
System.out.println(str2.equals(str3));//true
System.out.println(str3==str4);//false