面试过程中突然10010打电话来打断了我的录音,挂掉电话后看到还在录,最后完成录音后发现都没了,心态爆炸。题目只能靠依稀的记忆了
总的来说面试官很友善,遇到不会的会慢慢引导,也会有一点点小小的提示,问的东西也不会很难,没有怎么去深究。
计算机网络
- TCP三次握手。
- 三次握手中会传输什么?
- 四次挥手。
- 两次挥手会怎样?
- 两次握手会怎样?
- 通过url获得信息的过程
JAVA
- JAVA内存分配了解多少,JVM的分区。
- 垃圾回收机制的两种方法?(引用计数器,是否可达)
- 四种引用及其什么时候会被回收。
- Java和JavaScript的区别(定义的属性类型是否可变)
- Java的编译过程和JavaScript的编译过程。
- 对Java面向对象的了解和三个基本特征。
- 同步锁的理解。
- lock的理解。
Android
- 生命周期及其代表含义。
- 你用过的布局有哪些?
- Override的作用是什么?
算法题:
编写一个程序,输入一段字符串,把字符串解析为数字,而且不能超过int上限(这里为了测试上限修改为1024),字符串开头会有‘+’,‘-’号,并且中间会有空格。若超出int的话输出最大最小值(-2^31和2^32-1)
输入样例:“-4090” “1024” “-1024” “1025” “-123456”
下面是我的答案,能通过样例
#include <iostream>
#include<string.h>
using namespace std;
char a[1000];
int suan(){
int fuhao=1;
int num=0;
int man=0;
int len=0;
for(int i=0;i<strlen(a);i++){
if(a[i]==' '){
continue;
}
if(a[i]=='+' && i==0){
fuhao=1;
continue;
}else if(a[i]=='-' && i==0 ){
fuhao=-1;
continue;
}
else{
if((1024-(a[i]-48))/10<num){
return 1024*fuhao;
}
else{
num=num*10+a[i]-48;
}
}
}
return num*fuhao;
}
int main() {
a[0]='+';
a[1]='1';
a[2]='0';
a[3]='2';
a[4]='4';
printf("%d",suan());
}