java语言基础组成
java语言基础组成部分主要有:关键字,标识符,注释,常量,变量,运算符,语句,函数和数组!
---------------------------------------------------------------------------------------
1.关键字
概念:被java赋予了特殊含义的单词。关键字的字母都小写。
关键字的分类:
1.> 用于定义数据类型的:class , interface , byte , short , int , long , float , double , char , boolean , void;
2.> 用于定义数据类型值的:true , false , null ;
3.> 用于定义流程控制的:if ,else,switch,case,default,while,do,for,break,continue,return;
4.> 用于定义访问权限修饰符的:private,protected,public;
5.> 用于定义类,函数,变量修饰符的:abstract,final,static,synchronized;
6.> 用于定义类与类之间关系的:extends,implements;
7.> 定义建立实例以及引用实例判断实例的:new,this,super,instanceof;
8.> 用于异常处理的:try,catch,finally,throw,throws;
9.> 用于包的:package,import;
10.> 其他:native,strictfp,transient,voiatile,assert;
2.标识符
概念:程序中定义的一些名称。
组成规则:由26个英文字母,0-9,_ ,$组成,数字不能开头,不可以使用关键字,严格区分大小写。为了提高阅读 性,起名字尽量有意义。
java中的名称命名规范:
1.包名:多单词组成时所有字母都小写。e.g.:xxxyyyzzz;
2.类名接口名:多单词组成时,所有单词的首字母大写。e.g.:XxxYyyZzz ;
3.变量名和函数名:多单词组成时,第一个单词首字母小写,第二 个单词开始每个单词首字母大写。e.g.:xxxYyyZzz;
4.常量名:所有字母都大写。多单词时每个单词用下划线连接。e.g.:XXX_YYY_ZZZ;
3.常量与变量
3.1 常量:不能改变的数值。
分类:1,整数常量:所有整数
2,小数常量:所有小数
3,布尔型常量:较为特有,只有两个数值。true false。
4,字符常量:将一个数字,字母或者符号用单引号( ' ' )标识。
5,字符串常量:将一个或者多个字符用双引号标识。
6,null常量:只有一个数值就是:null。(用于引用数据类型)。
对于整数,java中有四种表现形式,分别是十进制,二进制,八进制,十六进制。
十进制:0-9,满十进一;
二进制:0,1,满二进一;8个二进制位是1个字节;
八进制:0-7,满八进一,用0开头表示;
十六进制:0-9,A-F,满十六进一;用0x开头;
进制之间的转换:
十进制转二进制,就是对十进制数进行除2运算。如十进制6转换成二进制,6/2=3 余0, 3/2=1 余1,1/2 余1 二进制就是 110;
十进制转换成其他进制,都是先转换成二进制,再通过二进制转换成其他进制;
二进制转八进制,用二进制位的三位表示八进制的一位,如如二进制 001 010 110 的八进制就是 246;
二进制转十六进制,用二进制位的四位表示十六进制的一位,如二进制 1101 0110 的十六进制表示就是 C6;
负数的二进制表现形式就是 对应的证书二进制取反再加1,负数的最高位都是1,正数的最高位都是0。
3.2 变量
概念:内存中的一个存储区域;该区域有自己的名称(变量名)和类型(数据类型);
该区域的数据可以在同一类型范围内不断变化。
作用:用来不断存放同一类型的常量,并可以重复使用。
格式:数据类型 变量名=初始化值;如 int a =20;
注意:变量的作用范围(一对{ }之间有效);初始化值(不能超出范围);
数据类型:
浮点型 (float,double)
{
数值型{ 整数型 (byte,short,int,long)
{
基本数据类型{ 字符型 (char)
{ {
{ 布尔型(boolean)
数据类型 {
{ 类(class)
{ {
引用数据类型{ 接口(interface)
{
数组(arr[])
整数默认int,小数默认double。
byte:8个二进制位表示,取值范围-128~127
short: 16个二进制位表示,-2的15次幂~~2的15次幂-1;
int:32个二进制位表示,-2的31次幂~~2的31次幂-1;
long:超出int范围的;
float:单精度,占32个二进制位;
double:双精度,占64个二进制位;
char:取值范围0~~6535,占两个8位;
boolean:只有两个值,true,false;
什么时候定义变量??
当数据不确定时,需要对数据进行存储时。
数据类型转换:分为自动转换和强制转换。
表达式的数据类型自动提升,所有byte型,short型,char型的值都会自动提升为int型,在不强转的情况下;
如果一个操作数是long型,float型,double型,计算结果就是本身数据类型。
例如:byte a =3;
b = b+2; 此时运算结果就会报错,因为它自动提升为int型,而损失精度,此时就要强制转换 b=(byte)(b+2);
另外要注意,上例中,b+=2和b = b+2是不同的,前表达式是一次运算,所以不会报错!
3.3 运算符
①算数运算符:+ ; - ; * ; /(除,整数除时,结果仍为整数,如 int a = 4570,a=a /1000 * 1000,a=4000;);
%(取模,取余数,如 5%2=1,就是5/2 余1,正负看左边);++ 自增;--自减;
两个字符串相连接用‘+’,字符串与任何数据用+号连接,最后结果都是字符串;
②转义字符:通过 \来转变后面字母或符号的含义, 如:\n 换行,\b 退格,\t 制表符;
③赋值运算符:= ,+=, -=, *=, /=,%=;例:x+=4,就是x=x+4,把表达式左右两边的和赋给左边;
④比较运算符:==,!=,<,>,<=,>=,instanceof(检查是否是类的对象),运算结果只有两个,要么true,要么false,
注意==和=不同!
⑤逻辑运算符:&:与;|:或;!:非:
^:异或,一真一假则为true,全真或全假则为false(与|的不同是:两边为true时,结果为false)。
&&:与短路,左边为false,则右边不再运算。
| | :或短路,左边为true,则右边不再运算。
注:逻辑运算符用于连接boolean类型表达式,一个数异或同一个数2次,结果还是原来的数,如m^n^n=m;
⑥位运算符: <<:二进制左移,越移越大,空位补0,相当于乘以2的n次幂。n是移的位数。
>>:带符号右移,越移越小,最高位是0,则空位补0;最高位是1,则空位补1。相当于除以2的n次幂。
>>>:无符号右移,无论最高位是0还是1,空位都补成0。
⑦三元运算符:因为是运算符,所以必须有结果。
格式:(条件表达式)?表达式1:表达式2;//表达式1后面是冒号:
如果条件为true,运算后的结果是表达式1;
如果条件为false,运算后的结果是表达式2;
例:获取两个数中的大数。
int x=3,y=4,z;
z = (x>y)?x:y; //z变量存储的就是两个数中的大数。