静态变量和实例变量的区别?
在语法定义上的区别:静态变量前要加static关键字,而实例变量前不加。
在程序运行时的区别:实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变量才会被分配空间,才能使用这个实例变量。
静态变量不属于某个实例对象,而是属于类,所以也称为类变量,只要程序加载了类的字节码文件,不用创建任何实例象,静态变量就会被分 配空间,静态变量就可以被使用了。
总之,实例变量必须创建对象后才可以通过这个对象来使用,静态变量则可以直接使用类名来引用。
是否可以从一个static方法内部发出对非static方法的调用?
不可以。因为非static方法要与对象关联在一起,必须创建一个对象后,才可以在该对象上进行方法的调用,而static方法调用时不需要创建对象,可以直接调用。也就是说,一个static方法被调用时,可能还没有创建任何实例对象,所以,一个static方法内部不可以发出对非static方法的调用。
Integer与int的区别?
int是java提供的8种基本数据类型之一。Java为每个原始类型提供了封装类,Integer是Java为int提供的包装类。int的默认值是0,而Integer的默认值是null,即Integer可以区分出来未赋值和值为0的区别,int则无法表达出来未赋值的情况,例如想要表达出没有参加考试和考试成绩为0的区别,则只能用Integer。
详见http://www.cnblogs.com/dazuihou/p/3567821.html
Math.round(11.5)等于多少?Math.round(-11.5)等于多少?
Math类中提供了三种与取整有关的方法:ceil、floor、round。这些方法的作用与他们的英文名称的含义相对应,ceil的英文意思是装天花板,该方法就表示向上取整。floor的英文意思是地板,该方法就表示向下取整。至于round方法,他表示“四舍五入”,算法为Math.floor(x+0.5f),即将原来的数字加上0.5,之后再向下取整。所以,Math.round(11.5)的结果为12,Math.round(-11.5)的结果为-11。
下面代码有什么不妥之处?
1.if(username.equals("zxx")){}
2.int x=1; return x==1?true:false;
答:1.应该先判断username是否是null;如果是null,则会出现空指针异常。
改为:if("zxx".equals(username)){}
2.x==1本身就返回boolean型,再用三元操作符判断true和false多此一举。
改为:return x==1;
请说出作用域public,private,protected以及不写时的区别
作用域 | 同一类 | 同一包 | 子类中 | 不同包 |
public | √ | √ | √ | √ |
protected | √ | √ | √ | × |
defualt(friendly) | √ | √ | × | × |
private | √ | × | × | × |
public:接口访问权限
protected:继承访问权限
default:包访问权限
private:你无法访问(除了包含该成员的类以外,其他任何类都无法访问这个成员)