发表于: 2017-08-08 23:10:46

1 875


【说明】今天出去面试了一波,结果是引而不发的培训公司,,然后就不想聊了

一:今日完成

1、Integer与int的区别

int是java提供的8种原始数据类型之一。

Java为每个原始类型提供了封装类,Integer是java为int提供的封装类。

int的默认值为0,而Integer的默认值为null,即Integer可以区分出未赋值和值为0的区别,int则无法表达出未赋值的情况。

例如,要想表达出没有参加考试和考试成绩为0的区别,则只能使用Integer。


2、Math.round(11.5)等於多少? Math.round(-11.5)等於多少?

Math类中提供了三个与取整有关的方法:ceil、floor、round,

这些方法的作用与它们的英文名称的含义相对应,

例如,

ceil的英文意义是天花板,该方法就表示向上取整,Math.ceil(11.3)的结果为12,Math.ceil(-11.3)的结果是-11;

floor的英文意义是地板,该方法就表示向下取整,Math.ceil(11.6)的结果为11,Math.ceil(-11.6)的结果是-12;

最难掌握的是round方法,它表示“四舍五入”,算法为Math.floor(x+0.5),即将原来的数字加上0.5后再向下取整,

所以,Math.round(11.5)的结果为12,Math.round(-11.5)的结果为-11。


3、请说出作用域public,private,protected,以及不写时的区别

这四个作用域的可见范围如下表所示。

说明:如果在修饰的元素上面没有写任何访问修饰符,则表示friendly。

作用域    当前类 同一package 子孙类 其他package 

public    √     √          √       √ 

protected  √     √          √      × 

friendly   √     √          ×      × 

private    √     ×          ×      × 


4、Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型? 

Overload是重载的意思,Override是覆盖的意思,也就是重写。

重载Overload表示同一个类中可以有多个名称相同的方法,但这些方法的参数列表各不相同(即参数个数或类型不同)。

重写Override表示子类中的方法可以与父类中的某个方法的名称和参数完全相同,通过子类创建的实例对象调用这个方法时,将调用子类中的定义方法,这相当于把父类中定义的那个完全相同的方法给覆盖了,这也是面向对象编程的多态性的一种表现。

override可以翻译为覆盖,从字面就可以知道,它是覆盖了一个方法并且对其重写,以求达到不同的作用。


5、构造器Constructor是否可被override? 

构造器Constructor不能被继承,因此不能重写Override,但可以被重载Overload。 

6、接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承具体类(concrete class)? 抽象类中是否可以有静态的main方法?

接口可以继承接口。抽象类可以实现(implements)接口,抽象类是否可继承具体类。

抽象类中可以有静态的main方法。

备注:只要明白了接口和抽象类的本质和作用,这些问题都很好回答,你想想,如果你是java语言的设计者,你是否会提供这样的支持,如果不提供的话,有什么理由吗?如果你没有道理不提供,那答案就是肯定的了。

 只有记住抽象类与普通类的唯一区别就是不能创建实例对象和允许有abstract方法。

7、写clone()方法时,通常都有一行代码,是什么? 

clone 有缺省行为,super.clone();因为首先要把父类中的成员复制到位,然后才是复制自己的成员。 

二:明日计划

明天因为时间充足(or 有限),打算完成

①继续面试

------------------

②投简历

------------------

③看面试题

------------------

三:疑难问题


四:思考总结

Ⅰ 对自己今天的进度满意吗

------------------一般般

Ⅱ 那些困扰自己的问题所在

------------------对面试邀请要保持谨慎

Ⅲ 暗示自己为明天加油打劲

------------------明天去朝阳区


返回列表 返回列表
评论

    分享到