1.myeclipse的安装和使用
eclipse 免费开发工具 myeclipse 收费的插件,破解myeclipse 不再描述,你懂
2.debug的调试
使用这种模式就能调试程序(看到数据怎么变化) 使用debug
显示行号,双击左边,出现一个园点
debug as
在断点的那一个,就有一个绿色条,表示程序停止在这一行没有向下运行。
setp over (F6) 单步执行
.resume F8 表示调试结束,直接向下执行 比如当前断点下面还有断点,直接跳到下一个断点
debug另一个作用 1.F5 step into :进入方法
3.快捷键
1.代码提示 alt+/ 2.代码修复 ctrl+1 3.快速导包 ctrl shift o 4.单行注释 // ctrl+/ 5.多行注释 ctrl shift / 6.取消多行注释 ctrl shift \ 7.删除行 ctrl d 8.格式化代码 format (ctrl+shift+f) 9.查找 ctrl+f4.junit的使用
* 单元测试 * 测试对象是以一个类中的方法 * 首先junit版本有3.x和4.x 1. 单元测试方法的时候,方法名命名规则 public void 方法名(){} 2.@Before在每个方法之前运行 3.@After在每个方法之后运行 4.@Ignore忽视这个方法jdk5.0新特性 泛型 枚举 静态导入 自动装拆箱 增强for 可变参数
5.泛型
为什么要用泛型?
一般用在集合上
比如把一个字符串放到集合中,他就失去了他本来的类型,变成object类型, 再进行类型转换的时候,只能报错。 这个时候就能用泛型来解决。
在集合上如何使用泛型
-常用集合 list set map -泛型语法 集合
List<String> list =new ArrayList<String>(); 例子: List<String> list =new ArrayList <String>(); list.add("陈亚兰"); list.add("coco"); list.add("zoe"); //增强for for (String string : list) { System.out.println(string); } System.out.println("=================================="); //迭代器 Iterator<String> it =list.iterator(); while(it.hasNext()){ System.out.println(":"+it.next()); } ArrayList LinkedList Vector的区别 在set集合上用泛型. 会打乱顺序且不允许重复 Set<String> set =new HashSet<String>(); set.add("zoe"); set.add("ff"); set.add("zoe"); set.add("chen"); for (String string : set) { System.out.println(string); } System.out.println("========================"); Iterator<String> it=set.iterator(); while(it.hasNext()){ System.out.println(it.next()); } 在map上来使用泛型 Map<Integer,String> map=new HashMap<Integer,String>(); map.put(1,"陈"); map.put(2, "周"); map.put(3,"刘"); map.put(null, "监控"); //获取所有key,通过key得到value Set<Integer> set=map.keySet(); for (Integer integer : set) { String value=map.get(integer); System.out.println(integer+"----"+value); } //得到key和value的关系 Set<java.util.Map.Entry<Integer, String>> set2=map.entrySet(); for (java.util.Map.Entry<Integer, String> entry : set2) { Integer key=entry.getKey(); String value2=entry.getValue(); System.out.println(key+"----"+value2); }6.枚举 *什么是枚举
需要在一定的范围内取值,只能是其中的任意一个
现实场景:交通信号灯*使用关键字 enum Color1{ RED,YELLOW,GREEN } 枚举类也是一个Java类 引用值 Color1.RED
enum Color1{ RED("red") { @Override public void print1() { System.out.println("red"); } },YELLOW("yellow") { @Override public void print1() { // TODO Auto-generated method stub System.out.println("yellow"); } },GREEN("green") { @Override public void print1() { // TODO Auto-generated method stub System.out.println("green"); } }; private Color1(String name){} //抽象方法 public abstract void print1(); } public class EnumMEI { public static void main(String[] args) { Color1 cr=Color1.RED; cr.print1(); String crname=cr.name(); //得到枚举的名字 System.out.println("name:"+crname); Color1 cg=Color1.valueOf("GREEN"); cg.print1(); String cgname=cg.name(); System.out.println("name:"+cgname); Color1[] cs=Color1.values();//所有枚举实例的数组 System.out.println("=========================="); for (Color1 color1 : cs) { color1.print1(); System.out.println("print1:"+color1.name()); } } }7.静态导入
可以在代码里面,直接使用静态导入 import static xx.xx.xx import static java.lang.util.Arrays.sort;**
8.自动拆装箱
*装箱 把基本的数据类型类型转换成包装类 Integer i=10; 10是基本数据类型,自动包装成Integer类型 *拆箱 把包装类转换成基本的数据类型 int m=i; 这个就是拆箱在jdk1.5以后才有这个功能 如果是在1.4的环境下面 装箱:Integer m= new Integer(10)这种写法 拆箱:int a=m.intValue();
8种基本类型包装类 int -Integer char -Character 其他都是首字母大写 float short double boolean byte9.增强for循环
*使用场合 1.数组 2.实现了Iterator的集合 set list;map不能使用 *语法 for(类型 变量 : 集合对象) for(String a : list) *为什么会出现它 替代迭代,增强for底层就是迭代器10.内容补充 1.泛型擦除 泛型只存在源代码阶段,编译后就被擦除不存在了
11.可变参数
*使用场合 1.逻辑相同,比如要实现所有参数相加这样,只是根据参数不同 2.可变参数的定义方法 数据类型...数组的名称 代码 public class KBCS { public static void main(String[] args){ add1(10,20); add1(10,20,30); add1(10,20,30,40); } public static void add1(int...nums){ //nums理解为一个数组,这个数组存储传递过来的参数 int sum=0; for(int i=0;i<nums.length;i++){ sum+=nums[i]; } System.out.println("num的个数:"+nums.length+"|sum:"+sum); } } 3.需要注意的地方 1.可变参数需要写在方法列表中 2.在一个方法列表中只能有一个可变参数 3.方法的参数列表中,可变参数只能放在最后 pubic static void add1(int a,int...nums)