华为的JAVA面试题及答案(部分)

华为的JAVA面试题及答案(部分)

 

华为
JAVA
面试题
(后记:没有想到华为的面试题就是非同一般,非常多题不是一眼就行看得出来,至少对我这种鸟来说是这样。对我个人来说,看看这种题,可能比看《Think In Java》都还要好,由于这里面有非常多的东西,都是我们平时没有太在意,或者是仅仅是懂一点皮毛而已,通过做一下这种练习,把自己不知道、不熟悉的知识点,利用这个机会好好的巩固一下。这些答案是我自己做的,有一些是从网上来的,有一部是自己做的,而且另一部份没有做完,我不敢保证都对,所以请你在引用的时候,务必通过自己核对一下。当然,我既然可以把这些答案放在这里,那说明我肯定是自己检验了一遍的,也不是那么恐怖的)
QUESTION NO: 1
public
class
Test1 {
 
   
public
static
void
changeStr(String str){
        str=
“welcome”
;
    }
   
public
static
void
main(String[] args) {
 
        String str=
“1234”
;
        changeStr(str);
        System.
out
.println(str);
    }
}
//
输出结果:
1234
//
这里尽管是一个静态方法,可是里面的变量是一个局部变量,
//
所以这里不由于是静态方法,就误觉得里面的变量也是静态变量了
 
 
QUESTION NO:2
public
class
Test2 {
   
static
boolean
foo(
char
c) {
       System.
out
.print(c);
      
return
true
;
    }
   
public
static
void
main(String[] argv) {
      
int
i = 0;
      
//for(65;88&&(i<2);67)
      
for
(foo(
‘A’
); foo(
‘B’
) && (i < 2); foo(
‘C’
)) {
           i++;
           foo(
‘D’
);
       }
    }
}
/*
What is the result?
A. ABDCBDCB
B. ABCDABCD
C. Compilation fails.
D. An exception is thrown at runtime.
//
输出结果是:
ABDCBDCB
分析:
FOR
循环里面讲究的条件要为真,与你的推断式是什么没有关系
就像这里,尽管是打印的字母,可是却不是
false
,所以能够运行
第一次进行循环:
foo(‘A’)
打印字母
A
,(注:这里不是
false
条件就默觉得
true
条件)
foo(‘B’)
打印字母
B

i=0,
比較
(i < 2)
,条件为
true
,进行循环体,
foo(‘D’)
打印
D
foo(‘C’)
打印字母
C
第二次循环:
foo(‘B’)
打印
B

i=1,
比較
(i < 2)

true
,进行循环体,
foo(‘D’)
打印
D
foo(‘C’)
打印字母
C
第三次循环:
foo(‘B’)
打印字母
B

i=2
,比較
(i < 2)

false
,退出循环,得结果
*/
 
QUESTION NO: 3
 
1. class A {
2. protected int method1(int a, int b) { return 0; }
3. }
Which two are valid in a class that extends class A? (Choose two)
A. public int method1(int a, int b) { return 0; }
B. private int method1(int a, int b) { return 0; }
C. private int method1(int a, long b) { return 0; }
D. public short method1(int a, int b) { return 0; }
E. static protected int method1(int a, int b) { return 0; }
public
class
B
extends
A{
   
/**
     
*
@param
args
     
*/
   
   
//can not reduce the visibility of the inherited method from A
   
//
即不可以使从类
A
中继续来的方法的可见性减少
  
   
//private int method1(int a, int b) { return 0; }
   
   
//This static method cannot hide the instance method from A
   
//
静态方法不可以隐藏继承于
A
的实例
   
//static protected int method1(int a, int b) { return 0; }
   
   
//
返回类型与
A
中的该方法不一致
   
//public short method1(int a, int b) { return 0; }
   
   
/**
     
*
总结:类的继承中,假设要想重载父类的方法,必需要和父类中的返回类型、可见性等等都要操作一致
     
*
否则,程序就会报错。一定遵守子类要遵从于父类的原则
     
*
而我选择的答案竟然是
private
int
method1

static
protected
int
     
*
我选择第一个的错误理由是:由于原来为保护的,假设我这里设为
public
,那么就扩展了其原来的可见性
     
*
本来原来就是对包外不可见的,如今变成对包外可见的了,所以就选择的是
private
     
*
选择第二个的错误理由是:都是保护的,这里仅仅是变成了静态的而已
     
*/
   
   
//
这里是写了一个重载方法,由于參数类型不一致,不会报错
   
private
int
method1(
int
a,
long
b) {
return
0; }
   
   
//
可见性可以增大,可是不可以缩小,正确
   
public
int
method1(
int
a,
int
b) {
return
0; }
   
   
public
static
void
main(String[] args) {
      
//
TODO
Auto-generated method stub
 
    }
}
 
