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

Java的基础语法总结 (运算符、控制流程、函数和数组)

2015-02-28 19:21 696 查看
变量与常量

变量:和我们中学里面学的代数相似,如同方程里面的未知数。回忆一下高中数学里的变量的概念,这可以帮助理解java中的变量。

Java中变量的概念:

1、 内存中开辟的一个存储区域

2、   该区域有自己的名称(变量名)和类型(数据类型)

3、 该区域的数据可以在同一类型范围内不断发生变化

定义变量的意义:用来不断的存放同一类型的常量,并可以重复使用

变量的注意事项:变量其实是内存中的一小块区域,使用变量名来访问这块区域,因此,每一个变量使用前必须要先申请(声明),然后必须进行赋值(填充内容),才能使用

a)        变量的作用范围(一对{}之间有效) 

b)        初始化值

定义变量的格式:

数据类型    变量名 =  初始化值;

常量:在程序运行时,不会被修改的量。

 

Java的运算符:(分别有六种)

1.算术运算符

应当注意的问题:

A、如果对负数取模,可以把模数负号忽略不记,如:5%-2=1。但被模数是负数另当别论。

B、对于除号“/”,它的整数除和小数除是有区别的:整数之间做除法时,只保留整数部分而舍弃小数部分。

C、“+”除字符串相加功能外,还能把非字符串转换成字符串。例如System.out.println("5+5="+5+5);//打印结果是字符串

 

关于自增自减运算符的问题

自增(++):将变量的值加1,分前缀式(如++i)和后缀式(如i++)。前缀式是先加1再使用;后缀式是先使用再加1。

自减(--):将变量的值减1,分前缀式(如--i)和后缀式(如i--)。前缀式是先减1再使用;后缀式是先使用再减1。

 

例:

int i = 0;

int j = i++ + ++i;

int k = --i + i--;

//结果应该是j=2、k=2



2.赋值运算符

符号:= , +=, -=, *=, /=, %=

 

注意:  short s= 5;

s=s+2;和s+=2;   有什么区别? 

  //s=s+2;编译失败,因为s会被提升为int类型,运算后的结果还是int类型。无法赋值给short类型。

      //s+=2;编译通过,因为+=运算符在给s赋值时,自动完成了强转操作。

 

  

 

3.比较运算符

应该注意的问题:

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

B、             比较运算符“==”不能误写成赋值运算符“=”



4.逻辑运算符

应当注意的问题:

A、   逻辑运算符用于连接布尔型表达式,在Java中取值范围不能写成0<x<6,应该写成x>0 & x<6 。

B、   “&”和“&&”的区别:

a、  单&时,左边无论真假,右边都进行运算;

b、双&时,如果左边为真,右边参与运算,如果左边为假,那么右 边不参与运算。

c、   “|”和“||”的区别同理,双或时,左边为真,右边不参与运算。

C、   异或( ^ )与或( | )的不同之处是:当左右都为true时,结果为false。



5.位运算符

位运算是直接对二进制进行的运算。

要点小结:

<< :空位补0,被移除的高位丢弃。

>> :被移位的二进制最高位是0,右移后,空缺位补0;最高位是1,最高位补1。

>>> :被移位二进制最高位无论是0或者是1,空缺位都用0补。

& :任何二进制位和0进行&运算,结果是0;和1进行&运算结果是原值。

|  :任何二进制位和0进行 | 运算,结果是原值;和1进行 | 运算结果是1。

^ :任何相同二进制位进行 ^ 运算,结果是0;不相同二进制位 ^ 运算结果是1。

 

6.三元运算符

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

如果条件为true,运算后的结果是表达式1,反之则是表达式2。

 

 

Java的流程控制

1.判断结构

if语句,有三种格式

(1)if(条件表达式)

                     {

                            执行语句;

                     }

 

(2)if(条件表达式)

              {

                     执行语句;

              }

              else

              {

                     执行语句;

              }

 

(3)if(条件表达式)

              {

                     执行语句;

              }

              else if (条件表达式)

              {

                     执行语句;

              }

                     ……

              else

              {

                     执行语句;

              }

 

       If语句的特点:

a,每一种格式都是单条语句。

b,第二种格式与三元运算符的区别:三元运算符运算完要有值出现。好处是:可以写在其他表达式中。

c,条件表达式无论写成什么样子,只看最终的结构是否是true 或者 false;

 

注意:只有一句需要执行的语句时,可以省略 { },但是不推荐省略小心不要在if后面加 ;

 

 

