小米科技|看看96后小伙是怎么拿捏腾讯面试官拿到offer的( 七 )


包的命名应该遵守以下规则:

  • 应该全部是小写字母;
  • 可以包含多个单词 , 单词之间使用“.”连接 , 比如说 java.lang;
  • 名称由公司名或者组织名确定 , 采用倒序的方式 , 比如说 , 我个人博客的域名是 www.itwanger.com , 所以我创建的包名是就是 com.itwanger.xxxx 。
每个包或者子包都在磁盘上有自己的目录结构 , 如果 Java 文件时在 com.itwanger.xxxx 包下 , 那么该文件所在的目录结构就应该是 com->itwanger->xxxx 。
默认情况下 , java.lang 包是默认导入的 , 我们不需要显式地导入该包下的任何类 。



Boolean类属于 java.lang 包 , 当使用它的时候并不需要显式导入 。
22、什么是访问权限修饰符?
访问权限修饰符对于 Java 来说 , 非常重要 , 目前共有四种:public、private、protected和 default(缺省) 。
一个类只能使用 public 或者 default 修饰 , public 修饰的类你之前已经见到过了 , 现在我来定义一个缺省权限修饰符的类给你欣赏一下 。

哈哈 , 其实也没啥可以欣赏的 。 缺省意味着这个类可以被同一个包下的其他类进行访问;而 public 意味着这个类可以被所有包下的类进行访问 。
假如硬要通过 private 和 protected 来修饰类的话 , 编译器会生气的 , 它不同意 。

private 可以用来修饰类的构造方法、字段和方法 , 只能被当前类进行访问 。 protected 也可以用来修饰类的构造方法、字段和方法 , 但它的权限范围更宽一些 , 可以被同一个包中的类进行访问 , 或者当前类的子类 。
可以通过下面这张图来对比一下四个权限修饰符之间的差别:

  • 同一个类中 , 不管是哪种权限修饰符 , 都可以访问;
  • 同一个包下 , private 修饰的无法访问;
  • 子类可以访问 public 和 protected 修饰的;
  • public修饰符面向世界 , 哈哈 , 可以被所有的地方访问到 。
23、什么是 final 关键字?
final 关键字修饰类的时候 , 表示该类无法被继承 。 比如 , String 类就是 final 的 , 无法被继承 。
final 关键字修饰方法的时候 , 表示子类无法覆盖它 。
final 关键字修饰变量的时候 , 表示该变量只能被赋值一次 , 尽管变量的状态可以更改 。
24、什么是 static 关键字?
static 关键字可以用来修饰类变量 , 使其具有全局性 , 即所有对象将共享同一个变量 。
static 关键字可以用来修饰方法 , 该方法称为静态方法 , 只可以访问类的静态变量 , 并且只能调用类的静态方法 。

第四波

25、finally 和 finalize 有什么区别?
finally 通常与 try-catch 块一起使用 , 即使 try-catch 块引发了异常 , finally 块中的代码也会被执行 , 用于释放 try 块中创建的资源 。
finalize() 是 Object 类的一个特殊方法 , 当对象正在被垃圾回收时 , 垃圾收集器将会调用该方法 。 可以重写该方法用于释放系统资源 。
26、可以将一个类声明为 static 的吗?
不能将一个外部类声明为 static 的 , 但可以将一个内部类声明为 static 的——称为静态内部类 。
27、什么是静态导入?
如果必须在一个类中使用其他类的静态变量或者静态方法 , 通常我们需要先导入该类 , 然后使用“类名.变量/方法”的形式调用 。

也可以通过静态导入的方式 , 就不需要再使用类名了 。


不过 , 静态导入容易引发混乱(变量名或者方法名容易冲突) , 因此最好避免使用静态导入 。