黑马程序员_java语言基础组成

 ------- android培训java培训java学习型技术博客、期待与您交流! ----------

二、java语言基础组成

1   关键字

      其实就是某一个计算机语言对指定的单词赋予了特殊的含义。

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

2   标识符

      就是在程序中起的名字。

      包含:0~9,a~z,$,_。

       注意:1、数字不可以开头。

                    2、名称不可以使用关键字。

3    注释

       作用1: 注解,说明,解释。

       表现形式三种:

        1、单行注释。行的开头加  “//”

        2、多行注释。有开始有结束   /*    注释的内容       */

        3、java中特有的注释,文档注释。/**   注释内容*/      通常用于对程序进行说明,并可以建立说明文档。

      作用 2:用于调试程序

       注释的细节:注释的嵌套

        单行注释中可以有单行,多行注释。

         多行注释中可以有单行注释。

4   常量和变量

  常量:表示不能改变的数值。

        1、整数常量,所有整数。表现形式有:二、八(以0开头)、十、十六(以0x开头)进制。

        2、小数常量,所有小数。

        3、布尔型常量,较为特有,只有两个数值,true、false。

        4、字符常量,将一个数字、字母或者符号用单引号(‘’)标识 。

        5、 字符串常量,将一个或者多个数字、字母或者符号用双引号(“”)标识 。

        6、null常量,只有一个数值就是null。

     负数转换:对应的正数的二进制取反+1,。

   变量:就是将不确定的数据进行存储。

             也就是需要在内存中开辟一个空间。

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

             数据类型:

            

        类型转换

            制动类型提升

            强制转换,即b=(byte)(b+2)

5   运算符

       1、算术运算符:+、-、*、/、%(模,取余)+(连接符,用于连接字符串)++自增,——自减

             对于a自增

             ++a    即    a=a+1

            当自增参与运算的时候,++在前在后市有区别的,在前自增后参与运算。

       2、赋值运算符: =、+=、-=、*=、/=、%= 

       3、比较运算符:>、<、>=、<=、==、!=

             该运算符运算完的结果要么是true,要么是false。

       4、逻辑运算符(用于连接boolean类型的表达式)

             &、|、&&、||、^(异或)、!非

             &&:当左边为false时,右边不参与运算

            ||:当左边为true时,右边不参与运算

             ^:两边结果一致。运算结果是false,两边结果不一致。运算结果是true。

        5、位移运算符

             左移:<<

            右移:>>

            无符号右移:>>>

           &、|、^、~(反码)

        6、三元运算符

           int x=1;y

            y  =  x  +  1?100:200      真100,假200。

6   语句

     程序流程控制:顺序结构、判断结构、选择结构、循环结构。

     1、判断结构

     if 语句,三种格式:

        1>  if (条件表达式)

               {

                    执行语句;

               }

           2>   if (条件表达式)

               {

                    执行语句;

               }

                else

                {

                    执行语句;

               }

             3>if (条件表达式)

               {

                    执行语句;

               }

                else  if

                {

                    执行语句;

               }

              ……

              else

                {

                    执行语句;

               }

     if  else 结构间歇格式:变量  =  (条件表达式)?表达式1:表达式2;

    三元运算符

             好处:可以简化 if  else 代码。

            弊端:因为是一个运算符,所有运算完必须有一个结果。

      2、选择结构

          swith  语句                     格式:

                swith(表达式)//byte、short、int、char

                 {

                      case   取值1:

                                执行语句;

                               break;

                     case   取值:2

                                执行语句;

                               break;

                      case   取值3:

                                执行语句;

                               break;

                   default:

                             执行语句;

                           break;

                 }

           

 

          if和swith 语句很像具体用那么语句?

          如果判断的具体数值不多,而是符合byte short int  char这四种类型,虽然两个语句都可以使用,建议使用swith语句,因为效率稍高。

        其他情况,对区间判断,对结果为boolean类型判断,使用if, if 的使用范围更广。

  3、循环结果

    代表语句:while、do   while、for

           while语句格式

             while(条件表达式)

            {

                 执行语句(循环体);

              }

 

              do  while语句格式

             do        

              {

                 执行语句(循环体);

              } 

              while(条件表达式);

              do   while 循环体至少执行一次。

 

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

              {

                 执行语句(循环体);

              }

        for  语句

        1、变量有自己的作用域,对于for来讲,如果将用于控制循环的增量定义在for语句中,那么该变量只在for语句内有效,

       for语句执行完毕,该变量在内存中被释放。

       2、for和while 可以进行互换,如果需要定义循环增量,用for更为合适。

    语句嵌套形式,其实就是语句中还有语句

 

    “\”的应用

     制表符\t       换行符 \n    退格键 \b          按下回车键\r         转移符  \

   其他流程控制语句

   break(跳出),continue(继续)

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

   continue语句:应用与循环结构

