JAVA ----week4

  week4(  ch7 ch8)
插一个debug的快捷键:
F5 一步步深入(进入每个方法)
F6一步步进行 (不进入方法)
F7如果当前进入某个方法可以直接跳到结尾
F8运行下一个断点
  java 数组
  
 数组声明与创建:
       1.声明 double[] a;(normal)/double a[];
  (未分配空间),但是基本的数据类型在声明时会分配内存, 只是一个对数组的引用的存储位置,默认为null(指针的空间而已吧),实际是没有创建数组的
       2.创建 a=new double[10];
  实际做了两步:创建了一个数组,把新的数组引用赋值给a
  3.声明创建赋值在一起 double[] a=new double[10];
       数组长度直接用a.length显示
  double[] a=new double[10];
  for (int i = 0; i < a.length; i++) {
   a[i]=Math.random()*10;
  }
  System.out.println((int)a[5]);
 }
      4.初始化 double[] a={1,2,3}; (声明 创建 初始化)
      5. 一维数组:长度(定长,不定长),
  一般不能不定长,要用其他未学到的方法
Vector v = new Vector(0,1);
for(int i=0;i<10;i++)
    v.addElement( (new Integer(i)).toString());

v.addElement("10");
System.out.printLn((String)v.elementAt(5));
 二维数组:
          int a=new int[][]{ {1,2} {2,2,2} {3,2,1,2} }
          可以不是矩形(行不等于列),a,a[0],a[1],a[2]各自有id
          如何遍历!!!
          多维数组  n维
 遍历数组:
         1. for 循环访问
          2.foreach形式 :不需要数组长度也可以顺序输出数组元素
          for(double d:mylist)
          {  systemout.println(d);  } 表示对数组mylist中的每个元素d进行以下操作,但是不可以操作元素
          {if(d>result)  result=d;  
          debug可以直接改变量
       
      处理数据
          输入值--初始化
          随机数--初始化
           显示--数组
   数组元素求和
          找最大元素
          找最大元素下标
          随意打乱元素排序
          移动元素
 
 数组复制----内存空间问题:
  1. b=a 
         实际是b原先指向的空间的内容成为了垃圾废物被java虚拟机回收,b这个指针就指向了a的空间,实际上不是内容的复制(普通数据类型就是)就算两者长度不同也会变得一样,一个变另一个也会变,观察id一样指向同一个地址
  2.循环中复制
     int[] a={1,2,3};
     int[] b=new int[10];
  for(int i=0;i<a.length;i++)
           b[i]=a[i];
  for (int i : b) {
   System.out.println(i);
  }
!!!不同数组长度,注意for的那个长度
 当a长度大于b没显示出错但是运行时错误(上一个代码)
     int[] a={1,2,34,5,6,7,8,21,2,3,4,5};
     int[] b=new int[10];
  for(int i=0;i<b.length;i++)
           b[i]=a[i];
  for (int i : b) {
   System.out.println(i);
  }
这个就不会错了
          3.arraycopy
          system.arraycopy(a,1,b,2,4)从a的下标1开始复制4个到b的下标2开始
          用for1为i值,2用i来表示,4为i的长度
         4. clone
          b=a.clone,改变b但是a不变,简单方法得知:id不一样
    
      方法中传递数组
          传递数组参数:实际是传id
          如果参数个数不匹配会出错
          定义函数里的参数时可用  int...a表示任意个数或数组,可以用a.length看见
          从方法返回数组
          可变长参数列表
      arrays类
转换类的函数:
  1.字符串-》字符数组
  String a="eufb";
  char[] b=a.toCharArray();
  System.out.println(b[2]);     f
  char c=a.charAt(1);
  System.out.println(c);     u
  System.out.println(a.length());    4
  System.out.println(b.length);    4
 
  2.字符数组-》字符串
  String hard=String.valueOf(b);
  System.out.println(hard);    eufb
接受单一个字符:
    java的scanner并没有这个方法,只能当作字符串接受
Scanner input=new Scanner(System.in);
  String s = input.next(); //Scanner类没有提供直接接收一个字符的方法,这里当作字符串来接收;
  System.out.println(s.charAt(0)); // 调用字符串的charAt()方法取得第一个字符就是了

*/
posted @ 2019-09-23 08:18  蓝jingjing  阅读(122)  评论(0编辑  收藏  举报