(2)变量与运算

 

1..变量:

 

(a)

变量的概念:

       内存中的一个存储区域

       该区域有自己的名称(变量名)和类型(数据类型)

       该区域的数据可以在同一类型范围内不断变化

 

 

(b)

作用:

 

变量是用于存储数据用的,只要有不确定的数据可以定义个变量来进行存储,,,并可以重复使用

 

 

(c)

使用变量时注意:

 

(c1)

同一个区间内不能定义同名的变量,

              booleanbo = true;

              booleanbo = false;报错,,,使用了相同的变量名bo

 

(c2)

变量的作用范围(一对{}之间有效)

 

(c3)

初始化值:

       int类型的变量初始化值是0...布尔类型的变量初始化默认值是false;

 

 

(d)

什么时候定义变量?

              当数据不确定的时候。需要对数据进行存储时就定义一个变量来完成存储动作。

 

(e)

定义变量的格式:

       数据类型    变量名  =  初始化值;

       注:格式是固定的,记住格式,以不变应万变。

 

 

2..常量:

 

常量表示不能改变的数值。

Java中常量的分类:

1,整数常量。所有整数

2,小数常量。所有小数

3,布尔型常量。较为特有,只有两个数值。true false。

4,字符常量。将一个数字字母或者符号用单引号( ' ' )标识。

5,字符串常量。将一个或者多个字符用双引号标识。

6,null常量。只有一个数值就是:null.

 

 

 

3…

Java语言是强类型语言,对于每一种数据都定义了明确的具体数据类型,在内存总分配了不同大小的内存空间

 
变量与常量

 

 

(3.1)

自动类型提升:

 

l       表达式的数据类型自动提升

•        所有的byte型、short型和char的值将被提升到int型。

•        如果一个操作数是long型,计算结果就是long型;

•        如果一个操作数是float型,计算结果就是float型;

•        如果一个操作数是double型,计算结果就是double型

 

例子:

       byteb=3;  

 

       b=b+2;  报错,,,,

 

3是整数赋给b不报错,而b+2就报错...原因是3往左边赋的时候3本身是整数但是他会有个自动判断3是不是在byte的范围内.他做了一个自动类型提升(byte类型的3提升为int类型的3)

 

 

(3.2)强制类型转换:

       byteb=3;  

      

       b=(byte)(b+ 2);

 

b + 2的值强制转换成byte类型,把(b+2)的4个8位砍掉3位变为一个八位

 

 

4…算术运算符


例子:

 

int a = 3,

 

b = a++          运算顺序是先把a的值进行赋值运算赋给b,然后a再自增,也就是a先出去运算然后再自己增加一次,,结果:a=4,,b=3

 

b=++a;           运算顺序是a先加然后再出去赋值…结果:a=4,,b=4

 

 

(4.1)
算术运算符的注意问题:

•        如果对负数取模,可以把模数负号忽略不记,如:5%-2=1。但被模数是负数就另当别论。

•        对于除号“/”,它的整数除和小数除是有区别的:整数之间做除法时,只保留整数部分而舍弃小数部分。

例如:int x=3510;

x=x/1000*1000;  结果3000

 

•        字符串数据和任何数据使用+都是相连接,最终都会变成字符串。

                               System.out.println("5+5"+(5+5));//  运算过程::"5+5=55" 

 

 

 

 

5…转义字符

 

转义字符的定义:通过\ 来转变后面字母或者符号的含义。

              \n:换行。 在linux系统里面换行是由一个字符来表示的就是\n.而在window的很多软件里面换行是由2个字符来表示的\r\n,,而dos里面直接能识别\n

              \b:退格。相当于backspace。

              \r:按下回车键。window系统,回车符是由两个字符来表示\r\n.

              \t:制表符。相当于tab键。hello  world效果是hello和world之间有一对(2个)空格

 

5.1.System.out.println("hello \nworld");在hello 和 world的中间换行,,n是个字母,,加上\线让这个n有个其他的意义,这时\n代表换行。注意这个\线他只转变他后面的字母或者符号的含义,

 

5.2.char ch = '\n';    他把n给转义了,, \n'代表一个回车符(换行)

 

6…..赋值运算符

 

l      符号:

              =, +=, -=, *=, /=, %=

l      示例:

              inta,b,c;  a=b=c =3;

              inta = 3;   a+=5;等同运算a=a+5;

 

注意:

+=是一个符号,,+和=凑一块才是一个赋值运算符

 

例子:

 

              shorts = 4;

 

              s= s + 5;  这里出错:s + 5中的s是short占2个8位,5是4个8位的,,他们一相加,s + 5中的s就提升了,提升完以后得出一个4个8位的值,那么就不能赋给2个8位了

 

s+=5;     编译通过:原因:  s+=5就是一次运算,他只做了一次赋值运算把左右2边的和赋给左边,

 

