java面试基础题(四)

31、接口是否可继承(extends)接口?抽象类是否可实现(implements)接口?抽象类是否可继承具体类(concrete class)?

接口可以继承接口,而且支持多重继承。抽象类可以实现(implements)接口。抽象类可继承具体类也可以继承抽象类。

32、一个".java"源文件中是否可以包含多个类(不是内部类)?有什么限制?

一个.java源文件可以有多个类,但最多只能有一个public类。且public类的类名必须与*.java的文件名相一致。

33、Anonymous Inner Class(匿名内部类)是否可以继承其它类?是否可以实现接口?

可以继承其他类或实现其他接口,

有个接口 A,有个类B,里面有个方法 say(A a);
然后,调用say方法如下:
B b = new B();
b.say(new A(){
//实现A的方法 暂且叫步骤C
});
这样做的话,实际上C的作用就是实现了A接口,大括号里的整个部分就是A的一个子类,在say方法里调用的时候传入的A的对象就是步骤C的结果

34、内部类可以引用它的包含类(外部类)的成员吗?有没有什么限制?

如果不是静态内部类,完全可以。那没有什么限制! 
在静态内部类下,不可以访问外部类的普通成员变量,而只能访问外部类中的静态成员,

35、Java 中的final关键字有哪些用法?

(1)用来修饰数据,包括成员变量和局部变量,该变量只能被赋值一次且它的值无法被改变。对于成员变量来讲,我们必须在声明时             或者构造方法中对它赋值;
(2)用来修饰方法参数,表示在变量的生存期中它的值不能被改变;
(3)修饰方法,表示该方法无法被重写;
(4)修饰类,表示该类无法被继承。

36、数据类型之间的转换:

1)如何将数值型字符转换为数字?

调用数值类型相应包装类中的方法parse***(String)或valueOf(String)即可返回相应基本类型或包装类型数值

2)如何将数字转换为字符?

将数字与空字符串相加即可获得其所对应的字符串;另外对于基本类型数字还可调用String 类中的valueOf(…)方法返回相应字符串,而对于包装类型数字则可调用其toString()方法获得相应字符串;

3)如何取小数点前两位并四舍五入?

可用该数字构造一java.math.BigDecimal 对象,再利用其round()方法进行四舍五入到保留小数点后两位,再将其转换为字符串截取最后两位。

37、如何实现字符串的反转及替换?

可用字符串构造一StringBuffer 对象,然后调用StringBuffer 中的reverse方法即可实现字符串的反转,调用replace 方法即可实现字符串的替换。

38、怎样将GB2312编码的字符串转换为ISO-8859-1编码的字符串?

示例代码如下:
String s1 = "你好";
String s2 = new String(s1.getBytes("GB2312"), "ISO-8859-1");

39、日期和时间:

1)如何取得年月日、小时分秒?
2)如何取得从1970 年到现在的毫秒数?
3)如何取得某个日期是当月的最后一天?
4)如何格式化日期?【基础】
答:1)创建java.util.Calendar 实例(Calendar.getInstance()),调用其get()方法传入不同的参数即可获得参数所对应的值,如:calendar.get(Calendar.YEAR);//获得年
2)以下方法均可获得该毫秒数:Calendar.getInstance().getTimeInMillis();System.currentTimeMillis();
3)示例代码如下:
Calendar time = Calendar.getInstance();
time.set(Calendar.DAY_OF_MONTH,time.getActualMaximum(Calendar.DAY_OF_MONTH));
4)利用java.text.DataFormat 类中的format()方法可将日期格式化。

40、打印昨天的当前时刻。

public class YesterdayCurrent{
public static void main(String[] args){
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DATE, -1);
System.out.println(cal.getTime());
}
}

猜你喜欢

转载自blog.csdn.net/lihua5419/article/details/80401140