@基本数据类型
数据类型
基本的数据类型及应用
整数 、浮点、字符、布尔类型
- 整数:byte,8位;相当于一个字节(-128——127的范围);short,16位;相当于两个字节(-2的15次方——2的15次方减一)。int(32位) long(64位)
- 浮点:float(32位,小数点后7到8位保留) double(64位,小数后保留15位)
- 字符:char(16,包括汉字 字母数字 标点 。。。等一个)
- 布尔:boolean (8位,通常情况是 trye false)
class BianLiang{
public static void main(String[] args){
//long id = 123456;//整数默认是int类型, 向上转型
long id=123456L;//zeng加代码效率
short c =50;//像下转型,精度损失
//byte d =128;//报错,需要强制转换
byte d=(byte)128;
/*
128 -128
130 -126 强制转换后的结果
*/
float price =128.88;//浮点类型默认double类型;只有四float类型,都要加f
double lat=1234.215;//不需要转,默认就是double类型
double a=0.6;
double b=4.2;
System,out.println(b/a);//wei什么是7.00000000001
char c='A';//本质上都死01代码,将其转换位Int类型。向上转型 因为跨类型,需强转
System.out.println((int)c);//65
char e='我';
System.out.println((int)e);
System.out.println(1/0);//编辑时无措,运行会错
}
}
数据类型相互转换
- 自然转换(隐式转换) 小转大
- 强制转换 大转小 会损失精度
- 任何类型和字符串类型相加,都是字符串类型
- byte类型和int类型可以自动相互转换
class Test{
public static void main(String[] args){
byte b=3;
int a =b;//自然转换
int c=128;
byte d=(byte)c;//强制转换 会精度损失;只在强制转换时要谨慎。
}
}
能够相互转换的原因: byte short int long float double整数和float转换也可以;因为都有整数位。
- 转换时默认位double long 和 浮点型 在转换时,不需要强转
```java
class Test1{
public static void main(String[] args){
long b=2L;
float a=b;//不报错,转换时默认位double long 和 浮点型 在转换时,不需要强转
}
}
- char 和int类型转换 AscII码 字符对于数字 A65 a97 z122 Z 90 文字是俩字节 Z和a之间差32 及大写转化为小写要+32
经典题型 H转换为h
class Test2{
public static void main(String[] args){
char a='H';
int b=a;
int c=b+32;
char d=(char )c;
System.out.println(d);
}
}
三目运算符
- 三目运算符的语法结构,返回值类型只于结果有关,而数据类型要做相应的改变
class Test3
{
public static void main(String[] args){
String result= 2==1 ? "真" :"假";
char resylt1= 2 !=1 ? 1:0 ;
}
}
位运算
- &与 , | 或 , ^异或;两边为数字时为位运算 3&5 3^5 3|5;进行位运算首先要转换为2进制。
- 十进制:0——9
二进制:01码 是否通电
转换:0000 0000 byte类型
60 : 00111100
第一个0是符号位 1 负数