您的位置:首页 > 职场人生

黑马程序员---java基础知识(二):常量、变量、语句

2015-03-17 16:53 399 查看
------<a target=_blank href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------


2、java语言基础的形成

2.1 关键字被赋予特殊含义的字符。

2.2 标示符又英文字母、数字、_、$组成。

1、数字不能放在开头。

2、不能使用关键字。

2.3 注释

2.4 常量与变量

1、整数常量:所有整数。

2、小数常量:所有小数。

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

4、字符常量:‘a’ ‘b’ ‘+’  将一个数字、字母或符号用单引号(‘’)标示。

5、字符串常量:将一个或多个字符用双引号标识。“ab” “hello word” “a” “”(“”表示空内容的字符串)。

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

变量:将不确定的数据进行存储。也就是需要在内存中开辟一个空间。

如何开辟空间?就是通过明确数据类型、变量名称、数据来完成。

数据类型分为:基本数据类型和引用数据类型。



       整数默认int类型,浮点数默认double类型。
2.5 运算符

    2.5.1算术运算符
两个int型做运算,结果仍然是int型,小数部分舍弃。
double型和int型做运算,结果是double型。double是8字节,int自动提升。
1%-5 等于1;-1%5等于-1,也就是说,模的结果的正负只和左边数字有关。
int a = 3,b;声明两个变量a和b,但只有a有值。定义变量时尽量有初始值。
a++和++a都意味,给a加1,然后把值再赋给a,相当于a = a + 1,a的结果一样,都是一次运算;b = a++;先将a的值赋给b,a再加1并赋给a自己;b = ++a;a先加1并赋给a自己,再把a的值赋给b,都是两次运算。自减也是同理。
+,字符串连接符,必须是字符串相连接。字符串数据和任何数据用+连接,最后得到的数据都是字符串。“ab”+5+5;打印ab55,+都是连接符;“ab”+(5+5);打印ab10,后一个+做加号使用。注意:+在不同地方代表不同含义。为了让打印结果有意义,格式:System.out.println("a="
+ a + "," + "b=" + b);

 
转义字符:通过\来转变后面字母或符号的含义,仍然是字符类型。
\n:表示换行。一下内容另起一行。char ch = ‘\n’;表示一个回车符的字符。
\b:表示退格。向前进一格,相当于backspace键。
\r:按下回车键。前面内容取消。
\t:制表符。向后退出一段距离,相当于tab键。
\”:一个双引号。char ch = ‘\”’;表示双引号字符。
\\:一个反斜线。char ch = ‘\\’;表示单引号字符。
println中的ln表示括号内的内容打印完毕后,换行一次。print不换行。
Linux中,换行由\n表示;windows中,换行由\n和\r表示,dos中用\n。
2.5.2 赋值运算符
符号:=、+=、-=、*=、/=、%=,都是一个符号。可以自动类型转换。
int x = 3; 把右边的值赋给左边。x += 4;将左右两边的和赋给左边。
short s = 4; s +=5; 只有一次赋值运算,+和+=运算符都有自动类型转换动作,使得类型保持一致。a=b=c=5;也可以。

 

2.5.3 比较运算符

注意:比较运算符的结果都是boolean型。

 

2.5.4 逻辑运算符

逻辑,代表着关系。作用:连接布尔类型的表达式。例如,x>3 & x<6;——》true&true——》true。运算表达式可以直接打印,输出结果为ture或false。可以连续使用,例如x==3||x==4||x==5。

true & true = true;         true | true = true;     true ^ true = false;

true & false = false;        true | false = true;     true ^ false = true;

false & true = false;        false | true = true;     false ^ true = true;

false & false = false;       false | false = false;    false ^ false = false;

&特点:只要两边布尔表达式结果有一个为false,结果就是false;两边都是true,结果才是true。| 特点:只要两边布尔表达式结果有一个为true,结果就是true;两边都是false,结果才是false。^ 异或:和 | 不太一样,就是true ^ true = false; 两边相同,结果为false;两边不同,结果为true。

!true = false;    !false = true;

&:无论左边是真是假,右边都运算;

&&:当左边是假时,右边不运算;

|:两边都运算;

| |:左边是真时,右边不运算。

 

2.5.5 位运算符

    位运算都是对二进制进行运算。

    x << n 相当于x乘以2的n次幂;例如,3<<2 = 12

    x >> n 相当于x除以2的n次幂;例如,6>>2 = 1

    主要用于乘、除运算,非常方便。

    >>:最高位补什么由原有数据的最高位值来定。带符号右移,正负可以继续。

    >>>:最高位无论是什么,全部
4000
补0。

    &:0视为假,1视为真。

    ~:取反。例如,-6是6取反加1,6的取反就是-7.

   

x ^ n ^ n = x,一个数异或另一个数两次,结果仍是这个数。主要用于加密。

练习

2乘以8的高效方法。2*8,在底层仍然是二进制运算,只是每个位上都要乘一次,需要运行32*32次,非常麻烦。所以一般都是位运算,2<<3。

将两个变量互换位置,n=3,m=8。一般方法:int temp = n; n= m;m=temp;使用第三方变量。

n = n + m; m = n - m; n = n - m; 不使用第三方变量,但是必须在int的范围内,易损失精度。n = n ^ m;m = n ^ m;n = n ^ m; 也可以。

将二进制转换为十六进制,步骤:&15然后再右移4位,直到结果为0.

将二进制转换为八进制,步骤:&7然后再右移3位,直到结果为0.

    获得二进制,步骤:&1然后再右移1位,直到结果为0.

 

2.5.6 三元运算符

    (条件表达式)?表达式1:表达式2

    条件为true,选择表达式1执行;

    条件为false,选择表达式2执行;

    表达式,就是有一定语法规则的语句,可以含有运算符,但一定有结果,例如,x*2。2个表达式在做运算,内部有自动类型转换,需要注意表达式的数据类型。必定有结果返回。

    例如:取最大值。int x = 3, y = 4, z; z = (x > y)?x:y。z变量存储的是较大的数。

   

2.6 程序流程控制(语句)

    顺序结构,从上向下依次执行。

 

2.6.1 判断结构

if语句,三种格式:

    

内部为条件表达式,运算的结果只有true和false。用if控制某些语句的执行,满足了才执行,只控制{}里的内容。如果只有一条语句,{}可以不写,if只控制距离最近的单条语句。

if else 只能执行一个代码块,肯定有结果。简写格式:变量=(条件表达式)?表达式1:表达式2,和三元运算符类似。

三元运算符,好处:可以简化if else 代码;弊端:作为一个运算符,运算完后必须有结果。但if else不需要结果返回。

虽然有很多行,但是单条语句。if  else if …else,是一个整体,只要有一个条件被执行,就结束,即使可以满足其他条件也不会再执行。

正确数据运算,不正确数据给用户一提示。

 

2.6.2 选择结构

    switch语句,switch、case、break、default。case用于定义备选答案,后面的值就是答案的具体内容。break,跳出switch语句。default,缺省默认,后面的break可以省略。

    特点:

    1.选择的类型只有4个:byte、short、int、char

    2.case与default没有顺序,但是先从case开始执行,没有匹配的case再执行default。位置是随意的,但执行是从case开始。例如,做选择题。

    3.结束情况:遇到break,或者执行到switch语句结束。

    4. 满足条件执行后如果没有break,程序会继续向下执行,遇到break或者switch结尾结束。

    这样也可以:case 3: case4: case5:

    对区间判断、对结果为布尔型判断使用if更合适;switch适合判断具体的数值不多、而且符合4中类型的数据,效率比较高。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  位运算 java
相关文章推荐