天津国企的测试开发岗实习面试

#在牛客分享我的求职旅程#

公司的名字就不太方便说了,给大家一个国企测开岗的参考。线下面试了半个多小时,首先问了什么时候能来实习,每周能来几天,能来几个月,论文写在没有了,面试官说因为之前出现过实习生实习几天就跑路的情况,所以有些担心。然后就开始了正式面试。以下问题和答案是我回来整理的不一定准确

先是两道算法题:

1.给定两个正整数m和n(m<n)和一个包含在mn之间的整数i(m<i<n),请输出mn之间的两种数:第一种是可以整除i的,第二种是数字中含有i的。例如m=1,n=50,i=9,则输出9,18,19,27,29,36,39,45,49,54,59。

public static List<Integer> judge(int begin,int end,int num){
ArrayList<Integer> list = new ArrayList<>();
for(int i=begin; i<=end;i++){
    if(i > 0 && i % num == 0){
        list.add(i);
        continue;
    }
    int res = i;
    while(res > 0){
        int last = res % 10;
        if(last == num){
            list.add(i);
            break;
        }
        res /= 10;

    }
}
return list;

}

2.给定两个无序列表list1和list2,请将他们合并而且按升序排列,并且去除重复元素。

    public static List<Integer> merge(List<Integer> list1,List<Integer> list2){
        for(int i:list1){
            list2.add(i);
        }
        Set<Integer> set =new HashSet<>(list2);
        List<Integer> list = new ArrayList<>(set);
        collections.sort(list);
        return list;
    }

}

然后问了一些计算机基础知识:

1.常用的Linux命令有哪些?

目录切换

  • cd usr: 切换到该目录下 usr 目录
  • cd ..(或cd../): 切换到上一层目录
  • cd /: 切换到系统根目录
  • cd ~: 切换到用户主目录
  • cd - 切换到上一个操作所在目录

目录操作

  • ls:显示目录中的文件和子目录的列表。例如:ls /home,显示 /home 目录下的文件和子目录列表。
  • llllls -l 的别名,ll 命令可以看到该目录下的所有目录和文件的详细信息
  • mkdir [选项] 目录名:创建新目录(增)。例如:mkdir -m 755 my_directory,创建一个名为 my_directory 的新目录,并将其权限设置为 755,即所有用户对该目录有读、写和执行的权限。
  • find [路径] [表达式]:在指定目录及其子目录中搜索文件或目录(查),非常强大灵活。例如:① 列出当前目录及子目录下所有文件和文件夹: find .;② 在/home目录下查找以 .txt 结尾的文件名:find /home -name "*.txt" ,忽略大小写: find /home -i name "*.txt" ;③ 当前目录及子目录下查找所有以 .txt.pdf 结尾的文件:find . \( -name "*.txt" -o -name "*.pdf" \)find . -name "*.txt" -o -name "*.pdf"
  • pwd:显示当前工作目录的路径。
  • rmdir [选项] 目录名:删除空目录(删)。例如:rmdir -p my_directory,删除名为 my_directory 的空目录,并且会递归删除my_directory的空父目录,直到遇到非空目录或根目录。
  • rm [选项] 文件或目录名:删除文件/目录(删)。例如:rm -r my_directory,删除名为 my_directory 的目录,-r(recursive,递归) 表示会递归删除指定目录及其所有子目录和文件。
  • cp [选项] 源文件/目录 目标文件/目录:复制文件或目录(移)。例如:cp file.txt /home/file.txt,将 file.txt 文件复制到 /home 目录下,并重命名为 file.txtcp -r source destination,将 source 目录及其下的所有子目录和文件复制到 destination 目录下,并保留源文件的属性和目录结构。
  • mv [选项] 源文件/目录 目标文件/目录:移动文件或目录(移),也可以用于重命名文件或目录。例如:mv file.txt /home/file.txt,将 file.txt 文件移动到 /home 目录下,并重命名为 file.txtmvcp 的结果不同,mv 好像文件“搬家”,文件个数并未增加。而 cp 对文件进行复制,文件个数增加了。