QUESTION NO: 4
 
1. public class Outer{
2. public void someOuterMethod() {
3. // Line 3
4. }
5. public class Inner{}
6. public static void main( String[]argv ) {
7. Outer o = new Outer();
8. // Line 8
9. }
10. }
 
Which instantiates an instance of Inner?
A. new Inner(); // At line 3
B. new Inner(); // At line 8
C. new o.Inner(); // At line 8
D. new Outer.Inner(); // At line 8//new Outer().new Inner()
答案例如以下:
public
class
Outer {
   
public
void
someOuterMethod() {
      
// Line 3
      
new
Inner();
//
放在这里不出错
    }
   
public
class
Inner {
    }
 
   
public
static
void
main(String[] argv) {
       Outer o=
new
Outer();
      
// Line 8
      
//o
不可以被解释成为一种类型,出错
      
//new o.Inner();
      
/**
        
*
以下两种使用方法,都报以下的错误:
        
*
No
enclosing
instance
of
type
Outer
is
accessible.
        
*
Must
qualify
the
allocation
with
an
enclosing
instance
        
*
of
type
Outer(e.g.
x.new
A()
where
x
is
an
instance
of
Outer)
        
*/
   
      
//new Outer.Inner();
      
//new Inner();      
    }
}
 
QUESTION NO: 5
 
Which method is used by a servlet to place its session ID in a URL that is written to the servlet’s response output stream?
(译:那个方法是servlet用于将其session ID入在一个URL中,该URL写入servlet的响应输出流)
A. The encodeURL method of the HttpServletRequest interface.
B. The encodeURL method of the HttpServletResponse interface.
C. The rewriteURL method of the HttpServletRequest interface.
D. The rewriteURL method of the HttpServletResponse interface.
 
 
QUESTION NO: 6
 
Which two are equivalent? (Choose two)
A. <%= YoshiBean.size%>
B. <%= YoshiBean.getSize()%>
C. <%= YoshiBean.getProperty(“size”)%>
D. <jsp:getProperty id=”YoshiBean” param=”size”/>
E. <jsp:getProperty name=”YoshiBean” param=”size”/>
F. <jsp:getProperty id=”YoshiBean” property=”size”/>
G. <jsp:getProperty name=”YoshiBean” property=”size”/>
 
QUESTION NO: 7
 
Which of the following statements regarding the lifecycle of a session bean are correct?
 
1. java.lang.IllegalStateException is thrown if SessionContext.getEJBObject() is invoked when a stateful session bean instance is passivated.
 
2. SessionContext.getRollbackOnly() does not throw an exception when a session bean with bean-managed transaction demarcation is activated.
 
3. An exception is not thrown when SessionContext.getUserTransaction() is called in the afterBegin method of a bean with container-managed transactions.
 
4. JNDI access to java:comp/env is permitted in all the SessionSynchronization methods of a stateful session bean with container-managed transaction demarcation.
 
5. Accessing resource managers in the SessionSynchronization.afterBegin method of a stateful session bean with bean-managed transaction does not throw an exception.
 
 
 
 
 
第二部分:概念题
 
1.               描写叙述Struts体系结构?相应各个部分的开发工作主要包含哪些?
Struts 是MVC的一种实现,它将 Servlet和 JSP 标记(属于 J2EE 规范)用作实现的一部分。Struts继承了MVC的各项特性,并依据J2EE的特点,做了对应的变化与扩展。Struts的体系结构与工作原理例如以下图2所看到的:
 
<span>华为的JAVA面试题及答案(部分)</span>
  
1
)模型(
Model
)  
  在
Struts
的体系结构中,模型分为两个部分:系统的内部状态和能够改变状态的操作(事务逻辑)。内部状态通常由一组
Actinform Bean
表示。依据设计或应用程序复杂度的不同,这些
Bean
能够是自包括的并具有持续的状态,或仅仅在须要时才获得数据(从某个数据库)。大型应用程序通常在方法内部封装事务逻辑(操作),这些方法能够被拥有状态信息的
bean
调用。比方购物车
bean
,它拥实用户购买商品的信息,可能还有
checkOut()
方法用来检查用户的信用卡,并向仓库发定货信息。小型程序中,操作可能会被内嵌在
Action
类,它是
struts
框架中控制器角色的一部分。当逻辑简单时这种方法非常适合。建议用户将事务逻辑(要做什么)与
Action
类所扮演的角色(决定做什么)分开。  
  
2
)视图(
View
)  
  视图主要由
JSP
建立,
struts
包括扩展自己定义标签库(
TagLib
),能够简化创建全然国际化用户界面的过程。眼下的标签库包括:
Bean Tags

HTML tags

Logic Tags

Nested Tags
以及
Template Tags
等。
  
  
3
)控制器(
Controller
)  
  在
struts
中,主要的控制器组件是
ActionServlet
类中的实例
servelt
,实际使用的
servlet
在配置文件里由一组映射(由
ActionMapping
类进行描写叙述)进行定义。对于业务逻辑的操作则主要由
Action

ActionMapping

ActionForward
这几个组件协调完毕的,当中
Action
扮演了真正的业务逻辑的实现者,
ActionMapping

ActionForward
则指定了不同业务逻辑或流程的执行方向。
struts-config.xml
文件配置控制器。
 
2.
    XML包含哪些解释技术,差别是什么?
包含:DOM(Document Object Modal)文档对象模型,SAX(Simple API for XML)。DOM是一次性将整个文档读入内存操作,假设是文档比較小,读入内存,能够极大提高操作的速度,但假设文档比較大,那么这个就吃力了。所以此时SAX应用而生,它不是一次性的将整个文档读入内存,这对于处理大型文档就比較就力了
 
3.
    JSP有哪些内置对象和动作?它们的作用各自是什么?
JSP共同拥有下面9种基本内置组件:
request 用户端请求,此请求会包括来自GET/POST请求的參数
response 网页传回用户端的回应
pageContext 网页的属性是在这里管理
session 与请求有关的会话期
application servlet 正在运行的内容
out 用来传送回应的输出
config servlet的构架部件
page JSP网页本身
exception 针对错误网页,未捕捉的例外
经常使用的组件:request、response、out、session、application、exception
 
 
 4、SQL问答题
 
SELECT * FROM TABLE
 
 
SELECT * FROM TABLE
 
WHERE NAME LIKE ‘%%’ AND ADDR LIKE ‘%%’
 
AND (1_ADDR LIKE ‘%%’ OR 2_ADDR LIKE ‘%%’
 
OR 3_ADDR LIKE ‘%%’ OR 4_ADDR LIKE ‘%%’ )
 
的检索结果为何不同?
答:
 

   

我做了一下測试,在ACCESS里面,用它的查询,这样会和在MYSQL得到不同的结果,各位最好还是试试,我昨天就是在ACCESS里用SQL查询,得到的结果为空,就是没有记录;而在MYSQL里面,条件为空的记录不显示,其他的都显示。

 
 
5、SQL问答题
 
表结构:
 
1、
    表名:g_cardapply
字段(字段名/类型/长度):
g_applyno
        varchar   8;//申请单号(keyword)
g_applydate
     bigint     8;//申请日期
g_state
        varchar     2;//申请状态
 
2、
    表名:g_cardapplydetail
字段(字段名/类型/长度):
g_applyno
        varchar     8;//申请单号(keyword)
g_name
        varchar     30;//申请人姓名
g_idcard
        varchar     18;//申请人身份证号
g_state
        varchar     2;//申请状态
当中,两个表的关联字段为申请单号。
 
题目:
1、
    查询身份证号码为440401430103082的申请日期
Select g_cardapply.g_ applydate from g_cardapply, g_cardapplydetail where g_cardapplydetail.g_idcard=’’ and g_cardapply.g_applyno=g_cardapplydetail.g_applyno
2
   
查询同一个身份证号码有两条以上记录的身份证号码及记录个数
 
3、
    将身份证号码为440401430103082的记录在两个表中的申请状态均改为07
Update g_cardapply. g_state=’07’, g_cardapplydetail .g_state
4、
    删除g_cardapplydetail表中全部姓李的记录
 
————————******測试******—————–
 
 create database mianshi
 
use mianshi;
 
create table g_cardapply(
 g_applyno varchar(8),
 g_applydate bigint,
 g_state varchar(20)
)
go
create table g_cardapplydetail(
 g_applyno varchar(8),
 g_name varchar(30),
 g_idcard varchar(18),
 g_state varchar(20)
)
 
1、select a1.g_applydate from g_cardapply as a1 inner join g_cardapplydetail a2 on
a1.g_applyno=a2.g_applyno where a2.g_idcard=”123″ ;
 
2、select g_idcard,count(g_idcard) from g_cardapplydetail
 group by g_idcard having count(g_idcard)>=2;
 
3、update g_cardapply set g_state=603 from g_cardapply as g_d inner join g_cardapplydetail as g_c on
g_d.g_applyno=g_c.g_applyno and g_idcard=’123′;更新第一个表的g_state
   
 
update g_cardapplydetail set g_state=603 where g_idcard=’123′;
 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/119064.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • asp.net弹出层实例

    asp.net弹出层实例

  • c语言枚举类型enum例子_枚举是什么意思

    c语言枚举类型enum例子_枚举是什么意思在实际的编程应用中,有的变量只有几种可能的取值,譬如说一个星期的七种可能,性别的两种可能等等。C语言为这种类型的变量的定义提供了enum关键字。要使用枚举类型的变量,首先需要先定义一个枚举类型名,然后再声明该变量是枚举类型的例如:enumweekday{\\该语句定义了一个`枚举类型`MONDAY,TUSEDAY,WEDNESDAY,…

    2022年10月22日
  • 软件激活成功教程官网_激活成功教程软件资源

    软件激活成功教程官网_激活成功教程软件资源[转]国内软件激活成功教程下载网站列表!Postedon2005-04-2511:17Laser.NET阅读(872)评论(1)编辑收藏国内最有信誉的激活成功教程下载网站,总能让你有意外收获。18DD资源中心:http://www.18dd.com7年:http://www.7year.com/热战软件园:http://soft.rezhan.comwqsky:http…

    2022年10月11日
  • ibm x201 怎么清理内部_ThinkPad X201拆解,联想Thinkpad X201拆机图解

    ibm x201 怎么清理内部_ThinkPad X201拆解,联想Thinkpad X201拆机图解1.jpg(25.79KB,下载次数:2552)2010-6-120:13上传ThinkPadX201掌托,没有防滚架,这个掌托就显得很软。电磁屏蔽做得很用心。2.jpg(39.16KB,下载次数:2556)2010-6-120:13上传ThinkPadX201掌托特写,可以看到掌托塑料件是MITSUBISHI(三菱)代工的,富士通高端笔记本的塑料件也由三菱代工,一句话…

  • 测试常见面试题之场景测试回答策略(如电梯该怎么测等)

    测试常见面试题之场景测试回答策略(如电梯该怎么测等)1.概述这类问题是考察面试者测试思路和测试策略的常见问题,主要要根据软件质量的六个特性(功能性、易用性、效率、可靠性、可维护性、可移植性)来进行思考,进而需要结合实际测试软件时考虑的角度,比如功能方面、接口方面、性能方面、维护难度方面、兼容性方面、界面或者说外观方面(比如本地化的一些内容以及界面美观等等)、操作难度或者说易用性方面、可靠度(比如应对异常情况的能力)方面、安全性方面等,根据这些角度结合具体要测试的内容进行思考并作答,例如,在下例中,分别从功能、界面、易用、兼容、安全、性能这六个角度结合业

  • vue webpak版本 查看_vue版本以及webpack版本

    vue webpak版本 查看_vue版本以及webpack版本vue作为大前端的主流框架更新速度也是极快。那么vue的更新会有哪些问题呢?最近在搭建vue框架的时候发现由于vue版本的快速迭代已经与原本般配的webpack产生了隔阂。webpack作为大前端的主流打包工具如果与之不兼容,会有越来越多的麻烦事情。经过反复测试,得出结论一篇vue与webpack最佳拍档组合版本号公布。npminitnpminstallwebpack@3.10.0v…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号