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

黑马程序员--Java语言基础一

2014-12-10 16:52 337 查看
Java语言基础

知识提纲:

1,关键字

2,标识符

3,注释

4,常量

5,变量

6,运算符

1,关键字

定义:被Java赋予了特殊含义的单词。

特点:体现上都是英文小写。

1.1、 用于定义数据类型的关键字
基本数据类型:
整数类型:byte short int long 浮点类型:float double
字符类型:char 布尔型:boolean
引用数据类型:

class(类) interface(接口)
void用于函数上表示无返回值类型
1.2、用于定义数据类型值的关键字

true(真) false(假) null(空)
1.3、 用于定义流程控制的关键字
判断:if else switch case default
循环:for while do
继续循环:continue 结束循环或选择结构:break
返回:return
1.4、 用于定义访问权限修饰符的关键字

private(私有的) protected(受保护的) public(公有的)
1.5、 用于定义类、函数,变量修饰符的关键字
abstract(抽象的) final(最终的) static(静态的)
synchronized(同步的) enum(枚举)
1.6、用于定义类与类之间关系的关键字
extends(继承) implements(实现)
1.7、 用于定义建立实例及引用实例,判断实例的关键字
new(建立实例) this(当前引用) super(父类引用)
instanceof(判断对象类型)
1.8、 用于异常处理的关键字
try(检查异常) catch(捕获异常) finally(最终执行)
throw throws:两多表示抛出异常,但使用位置不同
1.9、 用于包的关键字
package(创建包) import(导入包)
1.10、其他修饰关键字
native(本地)
strictfp(strict float point,精确浮点)
transient(变量修饰符,用它声明一个实例变量,在对象序列化时不会被序列化)
volatile(类型修饰符,用来修饰被不同线程访问和修改的变量)
assert(断言,可以看作是异常处理的一种高级形式,用于捕捉我们在代码中做出的假设)
注:main不是关键字,却是被虚拟机所识别的一个名称。

2,标识符

在程序中自定义的一些名称。由25个英文字母大小写,数字0-9,符合 _ $组成。
定义合法标识符的规则:
1、 数字不可以开头。
2、 不可以使用关键字。
注:Java中严格区分标识符的大小写。在起名字的时候,为了提高阅读性,要尽量有意义。
Java中的名称规范:
包名:多单词组成时所有字母都小写。
xxxyyyzzz
类名接口名:多单词组成时,所有单词的首字母大写。
XxxYyyZzz
变量名和函数名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写。
xxxYyyZzz
常量名:所有字母都大写。多单词时每个单词用下划线连接。
XXX_YYY_ZZZ
3,注释
注释的作用:1、注解、说明、解释我们的程序,提高代码的阅读性。;2、调试程序。例如程序出现错误,可以例如注释来查找出错的地方。

有三种注释方式:单行注释、多行注释、文档注释。

单行注释://注释文字

多行注释:/*-------中间可以有多行注释文字-------*/ 注:多行注释不要嵌套多行注释。

文档注释:是Java特有的注释,通常书写在类、域、构造函数、方法、定义之前。注释内容可以被JDK中的工具javadoc.exe所解析,生成一套以网页文件形式体现的该程序分说明文档。格式:例

/**

作者:

版本:

作用:



*/

初学者应该养成先写注释再写代码的习惯,因为代码仅仅是思想的一种体现形式而已。将自己的思想通过注释先整理出来,再用代码去体现,不要每行都加注释,也不要每行都不加注释。

4,常量
定义:Java中固定不变的、表示不能改变的数值。
Java中常量的分类:
1,整数常量。所有整数。
2,小数常量。所有小数。
3,布尔型常量。较为特有,只有两个数值。true false。
4,字符常量。将一个数字字母或者符号用单引号( ' ' )标识。
5,字符串常量。将一个或者多个字符用双引号(“”)标识。
6,null常量。只有一个数值就是:null。
对于整数,Java有三种表现形式:

[align=left]十进制:0-9,满10进1。[/align]

[align=left]八进制:0-7,满8进1,用0开头表示。[/align]

[align=left]十六进制:0-9,A-F,满16进1,用0x开头表示。[/align]

