2018.06.06 1.switch用法 Scanner sc = new Scanner(System.in); while(true) { System.out.println(“请输入一个数字”); int a=sc.nextInt(); switch(a) { case 1 : System.out.println(“a=1”) ; break; default : System.out.println(“a=hah”) ; break; } }
注意:如果执行完后,没有break.程序会继续往下执行,直到结束。
2.循环 for(初始化;条件;控制){ 循环体; } for(int i=0;i<5;i++) { for(int j=i;j<5;j++) { System.out.print(“*”); } System.out.println(); } 当不确定循环次数时,for显然不够用,用while循环。 do-while至少执行一次。 break 结束单层循环。 continue 结束单次循环。 return 结束结束循环,实际是结束方法。 for(int i=0;i<10;i++) { if(i==2) //continue; break; System.out.println(i); }
3.方法 将有一定功能的代码片段组装起来 提高代码的重用率 方便
返回值类型 方法名称(参数类型 参数形参名称){ 方法体; return }
4.JVM 栈 局部变量 堆 new的东西 引用数据类型,需要用new来创建,既在堆空间分配一个地址空间,又在栈空间分配对象的类变量 。 方法的引用参数,在栈空间分配一个地址空间,并指向堆空间的对象区,当方法调用完成后从栈空间回收。 局部变量 new 出来时,在栈空间和堆空间中分配空间,当局部变量生命周期结束后,栈空间立刻被回收,堆空间区域等待GC回收。 方法调用时传入的 literal 参数,先在栈空间分配,在方法调用完成后从栈空间分配。 字符串常量在 DATA 区域分配 ,this 在堆空间分配 。数组既在栈空间分配数组名称, 又在堆空间分配数组实际的大小! static在DATA区域分配。 堆区: 1.存储的全部是对象,每个对象都包含一个与之对应的class的信息。(class的目的是得到操作指令) 2.基础数据类型直接在栈空间分配, 方法的形式参数,直接在栈空间分配,当方法调用完成后从栈空间回收。 3.jvm只有一个堆区(heap)被所有线程共享,堆中不存放基本类型和对象引用,只5存放对象本身
栈区 1.每个线程包含一个栈区,栈中只保存基础数据类型的对象和自定义对象的引用(不是对象),对象都存放在堆区中 2.每个栈中的数据(原始类型和对象引用)都是私有的,其他栈不能访问。 3.栈分为3个部分:基本类型变量区、执行环境上下文、操作指令区(存放操作指令法区 方法区 1.又叫静态区,跟堆一样,被所有的线程共享。方法区包含所有的class和static变量。
2.方法区中包含的都是在整个程序中永远唯一的元素,如class,static变量。 }
5 重载 方法名相同。方法的参数类型,数量,至少有一个不一样。
6.数组 数组是存放多个相同数据类型变量的集合,是一个容器。 数组可以存储简单数据类型,也可以存储引用数据类型 必须先进行初始化,为数组元素分配内存。 int[] a = new int[4];//动态初始化 int[] b = new int[]{1,2,3,4,5};//静态初始化 =左边是在栈里分配数组名字的内存 =右边是在堆中分配4个内存。new的东西都在堆里边,分配内存