_Java基础_Java语言基础组成(上)

Java语言基础组成(上) 

  就像学英语一样,首先要学习英语的每个音标、基本单词,然后再深入的学习英语语法和句子。java也是一门语言,是一门人与计算机交流的语言。Java的基础组成部分就像英语中的音标、基本单词一样,是基础中的基础。为了能更好的深入学习以后的内容,java基础组成部分内容一定要学好。具体分析如下:

一、关键字

定义:关键字就是被java赋予特定含义的单词。

注意:关键字所有字母都是小写的。

随着以后学习的深入,会具体学习每个关键字的用法,在此只列举少量的关键字,不做过多的分析:

用于定义访问权限修饰符的关键字:public、protected、private。

用于定义类,函数,变量修饰符的关键字:abstract、final、static。

用于定义类与类之间关系的关键字:extends、implements。

用于定义建立实例及引用实例,判断实例的关键字:new、this、super、instanceof。

用于异常处理的关键字:try、catch、finally、throw、throws。

用于包的关键字:package、import。

二、标识符

定义:在程序中人为定义的名称,由26个英文字母、0—9数字、_$组成。

合法标识符的规则:

(1)、不可以数字开头,不可以出现非法的字符;

(2)、不可以与java中的关键字相同。

注意:在java中,为了提高程序的阅读性,应该尽量定义一些一看就明白什么意思的标识符,尽量不要写成a;b;c;x;y;z之类。

Java中的名称规范:

包名:多单词组成时所有字母都小写。xxxyyyzzz

类名接口名:多单词组成时,所有单词的首字母大写。XxxYyyZzz

变量名和函数名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写。xxxYyyZzz

常量名:所有字母都大写。多单词时每个单词用下划线连接。XXX_YYY_ZZZ

三、常量和变量

常量定义:表示不可以再变化的数值,定值。

具体可以分为:

(1)、整数常量

(2)、浮点型常量

(3)、布尔型常量(true、false)

(4)、字符常量:用单引号标识

(5)、字符串常量:用双引号标识

(6)、null常量:只有一个值null。

变量定义:变量表示内存中的一个存储区域,值是可以变化的。

变量的定义格式:数据类型变量名 = 初始值;

由于java语言是一种强类型的语言,对于每一个数据都必须明确它的数据类型,只有明确了数据类型,java虚拟机(JVM)才知道怎样去给数据分配内存,具体的数据类型如

图2.1所示:

图2.1

Java语言中数据的进制可以分为四种:

(1)、十进制:逢10进1,这是我们在生活中最常用的进制数;

(2)、八进制:逢8进1,以0开头;

(3)、十六进制:逢16进1,以ox开头,0—9,A—F;

(4)、二进制数:逢2进1,只有0,1两个基数,计算机中存储的就是二进制数。负数的二进制数在内存中用补码表示。

规律:同样一个数,进制越大,表现形式越短!

进制之间的转换:

十进制转成二进制:除以2取余数;

二进制转成十进制:乘以2的幂;

十进制转成八进制:除以8取余数;

八进制转成十进制:乘以8的幂;

八进制转十六进制:以2进制为中间桥梁,三位二进制数表示一位八进制数,四位二进制数表示一位十六进制数。

在程序中,有特定的方法为我们实现进制之间的转换,但原理我们要懂。

package itheima.day02;
/*演示进制之间的转换*/
public class NumberTranslation {
	public static void main(String[] args) {
		int number = 11;
		System.out.println(Integer.toBinaryString(number));//1011
		System.out.println(Integer.toOctalString(number));//13
		System.out.println(Integer.toHexString(number));//b
	}
}

类型转换:类型转换可以分为自动类型转换和强制类型转换两种,自动类型转换是系统自动帮助我们转换的,不必操心;强制类型转换就要自己手动转换了。

表达式的数据类型自动提升规律:

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

(2)、如果一个操作数是long型,计算结果就是long型;

(3)、如果一个操作数是float型,计算结果就是float型;

(4)、如果一个操作数是double型,计算结果就是double型。

package itheima.day02;
/*演示类型之间的转换问题*/
public class TypeChange {
	public static void main(String[] args) {
		byte b = 3;
		int x =4;
		float f =(float)1.2;//默认是double类型的,强转
		x = x+b;//自动提升为int类型
		//b  = b+3;//报错,因为b+3转为了int类型,这时不可以直接付给byte类型
		b = (byte)(b+3);
		f = x +f;//如果一个操作数是float型,计算结果就是float型;
		System.out.println(x);//7
		System.out.println(f);//8.2
	}
}

四、运算符

1、 算术运算符:如图2.2所示:

图2.2

要注意的问题在代码里面体现,这样更加直观,如下:

package itheima.day02;
/*演示算术运算符要注意的问题*/
public class Arithmetic {
	public static void main(String[] args) {
		int x =3623;
		int x1 =x/1000*1000;//3000,整数之间的除法运算,只保留整数部分,去掉小数部分
		int y = 7;
		int y1 = -7;
		System.out.println(x1);
		System.out.println(y%-2);//1,正负号只与被模的数有关,与模无关
		System.out.println(y1%2);//-1,正负号只与被模的数有关,与模无关
	}
}

2、 赋值运算符:

具体包括:= , +=,-=, *=, /=, %=。

要注意的问题我们用代码体现,这样更加直观,如下:

package itheima.day02;
/*演示赋值运算符要注意的问题*/
public class Assignment {

	public static void main(String[] args) {
		int a,b,c;
		a = b =c =5;//连续赋值,可以
		
		short s = 2;
//		s =s +2;//编译失败,因为s会被提升为int类型,运算后的结果还是int类型。无法赋值给short类型。
		s +=2;//编译通过,因为+=可以自动类型转换。
		System.out.println("a="+a+",b="+b+",b="+b+",c="+c);
		System.out.println("s="+s);
	}
}

3、 比较运算符:如图2.3所示:

图2.3

注意:

(1)、比较运算符的结果都是boolean型,也就是要么是true,要么是false。

(2)、比较运算符“==”很容易误写成“=”,需要特别注意。

4、 逻辑运算符:

逻辑运算符包括:

&:与运算;|:或运算;^:异或运算;!:非运算;&&:短路与;||:短路或。

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

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

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

5、 位运算符:

位运算符包括:<<:左移;>>:右移;>>>:无符号右移;&:与运算;|:或运算;^:异或运算。

下面以代码形式体现位运算符的练习题:

package itheima.day02;
/*演示位运算*/
public class BitArithmetic {
	public static void main(String[] args) {
		/*需求:最有效率的方式算出2乘以8等于几?2<<3;*/
		int x= 2;
		int y = 2<<3;//<<相当于乘以2的倍数
		System.out.println("x="+x+",y="+y);
		/*需求:对两个整数变量的值进行互换(不需要第三方变量)*/
		x = x^y;
		y = x^y;
		x = x^y;
		System.out.println("x="+x+",y="+y);
	}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章