Java面试题

1.下面哪个方法与Applet的显示无关(A)

A).draw
B).paint
C).repaint
D).update

解释
Applet显示相关的方法主要有3个。paint( )方法,具体执行Applet的绘制,定义为:public void paint(Graphics g)。update( )方法,定义为:public void update(Graphics g),主要用于更新Applet的显示。repaint( )方法,定义为:public void repaint( ),主要用于Applet的重新显示,它调用update( )方法实现对Applet的更新。而 draw( )方法与显示无关
2.下列Java代码中的变量a、b、c分别在内存的____存储区存放。©

class A {
    private String a = “aa”;
    public boolean methodB() {
        String b = “bb”;
        final String c = “cc”;
    }
}

A) 堆区、堆区、堆区
B)堆区、栈区、堆区
C) 堆区、栈区、栈区
D) 堆区、堆区、栈区
E)静态区、栈区、堆区
F) 静态区、栈区、栈区

解释
堆区:只存放类对象,线程共享;
方法区:又叫静态存储区,存放class文件和静态数据,线程共享;
栈区:存放方法局部变量,基本类型变量区、执行环境上下文、操作指令区,线程不共享;
3.对于构造方法,下列叙述正确的是(ACD )

A).构造方法的优先级一般比代码块低。
B).构造方法的返回类型只能是void型。
C).构造方法的主要作用是完成对类的对象的初始化工作。
D).一般在创建新对象时,系统会自动调用构造方法。

解释
A:静态成员变量或静态代码块>main方法>非静态成员变量或非静态代码块>构造方法
B:think in java中提到构造器本身并没有任何返回值。
C: 构造方法的主要作用是完成对类的对象的初始化工作。
D: 一般在创建(new)新对象时,系统会自动调用构造方法。
4.执行下列代码后,哪些结论是正确的(B)?
String[] s=new String[10];

s[0]为未定义
s[9]为null
s.length为0
s[10]为” “

解释
默认初始化,基本类型是 0 ,布尔类型是 false ,引用类型为null
所以这里为null
5.一般情况下,以下哪个选项不是关系数据模型与对象模型之间匹配关系?

表对应类
记录对应对象
表的字段对应类的属性
表之间的参考关系对应类之间的依赖关系

解释
一般关系数据模型和对象数据模型之间有以下对应关系:表对应类,记录对应对象,表的字段对应类的属性

6.经过强制类型转换以后,变量a, b的值分别为( )short a = 128; byte b = (byte) a;(B)

128  127
128  -128
128  128
编译错误

解释

*1、Java中用补码形式表示
2、第一位正负位,1表示负,0表示正。
3、原码:一个数的二进制表示。
3的原码00000011 -3的 原码 10000011
4、反码:负数原码按位取反(符号位不变)。正数原码本身。
3的反码00000011 -3的反码11111100
5、补码:正数是原码本身。负数反码加1。


int占4个字节,32位
byte占1个字节,8位


在内存中表示形式( 注意java中是以补码表示一个数,所以表示形式是补码,不是原码! ):
int a = 3 00000000 00000000 00000000 00000011 (强转byte时前面24个0被截断)
byte b = 3 00000011
int a = -3 11111111 11111111 11111111 11111101 (强转byte时前面24个1被截断)


已知负数的补码,求负数:
补码-1=反码,反码按位取反=该负数绝对值
已知负数,求负数的补码:
1、负数原码除了符号位,按位取反(不含符号位),加1。


例子:
java int 128转为byte,值:
128为正数,补码为10000000(前面24个0省略),变成byte,只剩下10000000(byte为1个字节),因为开头是1,所以为负数。即1个负数的补码是10000000。反码是01111111,原码是1000000。是128.因为是负数,所以是-128。*

7.下面有关forward和redirect的描述,正确的是() ?BCD

A)forward是服务器将控制权转交给另外一个内部服务器对象,由新的对象来全权负责响应用户的请求
B)执行forward时,浏览器不知道服务器发送的内容是从何处来,浏览器地址栏中还是原来的地址
C)执行redirect时,服务器端告诉浏览器重新去请求地址
D)forward是内部重定向,redirect是外部重定向
E)redirect默认将产生301 Permanently moved的HTTP响应

解释
1.从地址栏显示来说
forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器.浏览器根本不知道服务器发送的内容从哪里来的,所以它的地址栏还是原来的地址.
redirect是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址.所以地址栏显示的是新的URL.

2.从数据共享来说
forward:转发页面和转发到的页面可以共享request里面的数据.
redirect:不能共享数据.

3.从运用地方来说
forward:一般用于用户登陆的时候,根据角色转发到相应的模块.
redirect:一般用于用户注销登陆时返回主页面和跳转到其它的网站等.

4.从效率来说
forward:高.
redirect:低.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值