java变量和运算符

                                         变量                              

存储空间,空间中的数据是可以改变的。

语法

  1.数据类型变量名;    //=是赋值运算符

    变量名 = 值;

  2.数据类型变量 = 值;

  例如:

       变量声明:int age;

变量初始化:age = 22;

边声明边初始化:int age =22;

注意:

  1.同一作用域内变量不能同名;

  2.变量要先声明 再使用;

  3.局部变量必须 赋值后 再使用;

------------------------------------------------

                                         Int  整数类型                           

强类型

1.    先声明类型

2.    赋值的类型与声明的类型要相符合

标识符命名规则:

1.    由 字母、数字、下划线、$组成

2.    不能以数字开头

3.    不能是java关键字

4.    不能是字面值 true、false、null

变量名命名规范:

       骆驼命名法  例如:ageValueNumber
--------------------------------------------------------------

                                                   数据类型                                     

 基本数据类型:存的是值

        整数类型: 例如:1,45,78

                                             大小             范围

         字节型: byte          1字节        - 128  到 127 

 

         短整型: short         2 字节       -2^15 到 2^15-1

         整型     :  int          4字节        -2^31 到 2^31-1

         长整型: long         8字节

     浮点型:例如 4.5,8.9

        单精度: float           4字节

        双精度: double      8字节

     字符:'a' '中' '3'

                   char                2字节 

                   ASCII              0 - 127

               Unicode             \u0000 - \uffff

                                        0 - 65535

     布尔:    

                boolean                              true false

                                                            真   假

 

一个字节是八位二进制数:1 b = 8 bit (位)  0,1

位是最小计量单位

1 KB = 1024 B

1MB= 1024 KB

1GB = 1024MB

1TB = 1024GB


整数:

源代码中给出一个字面值,系统会当作int类型处理

Int n = 22;

Long n1 = 12346890640368009L

注:如果不加L,只会当作一个超了范围的整形

二进制  int n2 = 0b101;

八进制   int n3 = 017

十六进制  int n4 = 0x1f

为了增强可读性可以用下划线分割数   int n5 = 0b 1001_0000_1111

浮点数:

源代码中给出一个字面值,系统当作double类型处理

Double d1 = 34.5;

Float d2 = 56.7f;    //需要加上F或者f

Double d3  = 3.5e20;    //e 以 10 为底

Double类型可以用来表示十六进制的数,但是必须以 科学记数法表示:

double d4 =0x3.4p2;   // p 以2为底

运算:表示范围很大,但是不是准确的

注意不要在数量级相差很大的浮点类型之间进行运算,会取一个相似的值

             Double d6 = 3.4e30+1;

       注意避免进行等量的判断。如果要进行精确运算,应该使用无限小数

Java.math.BigDecimal;

BigDecimal d10 = new BigDecimal(“0.1”);

BigDecimal d11 = new BigDecimal(“0.2”);

Double d12 = d10.add(d11).doubleValue();

System.out.println(d12);

字符型:

Char 2字节16位unicode字符   Unicode 0 – Unicode 2^16 -1

ASCII 0 - 127

       Unicode \u0000 - \uffff

       0 - 65535
注:编码方式

ASCII

ISO-8859-1    //英文中用的最多

Windows-1252

GB2312

GBK    //中文中用的最多

GB18030

Big5   //不兼容GBK

Unicode编码

       UTF32

       UTF-16

       UTF-8

  

 引用数据类型:存的是地址

      字符串 String

      数组   []

      类    class

      接口 interface

 

布尔类型

只支持true和false两个字面值,不支持0,1赋值

字符串

连接字符串   +  :String str = “年龄是:” + age;

-----------------------------------------------
                                        运算符                                        

算术运算符

+  -* / % 余数,取模

浮点除法三个特殊的值

正无穷大:5/0.0

负无穷大:5/-0.0

NAN非数字:0/0.0

----------------------------------

自增

 ++
后缀   前缀

 a++    ++a     ->      a = a + 1;

自减
--

a--    --a         ->       a = a - 1;

运算规则:

  赋值运算或者 输出语句中,那么 后缀 ,先赋值运算 或 输出,然后再自增或自减。

                                                      前缀,先自增或自减运算后,再赋值或输出。

 ------------------------------------------------------------------------------

                                                   类型转换                                          

自动类型转换:

  类型得兼容

  类型小(低,范围小的)赋值给 类型高(范围大的)类型。

 -128 127  -32768 32767

 byte -> short -> int ->long->float->double

         char ->

0-   65535

Char类型不包括负数

 

 类型提升:

   前提运算时,类型低的 提升为类型高的运算,结果采取

   类型最高的数据类型 作为结果类型。

强制类型转换:

   类型高 (范围大的)  赋值  给 类型低(范围小的).

   (类型)数值。

--------------------------------------------------

                                 关系运算符                                  

即:比较运算符

> < >=   <=  ==  !=

运算结果是 boolean类型的

---------------------------------------------------

                                  逻辑运算符                                

&& 与   一假false为假false   true && true

||  或   一真 true为真true   true

!  非   取反

逻辑&& ||  !和位 & |的区别

1.    &&和||进行逻辑运算

       &和|可以进行逻辑运算,也可以进行位运算

2.    &&和|| 短路效果

      & 和| 非短路运算

------------------------------------------------

                                     扩展赋值运算符                                  

+=   -=   *=   /=   %=

Sum += 1;

 

代码分析:

Short n3 = 5;

N3 = n3 +5;

//short + int转为short,编译会出错

 

修改

N3 += 5;

扩展赋值运算符会进行自动的强制类型转换

----------------------------------------------

                                        条件运算符                         

boolean

表达式一 ? 表达式二 : 表达式三

 

表达式一 运算的结果:

 true  -> 取 表达式二 的结果

  false -> 取 表达式三 的结果

-----------------------------------------------------     

                                     位运算符                                       

与:&

              两个位同时为 1 ,结果为1 ;一假为假

或:|

              一个位为1,结果为1;一真为真

异或:^

              相同为0,不同为1

非(取反):~

              0为1,1为0

              (负数变正数:减一取反)

左移:<<

              向左移动 n 位,右边用 0补位

右移:>>

              向右移动 n 位,左边是0用 0补位,是1用1补位

无符号右移:>>>

              向右移动 n 位,左边都用 0补位

------------------------------------------------

                                     优先级                                     

()

逻辑!

算术:

  * /%

 +  -

关系:

 >  >=  < <=

  ==!=

逻辑:

 &&

  ||

条件:

 ?:

赋值:

 =

--------------------------------------------

                                   其他知识点                              

两个变量互换的几种办法

方法一:

      intn1 = 5;

      intn2 = 2;

/*    n1 = n1 + n2;//7

      n2 = n1 - n2;//5

      n1 = n1 -n2;//2

*/

方法二:

      n1 = n1 ^ n2//一个数被另一个数异或两次还等于这个数

      n2 = n1 ^ n2;

      n1 = n1 ^ n2;

 

方法三:

      inttemp;

      temp = n1;

      n1 = n2;

      n2 = temp;

 

猜你喜欢

转载自blog.csdn.net/qq_24135817/article/details/80284191