Java基础增强学习笔记

一.1---15集内容:java

①透视图(perspective)和视图(view)的区别设计模式

②静态方法的导入数组

③参数数量可变的方法
     学习

System.out.println(add(2,3));
System.out.println(add(2,3,5));
publci static int add(int x,int ... args)
{ 
    int sum=x;
    for(int i=0;i<args.length;i++)
    {
        sum+=args[i];
    }
    return sum;
}

    解释:本质为默认为args生成一个动态数组,以达到能够输入可变参数的效果。测试

④加强for循环spa

    语法:for(type 变量名:集合变量名){  }设计

System.out.println(add(2,3));
System.out.println(add(2,3,5));
publci static int add(int x,int ... args)
{ 
    int sum=x;
    for(int arg:args)
    {
        sum+=arg;
    }
    return sum;
}

⑤装箱拆箱code

public class AutoBox {
 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  Integer iObj=3;//装箱(较早版本的Java里面不能这么写,由于3是int类型,iObj是一个包装类型Integer对象)
  System.out.println(iObj+12);//拆箱
  
  Integer i1=13;
  Integer i2=13;
  System.out.println(i1==i2);//测试i1和i2是否为同一个对象,这是在比较包装类型Integer对象内容,不是比较数值)
  
  Integer i3=137;
  Integer i4=137;
  System.out.println(i3==i4);//测试i3和i4是否为同一个对象
  //当数据值处于-128~127之间时,装箱时内部会将其封装成同一个对象,不然,封装成两个对象,这是一个享元模式【同享一个元】的的设计模式)
  //享元模式:即一些小的使用频繁的同值对象会只产生一个对象,扩展的说,一些东西有些属性相同时,内存池中只会留下一个,这些特性是内部特性;那些不一样属性成为外部特性
  //享元模式:flyweight
  Integer i5=Integer.valueOf(3);
  Integer i6=Integer.valueOf(3);
  System.out.println(i5==i6);
  
  Integer i7=Integer.valueOf(213);
  Integer i8=Integer.valueOf(213);
  System.out.println(i7==i8);
  //下面这两个不是自动装箱而是调用类Integer的静态方法,关于将对象放内存池的状况同上。
 }
}

⑥枚举类的学习:对象

    枚举元素就是一个枚举类的对象内存

 public class EnumTest {
 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  WeekDay weekDay=WeekDay.FRI;
  System.out.println(weekDay);
  System.out.println(weekDay.name());
  System.out.println(weekDay.ordinal());
  System.out.println(WeekDay.valueOf("SUN"));
  System.out.println(WeekDay.values().length);
 }
 
 public enum WeekDay{//定义一个枚举类WeekDay
  SUN,MON,TUE,WED,THI,FRI,SAT
 }
}
public class EnumTest {
 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  WeekDay weekDay=WeekDay.FRI;
  System.out.println(weekDay);
  System.out.println(weekDay.name());
  System.out.println(weekDay.ordinal());
  System.out.println(WeekDay.valueOf("SUN"));
  System.out.println(WeekDay.values().length);
 }
 
 public enum WeekDay{//定义一个枚举类WeekDay
  SUN(5),MON(),TUE,WED,THI,FRI,SAT;//这七个为枚举类的静态成员部分,只要使用一次枚举类,他们都会依次执行一遍,而且若是有其余东西,他们位于其余东西以前,且必须加上分;
  //枚举类的构造方法必须为私有
  private WeekDay(){System.out.println("First");}
  private WeekDay(int day){System.out.println("Second");}
 }
}

   外部类只能使用默认或者public这两个修饰符,而内部类但是使用四种。

⑦反射(类Class,不是定义普通类的class)

    a.Java程序中的各个Java类属于同一类事物,描述这类事物的Java类名就是Class,就是表明对象或者类的字节码

    b.获得字节码的方法(Class类型):

        ①类名.class;

        ②对象.getClass();

        ③Class.forName("类名");

    c.八种基本类型(boolean,byte,char,short,int,long,float,and double)和void类型都是一种类

        例如:Class cls1=void.class;