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
  • 相关阅读:
    Select2插件ajax方式加载数据并刷新页面数据回显
    转 proguard 混淆工具的用法 (适用于初学者参考)
    转 【Android】- Android与html5交互操作
    转 android开发笔记之handler+Runnable的一个巧妙应用
    转 Android 多线程:手把手教你使用AsyncTask
    转 android design library提供的TabLayout的用法
    转 Android Lifecycle、ViewModel和LiveData
    转 onSaveInstanceState()和onRestoreInstanceState()使用详解
    转 MessageDigest来实现数据加密
    转 GSON
  • 原文地址:https://www.cnblogs.com/pascall/p/9796888.html
Copyright © 2011-2022 走看看