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

array 为引用数据类型|-数组数据类型
          |

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

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

堆内存:1,数组和对象,通过new建立的实例都存放在堆内存中
2,每一个实体都有内存地址值。
3,实体中的变量都有默认初始值。
4,实体不在被使用,会在不确定的时间被垃圾回收器回收。
在堆内存中默认初始化值:int 为 0, double 为 0.0 , boolean 为 false
方法区
本地方法区
寄存器

垃圾回收机制[自动执行]

数组在内存中的存储方式:

数组排序:

选择排序:内循环结束一次,最值出现在头角标位置上。

冒泡排序:相邻的两个元素进行比较。如果符合条件换位。

  1. public class ArraySortDemo
  2. {
  3. private static int[] arr = {1, 3, 2, 4, 13, 9, 6};
  4. public static void main(String[] args)
  5. {
  6. //System.out.println("Hello World!");
  7. //selectSort(arr);
  8. bubbleSort(arr);
  9. ArrayPrint(arr);
  10. //Arrys.sort(arr); java开发中用这个函数进行排序。
  11. }
  12.  
  13. public static void selectSort(int[] arr) {
  14.  
  15. for (int x = 0; x<arr.length - 1 ; x++ )
  16. {
  17. for (int y = x + 1; y<arr.length ;y++ )
  18. {
  19. if (arr[x] > arr[y])
  20. {
  21. int temp = arr[x];
  22. arr[x] = arr[y];
  23. arr[y] = temp;
  24. }
  25. }
  26. }
  27. }
  28.  
  29. public static void bubbleSort(int[] arr) {
  30.  
  31. for (int x=0; x<arr.length-1; x++ )
  32. {
  33. for (int y=0; y<arr.length-x-1; y++ )//-x:让每一次比较的次数减少,-1:避免角标越界。
  34. {
  35. if (arr[y]>arr[y+1])
  36. {
  37. int temp = arr[y];
  38. arr[y] = arr[y+1];
  39. arr[y+1] = temp;
  40. }
  41.  
  42. }
  43. }
  44. }
  45.  
  46. public static void ArrayPrint(int[] arry) {
  47. for (int i = 0; i < arry.length; i++ ) {
  48. System.out.print("arry[" + i + "]= " + arry[i] + ", ");
  49. }
  50. }
  51. /*
  52. 置换位置
  53.  
  54. */
  55. public static void swap(int[] arr, int a, int b) {
  56.  
  57. int temp = arr[a];
  58. arr[a] = arr[b];
  59. arr[b] = temp;
  60. }
  61.  
  62. }

