1.
abstract 的 method 是否可同时是 static,是否可同时是 native,是否可同
时是 synchronized?
答:都不能。
2.
是否可以从一个 static 方法内部发出对非 static 方法的调用?
答:不可以,如果其中包含对象的 method(),不能保证对象初始化。
3.
写 clone()方法时,通常都有一行代码,是什么?
答:Clone 有缺省行为:super.clone(),他负责产生正确大小的空间,并逐位
复制。
4.
垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办
法主动通知虚拟机进行垃圾回收?
答:对于 GC 来说,当程序员创建对象时,GC 就开始监控这个对象的地址、大小
以及使用情况。通常,GC 采用有向图的方式记录和管理堆(heap)中的所有对象。
通过这种方式确定哪些对象是"可达的",哪些对象是"不可达的"。当 GC 确定一
些对象为"不可达"时,GC 就有责任回收这些内存空间。可以。程序员可以手动
执行 System.gc(),通知 GC 运行,但是 Java 语言规范并不保证 GC 一定会执行。
5.
String s=new String(“xyz”);创建了几个 String Object?
一个或者两个
重点在new String("xyz");是指向了常量池中的xyz,但是不表示new String()没有再创建一个新的对象。
(1)只是在当前栈帧中分配了引用类型的空间,并没有值;
(2)代码前段在栈帧中分配了引用类型的空间,同时堆中分配了String实例的空间,并把实例在堆中的地址赋于栈帧中,
(3)str3第一次字面量时,分配空间创建实例abc,接着赋于str3。在定义str4字面量时,已经存在abc直接赋于str4;
(4)new String("abc");从字节码上主要有两步,一是new在堆中分配一个String类型的空间,二将"abc"字面量赋于刚刚分配的String空间上(可以查看String的构造函数,内部又是一个引用),所以虽然没有再产一个abc的内存空间,但是还是有产生一个String类型实例的空间,只是内容指向同一个。所以用==的情况str3和str4是true,str4和str5是false,从创建的实例个数在有str3的情况下执行str5是新增一个,在没有str3和str4的情况下,执行str5是两个。
希望对你有帮忙
6.
接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可
继承实体类(concrete class)?
答:接口可以继承接口。抽象类可以实现(implements)接口,抽象类可继承实体
类,但前提是实体类必须有明确的构造函数。
7.
Java 的接口和 C++的虚类的相同和不同处。
答:由于 Java 不支持多继承,而有可能某个类或对象要使用分别在几个类或对
象里面的方法或属性,现有的单继承机制就不能满足要求。与继承相比,接口有
更高的灵活性,因为接口中没有任何实现代码。当一个类实现了接口以后,该类
要实现接口里面所有的方法和属性,并且接口里面的属性在默认状态下面都是
public static,所有方法默认情况下是 public.一个类可以实现多个接口。
8.
说出一些常用的类,包,接口,请各举 5 个。
答:常用的类:BufferedReader BufferedWriter FileReader FileWirter
String Integer;
常用的包:java.lang java.awt java.io java.util java.sql;
常用的接口:Remote List Map Document NodeList
9.?????????????
Anonymous Inner Class (匿名内部类) 是否可以 extends(继承)其它类?
是否可以 implements(实现)interface(接口)?
答:可以继承其他类或实现其他接口,在 swing 编程中常用此方式。
10.?????????????????
内部类可以引用他包含类的成员吗?有没有什么限制?
答:一个内部类对象可以访问创建它的外部类对象的内容。
11.
java 中实现多态的机制是什么?
答:方法的覆盖 Overriding 和重载 Overloading 是 java 多态性的不同表现;覆
盖 Overriding 是父类与子类之间多态性的一种表现,重载 Overloading 是一个
类中多态性的一种表现。
12.
数据类型之间的转换:
1)如何将数值型字符转换为数字?
2)如何将数字转换为字符?
3)如何取小数点前两位并四舍五入?
答 :1)调用数值类型相应包装类中的方法 parse***(String)或 valueOf(String)
即可返回相应基本类型或包装类型数值;
2)将数字与空字符串相加即可获得其所对应的字符串;另外对于基本类型
数字还可调用 String 类中的 valueOf(…)方法返回相应字符串,而对于包装类型
数字则可调用其 toString()方法获得相应字符串;
3)可用该数字构造一 java.math.BigDecimal 对象,再利用其 round()方法
进行四舍五入到保留小数点后两位, ???????再将其转换为字符串截取最后两位。
java中日期和时间
Calendar
类是一个抽象类,它为特定瞬间与一组诸如 YEAR
、MONTH
、DAY_OF_MONTH
、HOUR
等 日历字段
之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。瞬间可用毫秒值来表示,它是距历元(即格林威治标准时间 1970 年 1 月 1 日的 00:00:00.000,格里高利历)的偏移量。
1)如何取得年月日、小时分秒?
创建 Java.util.Calendar 实例(Calendar.getInstance()),调用其 get()
方法传入不同的参数即可获得参数所对应的值,如:
calendar.get(Calendar.YEAR);//获得年
输出结果:现在是2015 年 5 月 8 日 10 点 31 分 59秒
2)如何取得从 1970 年到现在的毫秒数?
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()方法可将日期格式化。
java中error 和 exception 有什么区别?
error 表示系统级的错误和程序不必处理的异常,恢复不是不可能,但很困
难,这种情况下的问题严重;比如内存溢出,不可能指望程序能处理这样的情况 ;
exception 表示需要捕捉或者需要程序进行处理的异常,是一种设计或实现
问题;也就是说,它表示如果程序运行正常,从不会发生的情况。
java 中有几种类型的流?JDK 为每种类型的流提供了一些抽象类以供继承, 请说出他们分别是哪些类?
字节流,字符流。字节流继承于 InputStream、OutputStream,字符流继承
于 Reader、Writer。在 Java.io 包中还有许多其他的流,主要是为了提高性能
和使用方便。
可采用连接池