牛客网-Java题库

牛客网-Java题库

牛客刷题整理

Day1

1、JSP内置对象

session对象,request对象,application对象,response对象

2、下列代码运行结果prints:3

1
2
3
4
5
6
7
8
9
10
11
12
13
14
public class Test{
static{
int x=5;
}
static int x,y;
public static void main(String args[]){
x--;
myMethod( );
System.out.println(x+y+ ++x);
}
public static void myMethod( ){
y=x++ + ++x;
}
}

3、下面代码输出编译正确,输出”It is a account type”thrice followed by”FIXED”

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
enum AccountType
{
SAVING, FIXED, CURRENT;
private AccountType()
{
System.out.println("It is a account type");
}
}
class EnumOne
{
public static void main(String[]args)
{
System.out.println(AccountType.FIXED);
}
}

控制台输出:

1
2
3
4
It is a account type
It is a account type
It is a account type
CURRENT

Day2

1、AccessViolationException异常触发后,下列程序的输出结果为( )

1
2
3
4
5
6
7
8
9
10
11
12
13
static void Main(string[] args)  
{
try
{
throw new AccessViolationException();
Console.WriteLine("error1");
}
catch (Exception e)
{
Console.WriteLine("error2");
}
Console.WriteLine("error3");
}

控制台输出:

1
2
error2
error3

2、下面的程序将来打印什么?()

1
2
3
4
5
6
7
public class TestIncr {
public static void main(String args[]) {
int i = 0;
i = i++ + i;
System.out.println("I =" +i);
}
}

控制台输出:2

3、以下说法错误

  • java线程类优先级相同
  • Thread和Runnable接口没有区别
  • 如果一个类继承了某个类,只能使用Runnable实现线程

4、下面有关java类加载器,说法正确

  • 引导类加载器(bootstrap class loader):它用来加载 Java 的核心库,是用原生代码来实现的
  • 扩展类加载器(extensions class loader):它用来加载 Java 的扩展库
  • 系统类加载器(system class loader):它根据 Java 应用的类路径(CLASSPATH)来加载 Java 类
  • tomcat为每个App创建一个Loader,里面保存着此WebApp的ClassLoader。需要加载WebApp下的类时,就取出ClassLoader来使用

Day3

1、以下代码返回值是false

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public boolean returnTest()
{
try
{
return true;
}
catch (Exception e)
{

}
finally
{
return false;
}
}

2、假设有以下代码String s = "hello";String t = "hello";char c [ ] = {'h','e','l','l','o'};下列选项中返回false的语句是:

1
2
3
4
5
6
// 返回false
t.equals (c);
// 返回true
s.equals (t);
s==t;
t.equals (new String ("hello"));

总结

  • java数据类型分为:
    • 基本数据类型
    • 引用数据类型
  • 对于”==”:
    • 用于基本数据类型相互比较,比较二者的是否相等
    • 用于引用数据类型相互比较,比较二者地址是否相等
    • 不能用于基本数据类型与引用型比较
  • 对于”equals”:
    • 不能用于基本数据类型比较(因为这是一个方法,继承自object)
    • 用于进行对象的比较,比较二者的引用地址是否相同
  • 特殊情况:
    • 数值型基本类型和数值型类会存在自动装箱自动拆箱
    • 字符串会以常量形式存在,如果多个字符串变量值相同,则他们指向同一个地址
    • 数值类型会存在类型自动转换

3、下列流当中,属于处理流的是:

1
2
3
4
5
6
// 处理流
DatalnputStream
BufferedlnputStream
// 非处理流
FilelnputStream
lnputStream

Day4

1、Java数据库连接库JDBC用到哪种设计模式?正确答案:桥接模式

  • 选项还有:生成器、抽象工厂、单例模式

2、jdk1.8中,下面有关java 抽象类和接口的区别,说法错误的是:

  • 抽象类中可以包含非抽象的普通方法,接口中的方法必须是抽象的,不能有非抽象的普通方法
  • 接口中可以有普通成员变量,抽象类中没有普通成员变量

正确的是:

  • 抽象类可以有构造方法,接口中不能有构造方法
  • 一个类可以实现多个接口,但只能继承一个抽象类

总结

  • 抽象类
    • 抽象类中可以构造方法
    • 抽象类中可以存在普通属性,方法,静态属性和方法
    • 抽象类中可以存在抽象方法
    • 如果一个类中有一个抽象方法,那么当前类一定是抽象类;抽象类中不一定有抽象方法
    • 抽象类中的抽象方法,需要有子类实现,如果子类不实现,则子类也需要定义为抽象的
  • 接口
    • 在接口中只有方法的声明,没有方法体
    • 在接口中只有常量,因为定义的变量,在编译的时候都会默认加上public static final
    • 在接口中的方法,永远都被public来修饰
    • 接口中没有构造方法,也不能实例化接口的对象
    • 接口可以实现多继承
    • 接口中定义的方法都需要有实现类来实现,如果实现类不能实现接口中的所有方法,则实现类定义为抽象类

3、synchronized保证三大性,原子性,有序性,可见性,volatile保证有序性,可见性,不能保证原子性;选项中还有:持久性

Day5

1、以下代码执行后输出结果为:hello and dbc

1
2
3
4
5
6
7
8
9
10
11
12
13
14
public class ClassTest {
String str = new String("hello");
char[] ch = {'a','b','c'};
public void fun(String str, char ch[]){
str="world";
ch[0]='d';
}
public static void main(String[] args) {
ClassTest test1 = new ClassTest();
test1.fun(test1.str,test1.ch);
System.out.print(test1.str + " and ");
System.out.print(test1.ch);
}
}

解:

fun方法修改的都是形参,区别是一个仅仅只是修改形参的引用,另一个是通过形参修改堆值。

ch是一个数组,数组是一个对象,对象存放在堆中,fun方法区堆中修改值,改变了。

fun方法为形参赋值时,修改的是形参的引用指向,成员变量str原来引用的String值未被修改。

2、下面代码输出结果是:CBB

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
class C {
C() {
System.out.print("C");
}
}

class A {
C c = new C();

A() {
this("A");
System.out.print("A");
}

A(String s) {
System.out.print(s);
}
}

class Test extends A {
Test() {
super("B");
System.out.print("B");
}

public static void main(String[] args) {
new Test();
}
}

解:

首先new了一个子类对象,那么就要调用构造方法来初始化该子类对象。

因为Test方法已经显式调用了super("B"),所以会直接调用A的有参构造,不会再调用A的无参构造。

评论