java 基础增强

来源:互联网 发布:owncloud php fpm 编辑:程序博客网 时间:2024/05/17 03:09

java基础

//文件复制public class Demo1 {    public static void main(String[] args) throws Exception {        InputStream is = new FileInputStream("F:\\MyEclipseWorkSpace\\myday01\\src\\cn\\itcast\\java\\tools\\myday01\\myday01.txt");        OutputStream os = new FileOutputStream("F:\\MyEclipseWorkSpace\\myday01\\src\\cn\\itcast\\java\\tools\\myday01\\复件myday01.txt");        byte[] buf = new byte[1024];        int len = 0;        while(is.read(buf) > 0) {            os.write(buf, 0, len);        }        is.close();        os.close();    }}//使用断点[step over:快捷键F6]public class Demo2 {    public static void main(String[] args) {        int sum = 0;        for (int i = 0; i <= 10; i++) {            sum += i;        }        System.out.println(sum);    }}//调试方法间的调用关系//使用断点[step in:快捷键F5]public class Demo3 {    public static void main(String[] args) {        a();        System.out.println("main()");    }    public static void a() {        b();        System.out.println("a()");    }    public static void b() {        c();        System.out.println("b()");    }    public static void c() {        System.out.println("c()");    }}

junit的使用

//使用junit运行程序public class Demo1 {    @Test    public void test1() {        System.out.println("Junit使用");    }    @Test    public void test2() {        System.out.println("Junit调试");    }}//在myeclipse中的Window --> Show View --> Outline中选择要运行的方法,上述例子中选test1()方法就执行test1()方法;选test2()方法就执行test2()方法;选Demo1就两个方法都执行//在每个方法执行前后执行一次setUp()方法和tearDown()方法public class Demo2 {    @Before    public void setUp() throws Exception {        System.out.println("setup()");    }    @Test    public void test1() {        System.out.println("Test1()");    }    @Test    public void test2() {        System.out.println("Test2()");    }    @After    public void tearDown() throws Exception {        System.out.println("teardown()");    }}//在每个类前后执行一次setUpBeforeClass()方法和tearDownAfterClass()方法public class Demo3 {    @BeforeClass    public static void setUpBeforeClass() throws Exception {        System.out.println("setUpBeforeClass()");    }    @Test    public void test1() {        System.out.println("test1()");    }    @Test    public void test2() {        System.out.println("test2()");    }    @AfterClass    public static void tearDownAfterClass() throws Exception {        System.out.println("tearDownAfterClass()");    }}

静态导入

import org.junit.Test;import static java.lang.Math.PI;import static java.lang.Math.pow;import static java.lang.System.out;//静态导入(导入静态的对象,属性,方法)//crtl+shift+x转换成大写  crtl+shift+y转换成小写public class Demo1 {    @Test    public void test() {        double r = 2.3;        out.println("圆的面积:" + PI * pow(r, 2));    }}

自动拆装箱

/*自动拆装箱 JDK5(自动将基本类型和包装类型进行转换) * int<->Integer *///crtl+shift+o一次性导入多个包public class Demo1 {    @Test    public void test1() {        List<String> list = new ArrayList<String>();//尖括号对集合中的类型进行限制        list.add("jack");        String name = list.get(0);        System.out.println("name=" + name); //name=jack    }    @Test    public void test2() {        int i = 100;        List list = new ArrayList();        list.add(i);        Integer num = (Integer)list.get(0);        System.out.println("num = " + num); //num = 100    }}

增强for循环与集合(Set,List,Map)迭代

