java八大基本类型
java语言共分为两大类型,基本数据类型和引用数据类型。
基本数据类型有八种: byte,short,int,long,float,double,char,boolean;引用型数据类型有无数种。
byte:超出byte的范围编译会出现错误。
short:超出short的范围编译会出现错误。
int:直观上我们所看到的数称之为字面量,而直观上能看到的整数默认为int类型,所以,以byte和short类型赋值的数是int类型,只不过范围也在这前二者之中,可以被储存进去。
long:long类型字面量整数赋值后必须加L/l,eg:x=123l; 如果不加,默认为int类型,若赋值范围超出int类型范围,容易造成精度损失。
float:同long类型一样,赋值后必须加F/f,如果不加,默认为double类型,浮点数存在舍入误差,很多数字不能精确表示,若如果需要进行不产生舍入误差的精确数字计算,需要使用BigDecimal类。BigInteger实现了任意精度的整数运算。BigDecimal实现了任意精度的浮点运算。避免使用中进行浮点数比较。
double: 同float一样,存在舍入误差,避免使用中进行浮点数比较。 double可以精确到小数点后15~16位, float可以精确到小数点后7~8位。
char:如果想查看字符对应的数字是多少,只需要将字符赋值给int类型的变量。
eg:char az='中';
int df=az;
System.out.println("中对应的值:"+df);
dos命令显示:
char类型赋值为整数是不需要加单引号‘’。
编码集(字符集):计算机储存的实际上是二进制,为了人们使用方便,计算机协会及其相关组织定义了二进制和字符的一一对应映射表,比较流行的是: GBK, UTF-8 , ASCII, GBK2312,UNICODE......每一种映射表不会完全相同,java语言使用的是UNICODE字符集,任意字符,都占2个字节,也就是16位二进制。unicode字符集设计的映射表,没有65535这么多,只设计了一部分而已。所以有些数字,在显示时是空白或者是“?”。用户在书写文档时和打开文档时采用不用的编码集,则显示的内容和原来书写时内容会有所不同。
boolean:条件判断>,<和==。赋值只能是条件判断这三种。
封闭式运算:int类型和long类型。eg:max+1=min; min-1=max; max+2=min+1;
范围大小排序:byte<short(char)<int<long<float<double;
精确度范围大小排序:float<double<int<long;
类型转换
自动转换(隐式转换):当小范围类型的变量赋值给大范围类型的变量时,数字会自动转换为对应的类型。
eg:byte a = 2;// a里存储的是8位 2
short b = a;// 将a里的2存入16位的b中,
会自动在前面补全8个0.
注意:如果是负数,会自动补全1
byte a = 10;
long b = a;//8位的10存储到64位的b中,自动补全56个0
强制转换(显式转换):将小范围类型的变量赋值给大范围类型的变量时,需要强制转换,注意:强制转换易造成精度损失。
强制转换的语法:
小范围类型名 小范围变量=(小范围类型名)大范围变量
long a = 10;
int b = (int)a; double c = 3.999;
byte d = (byte)c;
运算符用法:
任何运算都遵循两个原则:
原则一:参与运算类型都小于int时,一定先自动转成int类型,再进行计算。
原则二:参与运算类型不一致时,一定先自动转成较大类型的数据,再进行计算。
封闭式运算:int,long。 -----------两原一封!
1.算术运算符: +, -, *, /, %,++,--
/(除法):
参与除法运算的类型中有浮点数类型时,做普通除法运算,可能有精度损失。
%(取余/取模):
浮点数做取余运算没有意义。
++,--:
自加自减运算符,必须和变量一起使用,表示变量会自动+1/-1操作,符号在变量前,先运算再赋值;符号在变量后,先赋值再运算。
eg:
2.关系运算符:>,<,>=,<=,==(等于),!=(不等于)
注意:==、!= 是所有(基本和引用)数据类型都可以使用,> 、>=、 <、 <= 仅针对数值类型(byte/short/int/long, float/double。以及char);返回的结果都是boolean类型。当条件成立则返回true,否则false。
“=”(赋值运算符)与“==”(比较运算符)区别:
“=”是把等号右边的变量赋值给等号左边的变量;“==”是用来判断==左右两边的变量是否相等。
eg:
3.逻辑运算符(短路运算符):&&(与),||(或),!(非)
通常用在一个或一个以上的关系运算中。
&&:全真为真,一假则假;
||:全假为假,一真则真;
!:非真即假,非假即真;
短路现象:当第一个条件能确定结果,则不执行第二个条件。
&&:第一个为假时,就不执行第二个了;
||:当第一个为真时,就不执行第二个了。
4.赋值运算符
=:将右边的赋值给左边的变量扩展为赋值运算符。
+=:a+=b---->a=a+b
-=:a-=b---->a=a-b
%= , /= , *= ,同理....
5.字符串拼接符:+
字符串类型名:String eg:String a="6";
赋值特点:0个或0个以上的字符使用;双引号“”引起来;当+左右只要有一个是字符串类型的数据,就做无缝拼接操作,拼接后的结果是字符串类型。
6.三目运算符(三元运算符):
变量类型 变量名=boolean表达式?值1:值2;
eg: int m=15,n=10;
int re =m>n?m:n;
System.out.println(re);
说明: 1.通常情况下,表达式1是关系表达式或逻辑表达式,用于描述条件表达式中的条件,表达式2和表达式3可以是常量,变量或表达式.
2.条件表达式的优先级别仅高于赋值运算符,而低于前面遇到过的所有运算符.
3.可嵌套,boolean表达式可加可不加括号,