Java刷题
标识符的规范
-
26个字母,数字0-9,_ , $
-
数字不要开头
类与文件名
-
有一个类中的类名字前面没有public的情况下,类名和文件名没有任何约束
-
一个java文件中可以有多个类,编译后都会生成类.class文件
-
如果一个类的前面有public,那么这个类必须与文件名字一致
-
一个类中只能有一个public类,其余的类都不能有public
Java基本数据类型中,表输范围最大的是(D)
A. short
B. long
C. int
D. float
题解
byte 1个字节
short 2个字节
int 4个字节
long 8个字节
float 4个字节
double 8个字节
上述的数据类型的表述范围:从上向下一次递增
循环结构是否合法
循环条件要以表达式的方式来体现,结果是boolean类型,不能在条件里面定义变量
循环条件必须是boolean类型,int不能转成boolean
计数器如果是多个变量,用逗号分割就可以了
我们可以在循环前面加上标签,来通过break或continue来跳出当次循环或整个循环,只需要在后面指定标签名
例子:outer:for( ; ; ) break outer;
do-while循环
do{
//循环体
}while(循环条件);
局部变量初始化
下面的程序输出什么()
public class Conditional{
public static void main(String args[]){
int c;
sout(c);
sout(c++);
sout(c)
}
}
A. 0 1 1 B. 0 0 1 C. 000 D. 编译不通过
题解
正确答案为D
容易混淆答案:C这是决定错误的,因为局部变量在使用时,必须要初始化
考点
局部变量在使用之前是必须初始化的
三元运算符
在三元运算符的使用与遇见double类型与int类型在运算的时候结果会像double来转换
++与–问题
执行语句int i=1,j=++i;后i与j的值分别为()
i=2,j=2
题解
答案为2 2
因为++i的含义是在当前行i=i+1;
i++的含义是在表达式执行完毕后,i=i+1;
考点
如果多个变量定义在同一行,用逗号分隔开
注意++与–的坑
main方法是Java应用程序执行的入口点,关于main方法的方法头一下哪些是合法的?
public static void main(String[] args) 正确
public static int main(String[] args) 错误,返回类型为void❌
public void main(String[] args) 错误缺少static❌
public static void main(String args[]) 正确,这个要注意
题解
第一个与第四个都是对的
敲击psvm
为什么第四个是对的呢,那是因为在java中也可以使用 String args[]方法来定义数组,虽然是不推荐的,但是也提供了这个方式,所以第四个也是对的
考点
数组的另一种写法
- String[] args
- String args[]
死循环
在不考录极值的情况下,下面哪个循环会导致死循环、
for(int k=0;k<0;k++)
for(int k=10;k>0;k–)
for(int k=0;k<10;k–)
for(int k=0;k>0;k++)
题解
for(int k=0;k<0;k++) 因为for循环执行顺序,我们都不会进入循环,也就不会导致死循环
for(int k=10;k>0;k–) 这个循环是可以中止的
for(int k=0;k<10;k–) 此循环是死循环,但是注意不是真正意义上的死循环,因为题目上说不考虑极值的情况下,如果到属性极值也是会自动结束循环的
for(int k=0;k>0;k++) 因为for循环执行顺序,我们都不会进入循环,也就不会导致死循环
主要注意循环执行各个部分的顺序
考点
各种循环的执行顺序,以及考虑极值问题
不同数据类型加法
System.out.println(‘5’+2);的输出结果应该是(D)
A. 52 B. 7 C. 2 D. 55
题解
我们的‘5’,是单引号所以为char类型,我们需要将char类型转换为int类型,通过ASCII码表来进行转换所以为55
基础的变量定义
指出正确的表达式(B,C,D)
A. byte a=128; 128超过byte的范围所以为int类型了,无法自动转换,❌
B. Boolean b=null; 在boolean类型中只能有false和true两种类型,但是Boolean是boolean的包装类,可以为null ✔
C. long l= 0xfffL; 0x代表16进制可以保存✔
D. double d=0.9239d; 正确的,我们平时不加,是因为浮点型默认是double类型所以d可以省略✔
下面语句中在编译时候不会出现警告或错误的是(A)
A. float f=3L; 3L长度是Long类型,因为float的范围大于long所以可以直接赋值 ✔
B. char c=“c”; 双引号表示字符串,字符串无法存入字符中,因为字符串底层是数组,引用数据类型❌
C. boolean b=null; boolean只有两个false和true❌
D. int i=10.0; 10.0为默认浮点类型即为double类型,int类型无法赋值,需要强转❌
switch
下面的方法,当输入i为2的时候返回值是多少?()
public static getValue(int i){
long result=0;
switch(i){
case 1:
result=result+i;
case 2:
result=result+i*2;
case 3:
result=result+i*3;
}
return result;
}
答案:编译异常
题解
本题有两个题解一个是返回值类型不匹配,一个是switch中case没有加break的情况
在我们一般人来说,刚刚看到case这个考题点的时候就有可能会感觉知道考点了,直接就会选错
一句话:骄兵必败
注意如果case中没有添加break,那么将符合的case以及下面全部的case全部执行完毕
前++与后++
下面的代码中,执行之后i和j的值是什么
int i=1;int j;
j=i++*2

这篇博客整理了Java基础知识的刷题集,包括标识符规范、数据类型、循环结构、局部变量、三元运算符、异常处理、字符串操作等多个核心知识点,帮助读者巩固Java基础并为面试做好准备。
最低0.47元/天 解锁文章
5884

被折叠的 条评论
为什么被折叠?