//增强for循环(多用于遍历内容)public class Demo1 {    @Test    public void test1() {        int[] is = {1, 2, 3, 4, 5};        for(int i = 0; i < is.length; i++) {            System.out.print(is[i] + " ");        }    }    @Test    public void test2() {        int[] is = {1, 2, 3, 4, 5};        for(int value : is) {            System.out.print(value + " ");        }    }    @Test    public void testSet() {        //set中不允许出现重复元素        Set<Integer> set = new HashSet<Integer>();        set.add(100);        set.add(200);        set.add(300);        //传统方式遍历集合        Iterator<Integer> it = set.iterator();        while(it.hasNext()) {            Integer key = it.next();            System.out.println(key + " ");        }    }    @Test    public void testList() {        List<String> list = new ArrayList<String>();        list.add("jack");        list.add("marry");        list.add("sisi");        //增强for循环遍历集合        for(String name : list) {            System.out.print(name + " ");        }    }    @Test    public void testMap1() {        Map<Integer,String> map = new HashMap<Integer, String>();        map.put(100, "jack");    //key = 100  value = "jack"        map.put(200, "marry");        map.put(300, "sisi");        Set<Integer> set = map.keySet();//只获取key值,将map转换为set        Iterator<Integer> it = set.iterator();        while(it.hasNext()) {            Integer key = it.next();            String value = map.get(key);            System.out.println(key + "-" + value);        }    }    @Test    public void testMap2() {        Map<Integer,String> map = new HashMap<Integer, String>();        map.put(100, "jack");           map.put(200, "marry");        map.put(300, "sisi");        Set<Entry<Integer, String>> set = map.entrySet();//entry中存储的是记录<key,value>        Iterator<Entry<Integer, String>> it= set.iterator();        while(it.hasNext()) {            Entry<Integer, String> entry = it.next();            Integer key = entry.getKey();            String value = entry.getValue();            System.out.println(key + "<->" + value);        }    }}迭代Map的两种方式://迭代集合注意的细节//ctrl+/ 单行注释和取消//ctrl+shift+/ 注释  ctrl+shift+\ 取消注释public class Demo2 {    public static void main(String[] args) {        List<String> list = new ArrayList<String>();        list.add("jack");        list.add("marry");        list.add("sisi");        //传统方式遍历集合//      Iterator<String> it = list.iterator();        ListIterator<String> it = list.listIterator();        while(it.hasNext()) {            String key = it.next();            System.out.print(key + " ");            //list.add("qq");            //动态通知迭代器,加入了新元素,从而迭代器自动通知list集合            it.add("qq");        }        System.out.println("list后长度:" + list.size());        it = list.listIterator();        while(it.hasNext()) {            String key = it.next();            System.out.print(key + " ");        }    }}//在迭代集合时,一定要动态通知Iterator,而不要动态通知List集合,应选用ListIterator

可变参数

