记一次CVTE笔试(2018秋招)

今天参加了CVTE的一次秋招笔试(WEB后台开发工程师),在此稍微记录一下。

笔试给的时间还是很充裕的,比前几天的某某证券的好多了。一共有二十多道题,前面是选择题,后面是两道编程题,和一道设计题。

选择题就之记住了几个,这里只说一下考点吧:

jvm的参数,java8的新特性,连通图,回溯法,CMS垃圾回收,数据库的事物和幻读,http的请求信息,tcp的三次握手四次挥手,volatile和Synchronized,集合等等。

编程题:

1.两个已经降序排好的数组,将两个数组合并,合并后依然保持降序。(实际题干更长给了实际的需求场景)

以下是我的解答:

public static int[] together(int[] A,int[] B) {
		/**
		 * 定义合并后的数组
		 */
	    int[] res=new int[A.length+B.length];
	    /**
	     * ra,rb保存ia,ib下标对应的值,ir表示res插入的下表
	     */
		int ra=-1,rb=-1,ia=0,ib=0,ir=0;
		while(true) {
			
			/**
			 * 两个数组遍历完结束
			 */
			if(ia>=A.length&&ib>=B.length) {
				return res;
			}
			/**
			 * 依次从给定数组中取值,若数组值已经取完,赋值-1
			 */
			if(ia<A.length){
				ra=A[ia];
			}else {
				ra=-1;
			}
			if(ib<B.length) {
				rb=B[ib];
			}else {
				rb=-1;
			}
			/**
			 * 将取出的最大值存入res数组中,并将对应的数组下标+1,另一个不动
			 */
			if(ra==-1) {
				res[ir]=rb;
				ib++;
			}else if(rb==-1) {
				res[ir]=ra;
				ia++;
			}else {
				if(ra>rb) {
					res[ir]=ra;
					ia++;
				}else {
					res[ir]=rb;
					ib++;
				}
			}
			
			ir++;
			
		}
		
		
	}

2.使用1-9,a-z,A-Z,生成不重复的长度为4的ID(Sring),写两个方法一个获取不重复的ID,一个获取生成ID的总数.

以下是我的解答:

/**
 * 构造字符数组,用四个变量下标去遍历数组
 * @author zxl
 *
 * @date	2018年7月20日
 */
public class Generator {
	
	private static final char[] ch={'1','2','3','4','5','6','7','8','9'
			,'a','b','c','d','e','f','g','h','i'
			,'j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'
			,'A','B','C','D','E','F','G','H','I'
			,'J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};
	private int i1=0,i2=0,i3=0,i4=0;
	/**
	 * 获取ID
	 * 假设生成的字符串是“ZBCD”,i4:D在ch中的下标;i3:C在ch中的下标;i2:B在ch中的下标;i1:A在ch中的下标;
	 * @return
	 */
	public String generator() {
		/**
		 * 全部用if,用if-else会出错:下标越界。因为当i4和i3同时遍历完最后一位时,用if-else只把i4重置为0,i3则是ch.length+1
		 * (考试时自己没有考虑到,用的if-else)
		 */
		if(i4>=Generator.ch.length) {
			i4=0;
			i3++;
		}
		if(i3>=Generator.ch.length) {
			i3=0;
			i2++;
		}if(i2>=Generator.ch.length) {
			i2=0;
			i1++;
		}
		if(i1>=Generator.ch.length) {
			return "ID已经全部生成完毕";
		}
		String str=""+ch[i1]+ch[i2]+ch[i3]+ch[i4];
		i4++;
		return str;
	}
	/**
	 * 获取生成的ID总数
	 * @return
	 */
	public long getTotal() {
		return Generator.ch.length*Generator.ch.length*Generator.ch.length*Generator.ch.length;
	}
	
	public static void main(String[] args) {
		Generator gen=new Generator();
		System.out.println("total:"+gen.getTotal());
		for (int i = 0; i <gen.getTotal(); i++) {
			System.out.print(gen.generator()+";");
			if(i!=0&&i%9==0) {
				System.out.println();
			}
		}
	}
}

最后一个设计题比较外放,题目是:学校有几个信息系统,但现在需要开发一款校园移动信息系统。

使用webService改造原有的信息系统,开放几个数据接口,新系统调用接口获取数据

 

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值