关于 Java高新技术的一些认识_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > 关于 Java高新技术的一些认识

关于 Java高新技术的一些认识

 2013/9/26 18:50:22  情系夏雨  程序员俱乐部  我要评论(0)
  • 摘要:在学习编程的过程中,我觉得不止要获得课本的知识,更多的是通过学习技术知识提高解决问题的能力,这样我们才能走在最前方,本文主要讲述java一些高薪技术,更多Java专业知识,广州疯狂java培训为你讲解;一、静态导入:importstatic语句导入一个类中的某个静态方法或所有方法;例子:1.importstaticjava.lang.Math.max;只是导入了Math类中的max方法,这是只能max方法可以省略Math;//System.out.println(Math.max(3,6))
  • 标签:认识 Java 技术 新技术
  在学习编程的过程中,我觉得不止要获得课本的知识,更多的是通过学习技术知识提高解决问题的能力,这样我们才能走在最前方,本文主要讲述java一些高薪技术,更多Java专业知识,广州疯狂java培训为你讲解;
  一、静态导入:
  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培训专注软件开发培训,提升学员就业能力,重点提升实践动手能力。没有工作经验的学员,在疯狂java,通过大量全真经典企业级项目进行集中培训,课上讲师讲解和课下项目练习课上课下双管齐下,学员通过数月培训都可获得1-2年的工作经验,进而在同类的求职者中脱颖而出。疯狂Java培训让你体会java编程的快乐,项目开发的兴奋,成就感,通过短短几个月的时间,让你在半年的时间内掌握8-10万的代码量,掌握Java核心技术,迅速成为技能型的现代化高端人才,迅速获得高薪就业!
发表评论
用户名: 匿名