文件操作

mvcprm 等文件和目录都适用的命令,这里就不重复列举了。

  • touch [选项] 文件名..:创建新文件或更新已存在文件(增)。例如:touch file1.txt file2.txt file3.txt ,创建 3 个文件。
  • ln [选项] <源文件> <硬链接/软链接文件>:创建硬链接/软链接。例如:ln -s file.txt file_link,创建名为 file_link 的软链接,指向 file.txt 文件。-s 选项代表的就是创建软链接,s 即 symbolic(软链接又名符号链接) 。
  • cat/more/less/tail 文件名 :文件的查看(查) 。命令 tail -f 文件 可以对某个文件进行动态监控,例如 Tomcat 的日志文件, 会随着程序的运行,日志会变化,可以使用 tail -f catalina-2016-11-11.log 监控 文 件的变化 。
  • vim 文件名: 修改文件的内容(改)。vim 编辑器是 Linux 中的强大组件,是 vi 编辑器的加强版,vim 编辑器的命令和快捷方式有很多,但此处不一一阐述,大家也无需研究的很透彻,使用 vim 编辑修改文件的方式基本会使用就可以了。在实际开发中,使用 vim 编辑器主要作用就是修改配置文件,下面是一般步骤: vim 文件------>进入文件----->命令模式------>按i进入编辑模式----->编辑文件 ------->按Esc进入底行模式----->输入:wq/q! (输入 wq 代表写入内容并退出,即保存;输入 q!代表强制退出不保存)。

文件压缩

1)打包并压缩文件:

Linux 中的打包文件一般是以 .tar 结尾的,压缩的命令一般是以 .gz 结尾的。而一般情况下打包和压缩是一起进行的,打包并压缩后的文件的后缀名一般 .tar.gz

命令:tar -zcvf 打包压缩后的文件名 要打包压缩的文件 ,其中:

  • z:调用 gzip 压缩命令进行压缩
  • c:打包文件
  • v:显示运行过程
  • f:指定文件名

比如:假如 test 目录下有三个文件分别是:aaa.txtbbb.txtccc.txt,如果我们要打包 test 目录并指定压缩后的压缩包名称为 test.tar.gz 可以使用命令:tar -zcvf test.tar.gz aaa.txt bbb.txt ccc.txttar -zcvf test.tar.gz /test/

2)解压压缩包:

命令:tar [-xvf] 压缩文件

其中 x 代表解压

示例:

  • /test 下的 test.tar.gz 解压到当前目录下可以使用命令:tar -xvf test.tar.gz
  • 将 /test 下的 test.tar.gz 解压到根目录/usr 下:tar -xvf test.tar.gz -C /usr-C 代表指定解压的位置。

2.你了解的设计模式有哪些?

设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了重用代码、让代码更容易被他人理解、保证代码可靠性。设计模式可以分为三大类:创建型模式(Creational Patterns)、结构型模式(Structural Patterns)、行为型模式(Behavioral Patterns)。还有论另一类设计模式:J2EE 设计模式。

