- 全局变量破坏了引用的透明性。
- 全局变量制造了命名空间冲突。
可以使用 properties 类将想要全局有效的变量值写在 properties 文件中,那么在何处用时都从此
properties 文件中读取这个变量的值就可以了,此值在任何时候都可以修改的
说明:我们平时在类中声明的只是相对类而言是全局变量,不是真正意义的全局变量
4. 说明一下 public static void main(String args[])这段声明里每个关键字的作用
Public 是一个访问权限(访问修饰符)公共
static 修饰的成员称为类成员或者静态成员
void 当方法定义时用 void 修饰时,表示没有返回值
String 类来创建和操作字符串
5. Java 是否存在内存泄漏?
java 中内存泄露的发生场景,通俗地说,就是程序员可能创建了一个对象,以后一直不再使用
这个对象,这个对象却一直被引用,即这个对象无用但是却无法被垃圾回收器回收的,这就是 java
中的内存泄露,一定要让程序将各种分支情况都完整执行到程序结束,然后看某个对象是否被使用
过,如果没有,则才能判定这个对象属于内存泄露。
6. ==与 equals 的区别。
"= ="除了比较基本数据之外都是比较的内存地址
"equals"除了没有没有重写 equals 方法的类之外都是比较的内容
7. Java 中有几种类型的流?
Java 中的流分为两种,一种是字节流,另一种是字符流,分别由四个抽象类来表示(每种流包
括输入和输出两种所以一共四个):InputStream,OutputStream,Reader,Writer。
8. 如何用 Java 代码列出一个目录下所有的文件。
File file=new File("H:\\");
for(File temp:file.listFiles()){
if(temp.isFile()){
System.out.println(temp.toString());
}
}
9. &和&&的区别
1、&与&&都可以用作逻辑与的运算符,当两边的结果都为 true 时,运算结果才为 true,否则只
要有一方运算结果是 false,运算结果就为 false。
2、&&在开发过程中用到的概率比&大,因为&&具有短路的功能,只要第一个表达式是 false,
就不会再进行判断。例如:if(str!=null && !str.equals(“”)){}
当 str等于null 时,后面的表达式就不会继续执行,但是
if(str!=null & !str.equals(“”)){}当 str==null 时,程序会报空指针异常,因为&不具有短路的功能。
3、&同时也是位运算符,就是我们通常所说的按位与运算,当&的左右两边都是 Boolean 型表
达式时或 Boolean 值时,就执行按位与运算。
10. 构造器(constructor)是否可被重写(override),其规范是什么?
构造器(构造方法)Constructor 不能被继承,因此不能重写 Override,但可以被重载 Overload(不
同参数即可)。
每一个类必须有自己的构造函数,在创建对象时自动调用,如果添加有参构造函数后,默认无
参构造函数则被覆盖。子类不会覆盖父类的构造函数,但是在创建子类对象的时候,会自动调用父
类构造函数