Java基礎(chǔ)語法

數(shù)組作為方法返回值

數(shù)組作為方法返回值使用 : 方法定義上,在返回值類型這個(gè)位置上,寫數(shù)組

方法的調(diào)用者,在調(diào)用方法后,接收方法的返回值,可以使用數(shù)組來接收

返回的數(shù)組也是內(nèi)存的地址

public static void main(String[] args) {
    //調(diào)用方法getArray(),接收方法的返回值
    //方法返回的是數(shù)組,數(shù)組接收 , 收到的也是地址
    int[] array = getArray();
    System.out.println(array[0]);
}

/*
* 定義方法,返回值類型 是數(shù)組
* 方法體中 : 必須有return語句返回,返回?cái)?shù)組
*/
public static int[] getArray() {
    //創(chuàng)建數(shù)組
    int[] arr = {1,2,3,4,5,6};
    //返回定義好的數(shù)組
    return arr;  // return 返回?cái)?shù)組,返回的是數(shù)組內(nèi)存中地址
}

數(shù)組的對(duì)稱性判斷

數(shù)組的對(duì)稱判斷 : 在一個(gè)數(shù)組中, 最遠(yuǎn)端的元素是相等的,依次類推

int[] arr = {1,2,3,4,5,4,3,2,1}

需求 : 已知數(shù)組,判斷是否是對(duì)稱

    public static void main(String[] args) {
         int[] arr = {1,2,3,4,5,4,3,2,1};
         //調(diào)用方法,判斷數(shù)組是否對(duì)稱
         //傳遞數(shù)組,獲取方法的返回值
         boolean bool = isDuiChen(arr);
         System.out.println(bool);
    }
    
    /*
     *  需求 : 已知數(shù)組,判斷是否是對(duì)稱
     *  方法返回值類型 : 運(yùn)行后的結(jié)果數(shù)據(jù)類型  布爾
     *  方法的參數(shù)列表 : 參數(shù)是方法中的未知數(shù)據(jù), 數(shù)組
     */
    public static boolean isDuiChen(int[] arr) {
        //方法體中,實(shí)現(xiàn)判斷數(shù)組的對(duì)稱性
        //兩個(gè)變量,保存數(shù)組的最小索引和最大索引 (小索引++ , 大索引--)
        for(int min = 0 , max  = arr.length - 1; min <= max ; min++,max--) {
            //比較數(shù)組最遠(yuǎn)端的元素,是否相等
            if(arr[min] != arr[max]) {
                //判定數(shù)組不對(duì)稱,其他計(jì)算不在需要
                return false;
            }
        }
        //將數(shù)組的所有元素全部比較完成,for循環(huán)結(jié)束
        //沒有不相等的,就是對(duì)稱數(shù)組,返回true
        return true;
    }

字符出現(xiàn)的次數(shù)統(tǒng)計(jì)

需求 : 鍵盤輸入字符串,可以任意

? 計(jì)算出,這個(gè)字符串中,大寫字母有幾個(gè),小寫字母有幾個(gè),數(shù)字有幾個(gè),其他字符有幾個(gè)

例子 : 鍵盤數(shù)組字符串 abcWA12WE!@

? 程序的輸出結(jié)果 : 小寫字母3個(gè), 大寫字母4個(gè),數(shù)字2個(gè),其他字符2個(gè)

