zoukankan      html  css  js  c++  java
  • JDK 1.5新特性

    1.可变参数

    public void add(int... nums){
        int sum = 0;
        for(int i=0; i<nums.length; i++){
            sum += nums[i];
        }
        System.out.println(sum);      
    }

    注意:当有多种参数时,可变参数放在最后

    2.foreach

    public void add(int[] nums){
        int sum = 0;
        for(int num : nums){
            sum += num;
        }
        System.out.println(sum);      
    }

    注意:foreach最早在C#中使用;用于替换for循环

    3.静态导入

    package xyz.pascall.study;
    import static java.util.Calendar.*;
    
    public class StaticImport {
        public static void main(String[] args) {
            System.out.println(DAY_OF_MONTH);
        }
    }

    注意:在导入包下方法的时候,一定要添加static关键词;使用时直接指定方法名即可

    4.泛型

    package xyz.pascall.study;
    
    import java.util.List;
    import java.util.Map;
    
    public class StaticImport {
    
        public static void main(String[] args) {
            
            String name = new GenericityDemoOne<String>("小明").getT();
            System.out.println(name);
        }
    }
    
    /**
     * 简单泛型使用
     * @author zhang
     *
     * @param <T>
     */
    class GenericityDemoOne<T>{
        private T t;
        
        public GenericityDemoOne(T t) {
            this.t = t;
        }
    
        public T getT() {
            return t;
        }
    }
    
    /**
     * 泛型在方法上使用
     * @author zhang
     *
     */
    abstract class GenericityDemoTwo{
        /**
         * 泛型在方法上声明
         * @param t
         */
        public static <T extends Object> void show(T t) {
            System.out.println(t);
        }
        
        /**
         * 通配符使用,泛型在方法参数上声明
         * @param list
         */
        public static void show(List<? extends Object> list) {
            System.out.println(list);
        }
        
        /**
         * 泛型在抽象方法上使用
         * @param map
         */
        public abstract <S, I> void show(Map<S, I> map);
    }

    注意:

    • 类在定义的时候使用一个标记,该标记为数据类型;
    • 泛型解决向下类型转化出错问题;
    • 泛型不能为基本数据类型,是能使引用数据类型;
    • 通配符“?”,可以配置不同类型的泛型;
    • ? extends 类:设置泛型上限(可在 声明和方法参数 上使用)
    • ? super 类:设置泛型下限(可在 方法参数 上使用)
    • 泛型可以定义类和接口,使用泛型时,注意声明泛型(通配符除外)
    • JDK 1.7及以后,在实例化泛型类型时,可以不用在右边声明数据类型(List<String> list = new ArrayList<>();)

    5.枚举

    package xyz.pascall.study;
    
    public class Enumeration {
    
        public static void main(String[] args) {
            Color red = Color.RED;
            System.out.println(red.getName());
        }
    }
    
    /**
     * 枚举
     * @author zhang
     *
     */
    enum Color{
        /**
         * 定义实例化Color类
         */
        RED("红色"), GREEN("绿色");
        
        // 定义枚举属性
        private String name;
        
        private Color(String name) {
            this.name = name;
        }
        
        public String getName() {
            return name;
        }
    }

    注意:

    • 枚举类中定义的实例化必须放在类中最上面;
    • enum和Enum关系:enum是关键词,Enum是类;用enum定义的枚举=一个类继承了Enum抽象类;
    • Enum类的构造方法使用protected关键词修饰,属于构造方法私有化;
    • 枚举支持switch,枚举属于高级的多例模式

    6.Annotation(JDK 1.5最大特色)

    package xyz.pascall.study;
    
    /*
     * Annotation中三种基本注解使用
     */
    public class AnnotationDemo{
        
        /**
         * Override:用于准确覆写父类的方法,否则编译时出错
         */
        @Override
        public String toString() {
            // TODO Auto-generated method stub
            return super.toString();
        }
        
        /**
         * Deprecated:用于声明方法过期
         */
        @Deprecated
        public void sayHello() {
            System.out.println("Hello");
        }
        
        /**
         * SuppressWarnings:用于压制多个警告
         */
        @SuppressWarnings("unused")
        private String title;
    }

    注意:

    • Annotation利用注解的形式来实现程序的不同功能;
    • Annotation有三种基本注解:@Override, @Deprecated, @SuppressWarnings
  • 相关阅读:
    小技巧与阅读感悟
    Android常见漏洞介绍(1):Intent Scheme URL 攻击
    利用Mallet工具自动挖掘文本Topic
    Xie Tao的几个小建议PPT:关于读Paper,如何与他人交流,赶Deadline
    Python解析DNS数据包
    iOS 横竖屏适配 笔记
    多工程联编,cocopods的使用
    Call to unavailable function 'system': not available on iOS
    xxx referenced from: xxx in xxx.o
    YYModel学习总结YYClassInfo(1)
  • 原文地址:https://www.cnblogs.com/pascall/p/9796888.html
Copyright © 2011-2022 走看看