//可变参数public class Demo1 {    public static void main(String[] args) {        String[] arr = {"jack", "marry", "sisi", "soso"};//      show1(arr);//      show2(arr);        show3("qq","jack", "marry", "sisi", "soso");    }    public static void show1(String[] arr) {        for(String a : arr) {            System.out.print(a + " ");        }    }    public static void show2(String...arr) {        for(String a : arr) {            System.out.print(a + " ");        }    }    //可变参数只能放置在参数列表最后    public static void show3(String qq, String...arr) {        System.out.println("第一个参数是:" + qq); //第一个参数是qq        for(String a : arr) {            System.out.print(a + " ");        }    }}//可变参数//1、参数的个数是不确定的//2、可变参数只能放置在参数的最后,即最右边//3、可变参数最少0个,最多1个//4、编译器将可变参数当作一个一维数组来对待//枚举//1、当取值是某范围中的之一,这时可以使用枚举//2、每一个枚举值相当于该枚举类的一个实例变量 //3、枚举类与普通类一致,可以继承或实现,如果有抽像方法的话,可以利用每个枚举值以匿名内部类的方式去实现,枚举类的构造方法必须是私有的//4、枚举值可以用在switch()语句中//运行时验证枚举://学生public class Student {    //姓名    private String name;    //等级    private String grade; //等级只能是A,B,C,D,E    public Student(){}    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public String getGrade() {        return grade;    }    public void setGrade(String grade) throws Exception {        //matches()方法中的参数为正则表达式,枚举类型有matches()方法        if(grade!=null && grade.matches("A|B|C|D|E")) {            this.grade = grade;        }else{            throw new Exception();        }    }}//选中行+Alt+上下键任意移动代码public class Demo1 {    public static void main(String[] args) throws Exception {        Student student = new Student();        student.setName("jack");        student.setGrade("D");        //student.setGrade("F");  抛出错误        System.out.println("姓名:" + student.getName());        System.out.println("等级:" + student.getGrade());    }}//编译时验证枚举://分数类public class Grade {//模拟枚举    public static Grade A = new Grade("A", "90-100");    public static Grade B = new Grade("B", "80-89");    public static Grade C = new Grade("C", "70-79");    public static Grade D = new Grade("D", "60-69");    public static Grade E = new Grade("E", "<60");    private String tip;    private String desc;    private Grade(String tip, String desc) {        this.tip = tip;        this.desc = desc;    }    public String getTip() {        return tip;    }    public String getDesc() {        return desc;    }}//学生public class Student {    //姓名    private String name;    //分数类    private Grade grade;    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public Grade getGrade() {        return grade;    }    public void setGrade(Grade grade) {        this.grade = grade;    }   }//选中行+Alt+上下键任意移动代码public class Demo1 {    public static void main(String[] args) throws Exception {        Student student = new Student();        student.setName("jack");        student.setGrade(Grade.A);        System.out.println("姓名:" + student.getName());        System.out.println("等级:" + student.getGrade().getTip());        System.out.println("分数区间:" + student.getGrade().getDesc());     }}//编译时验证枚举://分数枚举类public enum Grade {    A("A", "90-100"),    B("B", "80-89"),    C("C", "70-79"),    D("D", "60-69"),    E("E", "<60");    private String tip;    private String desc;    private Grade(String tip, String desc){        this.tip = tip;        this.desc = desc;    }    public String getTip() {        return tip;    }    public String getDesc() {        return desc;    }}//学生public class Student {    //姓名    private String name;    //分数类    private Grade grade;    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public Grade getGrade() {        return grade;    }    public void setGrade(Grade grade) {        this.grade = grade;    }   }//选中行+Alt+上下键任意移动代码public class Demo1 {    public static void main(String[] args) throws Exception {        Student student = new Student();        student.setName("marry");        student.setGrade(Grade.A);        System.out.println("姓名:" + student.getName());        System.out.println("等级:" + student.getGrade().getTip());        System.out.println("分数区间:" + student.getGrade().getDesc());     }}//枚举类常用方法://季节枚举类public enum Season {    SPRING{        public void show() {            System.out.println("春天");        }       },    SUMMER{        public void show() {            System.out.println("夏天");        }    },     AUTOMN{        public void show() {            System.out.println("秋天");        }    },    WINNTER{        public void show() {            System.out.println("冬天");        }    };    public abstract void show();}/** * 枚举类的常用方法 * @author L J */public class Demo1 {    public static void main(String[] args) {        Season season = Season.AUTOMN;        //打印枚举值        System.out.println(season.name());    //AUTOMN        //打印枚举值下标        System.out.println(season.ordinal()); //2        //遍历枚举类中的枚举值        Season[] seasons = season.values();          for(Season s : seasons) {            System.out.println(s.name());        }        //判断SPRING是否是枚举类中的值,是就返回枚举名称,不是抛出异常        Season flag = Season.valueOf(Season.class, "SPRING");        System.out.println(flag); //SPRING        season.show(); //秋天        //枚举用于switch语句        String msg = null;        switch(season) {        case SPRING:            msg = "1";            break;        case SUMMER:            msg = "2";            break;        case AUTOMN:            msg = "3";            break;        case WINNTER:            msg = "4";            break;        }        System.out.println(msg); //3    }}
原创粉丝点击