数组的查找操作

  1. /*
  2.  
  3. 数组的查找操作。
  4.  
  5. 练习:将一个元素插入有序数组中,保证数组还是有序的。
  6. */
  7.  
  8. class ArrayTest4
  9. {
  10. public static void main(String[] args) {
  11.  
  12. int[] arr = {2, 1, 3, 5, 4, 7, 2, 9};
  13. int index = getIndex(arr,3);
  14. System.out.println("Index=" + index);
  15.  
  16. int[] arr2 = {2, 3, 5, 7, 8, 12, 15};
  17. }
  18. /*
  19. 练习:
  20. */
  21. public static int getIndex_2(int[] arr, int key) {
  22. int min, max, mid;
  23. min = 0;
  24. max = arr.length-1;
  25. mid = (min + max)/2;
  26.  
  27. while(min<=max)
  28. {
  29. mid = (min + max)>>2;
  30. if(key > arr[mid])
  31. min = mid + 1;
  32. else if(key < arr[mid])
  33. max = mid - 1;
  34. return -1;
  35. else
  36. return mid;
  37. }
  38. return mid;
  39. }
  40. /*
  41. 折半查找,提高效率,但是必须要保证该数组是有序的。
  42.  
  43. */
  44. public static int halfSearch(int[] arr, int Key)
  45. {
  46. int min, max, mid;
  47. min = 0;
  48. max = arr.length-1;
  49. mid = (min + max)/2;
  50.  
  51. while(arr[mid] != key)
  52. {
  53. if(key > arr[mid])
  54. min = mid + 1;
  55. else if(key < arr[mid])
  56. max = mid - 1;
  57. if (min > max)
  58. {
  59. return -1;
  60. }
  61. mid = (min + max)/2;
  62. }
  63. return mid;
  64. }
  65. /*
  66. 折半的第二种方式。
  67. */
  68. public static int halfSearch_2(int[] arr, int key)
  69. {
  70. int min, max, mid;
  71. min = 0;
  72. max = arr.length-1;
  73. mid = (min + max)/2;
  74.  
  75. while(min<=max)
  76. {
  77. mid = (min + max)>>2;
  78. if(key > arr[mid])
  79. min = mid + 1;
  80. else if(key < arr[mid])
  81. max = mid - 1;
  82. return -1;
  83. else
  84. return mid;
  85. }
  86. return -1;
  87. }
  88. //定义功能,获取key值第一次出现在数组中的位置,如果返回是-1,那么代表key在数组中不存在。
  89. public static int getIndex(int[] arr, int key) {
  90.  
  91. for (int x = 0; x<arr.length; x++ )
  92. {
  93. if (arr[x]==key)
  94. {
  95. return x;
  96. }
  97.  
  98. }
  99. return -1;
  100. }
  101. }

进制转换:

  1. class ArrayTest5
  2. {
  3. public static void main(String[] args)
  4. {
  5. toBin(6);
  6. }
  7. /*
  8. 十进制-->十六进制
  9. */
  10. public static void toHex(int num) {
  11. StringBuffer sb = new StringBuffer();
  12. for (int x = 0; x<8; x++)
  13. {
  14. int temp = num & 15;
  15. if (temp > 9)
  16. {
  17. //System.out.println((char)(temp-10+'A'));
  18. sb.append((char)(temp-10+'A'));
  19. } else {
  20. //System.out.println(temp);
  21. sb.append(temp);
  22. }
  23. num = num >>> 4;
  24. }
  25. System.out.println(sb.reverse());
  26. }
  27. /*
  28. 十进制转二进制
  29. */
  30. public static void toBin(int num)
  31. {
  32. StringBuffer sb = new StringBuffer();
  33. while(num>0)
  34. {
  35. sb.append(num%2);
  36. num = num/2;
  37.  
  38. }
  39. System.out.println(sb.reverse());
  40. }
  41. }
  1. /*
  2. 查表法:将所有的元素临时存储起来。建立对应关系。
  3.  
  4. */
  5. class ArrayTest6
  6. {
  7. public static void main(String[] args)
  8. {
  9. toHex(60);
  10. toBin(6);
  11. }
  12.  
  13. public static void toHex(int num)
  14. {
  15. char[] chs = {'0','1','2','3',
  16. '4','5','6','7',
  17. '8','9','A','B',
  18. 'C','D','E','F' };
  19. //定义一个临时的容器
  20. char[] arr =new char[8];
  21. int pos = arr.length;
  22. while(num!=0)
  23. {
  24. int temp = num & 15;
  25. arr[--pos] = chs[temp];
  26.  
  27. num = num >>> 4;
  28.  
  29. }
  30. for(int x = pos; x<arr.length; x++)
  31. {
  32. System.out.print(arr[x]+",");
  33. }
  34. }
  35.  
  36. public static void toBin(int num) {
  37. char[] chs = {'0','1'};
  38.  
  39. char[] arr = new char[32];
  40. //定义一个操作数组的指针
  41. int pos = arr.length;
  42. while(num != 0) {
  43. int temp = num & 1;
  44.  
  45. arr[--pos] = chs[temp];
  46. num = num >>> 1;
  47. }
  48.  
  49. for(int x = pos; x<arr.length; x++)
  50. {
  51. System.out.print(arr[x]);
  52. }
  53.  
  54. }
  55. }

