1.数据类型

在这里插入图片描述

一、整数类型

1、整数类型常量

进制转换

(1)进制表示
		*二进制:O*
		*八进制:B*
		*十进制:D*
		*十六进制:H*
(2)进制转换

【1】二进制转十进制
例:二进制:1101
方法:从右至左 依次乘以20、21、22、23然后相加
十进制:13
【2】十进制转八进制
例:十进制:22
方法:22除以8,所得余数依次从上到下排列,最后从下向上写
八进制:26
【3】十六进制转八进制
先将十六进制转为十进制再将七转为八进制

2、整数类型变量

在这里插入图片描述

(1)定义整数类型变量

int num1 = 12;//十进制
int num2 = 012;//八进制
int num3 = ox12;//十六进制
int num4 = 0b12;//二进制

(2)定义byte、short、long类型变量

超出整数型变量默认为Int型

byte b =126short s =3000;
long num5 =12345672334L;//默认类型为int,超范围,需后面加L

二、浮点类型

1、浮点类型常量

(1)十进制数形式

3.14、314.0

(2)科学计数发

314e2、314E2、314e-2

double num1 = 3.14;//十进制
double num2 = 314E-2;//科学计数法

2、浮点类型变量

浮点型变量默认double类型
(1)单精度float型(有效位数6~7位)

float f1 = 3.141689387928748F;//double类型赋给float必须加上F
system out("3.141689");//只能表示有效位数6位

(2)双精度double型(有效位数15~16位)

double d1 = 3.1213131313133;//double后可以加d可以不写

(3)浮点类型不可以比较
底层存储不一样,符号位、指数位、尾数位所占空间不一样。

三、字符型

1、编码与字符集

(1)GBK
最多使用俩个字节编码
若有俩个字节编码
首位0:一字节代表一个字符
首位1:一个一字节够加上后面的字节才能完整表示字符
(2)Unicode
UTF标准:UTF-8、UTF-16、UTF-32

Unicode编码(十六进制)UTF-8 字节流(二进制)
000000-00007F0xxxxxxx
000080-0007FF110xxxxx 10xxxxxx
000800-00FFFF1110xxxx 10xxxxxx 10xxxxxx
010000-10FFFF11110xxx 10xxxxxx 10xxxxxx 10xxxxxx

UTF-8标准最多可以用6 个字节表示
1字节 0xxxxxxx
2字节 110xxxxx 10xxxxxx
3字节 1110xxxx 10xxxxxx 10xxxxxx
4字节 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
5字节 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
6字节 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx

2、浮点类型常量

char中只能放Unicode下的UTF-16编码下只占2字节的那些字符


(1)定义字符类型的变量
字母、数字、符号、中文都是字符类型的常量,都占俩个字节。

char ch1 = 'a';
char ch2  = 'A';
char ch3 = '4';
char ch4 = '中'char ch5 = '?';

(2)定义转义字符
将后面的普通字符转换位特殊含义
换行字符:\n

char ch6 = '\n';
System.out.println("aaa"+ch6+"bbb");//

输出:
aaa
bbb
制表符:\t

System.out.println("aaaaa\tbbbb");

输出:aaaaaa bbbb(中间空3格);
退位符:\b

system.out.println("aaaa\bbbb");

输出:aaabbb;(向前退一格)
回车:\r

system.out.println("aaaa\rbbb");

输出:bbba(光标移至开头将原来光标后的数字依次替换)
双引号:“”

system.out.println("\"java\"");

输出:”java“
(3)char类型我们看到的样子就是本身的字面常量,底层进行计算时按照ASCII码计算(Unicode的兼容ASCII码,Unicoded的钱128位是ASCII)

char ch1 = 'A';
System.out.println(ch1);//A
System.out.println(ch1+90);//155
System.out.println(155-ch1);//90
char ch2 ='中';
System.out.println(ch2);//中
System.out.println(ch2+90);//20103
System.out.printl(20103-ch2);//90

转换

int num1=(int)ch2;
System.out.println(num1);//20013
char ch =(char)20013;
System.out.println(ch);//中
char ch5=20013;
System.out,println(ch5);//中
 

面试题

char ch6 ='2'+2;//输出字符'4','2'对应Unicode字符表中的50,然后相加后为52再由字符表示出来为4;

四、布尔型

1、布尔变量

boolean只有false、true

Boolean flag1=true;
System.out.println(flag1);//ture
boolean flag2 = 5==9;
System.out.pritnln(flag2);//false

五、基本数据类型转换

1、自动类型转换

double d = 6;

2、强制类型转换

int i = (int)6.5;

多种数据类型参与运算。与运算时,整数类型、浮点类型、字符类型都可以参加运算,布尔类型不可以参加运算。
类型级别:byte、short、char–>int–>long–>float–>double当一个表达式中有多种数据类型是,要找出当前表达式中级别最高的那个类型,然后其余的类型转换为级别中最高的类型计算。

double d1 = 12+1294L+8.5F+3.81+'a'//1415.31
int d2 = (int)(12+1294L+8.5F+3.81+'a')//1415

特殊情形
对于byte、short、char类型来说,只要在他们的表述范围中,赋值的时候就不需要进行强转直接赋值。

byte b2 = (byte)270;//14(270超出范围)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值