s = s + 5的s+=5的最大区别在于s+=5会做一个自动转换动作而s + 5不会......s+=5和s = 4;是一样的相当于把右边赋给左边,右边只要在short范围内他就会做自动转换,而s+=5将左右2边的和赋给左边转换动作,,,s+=5只做赋值运算他内部有个自动转换动作

 

 

7... 比较运算符

 

比较运算符的特点是:他运算完的结果要么是真要么是假

 

==和=不一样: =是赋值运算符,==是比较运算符

 

 

8…逻辑运算符

 

逻辑运算符的特点:逻辑就是代表一种关系

 

逻辑运算符的作用:用于连接boolean类型的表达式。

 

8.1 …

 

& : 只要两边的boolean表达式结果有一个为false。那么结果就是false。

                     只有两边都为true,结果为true。

 

&符号的规律是:两边的布尔表达式只要有一边为false结果就是false

 

 

8.2...| 或

 

              true| true = true;

              true| false = true;

              false| true = true;

              false| false = false;

              |: 两边只要有一个为true,结果为true。

                     只有两边都有false,结果为false。

 

 

规律是:只要有一个是true,那么结果就是true

 

 

8.3...^ : 异或;异就是有点不同,

 

              ^: 异或;就是和|有点不一样。就是当true ^ true = false;这里不一样

              true^ true = false;

              true^ false = true;

              false^ true = true;

              false^ false = false;

              ^: 两边相同结果是false。

                  两边不同结果是true。

 

规律:只要有一个为true,那么结果就是true,,但是如果2个都是true那么结果就是false

 

8.4… ! 非(not):意思是判断是不是另一面,,比如!true这也是在做运算,非真,就是false,,那么!!true就是true

 

8.5...&&双与:特点是短路

 

                  int a = 4;

 

                a>3 & a<6; 2个都是true,那么&和&&没有区别

 

 

              int a = 2;

 

                a>3 & a<6; false和true结果是false

                a>3 && a<6;      a>3是false那么右边不运算,也就是短路了,左边是false,那么结果肯定是false,右边是true都不管,,但是如果左边为true的情况下右边一定运算一定读,因为右边还可以得出结果

 

 

&和&&的特点:一般使用 &&,,,&除了连接布尔型表达式以外他还有一个作用就是位运算

              &:无论左边是true是false。右边都运算。

              &&:当左边为false时,右边不运算。,因为只要有一个是false那么结果就是false

&&比&运算效率高点

 

 

 

8.6....

 

       |:两边都参与运算。

              ||:当左边为true。右边不运算。因为结果肯定是true,因为只要有一个是true,那么结果就是true

             

 

 

9…. 位运算符             

 

9.1…

 

位运算符

运算符

运算

范例

<< 

左移

3 << 2 = 12 --> 3*2*2=12

>> 

右移

3 >> 1 = 1  --> 3/2=1

>>> 

无符号右移

3 >>> 1 = 1 --> 3/2=1

&

与运算

6 & 3 = 2

|

或运算

6 | 3 = 7

^

异或运算

6 ^ 3 = 5

~

反码

~6 = -7


规律: 一个数往左移越移越大,往右移越移越小,因为右移把有效位都移光了,,他们移的方式都是按照2的倍数在变化

<<:相当于乘与2的倍数

>>:相当于除以2的倍数

移n位,就是对乘以或者除以2的n次幂。

 

做运算的时候最快的运算是位运算,他的局限性是以2的倍数在增长

 

>>:最高位补什么由原有数据的最高位值而定,如果最高位为0,右移后用0补空位...如果最高位为1,右移后用1补空位

>>>:无论最高位是什么,右移后都用0补

 

注释:

|:     或运算

       两边只要有一个为true,结果为true。,只有两边都有false,结果为false。只要有一个是true,那么结果就是true,

 

^:异或

       两边相同结果是false,两边不同结果是true。只要有一个为true,那么结果就是true,,但是如果2个都是true那么结果就是false

9.2…

 

位运算符的细节

<< 

空位补0,被移除的高位丢弃,空缺位补0。

>> 

被移位的二进制最高位是0,右移后,空缺位补0;

最高位是1,空缺位补1。

>>> 

被移位二进制最高位无论是0或者是1,空缺位都用0补。

&

二进制位进行&运算,只有1&1时结果是1,否则是0;

|

二进制位进行 | 运算,只有0 | 0时结果是0,否则是1;

^

任何相同二进制位进行 ^ 运算,结果是0;1^1=0 , 0^0=0

不相同二进制位 ^ 运算结果是1。1^0=1 , 0^1=1

 

 

 

10…三元运算符

 

定义:三个元素参与运算的符号,,?号和:号他是一个三元运算符,他是一个运算符就代表着他运算一定有结果…

 

 

(条件表达式)?表达式1:表达式2;里面的?号是询问条件表达式是true还是false

 

如果条件表达式是true他就执行表达式1这个运算,如果是false就执行表达式2

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值