富途客户端软件测试笔试and面试

笔试

一、选择题:

1、结构化程序设计所规定的的三种基本控制结构是:顺序,选择,循环

2、TCP协议头中包含哪些字段:   不包含:序列号和确认号

Source Port:源端口号 16bit;
Destination Port:目的端口号 16bit;
Sequence Number:发送字节流的起始字节序列号 32bit;
Acknowledgement Number:接收端期望接收的下一个字节序列号 32bit;
Header Length:以4Byte为单位显示TCP头长,TCP协议头固定20Byte,因此length最小为5,选项部分最长40Byte,加上固定头长总共60Byte,所以length最大为15,4bit;
Resv:预留位,4bit;

8位标志位:
(TCP支持ECN功能时在Resv增加两个标志位:CWR、ECE,称为ECN域)

ECE(ECN ECHO):网络拥塞一般出现在路由交换时,在支持ECN功能情况下,发生拥塞时路由会设置IP中该标志位,接收端收到IP头中标志了ECN的报文后,在返回的数据ACK中设置ECE标志,表示链路发生拥塞,将拥塞消息通知发送端;
CWR(Congestion Window Reduce):发送端收到ECE置位的数据后进行设置,用来通知接收端已收到ECE标志的数据,了解了拥塞情况,接收端收到CWR置位消息后,不再设置ECE标志,同时发送端发送CWR信息时,将开始减小拥塞窗口,以此减小数据发送量,避免拥塞;
(引用:http://www.cnblogs.com/hadis-yuki/p/5467787.html)
URG:紧急标志,置位后不需要按照正常报文按序处理,执行优先处理;
ACK:确认标志;
PSH:将缓存中的数据以及当前psh报文一起执行推送,从缓存区发出去;
RST:强行复位标志;
SYN:请求建链时置位该标志,第一个握手报文携带;
FIN:请求连接关闭时置位该标志;
Window Size:窗口大小,表示接收端接收缓存剩余大小,16bit;
TCP Chechsum:校验和,包括TCP协议头与数据整体的校验字段,16bit;
Urgent Pointer:标志位URG置位后使用,为一个正的偏移量,表示当前报文中起始字节开始需要偏移的长度,这个偏移到的字节就是紧急数据的结束字节,也就是通过偏移量确定了数据中需要紧急发送的字节个数,16bit;
Option:一般用于握手时接收端,发送端信息的交互,以及数据交互过程中;最大40Byte;

3、Android monkey test中常用的命令,哪个是错的(B)

A.-p 指包名,如tencent,qqgame,happylord

B.-v 指定伪随机数生成器种子

C.--ignore 程序ANR时,是否停止

D.--throttle<毫秒>定式操作时延

4、一次投掷两个骰子(1-6点的六面骰子),请问投掷之后两个骰子之和为9的概率为多少:4/36

5、可能导致一个进程从运行状态变成就绪状态的事件有哪些?

答:出现了比现在进程优先级更高的进程

6、排序算法中,初始数据集的排列顺序对算法的性能无影响的是:插入排序

7、线程和进程的概念,区别?协程?

进程:是资源(CPU、内存等)分配的基本单位,它是程序执行时的一个实例。程序运行时系统就会创建一个进程,并为它分配资源,然后把该进程放入进程就绪队列,进程调度器选中它的时候就会为它分配CPU时间,程序开始真正运行。

进程的状态;

进程切换:操作系统为了控制进程的执行,必须有能力挂起正在CPU上运行的进程,并恢复以前挂起的某个进程的执行,这种行为被称为进程切换,任务切换或上下文切换。

线程:是程序执行时的最小单位,它是进程的一个执行流,是CPU调度和分派的基本单位。一个进程可以由很多个线程组成,线程间共享进程的所有资源,每个线程有自己的堆栈和局部变量。

线程由CPU独立调度执行,在多CPU环境下就允许多个线程同时运行。同样多线程也可以实现并发操作,每个请求分配一个线程来处理。
 

进程线程的区别:

调度 :在引入线程的操作系统中,线程是调度和分配的基本单位 ,进程是资源拥有的基本单位 。
把传统进程的两个属性分开,线程便能轻装运行,从而可 显著地提高系统的并发程度 。
在同一进程中,线程的切换不会引起进程的切换;在由一个进程中的线程切换到另一个进程中的线程时,才会引起进程的切换。

并发性 :在引入线程的操作系统中,不仅进程之间可以并发执行,而且在一个进程中的多个线程之间亦可并发执行,
因而使操作系统具有更好的并发性,从而能 更有效地使用系统资源和提高系统吞吐量。

拥有资源 :不论是传统的操作系统,还是设有线程的操作系统,进程都是拥有资源的一个独立单位,它可以拥有自己的资源。
一般地说,线程自己不拥有系统资源(只有一些必不可少的资源,但它可以访问其隶属进程的资源。

系统开销:由于在创建或撤消进程时,系统都要为之分配或回收资源,因此
操作系统所付出的开销将显著地大于在创建或撤消线程时的开销。
进程切换的开销也远大于线程切换的开销。

通信:进程间通信IPC,线程间可以直接读写进程数据段(如全局变量)来进行通信——需要进程同步和互斥手段的辅助,以保证数据的一致性。
因此共享简单,但是线程的数据同步要比进程略复杂。

进程线程相同点:进程和线程都有ID/寄存器组、状态和优先权、信息块,创建后都可更改自己的属性,都可与父进程共享资源、都不能直接访问其他无关进程或线程的资源

线程进程使用场景:

1、需要频繁创建销毁的优先使用线程;因为对进程来说创建和销毁一个进程代价是很大的。
2、线程的切换速度快,所以在需要大量计算,切换频繁时用线程,还有耗时的操作使用线程可提高应用程序的响应
3、因为对CPU系统的效率使用上线程更占优,所以可能要发展到多机分布的用进程,多核分布用线程;
4、并行操作时使用线程,如C/S架构的服务器端并发线程响应用户的请求;
5、需要更稳定安全时,适合选择进程;需要速度时,选择线程更好。

8、设栈的输入序列为1,2,3,4,则出栈序列不可能是(E)

A.1,2,3,4    B.2,1,3,4     C.1,4,3,2   D,3,2,1,4      E,4,3,1,2

9、找规律,10,22,-6,14 (26?)

10、OSI七层模型,属于应用层的是(C)

A.ARP协议   B.UDP协议   C.Telnel协议  D.TCP协议

 

二、填空题

1、判断输入年份是否为闰年,补充代码(大概是这样子的)

publi static void isRunNian(int year){
if (year%4==0&&year%100!=0||year%400==0){ //填空的地方
    System.out.println(year+"是闰年")
    }
     System.out.println(year+"不是闰年")
}

2、一条SQL语句查询下表中各个部门有多少人?

Employee_T
DepartmentEmployee
HRinno
HRprivy
Engineeringrobo
Engineeringhash
Engineeringdarl
Marketingpete
Marketingmeme

 

select Departmen,count(*)from Employee_T group by Employee having count(*)>1;

3、一棵树最开始只有一个大树枝,大树枝每个月长一个新树枝,新树枝一个月后变成大树枝,第N个月的树枝数量是多少?(我不会。。没答出来) 

int f(int n){
int total=1;
if(n==1){
    total+=1;
    }else if(n==2){
     total+=______;
    }else{
    total=f(n-1)+______;
    }
    return total;
}

4、股票利润最大化???

5、ABCB四个人戴了黑白两种颜色的帽子,每个颜色又两顶,A和BCD之间有一个墙,每个人都不能查看到自己帽子的颜色,但是可以看到自己前面的人的帽子颜色,请问谁前判断出来自己帽子的颜色?

答:C。由题目可知,d能看到B,C的颜色,但却没有猜出来自己的颜色,那么BC帽子颜色应该相反。C能看到B的颜色,不能看到D的颜色,由于D没有猜出来,那么C和B颜色相反。即通过B的颜色可以猜出来自己帽子的颜色。(我是这么想的。。。)

三、编程题:求一个N*N对角线之和,若为元素重复则去重?(怎么去重??)

import java.util.*;
public class test2{
    public static void main(String args[]){
    System.out.print("请输入n*n的n值为:");
    Scanner sr=new Scanner(System.in);
    int s=sr.nextInt();
    int a[][]=new int[n][n];
    int sum=0;
    for(int i=0;i<n;i++){ //遍历矩阵
        for(int j;j<n;j++){
            a[i][j]=(int)(Math.random()*10);//随机生成n*n数组
            System.out.print(a);
            if(i==j||i+j==n-1){//判断主对角线和副对角线
                sum+=a[i][j];//对角线数字之和
                }
            }
            System.out.print();
        }
        System.out.print("对角线之和为:"+sum);
    }
}

 

面试

1、自我介绍

2、项目经验介绍

3、 写SQL语句(查询)

表SC,学号,科目,成绩

(1)查询语文成绩是80分以上的前五名的学生所有信息;

(2)查询每一科成绩都大于80 的学生信息

4、编程题:求一个数组中第二小的数(存在重复的数,数组为整型的数组)(我编程能力真的好差。。 抓紧学习吧,又是一个去重问题。。)

5、一个数据表,如果需要插入10000条数据,怎么来实现?(当时没有答出来,憋出一个用SQL脚本循环语句吧。。。。)

6、微信的发送图片接口(功能)的测试点有哪些?

7、如果让你负责一个项目,怎么保证它的质量?

 

后续就是预料之中的面试不通过,虽然很遗憾不能去富途工作,但是对于面试禁烟来说,还是很有收益的,富途是个很不错的公司,只是我自己无缘罢了。

不过因为这次的面试,也让我知道了自己薄弱的地方在哪里,这个公司比较看重编程和算法,逻辑和业务,对于自动化,接口什么的问的比较少,要去面试的小伙伴们,加油吧!希望我的经验能给你一点帮助!

 

  • 4
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

媛媛要加油呀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值