Java 基础

May 27, 2016



Java 关键字

static

    - 可以修饰成员变量和成员方法,以及静态代码块;
    - 被static修饰的成员变量和成员方法独立于该类的任何对象,直接用”类名.变量(或方法)“来调用
    - 用public修饰的static成员变量和成员方法本质是全局变量和全局方法,类的所有实例共享同一个static变量。
    - 用private修饰的static成员变量和成员方法不能在其他类中通过类名来直接引用
    - static final 一起修饰成员变量表示常量,变量名大写
  • 静态变量

      - 对于静态变量在内存中只有一个拷贝(节省内存),JVM只为静态分配一次内存
      - static final 修饰的变量可以理解为“全局常量”:一旦给值就不可修改,并且通过类名可以访问。 
      - 一般在需要实现以下两个功能时使用静态变量:在对象之间共享值时/方便访问变量时   
    
  • 静态方法

      - 不能用this和super关键字,不能直接访问所属类的实例变量和实例方法(就是不带static的成员变量和成员方法),只能访问所属类的静态成员变量和成员方法。  
      - static方法独立于任何实例,因此static方法必须被实现,而不能是抽象的abstract。
      - 静态方法是类内部的一类特殊方法,只有在需要时才将对应的方法声明成静态的,一个类内部的方法一般都是非静态的 
      - static final 修饰的方法表示不可覆盖,并且可以通过类名直接访问。
      - 仅能调用其他的static 方法,只能访问static数据。
      - 自己定义的一些常用的工具类的方法可以用静态方法,方便调用
    
  • 静态代码块 static代码块也叫静态代码块,是在类中独立于类成员的static语句块,可以有多个,位置可以随便放,它不在任何的方法体内,JVM加载类时会执行这些静态的代码块,如果static代码块有多个,JVM将按照它们在类中出现的先后顺序依次执行它们,每个代码块只会被执行一次。

final

    final 对于常量来说,意味着值不能改变,例如 final int i=100。这个i的值永远都是100。但是对于变量来说又不一样,只是标识这个引用不可被改变,如final File f=new File("c:\\test.txt");那么这个f一定是不能被改变的,如果f本身有方法修改其中的成员变量,例如是否可读,是允许修改的。

Java权限

  • 私有权限(private)

  private可以修饰数据成员,构造方法,方法成员,不能修饰类(此处指外部类,不考虑内部类)。被private修饰的成员,只能在定义它们的类中使用,在其他类中不能调用。

  • 默认权限(default)

  类,数据成员,构造方法,方法成员,都能够使用默认权限,即不写任何关键字。默认权限即同包权限,同包权限的元素只能在定义它们的类中,以及同包的类中被调用。

  • 受保护权限(protected)

  protected可以修饰数据成员,构造方法,方法成员,不能修饰类(此处指外部类,不考虑内部类)。被protected修饰的成员,能在定义它们的类中,同包的类中被调用。如果有不同包的类想调用它们,那么这个类必须是定义它们的类的子类。

  • 公共权限(public)

  public可以修饰类,数据成员,构造方法,方法成员。被public修饰的成员,可以在任何一个类中被调用,不管同包或不同包,是权限最大的一个修饰符。


Map<String, String> 遍历方法

    for (Map.Entry<String, String> entry : params.entrySet()) {
        bodyBuilder.addFormDataPart(entry.getKey(),entry.getValue());
    }

    解释:
    params.entrySet()是将params里的每一个键值对取出来封装成一个Entry对象在存到一个Set里面;
    Map.Entry<String, String>的意思是一个泛型,表示Entry里装的是两个string的字符串,分别是params的key和value。

参考文章:


结语:

坚持每天进步一点点…