美团、滴滴在线笔试、面试题

在线笔试题(写出运行结果)

int i = 5,j = 10;
System.out.println(i+~j);  //-6

System.out.println("A".valueOf('b'));  //b

int a =1,b = 2;
System.out.println( (a++) + (++b)); //4

int x = 0;
System.out.println( x++ + ++x + x++ + x++); //7

int x = 3;
System.out.println( (++x) +  (++x) + (++x)); //15

int i2;
for ( i2 = 0; i2++ <4 ;) {
}
System.out.println(i2);//5     



其他问题

  • 1、n个有序元素全部排列错误的方法数M(n)=n!(1/2!-1/3!+1/4!-...+(-1)^n/n!)。
  • 2、进程间的通信方式:
    1.管道(pipe)2.信号(signal): 3.消息队列
  • 3、用GCC/VC编译程序生成可执行文件,这个过程有4部分组成:
    1.预处理,生成预编译文件(.文件):
    Gcc –E hello.c –o hello.i
    2.编译,生成汇编代码(.s文件):
    Gcc –S hello.i –o hello.s
    3.汇编,生成目标文件(.o文件):
    Gcc –c hello.s –o hello.o
    4.链接,生成可执行文件:
    Gcc hello.o –o hello
  • 4、赋值运算符<逻辑与运算符<关系运算符<算术运算符。
  • 5、在32位和64位系统上,int分别占_____和______位,char*分别占_______和______位。
    参考答案:跟操作系统没有关系,跟使用的编译器有关。
  • 6、请列举出Java创建对象的几种方法?并指出哪些不是构造函数创造的对象?
    http://www.jb51.net/article/100230.htm
  • 7 、正整数分解质因数
    http://blog.csdn.net/isresultxal/article/details/51282532
  • 8 、生日悖论问题
      23个人里有两个生日相同的人的几率有多大呢?
      居然有50%
    生日悖论普遍的应用于检测哈希函数:N-位长度的哈希表可能发生碰撞测试次数不是2N次而是只有2N/2次。这一结论被应用到破解cryptographic hash function的生日攻击中。
  • 9 、判断素数
int j;
boolean flag;
for (int i1 = 2; i1 < 1000; i1++) {
    flag = false;
    for (j = 2; j <= Math.sqrt(i1); j++) {
        if (i1 % j == 0) {
            flag = true;
            break;
        }
    }
    if(flag==false){//素数
        System.out.println(i1);
    }
}
  • 10、平方根的近似求法
 //公式的计算:
 public static double getNum(int num){
  double lastGuess;
  double nextGuess;
  for(double i  = num /2 ; i >= 1; i-= 0.0001){
   lastGuess = i;
   nextGuess = (lastGuess + (num / lastGuess)) / 2;
   //如果两者相差小于0.0001的时候,就认为这个数是近似的平方根数;
   if(lastGuess - nextGuess <= 0.0001){
    return nextGuess;
   }
  }
  return -1;
 }
上一篇:阿里JAVA 开发手册----整理


下一篇:redis rdb 文件分析工具和使用