分析 :

  • 輸入的數(shù)據(jù)是字符串, 需要操作字符串中每個(gè)字符, 字符串轉(zhuǎn)成數(shù)組

    • 未來的方法 : 字符串方法 toCharArray() 字符串轉(zhuǎn)成 字符數(shù)組 char[]
  • 對(duì)字符數(shù)組遍歷

    • 遍歷的過程中,判斷每個(gè)字符屬于什么??
    • 判斷字符是大寫字母 ASCII 65-90
    • 判斷字符是小寫字母 ASCII 97-122
    • 判斷字符是數(shù)字 ASCII 48-57
  • 創(chuàng)建4個(gè)變量,作用計(jì)數(shù)器

    • 字符滿足條件, 計(jì)數(shù)器++
    public static void main(String[] args) {
          Scanner sc = new Scanner(System.in);
          String str = sc.nextLine();
          //調(diào)用統(tǒng)計(jì)字符出現(xiàn)次數(shù)的方法
          printCount(str);
      }
      
      /*
       * 定義方法,實(shí)現(xiàn)字符出現(xiàn)次數(shù)的統(tǒng)計(jì)
       * 方法返回值 : 沒有返回值,直接輸出結(jié)果 void
       * 方法參數(shù) :  方法計(jì)算的未知數(shù), 字符串
       * 實(shí)現(xiàn)步驟 : 
       *   1 : 接收到字符串,轉(zhuǎn)成char[]數(shù)組
       *   2 : 創(chuàng)建4個(gè)變量,計(jì)數(shù)器使用 int
       *   3 : 遍歷char[]數(shù)組,取出每個(gè)元素
       *     4 : ASCII碼判斷,決定是否是大寫,小寫,數(shù)字,或者是其他字符
       *     5 : 滿足條件,計(jì)數(shù)器++
       *   6 : 所有的字符數(shù)組遍歷完成,計(jì)算結(jié)束了,輸出計(jì)算結(jié)果 
       *  
       */
      public static void printCount(String str) {
          //  1 : 接收到字符串,轉(zhuǎn)成char[]數(shù)組
          char[] ch = str.toCharArray();
          //2 : 創(chuàng)建4個(gè)變量,計(jì)數(shù)器使用 int
          int upperCount = 0; //大寫字母計(jì)數(shù)器
          int lowerCount = 0; //小寫字母計(jì)數(shù)器
          int digitCount = 0; //數(shù)字計(jì)數(shù)器
          int otherCount = 0; //其他字符計(jì)數(shù)器
          // 3 : 遍歷char[]數(shù)組,取出每個(gè)元素
          for(int i = 0 ; i < ch.length ; i++) {
              //取出數(shù)組的元素,賦變量
              char c = ch[i];
              //判斷c是否是大寫字母
              if(c >= 'A' && c <= 'Z') {
                  upperCount++;
              }
              //判斷c是否是小寫字母
              else if(c >= 'a' && c <= 'z') {
                  lowerCount++;
              }
              //判斷是否是數(shù)字
              else if(c >= '0' && c <= '9') {
                  digitCount++;
              }else {
                  //其他字符
                  otherCount++;
              }
          }
          // 6 : 所有的字符數(shù)組遍歷完成,計(jì)算結(jié)束了,輸出計(jì)算結(jié)果 
          System.out.println("大寫字母出現(xiàn): "+ upperCount +"次");
          System.out.println("小寫字母出現(xiàn): "+ lowerCount +"次");
          System.out.println("數(shù)字出現(xiàn): "+ digitCount +"次");
          System.out.println("其他字符出現(xiàn): "+ otherCount +"次");
      }
    

冒泡排序

數(shù)組排序 : 默認(rèn)情況都是升序,從小到大排列

數(shù)組 : 原始形態(tài) {5,2,1,4,6} == 排序 {1,2,4,5,6}

排序 : 數(shù)組元素的比較,位置交換

冒泡排序 : 數(shù)組的相鄰元素,比較換位

