zoukankan      html  css  js  c++  java
  • 汉王JAVA笔试题

    汉王JAVA笔试题

    1jsp中动态include与静态include的区别?

    1)动态包含总是会检查文件中的变化,适合用于包含动态页面,并且可以带参数。

    2)静态包含不会检查所含文件的变化,适用于包含静态页面。

    2.short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?

    s1+1以后转换为了int型,赋给short型报错,需要强制转换类型。

    没错,s1+=1,会自动转换成short型。

    3.数组有没有length()这个方法?String有没有length()这个方法?

    数组没有,有length属性,Stringlength()方法。

    4.List,Map,set三个接口,存取元素,各有什么特点?

    List:可以重复,有序

    Set:不能重复,无序

    Map:键值对的形式。

    5.有错误吗?

    public class Something {
    
    void doSomething(){
    
    private String s=" ";
    
    int l=s.length();
    
    }
    }
    

    有,不能定义为私有的,正确的应该是

    public class Something {
    
    void doSomething(){
    
    String s="";
    
    int l=s.length();
    
    }
    
    }   

    6.下列哪几行会报错?

    import java.util.ArrayList;
    
    import java.util.List; 
    
    public class Test {
    
    public static void main(String[] args) {
    
    List pList=new ArrayList();
    
    pList.add("A");//第五行
    
    pList.add("B");//第六行
    
    for(int i=0;i<pList.size();i++){//第七行
    
    String str=pList.get(i);//第八行
    
    System.out.println(str);
    
    }
    
    }
    } 


     
    第八行报错,返回的是一个object类型不能赋给string类型。

    7.请倒序遍历arraylist

    import java.util.*;
    
    public class Test3 {
    
    public static void main(String[] args) {
    
    ArrayList list=new ArrayList();
    
    for (int i = 0; i < 10; i++) {
    
    list.add("list"+i);
    
    }
    
    System.out.println(list);
    
    //倒序遍历1
    
        /*for (int i = list.size()-1; i >=0; i--) {
    
    System.out.println(list.get(i));
    
    }
    
    */
    
    //倒序遍历2
    
    Collections.reverse(list);
    
    System.out.println(list);
    
    }
    
    }  


    8.js
    中同步和异步的区别,ajax请求时同步和异步如何设置? 

    (1)同步就是代码按顺序执行。

    异步就是代码不按顺序执行,跳过执行。每一个任务有一个或多个回调函数(callback),前一个任务结束后,不是执行后一个任务,而是执行回调函数,后一个任务则是不等前一个任务结束就执行,所以程序的执行顺序与任务的排列顺序是不一致的、异步的。

    参考资料:

    异步编程的方式:回调函数、时间监听、发布/订阅、Promises对象

    http://www.ruanyifeng.com/blog/2012/12/asynchronous%EF%BC%BFjavascript.html

    2async参数设置为true就是异步,设置为false就是同步。

    9.列举你使用过的js操作字符串的函数

    concat

    将两个或多个字符的文本组合起来,返回一个新的字符串。

    indexOf

    返回字符串中一个子串第一处出现的索引(从左到右搜索)。如果没有匹配项,返回 -1 

    charAt

    返回指定位置的字符。

    lastIndexOf

    返回字符串中一个子串最后一处出现的索引(从右到左搜索),如果没有匹配项,返回 -1 

    match

    检查一个字符串匹配一个正则表达式内容,如果么有匹配返回 null

    substring

    返回字符串的一个子串,传入参数是起始位置和结束位置。

    replace

    用来查找匹配一个正则表达式的字符串,然后使用新字符串代替匹配的字符串。

    参考资料:

    http://www.cnblogs.com/qfb620/archive/2011/07/28/2119799.html

    10.position的属性值有哪些?

    absolute

    生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位。

    元素的位置通过 "left", "top", "right" 以及 "bottom" 属性进行规定。

    fixed

    生成绝对定位的元素,相对于浏览器窗口进行定位。

    元素的位置通过 "left", "top", "right" 以及 "bottom" 属性进行规定。

    relative

    生成相对定位的元素,相对于其正常位置进行定位。

    因此,"left:20" 会向元素的 LEFT 位置添加 20 像素。

    static

    默认值。没有定位,元素出现在正常的流中(忽略 top, bottom, left, right 或者 z-index 声明)。

    inherit

    规定应该从父元素继承 position 属性的值

    11.有几种方式可以解决js中的跨域请求问题?

    这里说的js跨域是指通过js在不同的域之间进行数据传输或通信,比如用ajax向一个不同的域请求数据,或者通过js获取页面中不同域的框架中(iframe)的数据。只要协议、域名、端口有任何一个不同,都被当作是不同的域。

    1通过jsonp跨域

    2、通过修改document.domain来跨子域

    3、使用window.name来进行跨域

    4、使用HTML5中新引进的window.postMessage方法来跨域传送数据

    参考资料:

    http://www.cnblogs.com/2050/p/3191744.html#top

    12.有一张借书记录表borrow,各字段如下

    cno 借书卡号

    bno 书号

    rdate 还书日期

    找出借书超过5本的借书卡,输出借书卡号及所借图书册数

    select cno "借书卡号",count(bno) "所借图书册数"
    
    from borrow 
    
    group by cno having count(bno)>5;  

    13下面是选自“orders”表的数据:

    orderID  employeeID orderDate

    10248       5       1996-07-04

    10249       6       1996-07-05

    10250        4       1996-07-08

    选自employee表数据:

    employeeID    Name     BirthDate

    1            Davolio       1968-12-08

    2            Fulier         1952-02-19

    3            Leverling      1963-08-30

    查找注册超过10个订单的员工。

    select * from employee
    
    where employeeID in(select employeeID
    
    from orders
    
    group by employeeID
    
    having count(orderID)>5);  


    14
    ,请写出“单例”模式的实现 

    class Single{
    
     private Single(){}
    
     private static Single s=new Single(0;
    
     public Single getSingle(){
    
       return s;
    
    }}
    

      

    笔试过了以后,就愉快地接到了电话到公司面试。

    but,还要再做一份题,汗。。。。

    汉王一面笔试题

    1.Javaint类型的取值范围:-232次方到232次方-1

    2.请定义一个值为5的整数常量:final int x=5;

    3.请定义一个list类型的对象,向其添加任意两个字符串,并打印List类型对象所容纳的元素个数。

    List list=new ArrayList();
    
    list.add("a");
    
    list.add("b");
    
    System.out.println(list.size());  

    4.请用while语句重写以下代码。list为接口,不能new对象。

    int sum=0;
    
    for(int i=5;i<9;i++){
    
    sum+=i;
    
    }
    

    改写后的代码  

    int n=5;
    
    int s=0;
    
    while(n<9){
    
    s+=n;
    
    n++;
    
    }
    

      

    5.请写出以下代码的输出。

    int i=0;
    
    int[] array={1,2,3,4,5,6,7};
    
    int sum=0;
    
    for (i= 0; i < array.length; i++) {
    
    sum=sum+array[i];
    
    i++;
    
    }
    
    System.out.println("sum"+sum);//1+3+5+7=16
    
    System.out.println("最后的"+i);//8
    

      

    6.请写出以下代码的输出 

    package com.test;
    
    public class Test4 {
    
    public static void main(String[] args) {
    
    int x=0;
    
    String s="hello";
    
    int[] arrayX={1,2};
    
    int[] arrayY={8,9}; doSomethingToParameters(x,s,arrayX,arrayY,arrayY);//1hi
    
    System.out.println(x+s);//0hello
    
    System.out.println(arrayX[0]+arrayX[1]);//3
    
    System.out.println(arrayY[0]+""+arrayY[1]);//910
    
    }
    
    public static void doSomethingToParameters(int x,String s,int[] arrayX,
    
    int[] arrayY,int[] anotherArray){
    
    x++;
    
    s="hi";
    
    int[] arrayNew={3,4};
    
    arrayX=arrayNew;
    
    arrayY[0]++;
    
    anotherArray[1]++;
    
    System.out.println(x+s);
    
    }
    
    }
    

      


    7.请写出以下代码的输出
     

    try {
    
    if(true)
    
    throw new Exception();
    
    System.out.println("1");
    
    } catch (Exception e) {
    
    System.out.println("2");
    
    throw new Exception();
    
    }finally{
    
    System.out.println("3");
    
    }
    
    System.out.println("4");
    

    2

    3

    Exception in thread "main" java.lang.Exception

    at com.test.Test5.main(Test5.java:12)

    8.根据以下代码

    class A{
    
    public static void methodStatic(){}
    
    public void methodPublic(){}
    
    protected void methodProtected(){}
    
    private void methodPrivate(){}
    
    }
    
    class B extends A{
    
    public void doSomeThing(){
    
    //add a line of code here
    
    }
    
    }
    

     

     将下列哪些代码加入到B.doSomeThing()方法中会导致错误:

    A.methodStatic();
    
    new A().methodStatic();
    
    A.methodPublic();//不是静态的不能直接调用
    
    new A().methodPublic();
    
    A.methodProtected();//不是静态的不能直接调用
    
    new A().methodProtected();
    
    A.methodPrivate();//私有的只能在本类调用
    
    new A().methodPrivate();//私有的只能在本类调用
    

      

    9.一个四位数除以365得到的商和余数相加,最大可能是多少?

    先把余数设置为364,再计算商的值。

    364+x*365<10000;

    x<26.4

    26+364=390

    接下来是面试官问的问题,一般都会根据简历提问。

    (1)登录的过程中值是怎样传递的,验证码是怎样产生的。

    (2)forwardsendRedirect的区别

    (3)sessionID是怎么回事?

    Session对于每一个客户端(或者说浏览器实例)是人手一份,用户首次与Web服务器建立连接的时候,服务器会给用户分发一个SessionID作为标识。SessionID是一个由24个字符组成的随机字符串。用户每次提交页面,浏览器都会把这个SessionID包含在HTTP头中提交给Web服务器,这样Web服务器就能区分当前请求页面的是哪一个客户端。

    (4)手写二分查找算法

    public void find2(int[] arr,int n){

       int start=0;

       int end=arr.length-1;

       int sign=-1;

      while(start<end){

          middle=(start+end)/2;

            if(arr[middle]>n){

       end=middle-1;

    }else if(arr[middle]<n){

       start=middle+1;

    }else{

          sign=middle;

    }

    }

    syso(sign);

    }

    5)排序算法有哪些?它们的时间复杂度是多少?一般都选哪种排序?

    选择、冒泡、插入,因为是两重循环,时间复杂度差不多都是o(n^2)

    汉王在武汉的研发中心是新开的,办公室都没几个人,你去了就是元老级别的人物了,加油。

    求职一份Java相关工作
  • 相关阅读:
    Python3.x:定义一个类并且调用
    Spring编码过滤器:解决中文乱码
    Web.xml中自动扫描Spring的配置文件及resource时classpath*:与classpath:的区别
    你是否属于中等收入群体
    Python3.x:BeautifulSoup()解析网页内容出现乱码
    Activiti工作流引擎数据库表结构
    Java:出现错误提示(java.sql.SQLException:Value '0000-00-00' can not be represented as java.sql.Date)
    Django框架搭建(windows系统)
    Eclipse配置多个jdk
    Activiti:创建activiti工程
  • 原文地址:https://www.cnblogs.com/wxh-hoho/p/5997895.html
Copyright © 2011-2022 走看看