您的位置:首页 > 编程语言 > Java开发

02 Java语言基础组成

2013-08-18 12:46 281 查看
----------- android培训java培训、java学习型技术博客、期待与您交流! ------------

第二章	java语言基础组成

1  标识符
    定义:java中对各种变量,方法和类的命名都叫标识符。在java中凡是自己起的名字都叫标识符,都需要遵守标识符规则。
		
    组成:
	由26个英文字母大小写、数字(0-9)、和符号_$组成。
	java中严格区分大小写,标识符不限制长度
	为了方便阅读,标识符的定义要有意义。

    规则:
	数字不可以开头;
	不可以使用关键字。

    java中的名称规范
	包名:由多单词组成时,所有的单词首字母都小写xxx.yyy.zzz 								
	类名和接口名:由多单词组成时,所有的单词首字母都大写。XxxYyyZzz			
	变量名和函数名:多单词组成时,第一个单词首字母都小写,第二个单词开始首字母都大写。xxx_Yyy_Zzz

2  关键字
    定义:被java语言赋予了特殊含义的,用于专门用途的单词

    特点:所有的关键字字母都小写。

    定义类型:
	定义访问权限修饰符的关键字
	定义类、函数、变量修饰符的关键字
	定义类与类之间关系的关键字
	定义建立实例及引用实例、判断实例的关键字
	用于异常处理的关键字
	用于包的关键字
	定义数据类型
	定义数据类型值
	定义流程控制的关键字
	其它修饰符关键字

3  注释
    定义:用来注解说明解释程序的文字就是注释。注释提高了代码的阅读性。

    单行注释://
	作用范围:从//开始到这一行的末尾(回车符结束)。
	可以嵌套使用。
	可以调试程序。

    多行注释:/*需要注释的代码及文字*/
	作用范围:从/*开始,到*/结束
	不可以嵌套使用。

    文档注释:/**    */
	是java特有的,可以用javadoc工具生成帮助文档。

    对于单行和多行注释,被注释掉的的文字不能jvm虚拟机解释执行;

4  常量与变量
    常量:表示不能改变的数值。
	分类:
	    整数常量:所有的整数。
	    小数常量:所有的小数。
	    布尔型常量:只有两个数值true和false。
	    字符常量:将一个数字或者字符用''表示。
	    字符串常量:将一个或多个字符用""表示。
	    null常量:只有一个数值null。
	表现形式:
	    二进制:0,1	满2进1,用0b表示开头。
	    八进制:0-7		满8进1,用0表示开头。
	    十进制:0-9		满10进1
	    十六进制:0-9,A-F	满16进1,用0x表示开头。

    进制互转
	十进制转其它进制
	    规则(通用方法):除基取余,直到商为0,最后将余数反转
	十进制==>>二进制:
	    除以2,直到商为0 ,将所有取得的余数反转。
	    技巧:8421码
	十进制==>>八进制
	    除以8,直到商为0,将所有取得的余数反转。
	    十进制-->二进制-->八进制
		先把十进制转成二进制
		再把二进制数据每三位组合,左边不够三位,用0补位
		然后把每个组合计算成对应的十进制数据
		最后从左到右把数据相连接,即可得到八进制数据
        十进制==>>十六进制
	    除以16,直到商为0,将所有取得的余数反转。
	    十进制-->二进制-->十六进制
		先把十进制转成二进制
		再把二进制数据每四位组合,左边不够四位,用0补齐
		然后把每个组合计算成对应的十进制数据
		最后从左到右把数据相连接,即可得到十六进制数据
	其它进制转成十进制
	    规则:把数据的每一位上的系数(数字)乘以对应基数(几进制)的次幂(低位从从零开始),然后相加即可。
	
    变量
	概念:内存中的一个存储区域,该区域有自己的名称(变量名)和类型(数据类型)
	作用:不断存放同一类型的常量,并可以重复使用。
	作用范围:一对{}之间有效。
	格式:数据类型 变量名 = 初始化值;
	变量的分类:
	    按照定义的位置划分:
		局部变量:方法或语句块内部定义的变量。局部变量必须赋值,否则会出现编译错误
		成员变量:方法外部类的内部定义的变量。成员变量可以不赋值,因为java虚拟机会给成员变量赋默认值
		类外面与类对应的大括号外面不能定义变量。
	    按照所属的数据类型划分:
		基本数据类型
		引用数据类型
	    变量在使用时的两种格式
		在声明的同时赋值:byte b = 100; System.out.println(b);
		先声明,再赋值,再使用:
		    byte b2;
		    b2 = 100; System.out.println(b2);	
	
		
5 数据类型
    Java语言是强类型语言,对于每一种数据都定义了明确的具体数据类型,在内存中分配了不同大小的内存空间。

    基本数据类型(4类8种):在内存中分配的空间大小不同,从而导致它表示的数据范围不同
	整数型:
	    byte	占1个字节
	    short	占2个字节
	    int		占4个字节	(整数型变量的默认类型)
	    long	占8个字节,后面要用L或l标识(建议用L)
	浮点型:
	    float	占4个字节 其后加F或f标识
	    double	占8个字节	(浮点型变量的默认类型)
	字符型:
	    char	占2个字节	
	转义字符:
		\t:制表符
		\n:换行符
		\r:回车符
		\‘ 单引号字符 
		\” 双引号字符
		\\ 反斜杠字符 
	    转义字符需要写在单引号或双引号里用+号连接,转义字符代表的是一个字符可以放在char里			
	布尔型 boolean					
	    这个数据类型代表一个比特的信息,但它的“大小”不是精确定义的东西. 
	    true
	    false(默认为false)
	    适用于逻辑运算,一般用于程序流程控制。boolean类型数据只允许取值true或者false,不可以0或者非0
		的整数替代true和false。			
         
    引用数据类型:
	类	class
	接口	interface
	数组 []
	

