zoukankan      html  css  js  c++  java
  • 新浪面试题···

    1: 名词解释:HTML5,CSS,STL,MYSQL,B-tree, Fedora

    HTML5是HTML(超文本标记语言)的新一代标准,他在HTML4上删掉了一些标签增加了一些标签。

    CSS是层叠样式表(Cascading Style Sheet),通过设置一个或一组样式应用于HTML中,使页面的内容和布局表现相分离。

    STL是C++的标准模板类,包括vector、map、set、list等等,主要应用的是泛型思想实现了一些标准的类库和方法。

    MYSQL是一个可以应用于windows和Linux下的开源的优秀的关系数据库系统,支持标准的SQL语句。

    B-tree是多路搜索树,主要用于数据库基于键值的记录的存取或查找,或者用于硬盘中文件的节点。

    Fedora是一个基于Linux的一个开源操作系统的一个版本,是从Red Hat Linux延伸出来的一个免费的版本。

    2: 有这么一段程序:

    Stringa=new String("a");

    Stringb="b";

    Stringc=a+b;

    StringBufferstrBuf=new StringBuffer();

    strBuf.append("a");

    strBuf.append("b");

    Stringd=strBuf.toString();

    StringBuilderstrBuilder=new StringBuilder();

    strBuilder.append("a");

    strBuilder.append("b");

    Stringe=strBuilder.toString();

    请问以上程序片段中c、d、e的字符串的创建各有什么不同?

    c是两个string相加,string是一个字符串常量,不可更改,相加会新开辟一段内存,把a、b两个字符串复制过去。

    d是stringBuffer类对象,他会在内存开辟一段空间,然后直接操作内存,将字符串加在其后面,不会重新在另外地方开辟内存。在做大量的字符串相加的时候他的速度要大于String直接相加。

    e是StringBuilder对象,他是StringBuffer对象的简化版,他是线程不安全,而StringBuffer是线程安全的所以在单线程中采用StringBuilder速度要快的多。

    3: 描叙下final,finally, finalize的区别

    final 修饰一个变量或对象时表示表示一个常量,修饰方法的时候方法不能被重写,定义类表示类不能被重写。

    finally 是错误处理所使用的关键字,他表示try代码块中无论发生不发生异常,finally里面的代码都必须执行。

    finalize是GC回收它所从属的对象时会调用的对象的方法。

    4: 现有以下数据表结构,请按要求写出SQL语句

    购物人      商品名称     数量

    A            甲         2

    B            乙         4

    C            丙         1

    A            丁         2

    B            丙         5

    查出所有购入商品为两种或两种以上的购物人记录

    SELECT *

    FROM tableName

    WHERE 购物人 IN (

        SELECT 购物人

        FROM tableName

        GROUP BY 购物人

        HAVING count(商品名称)>=2

    )

    6: 描叙下TCP协议三次握手过程

    第一次握手:建立连接时,客户端发送syn包和一个随机序列号seq=x到服务器,并进入SYN_SEND状态,等待服务器进行确认。(syn,同 步序列编号)。第二次握手,服务器收到syn包,必须确认客户的SYN,然后服务器发送一个ACK=1, SYN=1, seq=y的随机数和ack=x+1的确认数的包发送回去。第三次握手是客户端收到服务器端的SYN+ACK包,然后向服务器端发送确认包 ack=y+1,seq=x+1, ACK=1,客户端和服务器端进入ESTABLISHED状态,完成三次握手。

    7: 用java/php/C++实现一个单例模式.

    public classTestSingle {

      private TestSingle() {}

      private static TestSingle single;

      static{

          single = new TestSingle();

      }

      public synchronized  static TestSingle getInstance() {

           if (single == null) { 

               single = new TestSingle();

           } 

          return single;

      }

    }

    8: 罗列你知道的排序算法,并注明他们的复杂度

    冒泡排序法  复杂度是O(n2)

    选择排序负  复杂度是O(n2)

    插入排序法  复杂度是O(n2)

    合并排序法  复杂度是O(nlgn)

    快速排序法  复杂度是O(nlgn)

    合并排序法  复杂度是O(nlgn)

    Shell排序法 复杂度是O(nlgn)

    9: 用java/php/C++实现快速排序算法

    void qsort(inttest[], int left, int right)

    {

           int i = left+1, j = right, tmp;

           int x = test[left];

           while(i<=j)

           {

                  while(test[i] <= x && i<= j)

                         i++;

                  while(test[j] >= x && j>= i)

                         j--;

                  if(i < j)

                  {

                         tmp = test[i];

                         test[i] = test[j];

                         test[j] = tmp;

                         i++;

                         j--;

                  }

           }

           if(left != j)

           {

                  test[left] = test[j];

                  test[j] = x;

           }

           if(left < j-1)

           {

                  qsort(test, left, j-1);

           }

           if(j+1 < right)

           {

                  qsort(test, j+1, right);

           }

    }

    10:

    有如下一段程序:

    packagea.b.c;

    publicclass Test{

       private static int i=0;

       public int getNext(){

          return i++;

       }

    }

    packagea.b.c;

    publicclass TestB{

       public static void main(String[] args){

           Test test=new Test();

           System.out.println(test.getNext());

           Test testObject=new Test();

          System.out.println(testObject.getNext());

           System.out.println(test.getNext());

       }

    }

    请问最后打印出来的是什么,为什么?

    结果:

    0

    1

    2

    因为静态变量是类变量而不是对象变量,在类中只会保存一份。

    后缀++先返回值然后再加加。

    11: 在linux下,需要每天凌晨4:30把 /abc目录下的文件归档并压缩为back20110615.tar.gz,描叙shell实现方式。

    使用crontab来实现,格式如下 crontab -e

    30 4 * * * tar -czvfback20110615.tar.gz /abc

  • 相关阅读:
    字符串子串
    素数
    DP4056替代LTC4056/TP4056锂电池充电保护芯片_1000mA
    DP4054替代LTC405x系列500mA锂电池充电芯片
    Ci522替代MFRC522手机NFC开锁应用13.56Mhz读写器芯片
    node补充dom环境
    springCloud组件详细解析
    23种设计模式——代理模式
    redis实现接口限流
    JVM常用调优参数以及linux服务器启动项目命令jvm参数调优案例
  • 原文地址:https://www.cnblogs.com/xiaobuild/p/2104230.html
Copyright © 2011-2022 走看看