2.选择结构

switch语句

switch(表达式)

{

              case取值1:

              执行语句;

              break;

              case取值2:

              执行语句;

              break;

              …...

              default:

              执行语句;

              break;

}

 

switch语句特点:

      A、switch语句选择的类型只有四种:byte,short,int , char。

B、case之间与default没有顺序。先执行第一个case,没有匹配的case执行default。

      C、结束switch语句的两种情况:遇到break,或者执行到switch语句结束。

      D、如果匹配的case或者default没有对应的break,那么程序会继续向下执行,运行可以执行的语句,直到遇到break或者switch结尾结束。

 

3.循环结构

       循环结构有三种:while, do while , for

       while(条件表达式)

{

              执行语句;

}

    先判断逻辑表达式的值。若=true。则执行其后面的语句,然后再次判断条件并反复执行,直到条件不成立为止

 

do

{

              执行语句;

}while(条件表达式);

先执行语句,再判断逻辑表达式的值,若为true,再执行语句,否则结束循环。

 

for(初始化表达式;循环条件表达式;循环后的操作表达式)

{

           执行语句;

}

 

注意:

A、for里面的三个表达式运行的顺序,初始化表达式只读一次,判断循环条件,为真就执行循环体,然后再执行循环后的操作表达式,接着继续判断循环条件,重复这个过程,直到条件不满足为止。

B、while与for可以互换,区别在于for为了循环而定义的变量在for循环结束就在内存中释放。而while循环使用的变量在循环结束后还可以继续使用。

C、最简单无限循环格式:while(true) , for(;;),无限循环存在的原因是并不知道循环多少次,而是根据某些条件,来控制循环。

 

循环的结束语句:break(跳出),  continue(继续)

       break语句:应用范围:选择结构和循环结构。

continue语句:应用于循环结构。

注意问题:

A、这两个语句离开应用范围,存在就没有意义。

B、这两个语句单独存在下面都不可以有语句,因为执行不到。

C、continue语句是结束本次循环继续下次循环。

 

Java的函数

函数也称为方法,是定义在类中的具有特定功能的一段独立小程序。

函数的格式:

修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2,…)

{

              执行语句;

              return 返回值;

}

返回值类型:函数运行后的结果的数据类型。

       参数类型:是形式参数的数据类型。

       形式参数:是一个变量,用于存储调用函数时传递给函数的实际参数。

       实际参数:传递给形式参数的具体数值。

       return:用于结束函数。

       返回值:该函数运算的结果,该结果会返回给调用者。

       函数的特点:

A、定义函数可以将功能代码进行封装

B、便于对该功能进行复用

C、函数只有被调用才会被执行

D、函数的出现提高了代码的复用性

E、对于函数没有具体返回值的情况,返回值类型用关键字void表示,那么该函数中的return语句如果在最后一行可以省略不写。

应当注意的问题:

a 、函数中只能调用函数,不可以在函数内部定义函数。

b 、定义函数时,函数的结果应该返回给调用者,交由调用者处理

 

函数的重载:在同一个类中,允许存在一个以上的同名函数,只要它们的参数个数或者参数类型不同即可。函数的功能一样,仅仅是参与运算的未知内容不同时,可以定义多函数,却使用统一函数名称,这样方便阅读。在调用时,虚拟机通过参数列表的不同来区分同名函数。

注意:函数重载与返回值类型无关,只看参数列表。

 

Java的数组

       其实就是同一种类型数据的集合。可以把它理解为一个容器。但是这个容器必须事先定义好长度。这样可以自动给数组中的元素从0开始编号,方便操作这些元素。

 

格式1:元素类型[]  数组名  =  new 元素类型[元素个数或数组长度];

示例:int[] arr = new int[1024];

格式2:元素类型[]  数组名  =  new 元素类型[]{元素,元素,……};

int[] arr = new int[]{1,3,5,7};或者简写为int[] arr = {1,3,5,7};

数组的内存图



Java的内存结构

       Java程序在运行时,需要在内存中的分配空间。为了提高运算效率,有对空间进行了不同区域的划分,因为每一片区域都有特定的处理数据方式和内存管理方式。

 

栈内存:用于存储局部变量,当数据使用完,所占空间会自动释放。

堆内存:

a 、数组和对象,通过new建立的实例都存放在堆内存中。

b 、每一个实体都有内存地址值

c 、实体中的变量都有默认初始化值

d 、实体不在被使用,会在不确定的时间内被垃圾回收器回收

 

 

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