判断对错。List,Set,Map都继承自继承Collection接口。
正确答案: B 你的答案: B (正确)
对
错
解析:
Given:
public class IfTest{ public static void main(string[]args){ int x=3; int y=1; if(x=y) System.out.println(“Not equal”); else System.out.println(“Equal”); } }
What is the result?
正确答案: C 你的答案: B (错误)
The output is “Equal”
The output in “Not Equal”
An error at line 5 causes compilation to fall.
The program executes but does not print a message.
解析:
- Java中,赋值是有返回值的 ,赋什么值,就返回什么值。比如这题,x=y,返回y的值,所以括号里的值是1。
- Java跟C的区别,C中赋值后会与0进行比较,如果大于0,就认为是true;而Java不会与0比较,而是直接把赋值后的结果放入括号。但是int类型,不能转换为boolean,所以会报错:“ Type mismatch: cannot convert from int to boolean ”
以下程序的运行结果是:( )
TreeSet<Integer> set = new TreeSet<Integer>(); TreeSet<Integer> subSet = new TreeSet<Integer>(); for(int i=606;i<613;i++){ if(i%2==0){ set.add(i); } } subSet = (TreeSet)set.subSet(608,true,611,true); set.add(629); System.out.println(set+" "+subSet);
正确答案: C 你的答案: D (错误)
编译失败
发生运行时异常
[606, 608, 610, 612, 629] [608, 610]
[606, 608, 610, 612, 629] [608, 610,629]
解析:
subset(form,true,to,true)是Treeset的非静态方法,该方法返回从form元素到to元素的一个set集合,两个boolean类型是确认是否包含边境值用的。subset方法是求set的范围内的子集,两个true是表示是否包含端点(608和611),故subSet的值为[608,610]subSet = (TreeSet)set.subSet(608,true,611,true); //此时的subSet的值为[606,608,610,612] set.add(629);
jre 判断程序是否执行结束的标准是()
正确答案: A 你的答案: B (错误)
所有的前台线程执行完毕
所有的后台线程执行完毕
所有的线程执行完毕
和以上都无关
解析:
前台线程和后台线程的区别和联系:
2、可以在任何时候将前台线程修改为后台线程,方式是设置Thread.IsBackground 属性。
3、不管是前台线程还是后台线程,如果线程内出现了异常,都会导致进程的终止。
4、托管线程池中的线程都是后台线程,使用new Thread方式创建的线程默认都是前台线程。
说明:
使用Thread建立的线程默认情况下是前台线程,在进程中,只要有一个前台线程未退出,进程就不会终止。主线程就是一个前台线程。而后台线程不管线程是否结束,只要所有的前台线程都退出(包括正常退出和异常退出)后,进程就会自动终止。一般后台线程用于处理时间较短的任务,如在一个Web服务器中可以利用后台线程来处理客户端发过来的请求信息。而前台线程一般用于处理需要长时间等待的任务,如在Web服务器中的监听客户端请求的程序,或是定时对某些系统资源进行扫描的程序
下面有关java类加载器,说法正确的是?
正确答案: A B C D 你的答案: B C (错误)
引导类加载器(bootstrap class loader):它用来加载 Java 的核心库,是用原生代码来实现的
扩展类加载器(extensions class loader):它用来加载 Java 的扩展库。
系统类加载器(system class loader):它根据 Java 应用的类路径(CLASSPATH)来加载 Java 类
tomcat为每个App创建一个Loader,里面保存着此WebApp的ClassLoader。需要加载WebApp下的类时,就取出ClassLoader来使用
解析: Java中的类加载器
Java 中的类加载器大致可以分成两类,一类是系统提供的,另外一类则是由Java 应用开发人员编写的。系统提供的类加载器主要有下面三个:
引导类加载器(bootstrap class loader):
它用来加载 Java 的核心库,是用原生代码来实现的,并不继承自 java.lang.ClassLoader。主要负责jdk_home/lib目录下的核心api 或 -Xbootclasspath 选项指定的jar包装入工作(其中的jdk_home是指配置jdk环境变量是java_home的配置路径,一般是jdk/jre所在目录)。
扩展类加载器(extensions class loader):
它用来加载 Java 的扩展库。Java虚拟机的实现会提供一个扩展库目录,扩展类加载器在此目录里面查找并加载 Java 类,主要负责jdk_home/lib/ext目录下的jar包或 -Djava.ext.dirs 指定目录下的jar包装入工作。
系统类加载器(system class loader):
它根据 Java 应用的类路径(CLASSPATH)来加载 Java 类。一般来说,Java 应用的类都是由它来完成加载的。可以通过 ClassLoader.getSystemClassLoader()来获取它。主要负责CLASSPATH/-Djava.class.path所指的目录下的类与jar包装入工作.
除了系统提供的类加载器以外,开发人员可以通过继承java.lang.ClassLoader类的方式实现自己的类加载器,从而进行动态加载class文件,以满足一些特殊的需求,这体现java动态实时类装入特性。 除了引导类加载器之外,所有的类加载器都有一个父类加载器,通过getParent()方法可以得到。对于系统提供的类加载器来说,系统类加载器的父类加载器是扩展类加载器,而扩展类加载器的父类加载器是引导类加载器;对于开发人员编写的类加载器来说,其父类加载器是加载此类加载器 Java 类的类加载器。因为类加载器 Java 类如同其它的 Java 类一样,也是要由类加载器来加载的。一般来说,开发人员编写的类加载器的父类加载器是系统类加载器。类加载器通过这种方式组织起来,形成树状结构。树的根节点就是引导类加载器。下图中给出了一个典型的类加载器树状组织结构示意图,其中的箭头指向的是父类加载器。
Java中的类加载器
Java 中的类加载器大致可以分成两类,一类是系统提供的,另外一类则是由Java 应用开发人员编写的。系统提供的类加载器主要有下面三个:
引导类加载器(bootstrap class loader):
它用来加载 Java 的核心库,是用原生代码来实现的,并不继承自 java.lang.ClassLoader。主要负责jdk_home/lib目录下的核心api 或 -Xbootclasspath 选项指定的jar包装入工作(其中的jdk_home是指配置jdk环境变量是java_home的配置路径,一般是jdk/jre所在目录)。
扩展类加载器(extensions class loader):
它用来加载 Java 的扩展库。Java虚拟机的实现会提供一个扩展库目录,扩展类加载器在此目录里面查找并加载 Java 类,主要负责jdk_home/lib/ext目录下的jar包或 -Djava.ext.dirs 指定目录下的jar包装入工作。
系统类加载器(system class loader):
它根据 Java 应用的类路径(CLASSPATH)来加载 Java 类。一般来说,Java 应用的类都是由它来完成加载的。可以通过 ClassLoader.getSystemClassLoader()来获取它。主要负责CLASSPATH/-Djava.class.path所指的目录下的类与jar包装入工作.
以下说法错误的是()
正确答案: B C D 你的答案: C D (错误)
其他选项均不正确
java线程类优先级相同
Thread和Runnable接口没有区别
如果一个类继承了某个类,只能使用Runnable实现线程
解析:
如果int x=20, y=5,则语句System.out.println(x+y +""+(x+y)+y); 的输出结果是()
正确答案: D 你的答案: A (错误)
2530
55
2052055
25255
解析:
运用下列哪个命令能够获取JVM的内存映像
正确答案: B 你的答案: D (错误)
jinfo
jmap
jhat
jstat
解析:
1、jps:查看本机java进程信息。
2、jstack:打印线程的栈信息,制作线程dump文件。
3、jmap:打印内存映射,制作堆dump文件
4、jstat:性能监控工具
5、jhat:内存分析工具
6、jconsole:简易的可视化控制台
7、jvisualvm:功能强大的控制台
下列程序执行后结果为( )
classA { publicintfunc1(inta, intb) { returna - b; } } classB extendsA { publicintfunc1(inta, intb) { returna + b; } } publicclassChildClass { publicstaticvoidmain(String[] args) { A a = newB(); B b = newB(); System.out.println("Result="+ a.func1(100, 50)); System.out.println("Result="+ b.func1(100, 50)); } }
正确答案: A 你的答案: A (正确)
Result=150Result=150
Result=100Result=100
Result=100Result=150
Result=150Result=100
解析:
一、使用父类类型的引用指向子类的对象;
二、该引用只能调用父类中定义的方法和变量;
三、如果子类中重写了父类中的一个方法,那么在调用这个方法的时候,将会调用子类中的这个方法;(动态连接、动态调用)
四、变量不能被重写(覆盖),”重写“的概念只针对方法,如果在子类中”重写“了父类中的变量,那么在编译时会报错。
多态的3个必要条件:
事务隔离级别是由谁实现的?
正确答案: C 你的答案: C (正确)
Java应用程序
Hibernate
数据库系统
JDBC驱动程序
解析:
判断对错。在java的多态调用中,new的是哪一个类就是调用的哪个类的方法。
正确答案: B 你的答案: A (错误)
对
错
解析:
下列哪个选项是Java调试器?如果编译器返回程序代码的错误,可以用它对程序进行调试。
正确答案: C 你的答案: C (正确)
java.exe
javadoc.exe
jdb.exe
javaprof.exe