进制的基本转换:
十进制转换为——>二进制:如6的二进制,算法
6除2=3余0
3除2=1余1
1除2=0余1
则6的二进制结果为: 110,注意结果要余数从下往上写
二进制转化为——>十进制:如110的十进制等于:0*(2的0次方)+1*(2的1次方)+1*(2的2次方)=6
简而言之:十进制转二进,除2取余数;二进制转换为十进制,乘以2的幂数。
十进制与八进制和十六进制的互转,跟转换二进制的方法一样。有简便的算法就是,可以先将十进制转换为二进制,再转换为八进制和十六进制。这就利用了一个八进制位相当于三个二进制位,而一个十六进制位相当于四个二进制位。负数的二进制表现形式:只要将对应的正数取反加1就行了。
5、变量
概念:内存中的一个存储空间。有自己的名称(变量名)和类型(数据类型)。
作用:用来不断的存放同一类型的数据,并可以重复使用。
定义变量的格式:数据类型变量名 =初始化值;
数据类型:
Java中有两种数据类型:1、基本数据类型;2、引用数据类型。这里主要讲解基本数据类型。



说明:Java程序中,整数默认:int 小数默认:double
类型的自动提升:
在运算中,当低类型数据与高类型数据进行计算时,系统会自动将表达式中的低类型数据提升到高类型。如:
byte b = 3 ; int c;
c= b + 2; //b会自动提升为int类型进行运算。
强制类型转换:
当程序中,数据类型需要变换时,可以进行强制转换。如:
byte b = 3;
b = b + 4;//报错
b = (byte)b+4;//强制类型转换,强制将b+4的结果转换为byte类型,再赋值给b。
6、运算符
6.1、算术运算符



注:进行取模运算时,如果有负数,运算结果取决于运算左边有没有负数。
字符串数据和任何数据使用 +都是相连接,最终都会变成字符串。
6.2、赋值运算符
符号:= += -= *= /= %=
例: int a,b,c; a=b=c =3;
int a = 3; a+=5;//等同运算a=a+5;
6.3、比较运算符



注:1、比较运算符的结果都是boolean型,也就是要么是true,要么是false。2、比较运算符“==”不能误写成“=”。
6.4、逻辑运算符
逻辑运算符用于连接boolean类型的表达式。



&:只要两边的boolean表达式结果,有一个为false,那么结果就是false。只有两边都为true,结果为true。
|:两边只要有一个为true,结果为true;只有两边都为false,结果为false。
^:两边相同结果是false,两边不同结果是true。
&和&&的区别:
单&时,左边无论真假,右边都进行运算;
双&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。
“|”和“||”的区别同理,双或时,左边为真,右边不参与运算。
6.5、位运算符
左移:<<;空位补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。
反码:~;对二进制进行取反。
6.6、 三元运算符
格式:
(条件表达式)?表达式1:表达式2;
a)如果条件为true,运算后的结果是表达式1;
b)如果条件为false,运算后的结果是表达式2;
示例:
获取两个数中大数。
int x=3,y=4,z;
z = (x>y)?x:y;//z变量存储的就是两个数的大数。
运算符的优先级:
运算符优先级表

优先级
运算符
结合性
1
() [] .
从左到右
2
! +(正) -(负) ~ ++ --
从右向左
3
* / %
从左向右
4
+(加) -(减)
从左向右
5
<< >> >>>
从左向右
6
< <= > >= instanceof
从左向右
7
== !=
从左向右
8
&(按位与)
从左向右
9
^
从左向右
10
|
从左向右
11
&&
从左向右
12
||
从左向右
13
?:
从右向左
14
= += -= *= /= %= &= |= ^= ~= <<= >>= >>>=
从右向左
练习题

1、最有效的计算2剩余8的值的方式是使用位移方法,2<<3;

2、需求:对两个变量的数据进行交换,一共有三种方法:

第一种:使用一个中间变量,例如要交换的两个变量时a和b,再定义一个中间变量temp,

先使用temp变量存放a,再用a=b,这时b就覆盖了a,再用b=temp,因为temp原来存放的是

a的值,所以b的值就是原来a的值了,这杨就实现了a,b变量的数据交换。

第二种:不定义中间变量,使用加法,减法,进行交换

a = a+b;

b = a-b;

a = a-b;

第三种:使用异或^,交换

//int a=2;

//int b=8;

//System.out.println("原来的值:a = "+a+" b = "+b);

//第一种交换方法:添加中间变量法

/*

int temp;

temp=a;

a=b;

b=temp;

System.out.println("交换后的值:a = "+a+" b = "+b);

第二种交换方法: 加减法

a = a+b;

b = a-b;

a = a-b;

System.out.println("交换后的值:a = "+a+" b = "+b);

第三种交换方法:异或法

a = a^b;

b = a^b;

a = a^b;

*/

/*

a = a^b;

b = a^b; //就相当于 a^b^b=a;

a = a^b; //相当于 a^b^a=b;

System.out.println("交换后的值:a = "+a+" b = "+b);

*/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: