我的日常

登录/注册
您现在的位置:论坛 资料库 JAVA开发 > java 华为笔试题
总共48087条微博

动态微博

查看: 1864|回复: 0

java 华为笔试题

[复制链接]
admin    

1244

主题

544

听众

1万

金钱

管理员

  • TA的每日心情

    2021-2-2 11:21
  • 签到天数: 36 天

    [LV.5]常住居民I

    管理员

    跳转到指定楼层
    楼主
    发表于 2014-10-10 15:18:54 |只看该作者 |倒序浏览
    单项选择题

    1.java是从()语言改进重新设计。

    A.Ada B.C++ C.Pasacal D.BASIC

    答案:B

    2.下列语句哪一个正确()

    A. Java程序经编译后会产生machine code

    B. Java程序经编译后会产生byte code

    C. Java程序经编译后会产生DLL

    D.以上都不正确

    答案:B

    Java字节码是Java源文件编译产生的中间文件
    java虚拟机是可运行java字节码的假想计算机 java的跨平台性也是相对与其他编程语言而言的 先介绍一下c语言的编译过程吧先是C语言源程序

    也就是。c的文件经过C编译程序编译后生成windows可执行文件exe文件然后在windows中执行。。再介绍java的编译过程先是java源程序 扩展名

    为。java的文件由java编译程序将java字节码文件 就是class文件然后在java虚拟机中执行。机器码是由CPU来执行的。Java编译后是字节码,

    电脑只能运行机器码。Java在运行的时候把字节码变成机器码。C/C++在编译的时候直接编译成机器码








    3.下列说法正确的有()

    A. class中的constructor不可省略

    B. constructor必须与class同名,但方法不能与class同名

    C. constructor在一个对象被new时执行

    D.一个class只能定义一个constructor

    答案:C 

    4.提供Java存取数据库能力的包是()

    A.java.sql B.java.awt C.java.lang D.java.swing

    答案:A

    5.下列运算符合法的是()

    A.&& B.<> C.if D.:=

    答案:A

    6.执行如下程序代码

    a=0;c=0;

    do{

    --c;

    a=a-1;

    }while(a>0);

    后,C的值是()

    A.0 B.1 C.-1 D.死循环

    答案:C


    7.下列哪一种叙述是正确的()

    A. abstract修饰符可修饰字段、方法和类

    B.抽象方法的body部分必须用一对大括号{ }包住

    C.声明抽象方法,大括号可有可无

    D.声明抽象方法不可写出大括号

    答案:D

    abstract修饰符用来修饰类和成员方法
    1:用abstract修饰的类表示抽象类,抽象类位于继承树的抽象层,抽象类不能被实例化。
    2:用abstract修饰的方法表示抽象方法,抽象方法没有方法体。抽象方法用来描述系统具有什么功能,但不提供具体的实现。

    Abstract是Java中的一个重要关键字,可以用来修饰一个类或者一个方法。
    修饰一个方法时,表示该方法只有特征签名(signature),没有具体实现,而是把具体实现留给继承该类的子类。一个类中只要有一个abstract

    方法,那么这个类就要被声明为abstract,但是其中可以有非abstract方法。
    abstract类可以使得类的设计者能够创建方法的原型,而真正的实现留给使用这个类的人。

    8.下列语句正确的是()

    A.形式参数可被视为local variable

    B.形式参数可被字段修饰符修饰

    C.形式参数为方法被调用时,真正被传递的参数

    D.形式参数不可以是对象

    答案:A

    解答:
    ? ? 形式参数是指在函数名后面的小括号里定义的变量, 用于接受来自调用函数的
    参数。形式参数在函数内部可以象其它局部变量那样来使用。
    ? ? 例如:
    ? ? puthz(int x, int y, int color, char *p)
    ? ? {
    ? ? ? ? ? int i, j, k;? /*定义局部变量*/
    ? ? ? ? ? <程序体>
    ? ? }
    ? ? 其中x, y, color, *p为函数的形式参数, 不需要再进行说明就可在该函数内
    直使用。

    9.下列哪种说法是正确的()
    A.实例方法可直接调用超类的实例方法

    B.实例方法可直接调用超类的类方法

    C.实例方法可直接调用其他类的实例方法

    D.实例方法可直接调用本类的类方法
    答案:D

    解答:

    类方法就是静态方法。static? ? 其它的就是实例方法

    ? ? ? 实例方法可以对当前对象的实例变量进行操作,也可以对类变量进行操作,但类方法不能访问实例变量。实例方法必须由实例对象来调用

    ,而类方法除了可由实例对象调用外,还可以由类名直接调用。另外,在类方法中不能使用 this 或 super。
    关于类方法的使用,有如下一些限制:
    1 在类方法中不能引用对象变量。
    2 在类方法中不能使用super、this关键字。
    3 类方法不能调用类中的对象方法。
    与类方法相比,实例方法几乎没有什么限制:
    1 实例方法可以引用对象变量(这是显然的),也可以引用类变量。
    2 实例方法中可以使用super、this关键字。
    3 实例方法中可以调用类方法。


    二、

    多项选择题
    1.Java程序的种类有()
    A.类(Class) B.Applet C.Application D.Servlet
    Java程序的种类有:
    (a)内嵌于Web文件中,由浏览器来观看的_Applet
    (b)可独立运行的 Application
    (c)服务器端的 Servlets

    2.下列说法正确的有()
    A.环境变量可在编译source code时指定
    B.在编译程序时,所能指定的环境变量不包括class path
    C. javac一次可同时编译数个Java源文件
    D. javac.exe能指定编译结果要置于哪个目录(directory)
    答案:BCD  


    3.下列标识符不合法的有()
    A.new B.$Usdollars C.1234 D.car.taxi
    答案:ACD
    4.下列说法错误的有()
    A.数组是一种对象
    B.数组属于一种原生类
    C. int number=[]={31,23,33,43,35,63}
    D.数组的大小可以任意改变
    答案:BCD

    解答:Java把数组当作一个java类来处理
    java是纯面向对象的语言,他的数组也是一个对象。

    5.不能用来修饰interface的有()
    A.private B.public C.protected D.static
    答案:ACD
    only public & abstract are permitted
    你既然定义了interface(接口),那肯定是要其它的类去实现它的,
    不然你定义它干吗,所以不能用protected去修饰,
    而要用public去修饰。接口可以去继承一个已有的接口。

    接口只能被public和默认修饰符修饰,protected也不行所以除了public其他的都要选

    6.下列正确的有()
    A. call by value不会改变实际参数的数值
    B. call by reference能改变实际参数的参考地址
    C. call by reference不能改变实际参数的参考地址
    D. call by reference能改变实际参数的内容
    答案:ACD

    解答:
    1 基本类型和基本类型变量被当作参数传递给方法时,是值传递。
    在方法实体中,无法给原变量重新赋值,也无法改变它的值。
    2 对象和引用型变量被当作参数传递给方法时,是引用传递。
    在方法实体中,无法给原变量重新赋值,但是可以改变它所指向对象的属性。


    7.下列说法错误的有()
    A.在类方法中可用this来调用本类的类方法//this只能从实例代码内部使用,也就是说不能用在静态代码内

    B.在类方法中调用本类的类方法时可直接调用

    C.在类方法中只能调用本类中的类方法//错

    D.在类方法中绝对不能调用实例方法
    答案:ACD
    D.应该说不能直接调用
    public class Test {

    /**
    * @param args
    */
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    Test t=new Test();
    t.print();
    }
    public void print(){
    System.out.println("1111111111111");
    }
    }

    8.下列说法错误的有()
    A. Java面向对象语言容许单独的过程与函数存在
    B. Java面向对象语言容许单独的方法存在
    C. Java语言中的方法属于类中的成员(member)//类成员是静态的,成员方法属于实例
    D. Java语言中的方法必定隶属于某一类(对象),调用方法与过程或函数相同
    答案:ABC

    9.下列说法错误的有()
    A.能被java.exe成功运行的java class文件必须有main()方法

    B.J2SDK就是Java API
    C.Appletviewer.exe可利用jar选项运行.jar文件
    D.能被Appletviewer成功运行的java class文件必须有main()方法

    答案:BCD
    三、
    判断题
    1.Java程序中的起始类名称必须与存放该类的文件名相同。()
    答案:正确
    2.Unicode是用16位来表示一个字的。()
    答案:正确
    3.原生类中的数据类型均可任意转换。()
    答案:错误

    、排序都有哪几种方法?请列举。用JAVA实现一个快速排序。

    排序的方法有:插入排序(直接插入排序、希尔排序),交换排序(冒泡排序、快速排序),选择排序(直接选择排序、堆排序),归并排序,

    分配排序(箱排序、基数排序)

    快速排序的伪代码。

    / /使用快速排序方法对a[ 0 :n- 1 ]排序

    从a[ 0 :n- 1 ]中选择一个元素作为m I d d l e,该元素为支点

    把余下的元素分割为两段left 和r I g h t,使得l e f t中的元素都小于等于支点,而right 中的元素都大于等于支点

    递归地使用快速排序方法对left 进行排序

    递归地使用快速排序方法对right 进行排序

    所得结果为l e f t m I d d l e r I g h t

    6、请对以下在J2EE中常用的名词进行解释(或简单描述)

    web容器:给处于其中的应用程序组件(JSP,SERVLET)提供一个环境,使 JSP,SERVLET直接更容器中的环境变量接**互,不必关注其它系统问

    题。主要有WEB服务器来实现。例如:TOMCAT,WEBLOGIC,WEBSPHERE等。该容器提供的接口严格遵守J2EE规范中的WEB APPLICATION 标准。我们

    把遵守以上标准的WEB服务器就叫做J2EE中的WEB容器。

    EJB容器:Enterprise java bean 容器。更具有行业领域特色。他提供给运行在其中的组件EJB各种管理功能。只要满足J2EE规范的EJB放入该容

    器,马上就会被容器进行高效率的管理。并且可以通过现成的接口来获得系统级别的服务。例如邮件服务、事务管理。

    JNDI:(Java Naming & Directory Interface)JAVA命名目录服务。主要提供的功能是:提供一个目录系

    ,让其它各地的应用程序在其上面留下自己的索引,从而满足快速查找和定位分布式应用程序的功能。

    JMS:(Java Message Service)JAVA消息服务。主要实现各个应用程序之间的通讯。包括点对点和广播。

    JTA:(Java Transaction API)JAVA事务服务。提供各种分布式事务服务。应用程序只需调用其提供的接口即可。

    JAF:(Java Action FrameWork)JAVA安全认证框架。提供一些安全控制方面的框架。让开发者通过各种部署和自定义实现自己的个性安全控制

    策略。

    RMI/IIOP:(Remote Method Invocation /internet对象请求中介协议)他们主要用于通过远程调用服务。例如,远程有一台计算机上运行一个

    程序,它提供股票分析服务,我们可以在本地计算机上实现对其直接调用。当然这是要通过一定的规范才能在异构的系统之间进行通信。RMI是

    JAVA特有的。

    7、JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗?

    Java通过面向对象的方法进行异常处理,把各种不同的异常进行分类,并提供了良好的接口。在Java中,每个异常都是一个对象,它是Throwable

    类或其它子类的实例。当一个方法出现异常后便抛出一个异常对象,该对象中包含有异常信息,调用这个对象的方法可以捕获到这个异常并进行

    处理。Java的异常处理是通过5个关键词来实现的:try、catch、throw、throws和 finally。一般情况下是用try来执行一段程序,如果出现异

    常,系统会抛出(throws)一个异常,这时候你可以通过它的类型来捕捉(catch)它,或最后(finally)由缺省处理器来处理。

    用try来指定一块预防所有"异常"的程序。紧跟在try程序后面,应包含一个catch子句来指定你想要捕捉的"异常"的类型。

    Throw语句用来明确地抛出一个"异常"。

    Throws用来标明一个成员函数可能抛出的各种"异常"。

    Finally为确保一段代码不管发生什么"异常"都被执行一段代码。

    可以在一个成员函数调用的外面写一个try语句,在这个成员函数内部写另一个try语句保护其他代码。每当遇到一个try语句,"异常"的框架就放

    到堆栈上面,直到所有的try语句都完成。如果下一级的try语句没有对某种"异常"进行处理,堆栈就会展开,直到遇到有处理这种"异常"的try语

    句。

    1、字符串abcdefg,要求按逆序输出为gfedcba

    public class Main {
    public static void main(String[] args) {
    StringBuffer buf = new StringBuffer("abcdefg");
    buf = buf.reverse();
    System.out.println(buf.toString());
    }
    }

    2、使用字符串的正则判断是否全部由数字组成

    import java.util.Scanner;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    public class JAVA {
    public static void main(String[] args) {
    String regEx = "\\D+";
    Scanner in = new Scanner(System.in);
    while (in.hasNext()) {
    ? String str = in.next();
    ? Pattern p = Pattern.compile(regEx);
    ? Matcher m = p.matcher(str);
    ? if (!m.find()) {
    ? ? System.out.println("输入的字符串全是数字");
    ? } else {
    ? ? System.out.println("输入的字符串不全是数字");
    ? }
    }
    }
    }

    3、把当前日期转换成yyyy年MM月dd日

    import java.text.SimpleDateFormat;
    import java.util.Date;
    public class JAVA {
    public static void main(String[] args) {
    SimpleDateFormat sf = new SimpleDateFormat("yyyy年MM月dd日");
    Date d = new Date();
    String s = sf.format(d);
    System.out.println(s);
    }
    }


    4、编一个程序,它能读入两个正整数(第一个:n进制的基数(2-19)第二个:要转换的十进制数),,并输出这个正整数的2-19进制形式,依

    次用A、B、C、D、E、F、G、H、I表示10、11、12、13、14、 15、16、17、18。如输入为15 56时,输出为3B。

    import java.util.Scanner;
    public class Main {
    public static void main(String[] args) {
    char[] charaters = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
    ? ? 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I' };
    Scanner in = new Scanner(System.in);
    StringBuffer ans = new StringBuffer("");
    int base = 0;
    int digit = 0;
    base = in.nextInt();
    digit = in.nextInt();
    if (2 <= base && base <= 18) {
    ? while (digit != 0) {
    ? ? ans.append(charaters[digit % base]);
    ? ? digit /= base;
    ? }
    ? ans = ans.reverse();
    ? System.out.println(ans.toString());
    } else {
    ? System.out.println("Input Error!");
    }
    }
    }


    科帮网 1、本主题所有言论和图片纯属会员个人意见,与本社区立场无关
    2、本站所有主题由该帖子作者发表,该帖子作者与科帮网享有帖子相关版权
    3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和科帮网的同意
    4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
    5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
    6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
    7、科帮网管理员和版主有权不事先通知发贴者而删除本文


    JAVA爱好者①群:JAVA爱好者① JAVA爱好者②群:JAVA爱好者② JAVA爱好者③ : JAVA爱好者③

    红红火火恍恍惚惚
    快速回复
    您需要登录后才可以回帖 登录 | 立即注册

       

    关闭

    站长推荐上一条 /1 下一条

    发布主题 快速回复 返回列表 联系我们 官方QQ群 科帮网手机客户端
    快速回复 返回顶部 返回列表