一、静态导入:

import static语句导入一个类中的某个静态方法或所有方法;

例子:

1.import static java.lang.Math.max;

只是导入了Math类中的max方法,这是只能max方法可以省略Math;

//System.out.println(Math.max(3, 6));

System.out.println(max(3, 6));

System.out.println(Math.abs(3 - 6));

2.import static java.lang.Math.*;

导入Math类中所有的静态方法;这是调用Math的静态方法都可以省略类名;

System.out.println(max(3, 6));

System.out.println(abs(3 - 6));

二、可变参数:

特点:

1.只能出现在参数列表的最后;

2....位于变量类型和变量名之间,前后有无空格都可以;

3.调用可变参数的方法时,编译器为该可变参数隐含创建数组,在方法体中以数组的形式访问可变参数;

例子:

public class VariableParameter {

public static void main(String[] args) {
 
               System.out.println(add(2,3));
                System.out.println(add(2,5,6));
     }
      public static int add(int x,int... args)
     {
                   int sum = x;
                 //增强for循环
              for(int arg : args) //迭代出每一个元素值;
                 {
                     sum += arg;
                 }
                return sum;
        }

}

三、增强for循环

1.语法:

for(type 变量名 : 集合变量名){}

2.注意事项:

迭代变量必须在()中定义;

集合变量可以是数组或实现了Iterable接口的集合类

例子:

public static int add(int x,int... args)
  {
                   int sum = x;
                 //增强for循环
              for(int arg : args) //迭代出每一个元素值;
                 {
                     sum += arg;
                 }
                return sum;
     }

四、基本数据的自动装箱拆箱

1.自动装箱:

Integer num = 12;

2.自动拆箱

System.out.pritnln(num + 12);

3.享元模式:

Integer a1 = 12;

Integer a2 = 12;

System.out.println(a1 == a2); //true

五、枚举:

1.枚举就是要让某个类型的变量的取值只能为若干个固定值的一个;

2.在枚举类中定义其他功能或构造方法,应该放在枚举元素列表之后。

3.枚举中元素就是这个枚举类的实例对象,如果调用相应的构造函数,

就在元素后加括号,传递相应的参数;

4.枚举中构造函数,必须私有;

例子:

public class EnumTest {

/**
  * @param args
  */
        public static void main(String[] args) {
             // TODO Auto-generated method stub
             WeekDay1 weekDay = WeekDay1.MON;
             System.out.println(weekDay.nextDay());
  
              WeekDay weekDay2 = WeekDay.FRI;
  
                System.out.println(weekDay2);
               System.out.println(weekDay2.name());
            //打印顺序
              System.out.println(weekDay2.ordinal());
                 //将前台传递过来的值,转换成枚举类
            System.out.println(WeekDay.valueOf("SUN").toString());
               /          /将枚举类中的元素,转换成数组;
                System.out.println(WeekDay.values().length);
         }
 
           public enum WeekDay
            {
                   SUN(0),MON(),TUE,WED,THI,FRI(5),SAT;
                    private WeekDay()
                   {
                             System.out.println("first");
                   }
                     private WeekDay(int Day)
                     {
                               System.out.println("second");
                       }
           }

}

六、反射:

反射的基石:Class类;

反射就是把java类中的各种成分映射成相应的java类:

一》得到各个字节码对应的实例对象(Class类型)三种方法

1.类名.class;如:System.class;

2.对象.getClass();如:new Date().getClass();前提必须由对象名;

3.Class.forName(“类名”);如;Class.forName(“java.util.Date”);

1.构造函数的反射:

得到某个类的所有构造函数:

Constructor[] constructors = Class.forName(“java.lang.String”).getConstructors();

2.成员变量的反射:

ReflectPoint pt1 = new ReflectPoint(3,5);

Field fieldY = pt1.getClass().getField("y");
 
  System.out.println(fieldY);
  System.out.println(fieldY.get(pt1));

3.成员方法的反射:

一》反射成员方法格式:

Method method = String.Class.getMethod(“charAt”,parameterType);

Method类  反射名 = 字节码.getMethod(“方法名”,参数列表);

