• 2017 实习笔试题目


    2017.4 实习笔试题目

    做了一下某大厂的笔试的题目

    1. 一个表, visit(cookie_id, area1, area2, date)

             给出各种查询策略中, 哪一种最好,每一条SQL语句大同小异, 几乎看不出区别, 还有6,7个选项,同时字数很长。一般的SQL语句好像有根据查询的嵌套顺序来比较差异的,但是这道题反而没有。反正蒙了一个。没有数字可算,心里没有底,应该证明了SQL语法可能会很大地影响查询效率。

    2.     

             给了几个条件,判断你的名次。又是球赛的问题,考查你的推理能力。

    3.

             engineer的哈夫曼二进制编码有几位?

             哈夫曼编码原来是可以构建在一个单词上的。忘了。18位。

    4.

             大顶二叉堆的插入后的调整。学过插入排序的话应该没问题。

             只是表示的方式是字符串从左到右。

    5.

             没记住。

    6.

             考查数据挖掘(或者常见的特征提取)。SVD分解成A=USV­T后问相关的性质。

    7.

             iOS和Android。没学过它们, 内存管理,内存循环引用, Address Santizer, 都是什么?

    8.

             问了一个很复杂的文字游戏,但是什么内容都没有。就是问p做了一个项目,分割成A, B,然后绕来绕去有矛盾了,要怎么处理团队关系。属于那种毫无意义的只要看最后一句的题目。

    9.

             一个原子整数类。AtomicInteger, 话说我学了这么久没见过这个东西啊?

             问测试代码能实现线程安全吗?

    10.

             乱七八糟的Java输出,经典的A,B继承和构造的问题。反正构造和析构都会输出。

             A* pa = new B;

             delete pa;

             B* pb = new B;

             delete pb;

    11.

             STL容器。太简单了。

    12.

             一个可怕的softmax-0, softmax-1公式。没具体学过。用来估计概率的。

    13.

    14.

             纸币面值凑数问题。

    15.

             抽取球的概率题。

    16.

             C++。

    17.

    18.

    数据库的函数依赖和第三范式改写。不难。

    19.

    Linux的kernel space和super space。

             很少接触,除了操作系统内容知道了一些。

    20.

             Java的回收机制。

    附加题2道, 超过1小时。

             第一题是开奖方案,用dfs就知道总方案数了。上交。

             第二题是NLP,说实话不难,字符串长度<100000, 要过滤词和统计词频,但是想到在40分钟内完全做出来应该不太可能,提前交卷。

             不知道该公司有没有签保密协定,好像是没有的。所以这样也没事吧。

         这次笔试让我回想起来的书和知识点:

        《Unix网络编程》, 《STL 源码剖析》,《Java核心技术》,《数学之美》,《鸟哥的Linux私房菜》,

        《数据库系统概念》,还有那些没有真正学习的:《iOS编程》,《第一行代码》。

          事实上考得确实不难,而且还有类似编译原理这种问题没有问,可能是担心某些学校并没有开设这门课吧。  

    2017.8 其他题目

        其实多线程的题目挺有趣的,只是想了想目前遇到的问题并没有太大的启发性。我知道多线程在操作系统中的重要性,进而影响到分布式系统、数据库、安卓开发的学习,而有趣的是目前遇到的问题都是在JAVA语言下写的。可能因为JAVA有原生多线程,写法简单。

     刚刚看了一下一道题,是做的笔试。问:运行如下的代码,最可能输出什么?

    import java.util.concurrent.atomic.AtomicInteger;
    import java.util.concurrent.locks.ReadWriteLock;
    import java.util.concurrent.locks.ReentrantReadWriteLock;
    
    public class MutexLockTest {
       private AtomicInteger counter = new AtomicInteger(0);
       ReadWriteLock readWriteLock = new ReentrantReadWriteLock();
       public int mutexBiz() {
          try {
             if (!readWriteLock.writeLock().tryLock()) {
                return -1;
             }
             return counter.getAndIncrement();
          } finally {
             readWriteLock.writeLock().unlock();
          }
       }
    
       public static void main(String[] args) throws InterruptedException {
          final MutexLockTest lockTest = new MutexLockTest();
          for (int i = 0; i < 5; i++) {
             new Thread(new Runnable() {
                public void run() {
                    try {
                       System.out.print(lockTest.mutexBiz());
                    } catch (Exception e) {
                       System.out.print("-2");
                    }
                }
             }).start();
          }
          Thread.sleep(5000);
       }
    }

       例如结果是 -21023 或者是10324 或者是-210-2-2

       我没办法给出直接的答案。可以想见这个东西应该是有一些套路的。但是显然它的结果是不固定的。这个可能性对于实现互斥和同步来说有什么用,我还是不太清楚。

  • 相关阅读:
    MVAPICH
    sql server触发器的例子
    Sql Server 判断表或数据库是否存在
    JS验证用户真实姓名
    js实现瀑布流的一种简单方法实例分享
    C#实现登录窗口(不用隐藏)
    判断滚动条到底部的JS代码
    php 中文字符串首字母的获取函数
    C#获取当前页面的URL
    C#动态生成图书信息XML文件
  • 原文地址:https://www.cnblogs.com/wangzming/p/6777268.html
Copyright © 2020-2023  润新知