6、数据参与运算
    自动类型转换(也叫隐式类型转换);  
    强制类型转换(也叫显式类型转换)

    整型,字符型,浮点型的数据在混合运算中相互转换,转换时遵循以下原则:
	容量小的类型与容量大的类型进行计算,默认转换为容量大的数据类型
	数据类型按容量大小排序为:
	    byte,short,char->int->long->float->double
	    byte,short,char之间不会互相转换,他们三者在计算时首先会转换为int类型
	容量大的数据类型转换为容量小的数据类型时,要加上强制转换符,但可能造成精度降低或溢出;使用时要格外注意。
		
	有多种类型的数据混合运算时,系统首先自动的将所有数据转换成容量最大的那一种数据类型,然后再进行计算				

    强制转换符
	格式:(数据类型)(要被转换的数据) byte b = (byte)(130);
	字符型参与运算
	    首先会去找对应字符的unicode码值。然后运算。
	    char 类型内容补充取值范围0~2(16)-1,能不能把整数直接赋值给char类型的变量char ch = 123;					
	布尔型不能参与运算	
	字符串参与运算
	    它是和参与运算的数据相连接组成了一个新的字符串。
	    因为有了这个特性,所以我们求出了我们名字的字符值就可以在内存中这样输出
	    System.out.println(""+'\u51AF'+'\u4F73');
		
	思考:哪句是编译失败的呢?
	    byte b1=3,b2=4,b;
	    b=b1+b2;	//编译失败。byte,short,char三种数据类型在内存中运算的时候会自动类型提升为int去运算				
			    b1和b2是两个变量值,jvm无法判断里面值的大小
	    b=3+4;	//编译通过。3+4的结果是7,jvm可以对常量值进行判断,如果在byte的取值范围就不会报错,
			    这和我们直接定义byte b = 3;的道理是一样的,3在内存中默认也是int型的,但是当jvm判
			    断它是在byte的范围之内就不会报错;			  				
		

7、运算符
    算术运算符	+ - * / % ++ --
	取模运算符	%
	    当左边的绝对值小于右边:结果是左边
	    当左边的绝对值等于右边或者是右边倍数的时候:结果是0
	    当左边的绝对值大于右边:结果是余数,符号取决与左边的的符号
	    取余的正负号取决于左边,右边忽略不记
	    用途:任意正整数%2 结果是要么0,要么1。用于切换条件
	除号运算符	/
	    它的整数除和小数除是有区别的:整数之间做除法时,只保留整数部分而舍弃小数部分。
	 	例:int x=3510;x=x/1000*1000; 
	递增递减运算符	++ --
	    就是加1或者减1
	    单独存在,放在操作数的前面或者后面,结果一样
	    参与运算时:
		放在操作数的前面,先自身加或者减1,然后再参与运算(赋值)
		放在操作数的后面,先参与运算(赋值),然后再自身加或者减1
	加号运算符	+
	    作为数据的符号(正号)
	    做加法运算
	    字符串连接符:把非字符串转换成字符串 

    赋值运算符			
	赋值运算符	=	
	    把右边的值赋给左边。	
	    举例:int x = 3; 把3赋给int类型变量x
	加赋值运算符	+= 
	    把左边和右边的和赋给左边
 	    举例:int x = 3; x+=2;等同于 x = x + 2;
		byte b = 5;
		b += 127;	//编译通过。b=(byte)(5+127);+=运算符在给b赋值时,自动完成了强转操作。、
		NwYZSystem.out.println(b);

   比较运算符	==,  !=,  >,  <,  >=,  <=
	比较运算符的结果都是boolean型,也就是要么是true,要么是false。

   逻辑运算符
	逻辑运算符用于连接布尔型表达式。
	    与运算符	"&"
		左右两边同时为true,结果为true。
	    或运算符	 "|"
		左右两边只要有一个结果是true,结果为true。
	    异或运算符	 ^
		左右两边相同,结果为false
	    非运算符	"!"
		!true-->false	!false-->true  !!true-->true	
	    短路与运算符	"&&"
		&:左边无论什么结果,右边都执行。
		&&:左边为false,右边不执行,结果为false。
	    短路或运算符	"||"
		当左右都为true时,结果为false。
		|	左边无论什么结果,右边都执行。
		||	左边为true,右边不执行,结果为true。

    位运算符
	左移位运算符:    (<< )	
		一个数向左移动几位就乘以2的几次幂		
	右移位运算符:    (>>)
		一个数向右移动几位就除以2的几次幂
	无符号右移运算符:(>>>)
		无符号右移无论最高位的符号位是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

    三元运算符
	格式:(条件表达式)?表达式1:表达式2;
	如果条件为true,运算后的结果是表达式1;
	如果条件为false,运算后的结果是表达式2;
	三元运算符运算完之后一定有一个结果。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: