面试刷题java

本文涵盖了Java编程的基础知识,包括字符串反转、socket通信流程、二叉树层次遍历的实现、java.lang包的特性、内存管理和垃圾回收机制、构造函数的作用、字符串比较、Servlet的初始化参数获取、对象创建的细节以及标识符规则。此外,还讨论了数组创建、List与Set的区别、访问权限控制、位运算的应用以及线程与Java虚拟机的功能。
摘要由CSDN通过智能技术生成

1,给定一个字符串比如“abcdef”,要求写个函数变成“defabc”,位数是可变的。

String a=str.length()/2;
return str.subString(a)+str.subString(0,a);

2,socket的过程

socket是进程之间来通信的。

它是“open-write/read-close”模式的实现。它的过程就和这个有关:

服务端启动,绑定端口号,等待客户端的连接请求。

客户端启动,向服务端发送连接请求,并且指定服务器的IP地址和端口号。

服务器接收请求,创建对象。继续等待其它连接。

客户端接收到响应也创建一个对象,然后该对象与服务器进行通信。

客户端和服务端在通信完成后关闭自己的Socket对象,释放资源。

3,二叉树的层次遍历

先从根节点开始,开始向左节点遍历,一层一层遍历,广搜可以实现。

利用一个队列存储每一层的元素,最开始的时候先将根节点放入队列中,然后进行循环,循环的条件就是队列不为空,先获取队列地长度,然后逐个将队列头部地元素弹出,并且将弹出地结点地儿子结点放入栈中,等到一层遍历结束,队列中地元素都是子节点地元素,也就是下一层地原素,这样就实现了树地层次遍历了

4,在运行时,由java解释器自动引入,而不用import语句引入的包是()。

java.lang

java.lang包是java语言的核心包,lang是language的缩写 java.lang包定义了一些基本的类型,包括Integer,String之类的,是java程序必备的包,有解释器自动引入,无需手动导入

5,在Java中,对于不再使用的内存资源,如调用完成的方法,“垃圾回收器”会自动将其释放。( )

        方法调用时,会创建栈帧在栈中,调用完是程序自动出栈释放,而不是gc释放,GC是针对堆内存。

6,以下哪些表达式返回为真()

1

2

3

4

String a="My field1";

String b="My field1";

    String c=new String("My field1");

    String d=new String("My field1");

 a==b    a.equals(b)    a.equals(c)

7,一个类可以有多个不同名的构造函数 (不考虑内部类的情况)。(X )

        构造函数与类名相同,在new一个对象时调用 构造函数,构造函数可以重载。

8,从以下哪一个选项中可以获得Servlet的初始化参数?

ServletConfig

通过ServletConfig接口的getInitParameter(java.lang.String name)方法

9,下面这条语句一共创建了多少个对象:String s="welcome"+"to"+360;

1

字符串字面量拼接操作是在Java编译器编译期间就执行了,在编译期间在字符串常量池中创建了"welcometo360"一个字符串

10,下列哪个选项是合法的标识符?()

_name  

first

首位不能是数字 。并且 Java关键字不能作为标识符

11,下面哪个语句是创建数组的正确语句?( )

 数组命名时名称与[]可以随意排列,但声明的二维数组中第一个中括号中必须要有值。

12,列表(List)和集合(Set)下面说法正确的是?  ( )

13,访问权限控制从最大权限到最小权限依次为:public、 包访问权限、protected和private 。(X  )

public>protected>默认(包访问权限)>private

 14,下面的程序 编译运行后,在屏幕上显示的结果是()

1

2

3

4

5

6

7

8

9

public class Test {

    public static void main(String args[]) {

        int x, y;

        x = 5 >> 2;

        y = x >>> 2;

        System.out.println(y);

    }

}

0

5的二进制是0101。

x=5>>2 (>>带符号右移)

将0101右移2位,为:0001。

y=x>>>2 (>>>无符号右移,左边空缺补充为0)

将0001右移2位,补0。结果为:0000。

所以得出答案0

15,

下面程序的运行结果:()

1

2

3

4

5

6

7

8

9

10

11

12

13

public static void main(String args[]) {

        Thread t=new Thread(){

        public void  run(){

            dianping();

             

        }

    };

    t.start();

    System.out.print("dazhong");

    }

    static void dianping(){

        System.out.print("dianping");

}

dianpingdazhong

线程未调用,所以先执行run()

16,下面描述属于java虚拟机功能的是?

17, 以下那些代码段能正确执行

A

public static void main(String args[]) {
byte a = 3;
byte b = 2;
b = a + b;
System.out.println(b);
}

B

public static void main(String args[]) {
byte a = 127;
byte b = 126;
b = a + b;
System.out.println(b);
}

C

public static void main(String args[]) {
byte a = 3;
byte b = 2;
a+=b;
System.out.println(b);
}

D

public static void main(String args[]) {
byte a = 127;
byte b = 127;
a+=b;
System.out.println(b);
}

CD

byte类型的变量在做运算时被会转换为int类型的值,故A、B左为byte,右为int,会报错;而C、D语句中用的是a+=b的语句,此语句会将被赋值的变量自动强制转化为相对应的类型。

18,局部内部类可以用哪些修饰符修饰?

A

public

B

private

C

abstract

D

final

CD

1、内部类不能被public、private、static修饰; 2、在外部类中不能创建内部类的实例; 3、创建内部类的实例只能在包含他的方法中; 4、内部类访问包含他的方法中的变量必须有final修饰; 5、外部类不能访问局部内部类,只能在方法体中访问局部内部类,且访问必须在内部类定义之后

19,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不会Java的MING

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值