二维数组

java学习——数组的更多相关文章

  1. Java学习-数组

    1.数组的是Object的直接子类,它属于“第一类对象”,但是它又与普通的java对象存在很大的不同,类名为:[I 一维数组:[I 二维数组:[[I 三维数组:[[[I 2.[代表了数组的维度,一个[ ...

  2. Java学习--数组--判断数组中是否包含某个元素的方法

    package zaLearnpackage; import org.apache.commons.lang3.ArrayUtils; import java.util.Arrays; import ...

  3. Java学习---- 数组的引用传递

    1. public class ArrayRefDemo01{ public static void main(String args[]){ int temp[] = {1,3,5} ; // 利用 ...

  4. Java学习--数组与方法

    1. public class MethodDemo01{ public static void main(String args[]){ printInfo() ; // 调用printInfo() ...

  5. Java学习--数组的定义和使用

    1. 数组分配了空间,未赋值 public class ArrayDemo01{ public static void main(String args[]){ int score[] = null ...

  6. Java学习——数组的基础知识

    数组的特点.分类:一维.二维数组的使用:数组的声明和初始化.调用数组的指定位置的元素.获取数组的长度.遍历数组.数组元素的默认初始化值

  7. java一维数组学习

    /* * java学习: * 一维数组的使用: 声明语法 DataType[] name 或 DataType name[]. 初始化语法 DataType[] name = new DataType ...

  8. Java 学习(6):java Number & Math & String & 数组...常用类型

    目录 --- Number & Math类 --- Character 类 --- String 类 --- StringBuffer 类 --- 数组 Number & Math类: ...

  9. Java学习笔记之---方法和数组

    Java学习笔记之---方法与数组 (一)方法 (1)什么是方法? 方法是解决一类问题的步骤的有序组合 方法包含于类或对象中 方法在程序中被创建,在其他地方被引用 (2)方法的优点 使程序变得更简短而 ...

随机推荐

  1. 线程:CountDownLatch同步工具

    一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待. 类似计数器,当计数器的值为0时,继续往下执行. package ch03; import java.util.R ...

  2. uva 12100 Printer Queue

    The only printer in the computer science students' union is experiencing an extremely heavy workload ...

  3. MVC(Model View Controller)框架

    MVC框架 同义词 MVC一般指MVC框架 MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一 ...

  4. codeforces 339C Xenia and Bit Operations(线段树水题)

    转载请注明出处: http://www.cnblogs.com/fraud/          ——by fraud Xenia and Bit Operations Xenia the beginn ...

  5. python中json的操作示例

    先上一段示例 # -*- coding: cp936 -*- import json #构造一个示例数据,并打印成易读样式 j = {} j["userName"]="a ...

  6. vs2010中出现:程序管理器匹配不正确错误

    http://bbs.csdn.net/topics/360074795 这是一篇csdn上的讨论帖,第15楼给出了正解

  7. mysql截取字符串

    mysql 字符串截取1.从左开始截取字符串left(str,length)被截取字段,截取长度select left('admin1213',5) from table 2.从右开始截取字符串rig ...

  8. uploadify ,前端页面获取值,json,ajax

    针对这几月的技术,做一次小总结 上传控件uploadify function inexel() { $("#btnExcel").uploadify({ 'method': 'po ...

  9. robot自动化测试(二)--- template使用

    首先贴一下测试结构 测试流程: 1.打开百度主页 2.搜索框输入搜索内容 3.获取浏览器title 4.验证title的正确性 百度搜索业务关键字:采用分层结构:只需输入要搜索的内容:${search ...

  10. socket.setNoDelay([noDelay]) 用的是Nagle算法

    Nagle算法是以他的发明人John Nagle的名字命名的,它用于自动连接许多的小缓冲器消息:这一过程(称为nagling)通过减少必须发送包的个数来增加网络软件系统的效率.Nagle算法于1984 ...