java语法基础

来源:互联网 发布:种植牙的利与弊 知乎 编辑:程序博客网 时间:2024/05/18 00:25
------- android培训java培训、期待与您交流! ----------

以前学过c语言的基础没怎么接触过java,自学视频和查阅相关资料后总结java基础:

一、JDK、JRE、JRE的内容及区别:

   1、JVM是Java虚拟机它是Java代码能跨平台运行的原因。JRE是Java运行环境它包含JVM和Java程序所需的核心类库。

JDK是Java开发工具包它包含JRE和Java开发工具。JDK包含JREJRE包含JVM

2、JDK 安装完成后环境变量的设置:

固定方式:

   我的电脑---属性---高级---环境变量---path

把命令所在的JDK安装的bin目录复制粘贴到path变量的值里面放在最前面末尾用隔开。

完成后要重启DOS命令行才能用配置好的命令,不要用设置path变量前开启的DOS命令行

替换配置:创建一个新的变量  如Java_Home=D\java\jdk\bin;然后添加到系统变量中,然后在 path前面添加%Java_Home%\bin  这样即使目录有变化也只需修改Java_Home的值path值不用变。%%是用来动态获取某个已经存在的环境变量的值

临时配置:

用DOS中的set命令

set path=D:\jdk\bin 回车  配置环境变量;   set path=取消环境变量的配置

set classpath=.;C:\ ;D:\ 回车  配置class文件的路径   set classpath=    取消classpath路径配置

表示当前所在目录意思是先找当前目录再找C盘再找D盘

二、Java语言的组成

1关键字   2标示符  3注释    4变量和常量   5运算符   6语句    7 函数   8数组

注意事项:

1、标示符: 由26个字母(大小写都可)、0——9及_、$ 组成不能用关键字不能以数字开头尽量有意义    java严格区分大小写。

2、包名:多单词组成时所有字母都小写;例:xxxyyyzz

3、类名接口:多单词时所有的单词的首字母大写;例:XxxYyyZzz

4、变量名和函数名:第一个单词首字母小写,第二个单词开始的首字母大写;例:xxxYyy

5、常量名:所有的字母都大写,多单此时用下划线连接:例:XXX_YYY_ZZZ

3 常量:有6种常量类型整数型小数型布尔型字符型字符串型null型

4 变量:基本数据类型变量有8种byte(1字节) short(2字节) int(4字节) long(8字节) float(4字节) 

double(8字节) char(2字节)boolean(1字节)     低位与高位运算时会有类型自动提升也可进行类型强转

逻辑运算符  & (全真才为真) 、| (全假才为假) 、! (取反)、^ (不一样为真一样为假)  、&& (全真才为真第一个为假则为假后面的不用再判断了短路) 、|| (全假才为假第一个为真则为真后面的不用判断了短路)

5、位运算符  << 左移 、>> 右移 、>>> 无符号右移   左移相当于乘以2的n次幂最低位补0右移相当于除以2的n次幂

最高位是0补0是1补1 而无符号右移最高位全部补0    

一个数异或同一个数两次仍得到原数

三元运算符:(条件表达式)?表达式1:表达式2;条件为true则表达式1 条件为false则表达式2

小结:只要是多目运算符当数据类型不一致时都会出现类型自动提升

6、对于整数有三种表现形式:八进制、十进制、十六进制。

7、 程序流程控制结构  有顺序结构  判断结构 选择结构 循环结构

三、顺序结构   

判断结构   if语句   有三种格式:

1、if(条件表达式)          2、if(条件表达式)               3、if(条件表达式)

   {执行语句;}            { 执行语句;}                    {执行语句;}

                          else                               else if(条件表达式) 

                            {执行语句;}                   {执行语句;}       

  

                                                            ……else{执行语句;}

    

选择结构  switch(表达式){

             case 取值1:

                 执行语句; 

                 break;

              case 取值2:

              执行语句;

                 break;

              default:

               执行语句;

  break;

                           }

总结:if和switch的区别:如果判断的具体数值不多,而是符合byte、short、int、char这四种类型虽然两种语句都可以用,建议使用switch语句因而效率较高;其他情况时对结果为boolean类型判断,使用if,if的范围更广。

循环结构   有3种形式  while  、do  while  、for语句

1、while(条件表达式) {执行语句;}

2、do{执行语句;}  while(条件表达式);(此处必须写上分号)

