1.Java数据类型

Java数据类型是最基础的部分,也是最容易忽视的重要部分。Java是强类型语言,因而对数据类型的掌握也提出了很高的要求。本文主要内容包括:

  • Java数据类型构成
  • 基本数据类型
  • 基本数据类型之间的类型转换
  • String不是基本数据类型

1.Java数据类型构成

Java数据类型分为两大类:基本数据类型引用数据类型

基本数据类型包括:

  • 整型: byte \ short \ int \ long
  • 浮点型: float \ double
  • 字符型: char
  • 布尔型: boolean

引用数据类型包括:

  • 类(class)
  • 接口(interface)
  • 数组(array)

Java数据类型

2.基本数据类型

2.1整型数据

类型占用存储空间表数范围
byte1字节=8bit位-128~127
short2字节-215~215-1
int4字节-231~231-1(约21亿)
long8字节-263~263-1

基本要求:

  1. Java中的整型常量默认为int型,声明long型常量必须加"L"或"l"结尾。
  2. Java中程序变量通常声明为int型,除非不足以表示为较大的数,才使用long型。
  3. byte很容易超出范围。
byte b1=12;
byte b2=128;//超出范围,出错
long num=22412414L;//声明long型常量必须加"L"或"l"结尾

2.2浮点型

通常带有小数点的数字称为浮点型。

类型占用存储空间表数范围
float4字节-3.403E38~3.403E38
double8字节-1.798E308~1.798E308

注意:

1. float:

  • 单精度,尾数可以精确到7位有效数字,很多情况下,难以满足要求
  • 声明float常量,必须加"F"或"f"结尾
  • float表示的数值范围比long型还要大。

2.double

  • 双精度,精度是float的两倍,通常采用此类型
double d1=123.3;
float f1=12.3f;//必须加"F"或"f"结尾

2.3字符类型 char

char 使用注意事项

  1. char 1字符=2个字节
  2. 定义char型变量,通常使用一对单引号—— ''
  3. char的三种表现形式
  • 单个字符
  • 转义字符: \n \t
  • 直接使用Unicode值来表示字符型常量;’\uXXXX’,其中XXXX表示一个十六进制的整数,例如,\u000a表示\n;
char c1='a';
char c2='1';
char c3='中';
char c4='の';
char c5='\n';//换行
char c6='\t';//制表符
char c7='\u0043';//Unicode中表示  c

2.4布尔型 boolean

只有两个值:true和false,常常使用在循环和条件判断当中。

3.基本数据类型之间的类型转换

前提:这里讨论的是7种基本数据类型之间的运算,不包括boolean类型。

3.1自动类型提升

提升规则
当容量小(表数范围而不是字节大小)的数据类型的变量与容量大的数据类型的变量做运算的时候,结果自动提升为容量大的数据类型。
byte /char/ short --> int --> long --> float --> double
特别地,当byte/char/short 三种变量做运算(包括同类型之间运算)时,结果为int型。

byte b1=2;
int i1=129;
int i2=b1+i1;//相加提升到int
System.out.println();
float f1=b1+i1;
//******************************
char c1='a';
int i3=10;
int i4=c1+i3;
//******************************
short s2=10;
int i5=s2+c1;
//******************************
byte b2=10;
int i6=b2+c1;
//******************************
int i7=b1+b2;

3.2强制类型转换

概念:自动提升运算的逆运算,即将容量大的数据类型转换为容量小的数据类型。
实现方法:使用强转符号(),内部添加目标类型。
可能会导致精度损失。

double d1=12.9;
int i1=(int)d1;//12
//**************
long l1=123L;
int i2=(int) l1;
//**************
int i3=128;
byte b=(byte)i3;//-128

3.3两种常见的编码情况

  1. 可以不加L的long,不可以不加F的float
  • long型变量位数小时,可以不加L,原因是默认int,自动提升为long型;位数大,已经超出int范围,必须加L;
  • float型必须加F。
//不报错,原因是默认int,自动提升为long;
long l1=123;
//不加L会编译失败,已经超出int范围
long l2=21323827747174712710990031L;
//编译失败,不加f默认double,需要强转到float
//float f1=12.3
  1. 整型常量默认为int,浮点型常量默认为double
byte b1=12;
//报错
//byte b2=b1+1;
//报错
//float f1= b1+12.3;

4.String不是基本数据类型!!

4.1基本知识

  1. String属于是引用数据类型;
  2. 声明String类型变量,使用一对"";
  3. String可以和8种基本数据类型做运算,但是连接运算+,先运算的加数中有String类型则为连接符号。运算结果为String。
String s1="Hello World!";
String s2="a";
String s3="";
//char c1='';编译不通过
char c2=' ';
//******************
int i=24;
String s1="科比的号码:"
String info=s1+i;//连接运算

4.2测试

//*******测试1**********
char c='a';
int num=10;
String str="hello";
//*******计算一下的值**********
System.out.println(c+num+str);//107hello
System.out.println(c+str+num);//ahello10
System.out.println(c+(num+str));//a10hello
System.out.println((c+num)+str);//107hello
System.out.println(str+num+c);//hello10a
//*******测试2,判断一下输出结果**********
System.out.println("*	*");//*		*
System.out.println('*'+'\t'+'*');//93
System.out.println('*'+"\t"+'*');//*		*
System.out.println('*'+'\t'+"*");//51*
System.out.println('*'+('\t'+"*"));//*		*
//*******测试3,易错题辨析,判断对错**********
String str1=4;//报错
String str2 =3.5f+"";//
System.out.println(str2);//"3.5"
System.out.println(3+4+"Hello");//7Hello
System.out.println("Hello"+3+4);//Hello34
System.out.println('a'+1+"Hello"+3+4);//98Hello
System.out.println("Hello"+'a'+1);//Helloa1
//*******测试4,判断能否通过编译**********
//******1
short s=5;
s=s-2;//不能
//******2
byte b=3;
b=b+4;//no
b=(byte)(b+4)//yes
//******3
char c='a';
int i=5;
float d=.314F
double result = c+i+d;//yes
//******4
byte b=5;
short s=3;
short t=s+b;//no ,int

4.3 String和int转换

1.int—>String

String str1=123+"";//”123“

2.String–>int

//使用基本数据类型包装类的方法来实现
int num= Integer.parseInt(str1);//123
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值