1、关于抽象类与最终类,下列说法错误的是?
A 抽象类能被继承,最终类只能被实例化。
B 抽象类和最终类都可以被声明使用
C 抽象类中可以没有抽象方法,最终类中可以没有最终方法
D 抽象类和最终类被继承时,方法可以被子类覆盖
他的回答: A (错误)
正确答案: D
参考答案:
final修饰的类(就是最终类)不能被继承
2、已知表达式int m[]={0,1,2,3,4,5,6};下面哪个表达式的值与数组下标量最大值相等?
A m. length()
B m. length-1
C m. length()+1
D m. length+1
他的回答: D (错误)
正确答案: B
3、下列哪个对访问修饰符作用范围由大到小排列是正确的?
A private>default>protected>public
B public>default>protected>private
C private>protected>default>public
D public>protected>default>private
他的回答: D (正确)
正确答案: D
4、有六个元素6,5,4,3,2,1顺序入栈,问下列哪一个不是合法的出栈序列?()
A 5 4 3 6 2 1
B 4 5 3 1 2 6
C 3 4 6 5 2 1
D 2 3 4 1 5 6
他的回答: C (正确)
正确答案: C
5、阅读下列程序,选择哪一个是正确的输出结果
class HelloA{
public HelloA()
{
System.out.println("I’m A class ");
}
static
{
System.out.println("static A");
}
}
public class HelloB extends HelloA{
public HelloB()
{
System.out.println("I’m B class");
}
static{
System.out.println("static B");
}
public static void main (String[] args){
new HelloB();
}
}
A static A I’m A class static B I’m B class
B I’m A class I’m B class static A static B
C static A static B I’m A class I’m B class
D I’m A class static A I’m B class static B
他的回答: C (正确)
参考答案:
静态代码块先执行父类的静态代码块,在执行其它静态代码块
6、执行下列代码的输出结果是( )
public class Demo{
public static void main(String args[]){
int num = 10;
System.out.println(test(num));
}
public static int test(int b){
try
{
b += 10;
return b;
}
catch(RuntimeException e)
{
}
catch(Exception e2)
{
}
finally
{
b += 10;
return b;
}
}
}
A 10
B 20
C 30
D 40
他的回答: B (错误)
正确答案: C
参考答案:
如果finally块中有return语句的话,它将覆盖掉函数中其他return语句,所以返回30。
7、下列代码的输出结果是_____
boolean b=true?false:true==true?false:true;
System.out.println(b)
A true
B false
C null
D 空字符串
他的回答: A (错误)
正确答案: B
参考答案:
这是一个三目运算符
为真返回false,假返回true==true?false:true
8、在Java中下面Class的声明哪些是错误的?
A public abstract final class Test { abstract void method(); }
B public abstract class Test { abstract final void method(); }
C public abstract class Test { abstract void method() { } }
D public class Test { final void method() { } }
他的回答: A B D (错误)
正确答案: A B C
参考答案:
abstract和finally是不能同时出现的,抽象方法不能有具体的实现
9、下列关于构造方法的叙述中,错误的是()
A java语言规定构造方法名与类名必须相同
B java语言规定构造方法没有返回值,但不同void声明
C java语言规定构造方法不可以重载
D java语言规定构造方法只能通过new自动调用
他的回答: C D (正确)
正确答案: C D
10、下面哪些赋值语句是正确的()
A long test=012
B float f=-412
C int other =(int)true
D double d=0x12345678
E byte b=128
他的回答: A E (错误)
正确答案: A B D
参考答案:
A是8进制,D是十六进制
【**不要二】**二货小易有一个W*H的网格盒子,网格的行编号为0H-1,网格的列编号为0W-1。每个格子至多可以放一块蛋糕,任意两块蛋糕的欧几里得距离不能
等于2。
对于两个格子坐标(x1,y1),(x2,y2)的欧几里得距离为:
( (x1-x2) * (x1-x2) + (y1-y2) * (y1-y2) ) 的算术平方根
小易想知道最多可以放多少块蛋糕在网格盒子里。
输入描述:
每组数组包含网格长宽W,H,用空格分割.(1 ≤ W、H ≤ 1000)
示例1:
输入
3 2
输出
4
【解题思路】:
仔细读理解了上面的题目解读,本题就非常简单了,定义一个二维数组,array开空间并初始化,每个位置初始化为0,表示当蛋糕,a[i][j]位置放蛋糕,则可以标记处a[i][j+2]和a[i+2][j]位置不能放蛋糕,遍历一遍二维数组,标记处不能放蛋糕的位置,统计也就统计出了当蛋糕的位置数。
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
int H=sc.nextInt();
int W=sc.nextInt();
int[][] array=new int[H][W];
int count=0;
for(int i=0;i<H;i++){
for(int j=0;j<W;j++){
if(array[i][j]==0){
count++;
if(i+2<H){
array[i+2][j]=1;
}
if(j+2<W){
array[i][j+2]=1;
}
}
}
}
System.out.print(count);
}
}
【把字符串转换成整数】
将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为 0 或者字符串不是一个合法的数值则返回 0
数据范围:字符串长度满足 0<=n<=10
进阶:空间复杂度o(1) ,时间复杂度0(n)
注意:
①字符串中可能出现任意符号,出现除 +/- 以外符号时直接输出 0
②字符串中可能出现 +/- 且仅可能出现在字符串首位。
输入描述:
输入一个字符串,包括数字字母符号,可以为空
输出描述:
如果是合法的数值表达则返回该数字,否则返回0
示例1:
输入
+2147483647
1a33
输出
2147483647
0
【解题思路】:
解题思路非常简单,就是上次计算的结果*10,相当于10进制进位,然后加当前位的值。
本题的关键是要处理几个关键边界条件:
public class Solution {
public int StrToInt(String str) {
char[] array=str.toCharArray();
if(array==null||array.length==0){
return 0;
}
int flag=1;
if(array[0]=='-'){
flag=-1;
array[0]='0';
}
if(array[0]=='+'){
array[0]='0';
flag=1;
}
int sum=0;
for(int i=0;i<array.length;i++){
if(array[i]<'0'||array[i]>'9'){
sum=0;
break;
}
sum=sum*10+array[i]-'0';
}
return flag*sum;
}
}