记录了一次JAVA笔试的部分题目及自己后续的理解
2021-04-10 23:30
标签:字母 linux span boolean new t 正确答案 格式 影响 sub 笔试一个小时一共37个题,有单选多选最后2题程序设计。没有正确答案所以是按照我的理解写的,有问题希望各位大佬指出。 最后两个程序设计题1.整数翻转。2.合并数组。 总结:题目比较基础,做起来还算顺利,但在spring、epoll和select、会话跟踪、linux命令、dns上比较薄弱,后续会加强学习这些方面的知识。 记录了一次JAVA笔试的部分题目及自己后续的理解 标签:字母 linux span boolean new t 正确答案 格式 影响 sub 原文地址:https://www.cnblogs.com/taozi1115402474/p/13363970.html//本题考察的是==和equals的区别,和string常量
String x = "string";
String y = "string";
String z = new String("string");
System.out.println(x == y);//==号比较的是地址,但String类型常量存放在常量池中,取得时候直接去常量池取出数据比较
System.out.println(x == z);//z由于是一个引用对象,指向的是堆内存,所以不同
System.out.println(x.equals(y));//equals跟==的区别就是一个是比较值,一个是比较地址
System.out.println(x.equals(z));
//这份代码的返回结果为True False True True
//本题考察的是类型转换
public static void main(String[] args) {
class Foo {
public int i = 3;
}
Object o = (Object) new Foo();//根据Foo来创建一个Object对象。请注意此时o是Object类型的引用,不能根据o来访问Foo对象的field,比如这里的i
Foo foo = (Foo) o;//将Object对象转型为Foo类型,并赋给引用foo。请注意这里并没有生成新对象,所以o==foo的结果是true。但是foo是一个Foo类型的引用,所以可以直接使用foo.i的方式来访问Foo对象的field
System.out.println(foo.i);
}
//这份代码的返回结果为3
//本题考察的是包装类,==和equals的区别
Integer x = 128;
Integer y = 128;
Integer a = new Integer(128);
Integer b = new Integer(128);
System.out.println(x == y);//常量池[-128,127],若Integer的值在范围内则会直接返回常量池中的值,否则会new Integer()出一个对象
System.out.println(a == b);//比较的是地址不是值
System.out.println(x.equals(a));
//这份代码的返回结果为False False True
//本题考察的是try/catch/finally和return的关系
int add() {
int a = 10;
try {
System.out.println(a / 0);//1.抛出异常
a += 10;
} catch (ArithmeticException e) {//2.catch到异常,此时a=20,执行return
a += 10;
return a;
} finally {//3.执行return后暂存返回的内容后接着执行finally,最后return
a += 10;
}
return a;
}
//这份代码的返回结果为20
//本题考察的知识点如上
public static void main(String[] args) {
AtomicInteger A = new AtomicInteger(10);
System.out.println(getA(A).get());
}
private static AtomicInteger getA(AtomicInteger A) {//传入引用,返回引用
try {
System.out.println(A.get() / 0);//1.抛出异常
A.addAndGet(10);
} catch (ArithmeticException e) {//2.catch住,A=20,return
A.addAndGet(10);
return A;
} finally {//3.执行return后会暂存返回的内容后接着执行finally,最后return,这里因为返回的内容是引用,所以出现finally代码块中的修改有效
A.addAndGet(10);
}
return A;
}
//这份代码的返回结果为30
//总结try/catch/finally和return的关系
//try和catch中的return先于finally,若finally块对返回值为引用类型的进行修改则会影响return的结果
//1.try中有return
//2.catch中有return
//3.finally中有return,注意finally中的return会覆盖try和catch的return,不建议写
//本题考察的是格式化日期
public static void main(String[] args) {
Date date = new Date();
System.out.printf("%tD%n", date);//首先%n和\n都是换行,但%n可以根据windows \r\n和linux \n而选择不同的换行方式
}
//这份代码的返回结果为07/22/20
//使用printf格式化日期,使用两个字母表示,它以%t开头并以下面的一个字母结尾
//c 包括全部日期和时间信息 星期三 七月 22 17:25:51 CST 2020
//F "年-月-日"格式 2020-07-22
//D "月/日/年"格式 07/22/20
//r "HH:MM:SS PM"格式(12时制)05:25:51 下午
//T "HH:MM:SS"格式(24时制)17:25:51
//R "HH:MM"格式(24时制)17:28
//本题考察的是TreeSet中的subSet方法
public static void main(String[] args) {
TreeSet
文章标题:记录了一次JAVA笔试的部分题目及自己后续的理解
文章链接:http://soscw.com/index.php/essay/74015.html