注意:参数类型用class对象表示;

七、注解:

一》一个注解就是一个类,

二》作用就是传递信息给编译器或者开发工具,告诉它应该怎么做。

三》常用注解:

@Override:判断方法有没有覆盖;

@Deprecated 让某个方法过时;

@SuppressWarnings("deprecation"):某个方法过时,但还继续想用。

一》保留在那个生命周期

@Retention(RetentionPolicy.SOURCE)在源文件阶段,call阶段没有,运行没有

@Retention(RetentionPolicy.class):在class阶段,运行时没有;(默认阶段)

@Retention(RetentionPolicy.RUNTIME):保留注解类在运行阶段,

二》作用在那个成分上

//说明这个注解类只能作用在方法上;

@Target(ElementType.METHOD)

//既能作用在方法上和也能作用类上,用的是数组形式

@Target({ElementType.METHOD,ElementType.TYPE})

作用在字段上

@Target(ElementType.FIELD)

作用在形式参数上

@Target(ElementType.PARAMETER)

一》注解类很想接口

public @interface ItcastAnnotation {

//定义注解类属性

}

二》注解属性很像方法

//注解类

public @interface ItcastAnnotation {

//定义注解类属性,跟接口一样,前面省略public abstract

String color();

String value();

}

说明这个注解类有一个color属性和Value属性;

三》应用带属性的注解类,必须设置属性(以属性的方式设置);

//应用注解的类

@ItcastAnnotation(color="red",value="abc")

四》给注解类的属性设置默认值

public @interface ItcastAnnotation {

//定义注解类属性,跟接口一样,前面省略public abstract

String color() default "blue";

String value();

}

就是说color已经有默认值,可以重新设置,也可以不设置,就相当于该注解类只有一个属性需要设置就是value,所以设置value时,可以省略value名和“=”;

@ItcastAnnotation("abc")

五》如果注解类中只有一个属性需要设置值,可以省略属性名和“=”

@SuppressWarnings("deprecation")

六》在应用注解类的类中获取注解类对象

ItcastAnnotation annotation =

(ItcastAnnotation)AnnotationTest.class.getAnnotation(ItcastAnnotation.class);

七》调用注解类属性时,是以方法的形式调用;

//如果应用了某个注解类,就得到这个注解类对象

//获取注解类对象

ItcastAnnotation annotation =

(ItcastAnnotation)AnnotationTest.class.getAnnotation(ItcastAnnotation.class);

System.out.println(annotation.color());

1.int【】数组

//int[]数组

int[] arr();

在应用类中设置int数组属性

@ItcastAnnotation(arr={1,2,3})

2.枚举属性

TrafficLamp lamp() default TrafficLamp.GREEN;

在应用类中设置属性

@ItcastAnnotation(clamp=TrafficLamp.RED)

3.注解属性并缺省值

MetaAnnotationmetaAnnotation()default@MetaAnnotation(value="annotationA");

在应用类中设置属性

@ItcastAnnotation( metaAnnotation=@MetaAnnotation(value="annotationB"))

java高新技术的更多相关文章

  1. Java高新技术 注解

      Java高新技术 注解 知识概要:                  (1)了解注解 (2)注解的应用结构图 (3)@Retention(RetentionPolicy.RUNTIME)    ...

  2. Java高新技术 JavaBean内省

     Java高新技术  JavaBean内省 知识概要:                 (1)了解JavaBean内省                 (2)JavaBean的简单内省操作     ...

  3. Java高新技术 反射机制

     Java高新技术 反射机制 知识概要:                   (1)反射的基石 (2)反射 (3)Constructor类 (4)Field类 (5)Method类 (6)用反射方 ...

  4. Java高新技术 JDK1.5之新特性

      Java高新技术  JDK1.5的新特性 知识概要:                 (1)静态导入 (2)可变参数 (3)增强for循环 (4)基本数据类型的自动拆箱和装箱 静态导入     ...

  5. Java高新技术 Myeclipse 介绍

      Java高新技术   Myeclipse 介绍 知识概述:              (1)Myeclipse开发工具介绍 (2)Myeclipse常用开发步骤详解               ...

  6. java高新技术-枚举

    1.什么是枚举 枚举是jdk1.5后才增加的新特性 用枚举就是要规定一个新的类型,那么要用这个类型的值就必须是我规定的那些值.如果不是那些值,编译器就会报错,好处是编译时就会做出判断 2.用普通类模拟 ...

  7. java高新技术-java5的静态导入与编译器语法设置

    静态导入 import语句可以导入一个类或某个包中的所有类 import static 语句导入有一个类中的某个静态方法或所有静态方法 使用Math.random() 可以这样做 package co ...

  8. 黑马程序员——【Java高新技术】——案例:银行业务调度系统

    ---------- android培训.java培训.期待与您交流! ---------- 一.银行业务调度系统需求 Ø 银行内有6个业务窗口,1 - 4号窗口为普通窗口,5号窗口为快速窗口,6号窗 ...

  9. 黑马程序员——【Java高新技术】——案例:交通灯管理系统

    ---------- android培训.java培训.期待与您交流! ---------- 一.交通灯管理系统的项目需求 Ø 异步随机生成按照各个路线行驶的车辆 例如: 由南向而来去往北向的车辆 - ...

  10. 黑马程序员——【Java高新技术】——代理

    ---------- android培训.java培训.期待与您交流! ---------- 一.“代理概述”及“AOP概念” (一)代理概述 1.问题:要为已存在的多个具有相同接口的目标类的各个方法 ...

随机推荐

  1. java.util.concurrent.RejectedExecutionException

    java.util.concurrent.RejectedExecutionException: Task java.util.concurrent.FutureTask@59f1ca76 rejec ...

  2. laravel中redis队列的使用

    一.配置文件 首先我们需要在配置文件中配置默认队列驱动为Redis,队列配置文件是config/queue.php: return [ 'default' => env('QUEUE_DRIVE ...

  3. python日常

    1.远程访问远程访问Jupyter Notebook,本地浏览器不能打开,先查了防火墙的状态,然后将设置的端口进行allow,网址,仍然拒绝链接,而后通过远程访问Jupyter Notebook,然后 ...

  4. 【论文阅读】Learning Spatial Regularization with Image-level Supervisions for Multi-label Image Classification

    转载请注明出处:https://www.cnblogs.com/White-xzx/ 原文地址:https://arxiv.org/abs/1702.05891 Caffe-code:https:// ...

  5. Windows 10安装pip方法

    pip是一款非常方便的python包管理工具,本文主要介绍在windows 10下安装pip方法. 1. 下载pip 地址:https://pypi.python.org/pypi/pip#downl ...

  6. php 批量导入昨天的数据(别类版的增量备份安案)

    $where = ''; $localogLogin = $this->gamedb_model->query_onerow("select `datetime` from lo ...

  7. windows10系统定时1分钟执行php(不借助windows的.bat文件)原创

    第一步:确认windows上是否配置好了php环境变量,我用xampp安装的lamp环境,默认已经配置好了php的环境变量.在CMD中执行php -v  显示相应的php版本 php -v 如果显示上 ...

  8. 【BZOJ】1294: [SCOI2009]围豆豆Bean

    题解 随机跳题真好玩 这个就是考虑我们怎么判断点在多边形内,就是点做一条射线,穿过了奇数条边 我们只需要记录一个二进制状态表示每个点的射线穿过路径的次数的奇偶性 枚举起点,然后用BFS的方式更新dp状 ...

  9. Codeforces Round #380 Div.2 F - Financiers Game

    F - Financiers Game 这种两人博弈一般都可以用两个dp写, 一个dp描述第一个人的最优态, 第二个dp描述第二个人的最优态,难点在于优化空间... 我感觉这个空间开得有点玄学.. d ...

  10. MapReduce原理2

    MapReduce的shuffle机制 1.概述 mapreduce中,map阶段处理的数据如何传递给reduce阶段,是mapreduce框架中最关键的一个流程,这个流程就叫shuffle: shu ...