public static void main(String[] args) {
        int[] arr = {2,6,5,-1,-2,3,1};
        //調(diào)用排序方法
        bubbleSort(arr);  //傳遞數(shù)組的地址
    }
    
    /*
     * 定義方法實(shí)現(xiàn)數(shù)組冒泡排序
     * 方法有返回值嗎  :  返回?cái)?shù)組
     * 方法有參數(shù)嗎 : 要排序哪個(gè)數(shù)組 
     */
    public static void bubbleSort(int[] arr) {  // arr接收到的也是地址
        //外循環(huán)控制行數(shù)
        for(int i = 0 ; i < arr.length - 1; i++) {
            //內(nèi)循環(huán),控制比較換位的次數(shù), 一次遞減
            // i變量每次++   length-i 越來越小
            
            //j=0 j<3 j++  j變量最大到2
            for(int j = 0 ; j < arr.length - i - 1;j++) {
                //相鄰元素比較換位
                if(arr[j] > arr[j+1]) {
                    int temp = arr[j];  //保存j索引元素
                    arr[j] = arr[j+1] ; //j+1索引元素,賦值到j(luò)
                    arr[j+1] = temp; //臨時(shí)變量的值,賦值到j(luò)+1
                }
            }
        }
        //排序結(jié)束,遍歷
        for(int i = 0 ; i < arr.length;i++) {
            System.out.println(arr[i]);
        }
    }
數(shù)組排序.jpg

斐波那契數(shù)列

黃金分割 : 1 1 2 3 5 8 ... 從第三個(gè)數(shù)開始,每個(gè)數(shù)都是前2項(xiàng)的數(shù)字之和

計(jì)算出,第12位是多少

數(shù)組和方法

public static void main(String[] args) {
        int[] arr = new int[12];
        //數(shù)組元素賦值
        arr[0] = 1;
        arr[1] = 1;
        //從2索引開始遍歷
        for(int i = 2; i < arr.length ; i++) {
            //數(shù)組元素的賦值
            arr[i] = arr[i-1] +  arr[i-2];
        }
        //數(shù)組遍歷
        for(int i = 0 ; i < arr.length ;i++) {
            System.out.println(arr[i]);
        }
    }

裁判評(píng)分

實(shí)現(xiàn)裁判評(píng)分功能 : 裁判數(shù)量是固定 (6個(gè)裁判)

每個(gè)裁判為運(yùn)動(dòng)員評(píng)分, 去掉一個(gè)最高分,去掉一個(gè)最低分, 剩余的4個(gè)分?jǐn)?shù)求平均值

實(shí)現(xiàn)技術(shù)數(shù)組和方法.

6個(gè)裁判,分?jǐn)?shù)鍵盤輸入, 存儲(chǔ)在數(shù)組里面,在輸入的過程中,實(shí)現(xiàn)對(duì)數(shù)組元素的賦值

去掉一個(gè)最高分 : 計(jì)算出哪個(gè)是最高的 最大值獲取

所有的分?jǐn)?shù),求和 - 最大值 - 最小值

public static void main(String[] args) {
        //創(chuàng)建長度為6的數(shù)組
        int[] array = new int[6];
        //調(diào)用保存數(shù)據(jù)的方法
        saveData(array);
        //調(diào)用方法,實(shí)現(xiàn)遍歷
        printArray(array);
        
        //調(diào)用方法,獲取最大值
        int max = getMax(array);
        System.out.println("最大值 : "+max);
        
        //調(diào)用方法,獲取最大值
        int min = getMin(array);
        System.out.println("最大值 : "+min);
        
        //調(diào)用獲取平均成績的方法
        int avg =getAvg(array, max, min);
        System.out.println("最后的成績是 :" + avg);
    }
    
    
    /*
     * 計(jì)算出,去掉最大,和最小值后的平均值
     * 方法是否有返回值 : int
     * 方法是否有參數(shù) : 數(shù)組, 最大值,最小值
     */
    public static int getAvg(int[] array,int max,int min) {
        //數(shù)組數(shù)據(jù)的求和,定義變量,保存和值
        int sum = 0;
        for(int i = 0 ; i < array.length;i++) {
            sum = sum + array[i];
        }
        //和值,去掉最大和最小
        return (sum - max - min) / (array.length - 2);
    }
    
    
    /*
     * 實(shí)現(xiàn)獲取數(shù)組的最小值
     * 方法是否有返回值 : int
     * 方法是否有參數(shù) : 數(shù)組
     */
    public static int getMin(int[] array) {
        //定義變量,保存數(shù)組0索引元素
        int min = array[0];
        for(int i = 0 ; i < array.length ; i++) {
            if(array[i] < min) {
                min = array[i];
            }
        }
        return min;
    }
    
    
    /*
     * 實(shí)現(xiàn)獲取數(shù)組的最大值
     * 方法是否有返回值 : int
     * 方法是否有參數(shù) : 數(shù)組
     */
    public static int getMax(int[] array) {
        //定義變量,保存數(shù)組0索引元素
        int max = array[0];
        for(int i = 0 ; i < array.length ; i++) {
            if(array[i] > max) {
                max = array[i];
            }
        }
        return max;
    }
    
    
    /*
     * 定義方法,錄入6個(gè)數(shù)據(jù)
     * 分別存儲(chǔ)在數(shù)組中
     * 方法是否有返回值 : 無
     * 方法是否有參數(shù) : 長度為6的數(shù)組
     */
    public static void saveData(int[] array) {
        Scanner sc = new Scanner(System.in);
        //循環(huán)遍歷數(shù)組
        for(int i = 0 ; i < array.length ; i++) {
            System.out.println("請輸入第" + (i+1) +"個(gè)成績");
            //輸入的整數(shù)評(píng)分,存儲(chǔ)在數(shù)組中
            array[i] = sc.nextInt();
        }
    }
    
    /*
     * 定義方法,遍歷數(shù)組
     */
    public static void printArray(int[] array) {
        for(int i = 0 ; i < array.length ; i++) {
            System.out.println(array[i]);
        }
    }

