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+f
4.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.REDenum 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
byte
9.增强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)