【面试记录】招银科技Java后台开发面试

笔试

笔试的话,考的很简单也很全面,设计到了计算机专业课程的每一个部分,但是都是相对简单的

  • 选择:
    计算机网络,计算机组成原理
  • 编程填空
    第一题:(填空)忘了,好像是排序什么的,相对简单
    第二题:(填空)动态代理的填空(个人对动态代理这部分的不是很熟悉)
    第三题:(编程)编程题,思路都再题目中给出来了。

洗牌,给出n张牌,洗牌k次。
洗牌规则:
将牌均匀分为两个部分,上面的部分放置左手,下面的部分放置右手,如果n不是偶数的话,左手牌数比右手多。
奇数次洗牌将右手最下面的牌先拿出,再从左边最下面的牌拿出,这样依次拿出牌放置
偶数次洗牌,先将左手的牌先拿出(和奇数次洗牌相反)
———————————————————————————————————————
例如7张牌,洗两次:(1,2,3,4,5,6,7)
第一次洗牌:分为两个部分
左手:1,2,3,4
右手:5,6,7
第一次洗牌:1,2,5,3,6,4,7
——————————————————————
第二次洗牌:(1,2,5,3,6,4,7)
左手:1,2,5,3
右手:6,4,7
洗牌结果:1,6,2,4,5,7,3

package face;

import java.util.Scanner;

/**
*@time 2020年6月22日:下午8:04:55
*@author Weirdo
*@version 1.0
**/
public class ZhaoShang {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int k = sc.nextInt();
		int[] nums=new int[n];
		for(int i=1;i<=n;i++) {
			nums[i-1] = sc.nextInt();
		}
		if(n<=1) {
			for(int i=0;i<n;i++) {
				System.out.println(nums[i]);
			}
		}
		int temp = 1;
		while(temp <=k ) {
			
			if(n%2 == 1) {
				//
			}
			//将牌分为两个部分
			int leftLen= n/2;
			int rightLen = n/2;
			int[] left = new int[leftLen];
			int[] right= new int[rightLen];
			for(int i=0;i<leftLen;i++) {
				left[i] = nums[i+1];
			}
			for(int i=0;i<rightLen;i++) {
				right[i] = nums[leftLen+i+1];
			}
			if(temp%2 ==1) {
				//奇数
				for(int i= n-1;i>0;i-=2) {
					leftLen--;
					rightLen--;
					nums[i] = right[rightLen];
					nums[i-1] = left[leftLen];
				}
			}else {
				//偶数
				for(int i= n-1;i>0;i-=2) {
					leftLen--;
					rightLen--;
					nums[i-1] = right[rightLen];
					nums[i] = left[leftLen];
				}
			}
			temp++;
		}
		
		for(int i=0;i<n;i++) {
			System.out.print(nums[i]+ " ");
		}
	}

}

因为选择设计到了很多基础知识,很多都是我记得我学过这个东西,但是有忘记了怎么做了。(基础真的很重要!!!!)在线编程有点不习惯,在写for循环的时候,写多了一个等于号,然后一直报越界错误,我事后再敲一遍,我真想捶死自己。以为挂了,结果收到了面试通知

电话面试

就在刚刚,招银科技打电话面试,然而我刚刚睡醒,脑子瓦特了,转不过来,我想打死自己,现在记录一下

首先就是自我介绍了(两分钟)

  • 网络编程:TCP和UDP的区别(这个回答不出来,面壁思过去)(刚刚好课程设计用了)
  • GET和POST请求的区别,哪一个安全
  • Java面向对象开发的特点:继承,抽象,封装,
  • 设计模式(单例模式的应用场景,刚刚睡醒脑子抽风!!)(多数据库怎么设计底层模块)
  • 数据库的事务,隔离级别(这个我真忘了),数据库事务保证了什么(原子性,完整性,隔离性,一致性)
  • 问了多数据库怎么保持数据的一致性(这个真没想过,我回答的是用redis做缓存),他又问redis服务器挂了怎么办?(redis 持久化)
  • 快速排序的实现原理(点击这里看)

如果还有下一次的话,我会继续更新的

你可能感兴趣的:(面试)