隨機(jī)數(shù)類

隨機(jī)產(chǎn)生一個(gè)數(shù)字,隨機(jī)數(shù). 偽隨機(jī)數(shù).

計(jì)算機(jī),產(chǎn)生隨機(jī)數(shù),是根據(jù)一個(gè)計(jì)算方法得來的

public static void main(String[] args) {
        Random ran = new Random();
        //ran.nextInt(100); 產(chǎn)生隨機(jī)數(shù),范圍是0-100 可能是0,不會(huì)到達(dá)100
        for(int i = 0 ; i < 20 ;i++) {
           int num= ran.nextInt(100);
           System.out.println(num);
        }
    }

Eclipse進(jìn)階

快捷鍵

  • Ctrl + 1 意見提示 (工具提出意見) ,程序中出現(xiàn)報(bào)錯(cuò)的時(shí)候,圖標(biāo)是小叉子
  • Alt + 箭頭 (上或者下) 移動(dòng)代碼行
  • Ctrl + Alt + 箭頭 (上或者下) 復(fù)制并移動(dòng)代碼行
  • Ctrl + D 刪除當(dāng)前行
  • Alt + Shift + S 自動(dòng)生成代碼
  • Ctrl + Shift + F 代碼格式化
  • Alt + Shift + M 自動(dòng)抽取方法
  • Alt + Shift + R 修改名字

大綱視圖 (outline)

  • 展示類的結(jié)構(gòu)
    • 綠色的實(shí)心圓 : public權(quán)限方法
    • 黃色的實(shí)心圓 : protected權(quán)限方法
    • 藍(lán)色的三角形 : 默認(rèn)權(quán)限方法
    • 紅色的方塊 : private權(quán)限方法
  • 修改名字 : 所有使用到的內(nèi)容,全部發(fā)送改變

Debug調(diào)試模式

