2021年10月13日 java3
考点1:int除法
下列语句序列执行后,输出结果是()
1 | public class ex{ |
- A 1
- B 2
- C 3
- D 4
显示答案/隐藏答案
正确答案: Ba是int类型,13/5得到一个浮点类型,浮点类型转成整数类型的原则是,不四舍五入,直接截断小数点后的部分.
整数相除之后还是整数,会丢失掉小数部分的数值。
13/5取商为2,然后再赋值给a,所有输出a=2。
考点2:继承
设有下面一段代码:
1 | class Student extends Person { |
问:类 Person 和类 Student 的关系是( )。
- A 包含关系
- B 继承关系
- C 关联关系
- D 无关系,上述类定义有语法错误
显示答案/隐藏答案
正确答案: B考点3:访问控制符
下列不属于类及类成员的访问控制符是:( )
- A public
- B private
- C static
- D protected
显示答案/隐藏答案
正确答案: C作用域 | 当前类 | 同包 | 子类 | 其他 |
---|---|---|---|---|
Public | √ | √ | √ | √ |
Protected | √ | √ | √ | × |
Default | √ | √ | × | × |
Private | √ | × | × | × |
考点4:自增,自减运算符
以下程序会输出什么
1 | int a =100,b=50,c=a---b,d=a---b; |
- A 100 48 48 49
- B 100 49 48 52
- C 98 50 50 49
- D 98 50 50 48
显示答案/隐藏答案
正确答案: C1 | c=a---b 等于c=a-- -b 等于c=100-50=50,a=99 |
综上得到:
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 | | | 从左向右 |
11 | && | 从左向右 |
12 | || | 从左向右 |
13 | ?: |
从右向左 |
14 | = 、+= 、-= 、*= 、/= 、&=、|=、^=、~= 、<<= 、>>= 、>>>= |
从右向左 |
http://c.biancheng.net/view/794.html
运算符的结合性
许多操作符的优先级都是相同的。这时,操作符的结合性就开始发挥作用了。在表达式中如果有几个优先级相同的操作符,结合性就起仲裁的作用,由它决定哪个操作符先执行。先执行,可以看做是加上括号。
比如,右结合(从右到左),那就是,把右边的运算用括号先括起来,再与左边的进行计算,这样自然是先执行右边的了。 比如
1 | int a,b=1,c=2; |
这里’=’的结合性是从右到左。 故a=b=c; 可变为a=(b=c); 即a=2。
考点5:Servlet
通过HttpServletRequest. getParameter获取的参数.
- A 总是采用UTF-8编码
- B 总是采用lS08859-1编码
- C 由客户端浏览器和Web容器配置共同决定编码
- D 由服务器所在的操作系统决定编码
显示答案/隐藏答案
正确答案: C选C
1、浏览器根据jsp页面开头声明的编码方式对request中参数编码;
2、tomcat默认解码是ISO-8859-1,
但是我们可以显示指定解码格式
- 通过调用request.setCharacterEncoding(“UTF-8”),
- 或者修改tomcat的配置文件server.xml中的编码,添加uriEncoding属性。
考点6:比较运算符 赋值运算符
1 | public class IfTest{ |
下面结果输出是?
- 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 | public class Demo { |
- A true
- B false
显示答案/隐藏答案
正确答案: B==判断的是对象引用地址是否相同,
1 | String str1 = new String("hello"); |
这种方式创建的字符串,和正常创建对象一样,保存在堆区。
1 | String str3 = "hello"; |
这种方式创建的字符串,保存在字符串常量区。
考点9:负数求余运算
以下代码段执行后的输出结果为
1 | public class Test { |
- A -1
- B 2
- C 1
- D -2
显示答案/隐藏答案
正确答案: D无论是正数还是负数,在取余运算时都有:
1 | 被除数=商×除数+余数 |
,所以-12=2×(-5)+(-2),-12是被除数,-5是除数,2是商,余数是-2。
%
是取余运算最后符号和第1个值一样,Math.floorMod()
是取模,最后符号和第2个值一样
1 | System.out.println(-12 % -5); |
运行结果:
1 | -2 |
%
是取余数,结果的符号要看被除数,也就是与第一个数同符号。
考点10:多线程安全支持的Map
下面哪些具体实现类可以用于存储键,值对,并且方法调用提供了基本的多线程安全支持:( )
- 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流的说法错误的是,这样简单点