2021年10月12日 java1

考点1:

下列语句序列执行后,输出结果是()

1
2
3
4
5
6
7
public class ex{
public static void main(String[]args){
int a=13;
a=a/5
System.out.println(a);
}
}
  • A 1
  • B 2
  • C 3
  • D 4
显示答案/隐藏答案正确答案: B

a是int类型,13/5得到一个浮点类型,浮点类型转成整数类型的原则是,不四舍五入,直接截断小数点后的部分.

整数相除之后还是整数,会丢失掉小数部分的数值。

13/5取商为2,然后再赋值给a,所有输出a=2。

考点2:

设有下面一段代码:

1
2
3
4
5
6
7
8
class  Student  extends  Person {
long id; // 身份证号
int score; // 入学总分
String name; // 姓名
int getScore(){
return score;
}
}

问:类 Person 和类 Student 的关系是( )。

  • A 包含关系
  • B 继承关系
  • C 关联关系
  • D 无关系,上述类定义有语法错误
显示答案/隐藏答案正确答案: B

考点3:

下列不属于类及类成员的访问控制符是:( )

  • A public
  • B private
  • C static
  • D protected
显示答案/隐藏答案正确答案: C
作用域 当前类 同包 子类 其他
Public
Protected ×
Default × ×
Private × × ×

考点4:

以下程序会输出什么

1
2
3
4
5
int a =100,b=50,c=a---b,d=a---b;
System.out.println(a);
System.out.println(b);
System.out.println(c);
System.out.println(d);
  • A 100 48 48 49
  • B 100 49 48 52
  • C 98 50 50 49
  • D 98 50 50 48
显示答案/隐藏答案正确答案: C
1
2
c=a---b 等于c=a-- -b 等于c=100-50=50,a=99
b=a---b 等于c=a-- -b 等于d=99-50=49,a=98

综上得到:

1
a=98,b=50,c=50,d=49

https://www.cnblogs.com/antineutrino/p/3301843.html

Java运算符优先级

优先级 运算符 结合性
1 ()[]{} 从左向右
2 !+-~++-- 从右向左
3 */% 从左向右
4 +- 从左向右
5 <<>>、>>> 从左向右
6 <、<=、>、>=、instanceof 从左向右
7 ==、!= 从左向右
8 & 从左向右
9 ^ 从左向右
10 &#124; 从左向右
11 && 从左向右
12 &#124;&#124; 从左向右
13 ?: 从右向左
14 =+=-=*=/=、&=、&#124;=、^=、~=<<=>>=、>>>= 从右向左

http://c.biancheng.net/view/794.html

运算符的结合性

许多操作符的优先级都是相同的。这时,操作符的结合性就开始发挥作用了。在表达式中如果有几个优先级相同的操作符,结合性就起仲裁的作用,由它决定哪个操作符先执行。先执行,可以看做是加上括号

比如,右结合(从右到左),那就是,把右边的运算用括号先括起来,再与左边的进行计算,这样自然是先执行右边的了。 比如

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
int a,b=1,c=2;
a=b=c;
```
这里'='的结合性是从右到左。 故a=b=c; 可变为a=(b=c); 即a=2

# 考点5:
通过HttpServletRequest. getParameter获取的参数.
- A 总是采用UTF-8编码
- B 总是采用lS08859-1编码
- C 由客户端浏览器和Web容器配置共同决定编码
- D 由服务器所在的操作系统决定编码

<details><summary>显示答案/隐藏答案</summary>正确答案: C</details>



选C
1、浏览器根据jsp页面开头声明的编码方式对request中参数编码;
2、tomcat默认解码是ISO-8859-1
但是我们可以显示指定解码格式
- 通过调用request.setCharacterEncoding("UTF-8"),
- 或者修改tomcat的配置文件server.xml中的编码,添加uriEncoding属性。

# 考点6:
```java
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");
}
}

下面结果输出是?

  • A The output is “Equal”
  • B The output in “Not Equal”
  • C An error at line 5 causes compilation to fall.
  • D The program executes but does not print a message.
显示答案/隐藏答案正确答案: C

这个题考查两个知识点。
1、Java中,赋值是有返回值的,赋什么值,就返回什么值。比如这题,x=y,返回y的值,所以括号里的值是1。
2、Java跟C的区别,C中赋值后会与0进行比较,如果大于0,就认为是true;而Java不会与0比较,而是直接把赋值后的结果放入括号

这题,我忽略了第二点。

考点8:

下面的输出结果是什么?

1
2
3
4
5
6
7
8
9
10
11
12
13
public class Demo {
public static void main(String args[])
{
String str=new String("hello");
if(str=="hello")
{
System.out.println("true");
}
else {
System.out.println("false");
}
}
}
  • A true
  • B false
显示答案/隐藏答案正确答案: B

==判断的是对象引用地址是否相同,

1
String str1 = new String("hello");

这种方式创建的字符串,和正常创建对象一样,保存在堆区。

1
String str3 = "hello";

这种方式创建的字符串,保存在字符串常量区。

考点9:

以下代码段执行后的输出结果为

1
2
3
4
5
6
7
public class Test {
public static void main(String args[]) {
int x = -5;
int y = -12;
System.out.println(y % x);
}
}
  • A -1
  • B 2
  • C 1
  • D -2
显示答案/隐藏答案正确答案: D

无论是正数还是负数,在取余运算时都有:

1
被除数=商×除数+余数

,所以-12=2×(-5)+(-2),-12是被除数,-5是除数,2是商,余数是-2。

%是取余运算最后符号和第1个值一样,
Math.floorMod()是取模,最后符号和第2个值一样

1
2
3
4
5
6
7
8
9
System.out.println(-12 % -5);
System.out.println(-12 % 5);
System.out.println(12 % -5);
System.out.println(12 % 5);
System.out.println("===============================");
System.out.println(Math.floorMod(-12, -5));
System.out.println(Math.floorMod(-12, 5));
System.out.println(Math.floorMod(12, -5));
System.out.println(Math.floorMod(12, 5));

运行结果:

1
2
3
4
5
6
7
8
9
-2
-2
2
2
===============================
-2
3
-3
2

%是取余数,结果的符号要看被除数,也就是与第一个数同符号。

考点10:

下面哪些具体实现类可以用于存储键,值对,并且方法调用提供了基本的多线程安全支持:( )

  • A java.util.ConcurrentHashMap
  • B java.util.Map
  • C java.util.TreeMap
  • D java.util.SortMap
  • E java.util.Hashtable
  • F java.util.HashMap
显示答案/隐藏答案正确答案: AE

考点11:

character流和byte流的区别不包括()

  • A 每次读入的字节数不同
  • B 前者带有缓冲,后者没有。
  • C 前者是字符读入,后者是字节读入。
  • D 二者没有区别,可以互换。
显示答案/隐藏答案正确答案: ABD

做错两次了,这个不包括,有点绕,题目改成 character流和byte流的说法错误的是,这样简单点