程序出現(xiàn)問題找不到,程序不出問題,但是運(yùn)行的結(jié)果和你預(yù)期不一樣

  • 在程序的有效行,行號(hào)雙擊,出現(xiàn)斷點(diǎn)
    • 當(dāng)程序,執(zhí)行到斷點(diǎn)的時(shí)候,不在執(zhí)行,停止
    • 我們自己,可以手動(dòng)控制程序運(yùn)行
    • 啟動(dòng)調(diào)試模式
      • 程序會(huì)出現(xiàn)綠色背景,這行還沒有被執(zhí)行
      • 右側(cè)窗口 Variables變量,看到程序中所有變量的值
      • 按鈕 : step over 快捷鍵F6 代碼向下走一行
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末斑匪,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子砾医,更是在濱河造成了極大的恐慌子眶,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,718評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件洽议,死亡現(xiàn)場離奇詭異指黎,居然都是意外死亡芯砸,警方通過查閱死者的電腦和手機(jī)硼端,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門并淋,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人珍昨,你說我怎么就攤上這事县耽。” “怎么了镣典?”我有些...
    開封第一講書人閱讀 158,207評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵兔毙,是天一觀的道長。 經(jīng)常有香客問我兄春,道長澎剥,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,755評(píng)論 1 284
  • 正文 為了忘掉前任神郊,我火速辦了婚禮肴裙,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘涌乳。我一直安慰自己,他們只是感情好甜癞,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,862評(píng)論 6 386
  • 文/花漫 我一把揭開白布夕晓。 她就那樣靜靜地躺著,像睡著了一般悠咱。 火紅的嫁衣襯著肌膚如雪蒸辆。 梳的紋絲不亂的頭發(fā)上征炼,一...
    開封第一講書人閱讀 50,050評(píng)論 1 291
  • 那天,我揣著相機(jī)與錄音躬贡,去河邊找鬼谆奥。 笑死,一個(gè)胖子當(dāng)著我的面吹牛拂玻,可吹牛的內(nèi)容都是我干的酸些。 我是一名探鬼主播,決...
    沈念sama閱讀 39,136評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼檐蚜,長吁一口氣:“原來是場噩夢啊……” “哼魄懂!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起闯第,我...
    開封第一講書人閱讀 37,882評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤市栗,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后咳短,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體填帽,經(jīng)...
    沈念sama閱讀 44,330評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,651評(píng)論 2 327
  • 正文 我和宋清朗相戀三年咙好,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了盲赊。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,789評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡敷扫,死狀恐怖哀蘑,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情葵第,我是刑警寧澤绘迁,帶...
    沈念sama閱讀 34,477評(píng)論 4 333
  • 正文 年R本政府宣布,位于F島的核電站卒密,受9級(jí)特大地震影響缀台,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜哮奇,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,135評(píng)論 3 317
  • 文/蒙蒙 一膛腐、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧鼎俘,春花似錦哲身、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春脯丝,著一層夾襖步出監(jiān)牢的瞬間商膊,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評(píng)論 1 267
  • 我被黑心中介騙來泰國打工宠进, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留晕拆,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,598評(píng)論 2 362
  • 正文 我出身青樓材蹬,卻偏偏與公主長得像实幕,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子赚导,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,697評(píng)論 2 351

推薦閱讀更多精彩內(nèi)容

  • 轉(zhuǎn)載請標(biāo)注原文地址茬缩,謝謝! Java 基礎(chǔ)語法 對(duì)象和類 Java中有一個(gè)概念即“萬物皆對(duì)象”吼旧,一個(gè)Java程序可...
    Unruly_Wind閱讀 821評(píng)論 0 3
  • 一凰锡、API概述 API概念 API(Application Programming Interface) : 應(yīng)用...
    遼A丶孫悟空閱讀 713評(píng)論 0 35
  • 標(biāo)識(shí)符 定義 給包,類,方法,變量起名字的符號(hào)。 組成規(guī)則 標(biāo)識(shí)符由字母圈暗、數(shù)字掂为、下劃線、美元符號(hào)組成员串。 命名原則:...
    JourWon閱讀 3,673評(píng)論 0 6
  • 參考菜鳥教程進(jìn)行編寫 一.基本語法 1.1 基本概念 一個(gè)Java程序可以認(rèn)為是一系列對(duì)象的集合勇哗,而這些對(duì)象通過調(diào)...
    天藍(lán)如染閱讀 419評(píng)論 0 1
  • 一、Object類 & System類 Object類 概述Object類是Java語言中的根類寸齐,即所有類的父類欲诺。...
    遼A丶孫悟空閱讀 637評(píng)論 0 36