3、for(初始化表达式;循环条件表达式;循环后操作表达式){执行语句;}

小结:if else可简化为:三元运算符(变量名=(条件表达式)?表达式1:表达式2;

但是他们之间的区别为:三元运算符可以看成if else的简化表达式,但三元牌运算符运算完必须有一个结果。

for循环流程:先赋值在判断条件满足时执行循环体然后执行循环后操作表达式再判断条件满足再执行循环体

如是往复直到不满足条件时跳出循环

for与while的区别:

for的变量定义在for中只在for中有效for循环结束时变量内存自动被释放;

while的变量定义在while之前循环结束后变量仍然存在可继续使用

for与while可以互换使用定义循环增量用for更合适节省内存

循环次数确定时用for不确定时用while

无限循环的最简单表现形式:for(  ;;) {}           while(true) {}

Do  while和 while的区别:

Do while不管条件是否满足,循环结构至少执行一次,而while只有条件满足时才执行。

四、函数

函数就是定义再累中的具有铁定功能的一段独立小程序;函数也称方法。

函数的格式:

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

     {执行语句

      Return返回值;

      }

函数的特点:   

  1、定义函数可以讲功能的代码进行封装。

  2、便于对该功能进行调用。

  3、函数只有在调用时才会被执行。

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

注意:1、当函数没有返回值类型时,那么这是时返回值类型用一个特殊的关键字的来表示        

这个字就是void,void代表的是函数没具体的返回值类型。

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

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

如何在java中表现一个数组呢?两种表现形式。

1)、元素类型[] 变量名 = new 元素类型[元素的个数];

2)、元素类型[] 变量名 = {元素1,元素2...};

元素类型[] 变量名 = new 元素类型[]{元素1,元素2...};

五、基本应用代码:

打印99乘法表的打印代码:

/*

定义一个打印99乘法表功能的函数。

*/

public static void print99()

{

    for(int x=1; x<=9; x++)

      {

        for(int y=1; y<=x; y++)

           {

           System.out.print(y+"*"+x+"="+y*x+"\t");

           }

              System.out.println();

      }

}

选择排序代码:

class ArrayTest2 

{

       /*

         选择排序。

      内循环结束一次,最值出现头角标位置上。

        */

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;

                   swap(arr,x,y);

                }

           }

         }      

  }

/*

冒泡排序

*/

  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++)//-x:让每一次比较的元素减少,-1:避免角标越界。

                {

                   if(arr[y]<arr[y+1])

                    {

                       int temp = arr[y];

                       arr[y] = arr[y+1];

                       arr[y+1] = temp;

                       swap(arr,y,y+1);

                     }

                  }

             }

    }

/*

发现无论什么排序。都需要对满足条件的元素进行位置置换。

所以可以把这部分相同的代码提取出来,单独封装成一个函数。

*/

  public static void swap(int[] arr,int a,int b)

    {

       int temp = arr[a];

       arr[a] = arr[b];

       arr[b] = temp;

    }

   public static void main(String[] args)

    { 

      int[] arr = {5,1,6,4,2,8,9};

       //排序前

        printArray(arr);

        //排序

        //selectSort(arr);

         //bubbleSort(arr);

            //Arrays.sort(arr);//java中已经定义好的一种排序方式。开发中,对数组排序。要使用该句代码。

           //排序后:

            printArray(arr);

     }

public static void printArray(int[] arr)

{

          System.out.print("[");

          for(int x=0; x<arr.length; x++)

            {

               if(x!=arr.length-1)

                System.out.print(arr[x]+", ");

                else

               System.out.println(arr[x]+"]");

            }

 

}

折半查找:

public static int halfSearch_2(int[] arr,int key)

 {

        int min = 0,

        max = arr.length-1,mid;

           while(min<=max)

             {

              mid = (max+min)>>1;

                if(key>arr[mid])

                min = mid + 1;

               else if(key<arr[mid])

                max = mid - 1;

                 else

               return mid;

             }

          return -1;

            }

折半查找。提高效率,但是必须要保证该数组是有序的数组。

折半的第二种方式:

public 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(key>arr[mid])

                   min = mid + 1;    

                   else if(key<arr[mid])

                    max = mid - 1;

                    if(min>max)

                    return -1;

                    mid = (max+min)/2;

                  }

                 return mid;

}

-------android培训、java培训、期待与您交流! ----------
原创粉丝点击