目录
在java中,无论在何处调用,使用静态属性必须以类名做前缀。
socket编程中,以下哪个socket的操作是不属于服务端操作的()?
在jdk1.5之后,下列 java 程序输出结果为______。
jvm中垃圾回收分为scanvenge gc和full GC,其中full GC触发的条件可能有哪些
在java中,无论在何处调用,使用静态属性必须以类名做前缀。
正确答案: B 你的答案: B (正确)
正确
错误
来源:https://www.nowcoder.com/questionTerminal/051e95648e724c0da32bb835788fe439
1.如果是本类使用,可以直接就用静态变量名。2.如果是其他类使用,可以使用类名来调用,也可以创建一个实例对象来调用。
3.如果静态变量所在的类是静态类,那么不管在本类里或者在其他外部类,都可以直接使用静态变量名。
socket编程中,以下哪个socket的操作是不属于服务端操作的()?
正确答案: C 你的答案: C (正确)
accept
listen
connect
close
来源:https://www.nowcoder.com/questionTerminal/38fb0886232b42b6a542c288d256eee1
在jdk1.5之后,下列 java 程序输出结果为______。
int
i=
0
;
Integer j =
new
Integer(
0
);
System.out.println(i==j);
System.out.println(j.equals(i));
正确答案: B 你的答案: B (正确)
true,false
true,true
false,true
false,false
对于不同的环境结果不同
程序无法执行
来源:https://www.nowcoder.com/questionTerminal/643b145a860f457d8a150869e1a17eba
本题是一个自动拆装箱的考题(自动拆装箱JDK需在1.5上),下面的讨论都不针对新开辟对象的情况:
1、基本型和基本型封装型进行“==”运算符的比较,基本型封装型将会自动拆箱变为基本型后再进行比较,因此Integer(0)会自动拆箱为int类型再进行比较,显然返回true;
2、两个Integer类型进行“==”比较,如果其值在-128至127,那么返回true,否则返回false, 这跟Integer.valueOf()的缓冲对象有关,这里不进行赘述。
3、两个基本型的封装型进行equals()比较,首先equals()会比较类型,如果类型相同,则继续比较值,如果值也相同,返回true
4、基本型封装类型调用equals(),但是参数是基本类型,这时候,先会进行自动装箱,基本型转换为其封装类型,再进行3中的比较。int a=257;
Integer b=257;
Integer c=257;
Integer b2=57;
Integer c2=57;
System.out.println(a==b);
//System.out.println(a.equals(b)); 编译出错,基本型不能调用equals()
System.out.println(b.equals(257.0));
System.out.println(b==c);
System.out.println(b2==c2);true, false, false, true
|
输出结果为:
正确答案: B 你的答案: B (正确)
0
1
出现异常
来源:https://www.nowcoder.com/questionTerminal/29498beafbcc440f972644ddf1c1f9ed
String split 这个方法默认返回一个数组,
* 如果没有找到分隔符,会把整个字符串当成一个长度为1的字符串数组 返回到结果,所以此处结果就是1
ResultSet中记录行的第一列索引为?
正确答案: C 你的答案: B (错误)
-1
0
1
以上都不是
来源:https://www.nowcoder.com/questionTerminal/0df1f90997014eb98fcf02dbcc61e0d9
ResultSet结果集读取数据的方法主要是getXXX() ,他的参数可以使整型表示第几列(是从1开始的),还可以是列名。
下面有关java classloader说法正确的是()?
正确答案: A C D 你的答案: A C D (正确)
ClassLoader就是用来动态加载class文件到内存当中用的
JVM在判定两个class是否相同时,只用判断类名相同即可,和类加载器无关
ClassLoader使用的是双亲委托模型来搜索类的
Java默认提供的三个ClassLoader是Boostrap ClassLoader,Extension ClassLoader,App ClassLoader
以上都不正确
来源:https://www.nowcoder.com/questionTerminal/7b4477d776b743fda6697ca5654fb2bc
JDK中提供了三个ClassLoader,根据层级从高到低为:
- Bootstrap ClassLoader,主要加载JVM自身工作需要的类。
- Extension ClassLoader,主要加载%JAVA_HOME%\lib\ext目录下的库类。
- Application ClassLoader,主要加载Classpath指定的库类,一般情况下这是程序中的默认类加载器,也是ClassLoader.getSystemClassLoader() 的返回值。(这里的Classpath默认指的是环境变量中配置的Classpath,但是可以在执行Java命令的时候使用-cp 参数来修改当前程序使用的Classpath)
JVM加载类的实现方式,我们称为 双亲委托模型:
如果一个类加载器收到了类加载的请求,他首先不会自己去尝试加载这个类,而是把这个请求委托给自己的父加载器,每一层的类加载器都是如此,因此所有的类加载请求最终都应该传送到顶层的Bootstrap ClassLoader中,只有当父加载器反馈自己无法完成加载请求时,子加载器才会尝试自己加载。
双亲委托模型的重要用途是为了解决类载入过程中的安全性问题。
假设有一个开发者自己编写了一个名为Java.lang.Object的类,想借此欺骗JVM。现在他要使用自定义ClassLoader来加载自己编写的java.lang.Object类。然而幸运的是,双亲委托模型不会让他成功。因为JVM会优先在Bootstrap ClassLoader的路径下找到java.lang.Object类,并载入它
jvm中垃圾回收分为scanvenge gc和full GC,其中full GC触发的条件可能有哪些
正确答案: C D E 你的答案: A C (错误)
栈空间满
年轻代空间满
老年代满
持久代满
System.gc()
来源:https://www.nowcoder.com/questionTerminal/6e9fadc9f3234551bd92d6331a14607d
垃圾收集机制:新生代、老年代、持久代
1,新生代:
(1)所有对象创建在新生代的Eden区,当Eden区满后触发新生代的Minor GC,将Eden区和非空闲Survivor区存活的对象复制到另外一个空闲的Survivor区中。
(2)保证一个Survivor区是空的,新生代Minor GC就是在两个Survivor区之间相互复制存活对象,直到Survivor区满为止。
2,老年代:
当Survivor区也满了之后就通过Minor GC将对象复制到老年代。老年代也满了的话,就将触发Full GC,针对整个堆(包括新生代、老年代、持久代)进行垃圾回收。
3,持久代:
持久代如果满了,将触发Full GC。