COMPLEX-B

导航

关键字总结

不可变对象

final

修饰的类不能被继承,修饰的方法不能被重写,private修饰的方法默认也会加final修饰,修饰基本数据类型的变量不能被重新赋值,修饰引用数据类型不能,在变量初始化之后不能指向其他引用

Collections.unmodifiable

返回的集合不能被重新赋值,并且集合内容也不能被修改如Collections.unmodifiableMap(map),如果此时向新map中put会直接抛异常,而final修饰的引用数据类型,虽然变量指向的对象不能被修改,但是对象的内容却可以被修改

static

静态代码块

  • 作用:一般用以给静态变量赋值
  • 执行顺序静态代码块->构造代码块->构造方法
  • 静态代码块只在第一次new执行一次,之后不再执行,用以初始化类

构造代码块和构造函数的区别

非静态代码块与构造函数的区别是: 非静态代码块是给所有对象进行统一初始化,而构造函数是给对应的对象初始化,因为构造函数是可以多个的,运行哪个构造函数就会建立什么样的对象,但无论建立哪个对象,都会先执行相同的构造代码块。也就是说,构造代码块中定义的是不同对象共性的初始化内容。

非静态代码块的作用

限定变量的作用范围

判断字符串内容是不是相等、和判断Integer值是否相等要用equels

  • 在没有改写equels方法的情况下,equels判断和==具有相同的作用,都是判断两个对象的地址是不是相同
  • String类型和Integer类型重写了equels方法,所以可以直接用equels判断对象内容是否相等
  • 判断对象是不是某个类型用object isinstansof object,注意左右都必须为对象;基本数据类型可以转换为object对象

枚举类型Demo

public class EnumTest01 {

    //使用枚举存放四季
    public enum Season{
        Spring,Summer,Autumn,Winter
    }

    public static void main(String[] args) {
        //调用枚举
        System.out.println(Season.Summer);

    }

}

生成随机数的两种方法

```

Random r = new Random();
int i = r.nextInt(100)// 生成0-100的随机数

#```
int i = (int)(Math.random()*100)//生成0-100随机数

前者需要导包,后者不需要

posted on 2019-04-11 22:18  COMPLEX-B  阅读(221)  评论(0编辑  收藏  举报