注:1、break和continue语句的作用范围

        2、break和continue单独存在时,下面可以有任何语句,因为都执行不到。

7   函数

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

    函数的格式:

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

            { 

                   执行语句;

                   return 返回值;

              }

       修饰符:通过关键字对被修饰的内容加上指定的含义。

       返回值类型:这要先明确什么是返回值,函数就是一个功能,通常功能结束后,都有一个结果,而这个结果就是返回值。

       函数名:函数就是一个代码区间,这个区间要被使用,必须有个名字,这就是函数名。

       参数:就是参加运算的数据。

       return   有结束函数的功能。

      功能技巧:1、明确该功能的结果是什么?

                  2、明确该功能中是否需要未知内容参与运算。

      当函数运算后,没有具体的返回值时,这是返回值类型用一个特殊的关键字来标识,该关键字就是void,

      void:代表的是函数没有具体返回值的情况。

   函数的重载(overload)

    什么时候用重载?

        当定义的功能相同,但参与运算的未知内容不同,那么这时就定义一个函数名称以表示其功能,方便

      阅读,而通过参数列表的不同来区分多个同名函数

8   数组

概念:同一种类型数据的集合,其实数组就是一个容器。

 特点:1、这些数据必须是同一类型。2、存储时必须明确元素的个数。

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

      数组创建后都有默认初始化值,如int类型,默认值为0。

  例:int  [ ]   arr =  new   int  [2 ] ;   

   内存结构

   栈:数据使用完毕,会自动释放。

   堆:堆允许程序在运行时动态地申请某个大小的内存(实体包括数组和对象,用new创建)。

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

            元素类型 [ ]   数组名 = {元素,元素,……};

    常见异常

      角标越界异常:arrayIndexOutOfBoundsException

        空指针异常:NullpointerException

    数组的操作:获取数组中的元素,通常会用到遍历。例如

                      int  [ ]  arr = new int [3]; 

          数组中有一个属性可以直接获取到数组元素个数。length

          使用方式:数组名称.length 

    获取最大值(最小值)

     

 public  static int getMax(int [ ]   arr)
        {
              int  max  =  0;
                for (int  x  =  1;   x <arr.length ;  x++)
                {
                          if (arr[x] >arr[max])
                                  max   =  x;
                 }
                  return  arr[max];
        }

      数组选择排序

        

public  static  void  selectSort(  int [ ]  arr)
         {
                  for  (int  x  = 0;  x < arr.length-1; x++)
                    {
                          for  (int  y  = x+1;  y < arr.length; y++)
                                {
                                        if (arr[x] >arr[y])      
                                           {
                                                   int  temp  =  arr[x];
                                                    arr[x]  =   arr[y];
                                                    arr[y]  =  temp;
                                            }           
                                }
 
                    }
          }

          冒泡排序

              

public  static  void  bubbleSort(  int [ ]  arr)
             {
                 for  (int  x  = 0;  x < arr.length-1; x++)
                   {
                         for  (int  y  = 0;  y < arr.length-x-1; y++)
                           {
                                        if (arr[x] <arr[y])      
                                           {
                                                   int  temp  =  arr[x];
                                                    arr[x]  =   arr[y];
                                                    arr[y]  =  temp;
                                            }           
                            }
 
                   }
            }

           java中的排序,  Arrays.sort (arr);

           数组元素的位置置换

           

  public  static  void  swap(  int [ ]  arr,int  a,int b)
                 {
                       int  temp  =  arr[x];
                     arr[x]  =   arr[y];
                      arr[y]  =  temp;
                    }       

    

         数组的查找

          

 pubic static int  getIndex (int[] arr ,int key)
           {
                    for(int  x = 0;  x <arrr.length; x++)
                       {
                            if (arr[x]==key)
                              return  x  ;
                        }
                    return  -1;
            }

      折半查找,必须数组是有序的

        

   pubic static int  halfsearch(int[ ] arr ,int key)
           {
                   int  min, max ,mid;
                   min   =  0;
                    max  = arr,length-1;
                   mid   =  (max  + min)/2;
                      while (arr[mid]!=key)
                        {   
                             if (arr[mid]  >  key) 
                                  min  = mid  +1;
                               esle   if (key < arr [mid])
                                    max  = mid -1;
                                 if (min>max)
                                       return  -1;
                              mid  = (max + min )/2;
                       }
                    return  -1;
            }

          二维数组

               格式1:int [ ][ ]   arr = new  int [3] [4];

               格式2:int [ ][ ]   arr = new  int [3] [ ];

                  引用变量初始化值都为null。

         

 ------- android培训java培训java学习型技术博客、期待与您交流! ----------

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章