java基础(3)——八大基本数据类型和类型转换,以及运算符用法

java八大基本类型

       java语言共分为两大类型,基本数据类型和引用数据类型。

       基本数据类型有八种: byte,short,int,long,float,double,char,boolean;引用型数据类型有无数种。

java基础(3)——八大基本数据类型和类型转换,以及运算符用法

java基础(3)——八大基本数据类型和类型转换,以及运算符用法

byte:超出byte的范围编译会出现错误。

short:超出short的范围编译会出现错误。

int直观上我们所看到的数称之为字面量,而直观上能看到的整数默认为int类型,所以,以byte和short类型赋值的数是int类型,只不过范围也在这前二者之中,可以被储存进去。

longlong类型字面量整数赋值后必须加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命令显示: 

                   java基础(3)——八大基本数据类型和类型转换,以及运算符用法
          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.算术运算符: +, -, *,  /, %,++,--

/(除法):

参与除法运算的类型中有浮点数类型时,做普通除法运算,可能有精度损失。

     java基础(3)——八大基本数据类型和类型转换,以及运算符用法

%(取余/取模):

浮点数做取余运算没有意义。

++,--:

自加自减运算符,必须和变量一起使用,表示变量会自动+1/-1操作,符号在变量前,先运算再赋值;符号在变量后,先赋值再运算。

java基础(3)——八大基本数据类型和类型转换,以及运算符用法

eg: 

          java基础(3)——八大基本数据类型和类型转换,以及运算符用法

2.关系运算符:>,<,>=,<=,==(等于),!=(不等于)

注意:==、!= 是所有(基本和引用)数据类型都可以使用,> 、>=、 <、 <= 仅针对数值类型(byte/short/int/long,  float/double。以及char);返回的结果都是boolean类型。当条件成立则返回true,否则false。

“=”(赋值运算符)与“==”(比较运算符)区别:

“=”是把等号右边的变量赋值给等号左边的变量;“==”是用来判断==左右两边的变量是否相等。

eg:

      java基础(3)——八大基本数据类型和类型转换,以及运算符用法

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表达式可加可不加括号,