创建型模式(这些设计模式提供了一种在创建对象的同时隐藏创建逻辑的方式,而不是使用 new 运算符直接实例化对象。这使得程序在判断针对某个给定实例需要创建哪些对象时更加灵活。)包括:
工厂模式(Factory Pattern)
抽象工厂模式(Abstract Factory Pattern)
单例模式(Singleton Pattern)
建造者模式(Builder Pattern)
原型模式(Prototype Pattern)
结构型模式(这些设计模式关注类和对象的组合。继承的概念被用来组合接口和定义组合对象获得新功能的方式)包括:
适配器模式(Adapter Pattern)
桥接模式(Bridge Pattern)
过滤器模式(Filter、Criteria Pattern)
组合模式(Composite Pattern)
装饰器模式(Decorator Pattern)
外观模式(Facade Pattern)
享元模式(Flyweight Pattern)
代理模式(Proxy Pattern)
行为型模式(这些设计模式特别关注对象之间的通信。)包括:
责任链模式(Chain of Responsibility Pattern)
命令模式(Command Pattern)
解释器模式(Interpreter Pattern)
迭代器模式(Iterator Pattern)
中介者模式(Mediator Pattern)
备忘录模式(Memento Pattern)
观察者模式(Observer Pattern)
状态模式(State Pattern)
空对象模式(Null Object Pattern)
策略模式(Strategy Pattern)
模板模式(Template Pattern)
访问者模式(Visitor Pattern)
J2EE 模式(这些设计模式特别关注表示层。这些模式是由 Sun Java Center 鉴定的。)包括:
MVC 模式(MVC Pattern)
业务代表模式(Business Delegate Pattern)
组合实体模式(Composite Entity Pattern)
数据访问对象模式(Data Access Object Pattern)
前端控制器模式(Front Controller Pattern)
拦截过滤器模式(Intercepting Filter Pattern)
服务定位器模式(Service Locator Pattern)
传输对象模式(Transfer Object Pattern)

3.python中列表,元组,字典的区别?

列表(list)、元组(tuple)和字典(dictionary)都是序列,序列都是由索引和元素组成。

创建列表,格式为:['...' , '....' , ..... '....' ],用逗号分隔,用方括号括起来。例如:

list1 = ['Google', 'Runoob', 1997, 2000]

list2 = [1, 2, 3, 4, 5 ]

list3 = ["a", "b", "c", "d"]

list4 = ['red', 'green', 'blue', 'yellow', 'white', 'black']

访问列表元素

list = ['red', 'green', 'blue', 'yellow', 'white', 'black']

print( list[0] )

print( list[1] )

print( list[2] )

结果:

red

green

blue

 更新和删除列表:可以使用 append() 方法来添加列表元素,del删除列表元素

list = ['Google', 'Runoob', 1997, 2000]

print ("原始列表 : ", list)

#列表更新操作

list[2] = '马保国'

print ("更新第三个元素的列表 : ", list)

#列表删除操作

del list[2]#删除索引为2的列表元素,也就是删除列表的第三个元素

print ("删除第三个元素: ", list)

#列表append操作

list.append('Baidu')

print ("更新后的列表 : ", list)

结果:

原始列表 : ['Google', 'Runoob', 1997, 2000]

更新第三个元素的列表 : ['Google', 'Runoob', '马保国', 2000]

删除第三个元素: ['Google', 'Runoob', 2000]

更新后的列表 : ['Google', 'Runoob', 2000, 'Baidu']

Python 的元组与列表类似,但是元组的元素不能修改。元组使用小括号 ( ),列表使用方括号 [ ]

 特殊情况:元组中只有一个元素时,需要在元素后面添加逗号 ,否则括号会被当作运算符使用:

tup1 = (50)

type(tup1) # 不加逗号,类型为整型

<class 'int'>

tup1 = (50,)

type(tup1) # 加上逗号,类型为元组

<class 'tuple'>

元组的访问、删除操作与列表相同 ,元组的元素不能修改,但可以对元组连接组合;元组的元素值也不能删除,只能删除整个元组。

tup1 = ('Google', 'Runoob', 1997, 2000)

tup2 = ('Baidu', '腾讯')

tup = tup1 + tup2 # 元组连接组合

print('连接组合后的元组:',tup)

del tup#要删除只能删除整个元组,不能删除元组的某个元组

print("删除后的元组 tup : ")

print(tup)#输出结果会报错:NameError: name 'tup' is not defined

结果:

NameError: name 'tup' is not defined

连接组合后的元组: ('Google', 'Runoob', 1997, 2000, 'Baidu', '腾讯')

删除后的元组 tup :

字典的每个键值 key : value 对用冒号 : 分割,每个对之间用逗号(,)分割,整个字典包括在花括号 {} 中 ,注意:dict 作为 Python 的关键字和内置函数,变量名不建议命名为 dict。举例如下:

tinydict = {'name': 'runoob', 'likes': 123, 'url': 'www.runoob.com'}

创建字典:emptyDict = {}#方法一:使用{ }创建

emptyDict = dict()#方法二:使用内建函数 dict() 创建

修改字典:

tinydict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}

tinydict['Age'] = 8 # 更新 Age

tinydict['School'] = "菜鸟教程" # 添加信息

print ("tinydict['Age']: ", tinydict['Age'])

print ("tinydict['School']: ", tinydict['School'])

结果:

tinydict['Age']: 8

tinydict['School']: 菜鸟教程

删除:能删单一的元素也能清空字典,清空只需一项操作。删除一个字典用del命令,具体如下:

tinydict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}

print('原字典:',tinydict)

del tinydict['Name'] # 删除键 'Name'

print('删除键Name后:',tinydict)

print ("字典Age的键值: ", tinydict['Age'])

tinydict.clear() # 清空字典

del tinydict # 删除字典,会引发异常,因为用执行del操作后字典不再存在

print ("tinydict['School']: ", tinydict['School'])

结果:

原字典: {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}

删除键Name后: {'Age': 7, 'Class': 'First'}

字典Age的键值: 7

Traceback (most recent call last):

print ("tinydict['School']: ", tinydict['School'])

NameError: name 'tinydict' is not defined

总结:

1.列表、元组和字典都是序列

2.列表字典可以修改和删除序列中的某个元素,而元组就是一个整体,不能修改和删除,一定要修改或删除的话,只能修改和删除整个元组。

3.既然元组不能删除和修改,有什么作用呢?

1.元组比列表遍历速度快,因为元组是一个整体,运算效率高;

2.正是因为不能修改,元组可以保护不需要修改的数据,可以使代码结构更安全。

4.你的项目用的什么设计模式,你是怎么测试你的项目的,做过压力测试吗?

5.了解服务器的内部结构吗,用过SSH吗?

XShell

6.介绍springmvc?

MVC:MVC是一种软件架构的思想,将软件按照模型、视图、控制器来划分 M:Model,模型层,指工程中的JavaBean,作用是处理数据 JavaBean分为两类:一类称为实体类Bean:专门存储业务数据的,如 Student、User 等。一类称为业务处理 Bean:指 Service 或 Dao 对象,专门用于处理业务逻辑和数据访问。 V:View,视图层,指工程中的html或jsp等页面,作用是与用户进行交互,展示数据 C:Controller,控制层,指工程中的servlet,作用是接收请求和响应浏览器 MVC的工作流程: 用户通过视图层发送请求到服务器,在服务器中请求被Controller接收,Controller调用相应的Model层处理请求,处理完毕将结果返回到Controller,Controller再根据请求处理的结果找到相应的View视图,渲染数据后最终响应给浏览器。

SpringMVC是Spring的一个后续产品,是Spring的一个子项目。SpringMVC 是 Spring 为表述层开发提供的一整套完备的解决方案。在表述层框架历经 Strust、WebWork、Strust2 等诸多产品的历代更迭之后,目前业界普遍选择了 SpringMVC 作为 Java EE 项目表述层开发的首选方案。注:三层架构分为表述层(或表示层)、业务逻辑层、数据访问层,表述层表示前台页面和后台servlet

3SpringMVC的特点:Spring 家族原生产品,与 IOC 容器等基础设施无缝对接 基于原生的Servlet,通过了功能强大的前端控制器DispatcherServlet,对请求和响应进行统一处理 表述层各细分领域需要解决的问题全方位覆盖,提供全面解决方案 代码清新简洁,大幅度提升开发效率 内部组件化程度高,可插拔式组件即插即用,想要什么功能配置相应组件即可 性能卓著,尤其适合现代大型、超大型互联网项目要求

