<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # JAVA之旅(三)——數組,堆棧內存結構,靜態初始化,遍歷,最值,選擇/冒泡排序,二維數組,面向對象思想 * * * > 我們繼續JAVA之旅 ## 一.數組 ### 1.概念 > 數組就是同一種類型數據的集合,就是一個容器 * 數組的好處:可以自動給數組中的元素從0開始編號,方便操作這些元素 > 數組的格式 ~~~ //公共的 類 類名 public class HelloJJAVA { // 公共的 靜態 無返回值 main方法 數組 public static void main(String[] str) { /** * 格式:元素類型 [] 數組名 = new 元素類型[元素個數] * 定義一個可以存儲3個整數的容器 */ int[] x = new int[3]; } } ~~~ ### 2.內存結構 > JAVA程序在運行時,需要在內存中分配空間,為了提高效率,有對空間進行不同區域的劃分,因為每一片區域都有特定的處理數據方式和內存內存管理方式 * 堆內存:用于存儲局部變量,當數據使用完,所占空間會自動釋放 * 棧內存 * 數組和對象,通過new建立的實例都放在堆內存中 * 每一個實體都有內存地址值 * 實體中的變量都有默認的初始值 * 實體不再被使用,會在不確定的時間被垃圾回收器回收 * 方法區 * 本地方法,寄存器 > 數組還有另外一種格式 ~~~ int [] arr = new int[]{3,6,8,74,99,12}; int [] arr1 = {3,6,8,74,99,12}; ~~~ > 我們把他叫做靜態初始化 ### 3.遍歷 > 數組的操作,我們先看一個最簡單的,直接循環 ~~~ //公共的 類 類名 public class HelloJJAVA { // 公共的 靜態 無返回值 main方法 數組 public static void main(String[] str) { /** * 數組操作 */ int [] arr = {3,6,8,74,99,12}; for (int i = 0; i < arr.length; i++) { System.out.println("遍歷"+arr[i]); } } } ~~~ > 得到的結果 ![這里寫圖片描述](http://img.blog.csdn.net/20160514115018671) > 我們再來寫個小例子 ~~~ //公共的 類 類名 public class HelloJJAVA { // 公共的 靜態 無返回值 main方法 數組 public static void main(String[] str) { /** * 數組操作 */ int[] arr = { 3, 6, 8, 74, 99, 12 }; printArray(arr); } /** * 定義一個方法打印數組中的元素用逗號隔開 */ public static void printArray(int[] array) { for (int i = 0; i < array.length; i++) { System.out.print(array[i] + ","); } } } ~~~ > 我們的運行結果 ![這里寫圖片描述](http://img.blog.csdn.net/20160514125924958) > 現在我們有一個需求就是不要最后面的逗號,我們該怎么去做?其實就是判斷 ~~~ //公共的 類 類名 public class HelloJJAVA { // 公共的 靜態 無返回值 main方法 數組 public static void main(String[] str) { /** * 數組操作 */ int[] arr = { 3, 6, 8, 74, 99, 12 }; printArray(arr); } /** * 定義一個方法打印數組中的元素用逗號隔開 */ public static void printArray(int[] array) { for (int i = 0; i < array.length; i++) { // 最后一個 if ((array.length - 1) - i == 0) { System.out.print(array[i]); } else { System.out.print(array[i] + ","); } } } } ~~~ > 只要我的長度-1 再減去你的循環數是0,說明是最后一個,那就不加逗號,輸出的結果 ### 4.獲取最值 > 獲取最值就是最大值,最小值之類的,我們一個個來獲取 #### -1.最大/最小值 ~~~ //公共的 類 類名 public class HelloJJAVA { // 公共的 靜態 無返回值 main方法 數組 public static void main(String[] str) { /** * 獲取數組中的最大值和最小值 */ int[] arr = { 3, 6, 8, 74, 99, 12 }; // 最大值 int max = arr[0]; // 最小值 int min = arr[0]; /** * 思路,定義一個變量對數組的元素進行比較,大于/小于 就記錄 */ for (int i = 1; i < arr.length; i++) { if (arr[i] > max) { max = arr[i]; } } System.out.println("最大值:" + max); for (int i = 0; i < arr.length; i++) { if (arr[i] < min) { min = arr[i]; } } System.out.println("最小值:" + min); } } ~~~ > 輸出的結果‘ ![這里寫圖片描述](http://img.blog.csdn.net/20160514132053285) ### 五.排序 > 這個就比較有意思了 #### -1.選擇排序 ~~~ //公共的 類 類名 public class HelloJJAVA { // 公共的 靜態 無返回值 main方法 數組 public static void main(String[] str) { /** * 選擇排序 */ int[] arr = { 3, 6, 8, 74, 99, 12 }; for (int i = 0; i < arr.length; i++) { for (int j = 0; j < arr.length; j++) { if (arr[i] > arr[j]) { int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } } } // 打印 for (int i = 0; i < arr.length; i++) { System.out.print(arr[i] + " "); } } } ~~~ > 拿著每一個元素都比較一遍,然后從大到小排列 ![這里寫圖片描述](http://img.blog.csdn.net/20160514133326739) > 我們再來一個更好用的 #### -2.冒泡排序 > 這個比較邏輯就更加效率了,相鄰的兩個元素進行比較,換位置 ~~~ //公共的 類 類名 public class HelloJJAVA { // 公共的 靜態 無返回值 main方法 數組 public static void main(String[] str) { /** * 冒泡排序 */ int[] arr = { 3, 6, 8, 74, 99, 12 }; for (int i = 0; i < arr.length - 1; i++) { // 每一次比較的元素-1,避免角標越界 for (int j = 0; j < arr.length - i - 1; j++) { if (arr[j] < arr[j + 1]) { int temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } // 輸出 for (int i = 0; i < arr.length; i++) { System.out.print(arr[i] + " "); } } } ~~~ > 這樣我們也可以輸出 ![這里寫圖片描述](http://img.blog.csdn.net/20160514133940310) ## 二.二維數組 > 說完了數組,我們又來了一個二維數組,數組中的數組,其實就是一個裝數組類型的數組,這樣說就比較清晰了 > > 格式 * int [] [] arr = new int [3] [2] ; * int [] [] arr = new int [ ] [2] ; > 這是個小知識點,我們簡單說一下 ~~~ //公共的 類 類名 public class HelloJJAVA { // 公共的 靜態 無返回值 main方法 數組 public static void main(String[] str) { /** * 二維數組的和 */ int[][] arr = { { 4, 6, 8 }, { 99, 22, 88 }, { 74, 36, 1 } }; int num = 0; for (int i = 0; i < arr.length; i++) { for (int j = 0; j < arr[i].length; j++) { num = num + arr[i][j]; } } System.out.println("num:" + num); } } ~~~ > 輸出的結果 ![這里寫圖片描述](http://img.blog.csdn.net/20160514170016045) > 我們來個小練習 > > (選擇題)int [] x,y [] ; //x是一維 y是二維 * a.x[0] = y; //error * b.y[0]= x; //yes * c.y[0][0] = x; //error * d.x[0][0] = y; // error * e.y[0][0] = x[0]; //yes * f.x=y //error ## 三.面向對象 > 這篇博文其實到這里本該結束的,為了埋個伏筆,我再加點面向對象的思想,我們先理解一下面向對象的思想 * 面向對象是相對于面向過程而已 * 面向對象和面向過程都是一種思想 * 面向過程? * 強調的是功能行為 * 面向對象? * 講功能封裝進對象,強調具備了功能的對象 * 面向對象是基于面向過程的 > 這么說可能有點籠統,我們舉個例子來說明 > > 還記得那個故事嗎,把大象放進冰箱里,這里分幾步? * 第一步:打開冰箱門 * 第二步:把大象放進去 * 第三步:關閉冰箱門 > 這個行為藝術,叫做過程,這個行為過程,我很強調過程,不管是大象還是小象,無所謂,打開,放進去,關上,這就是面向過程 > > 而面向對象? > 只需要我們封裝這個冰箱,那么那就有打開,存儲,和關閉的功能,那么我們作用的就是冰箱這個對象了,我們直接面向他 > > 這樣說,是不是有點空洞?我下篇博客會繼續深入,生動的把這個思想給描繪出來,盡情期待! ## 有興趣的可以加群555974449! 版權聲明:本文為博主原創文章,博客地址:http://blog.csdn.net/qq_26787115,未經博主允許不得轉載。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看