笔试题

来源:互联网 发布:aws ubuntu安装锐速 编辑:程序博客网 时间:2024/06/06 05:38

一般情况下,以下哪个选项不是关系数据模型与对象模型之间匹配关系?

表之间的参考关系对应类之间的依赖关系


下面有关java内存模型的描述,说法错误的是?

如果在一个线程构造了一个不可变对象之后(对象仅包含final字段),就可以保证了这个对象被其他线程正确的查看

下面不属于Object类中方法的是:

finally()


下面哪段程序能够正确的实现了GBK编码字节流到UTF-8编码字节流的转换: 
dst=new String (src,”GBK”).getbytes(“UTF-8”)

staticString str0="0123456789";
staticString str1="0123456789";
String str2=str1.substring(5);
String str3=newString(str2);
String str4=newString(str3.toCharArray());
str0=null;
假定str0,...,str4后序代码都是只读引用。
Java 7中,以上述代码为基础,在发生过一次FullGC后,上述代码在Heap空间(不包括PermGen)保留的字符数为()

堆区分为三个区:年轻代(Young Generation)、年老代(Old Generation)、永久代(Permanent Generation,也就是方法区)。

 年轻代:对象被创建时(new)的对象通常被放在Young(除了一些占据内存比较大的对象),经过一定的Minor GC(针对年轻代的内存回收)还活着的对象会被移动到年老代(一些具体的移动细节省略)。

年老代:就是上述年轻代移动过来的和一些比较大的对象。Minor GC(FullGC)是针对年老代的回收

永久代:存储的是final常量,static变量,常量池。

str3,str4都是直接new的对象,而substring的源代码其实也是new一个string对象返回

经过fullgc之后,年老区的内存回收,则年轻区的占了15个,不算PermGen。


在调用子类构造器之前,会先调用父类构造器,当子类构造器中没有使用"super(参数或无参数)"指定调用父类构造器时,是默认调用父类的无参构造器,如果父类中包含有参构造器,却没有无参构造器,则在子类构造器中一定要使用“super(参数)”指定调用父类的有参构造器,不然就会报错。


以下关于对象序列化描述正确的是

使用transient修饰的变量不会被序列化
对象序列化的所属类需要实现Serializable接口
关于ThreadLocal 以下说法正确的是
ThreadLocal是采用哈希表的方式来为每个线程都提供一个变量的副本
ThreadLocal保证各个线程间数据安全,每个线程的数据不会被另外线程访问和破坏



 

原创粉丝点击