#在牛客分享我的求职旅程#
全部评论
整天搁这编面试题不累吗?
点赞
送花
回复
分享
发布于 2023-06-17 09:30 北京
楼主什么bg,本地人双非硕有机会吗😂
点赞
送花
回复
分享
发布于 02-24 20:25 天津
蔚来
校招火热招聘中
官网直投

相关推荐

#25届非技术实习投递记录##产品面经##非技术岗是怎么找实习的##投递实习岗位前的准备##我的实习求职记录#1.自我介绍2.实习中后台需求的的详细介绍3.后台需求迭代和闭环的流程、在这个过程中通过什么样的指标来牵引产品的迭代,如何量化每次迭代的效果,如何做这个迭代的闭环。3.产品需求中如何应用ai来进行赋能的,具体使用什么样的方式。4.分享一款你觉得做得比较好的一款&nbsp;AI&nbsp;的应用,具体说明一下产品带来的吸引点。5.场景应用:如果把sd这种应用到手机终端中,该如何设计这种功能或者方案,有哪些场景可以去为手机的用户去带来这样的一些&nbsp;AI&nbsp;的创新体验,去提升手机在科技方面的这样的一些产品的竞争力。6.如何衡量ai&nbsp;agent端到端的用户体验。用户体验是抽象的,每个人在使用产品的对产品功能设计都是有着不同理解的,所以这个问题我们需要尽可能的从两方面进行思考第一个方面即传统语音助手评估标准、第二个方面即用户主观的评判标准综上即着重是利用大模型之中它的memory,例如大模型的涌现能力,包括大模型&nbsp;plan&nbsp;这种对于这种复杂问题或者是多指令的它的一个规划的能力。传统NLP,它可能都是规则式的,可能就一问一答,或者是解决用户单一的问题,当遇到多个需求的时候,他如何去做规划?如何去判断先做哪一个,后做哪一个?这个其实是一个对于整个的语义理解,包括它的执行规划上来说是一个全面的提升。再加上端云融合的方式,云端做一些控制,后端做一些表现力(端云融合绝对是未来所有产品发展方向,非常重要)7.对如何做端云融合的设计做详细的描述,后端怎么设计才能呈现出表现力1.设定需求场景2.规则质控3.主动开放一些后端权限来保证表现力的输出8.对传音的了解
点赞 评论 收藏
转发
8 36 评论
分享
正在热议
# 牛客帮帮团来啦!有问必答 #
1151501次浏览 17149人参与
# 通信和硬件还有转码的必要吗 #
11201次浏览 101人参与
# 不去互联网可以去金融科技 #
20360次浏览 255人参与
# 和牛牛一起刷题打卡 #
18963次浏览 1635人参与
# 实习与准备秋招该如何平衡 #
203374次浏览 3625人参与
# 大厂无回复,继续等待还是奔赴小厂 #
4972次浏览 30人参与
# OPPO开奖 #
19200次浏览 267人参与
# 通信硬件薪资爆料 #
265899次浏览 2484人参与
# 国企是理工四大天坑的最好选择吗 #
2220次浏览 34人参与
# 互联网公司评价 #
97682次浏览 1280人参与
# 简历无回复,你会继续海投还是优化再投? #
25035次浏览 354人参与
# 0offer是寒冬太冷还是我太菜 #
454856次浏览 5124人参与
# 国企和大厂硬件兄弟怎么选? #
53901次浏览 1012人参与
# 参加过提前批的机械人,你们还参加秋招么 #
14644次浏览 349人参与
# 硬件人的简历怎么写 #
82285次浏览 852人参与
# 面试被问第一学历差时该怎么回答 #
19397次浏览 213人参与
# 你见过最离谱的招聘要求是什么? #
28083次浏览 248人参与
# 学历对求职的影响 #
161234次浏览 1804人参与
# 你收到了团子的OC了吗 #
538703次浏览 6386人参与
# 你已经投递多少份简历了 #
344206次浏览 4963人参与
# 实习生应该准时下班吗 #
96974次浏览 722人参与
# 听劝,我这个简历该怎么改? #
63523次浏览 622人参与
牛客网
牛客企业服务