面试记录之江西某一家公司

首先,进行自我介绍

接着问一些技术相关的问题:
1.java和c语言有什么区别?
答:java是面向对象的,c语言是面向过程的。 ①c语言不是面向对象的,而是面向过程,而JAVA是面向对象的语言。②c语言可以直接操作内存而Java不能。③c语言有指针,而Java没有。④Java学起来和使用起来都比c要便捷,容易。⑤在应用方面,c语言主要应用在操作系统和嵌入式开发等偏底层的领域上,而Java主要应用于web服务器开发或者安卓开发等领域,就需求方面而言,Java的需求是远大于c的。⑥由于Java是运行在jvm虚拟机上的,所以它具有垃圾回收装置,并且由于jvm会将Java文件编译成class文件,将字节码文件解释成对应平台机器码并执行,所以Java是跨平台的,一次编译到处运行。
2.Java的面向对象。
答:面向对象的主要特征:多态,抽象,继承,封装。多态是指不同子类型的对象对同一消息作出不同的响应;抽象是指将一些有共同特征的类提取出来形成一个抽象类,比如猫和狗可以抽象为动物这个类,包括数据抽象和行为抽象两方面,抽象只关注对象有哪些属性和行为,并不关注这些行为的细节是什么;继承是指从已有类继承信息创建新类的过程,继承让变化中的软件系统有了一定的延续性;封装就是将数据和操作数据的方法绑定起来,将数据隐藏,只向外界提供最简单的编程接口。
3.mysql和redis的区别。
答:MySQL是关系型数据库,数据存储在硬盘,读取速度较慢,redis是非关系型数据库,数据存储在内存,读取速度较快。
4.冒泡排序算法。
答:冒泡排序:

public static void maopaoSort(int[] arr){

	int[] arr = { 24, 51, 35, 54, 25, 64, 72, 52 };
	for(int x = 0;x < arr.length-1;x++){
		for(int y = 0;y < arr.length - 1 - x; y++){
			if(arr[y] > arr[y+1]){
				int temp = arr[y];
				arr[y] = arr[y+1];
				arr[y+1] = temp;
			}
		}
	}

	for (int i = 0; i < arr.length; i++) {
		System.out.print(arr[i] + " "); //24 25 35 51 52 54 64 72
	}
}

选择排序:

public static void xuanzeSort(int[] arr){
	int[] arr = { 24, 51, 35, 54, 25, 64, 72, 52 };

	for(int x=0;x<arr.length-1;x++){
		for(int y=x+1;y<arr.length;y++){
			if(arr[y]<arr[x]){
				int temp = arr[x];
				arr[x]=arr[y];
				arr[y]=temp;
			}
		}
	}
	for (int i = 0; i < arr.length; i++) {
		System.out.print(arr[i] + " "); //24 25 35 51 52 54 64 72
	}
}

5.mysql简单的数据库语句(增删改查)。
(有点基础,就不记录了)
6.设计模式用过哪些?简单说说什么是设计模式?为什么要用设计模式?(设计模式的好处)
答:单例模式,工厂模式,装饰模式,后面就没回答上了。 java中一般认为有23种设计模式,总体分为三大类:
创建型模式: 工厂方法模式,抽象工厂模式,单例模式,建造者模式,原型模式。
结构型模式: 适配器模式,装饰器模式,代理模式,外观模式,桥接模式,组合模式,享元模式。
行为型模式: 策略模式,模板方法模式,观察者模式,迭代子模式,责任链模式,命令模式,备忘录模式,状态模式,访问者模式,中介者模式,解释器模式。
设计模式是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。项目中合理的运用设计模式可以完美的解决很多问题,每种模式在现在中都有相应的原理来与之对应,每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的核心解决方案,这也是它能被广泛应用的原因。简单说:
模式:在某些场景下,针对某类问题的某种通用的解决方案。
场景:项目所在的环境
问题:约束条件,项目目标等
解决方案:通用、可复用的设计,解决约束达到目标。
7.你了解过oa系统吗?
答:办公自动化(Office Automation,简称OA),是将计算机、通信等现代化技术运用到传统办公方式,进而形成的一种新型办公方式。办公自动化利用现代化设备和信息化技术,代替办公人员传统的部分手动或重复性业务活动,优质而高效地处理办公事务和业务信息,实现对信息资源的高效利用,进而达到提高生产率、辅助决策的目的,最大限度地提高工作效率和质量、改善工作环境。
8.你了解一些脚本语言,比如python,shell等吗?
答:参考原文https://blog.csdn.net/zhangrenfang/article/details/8500871
9.tcp协议和udp协议的区别。
答:在这里插入图片描述
10.tcp协议的三次握手和四次挥手。
答:在这里插入图片描述
在这里插入图片描述
11.svn和git的区别
答:当时没说出来,可以参考博客https://www.cnblogs.com/xiebai/p/11496052.html
(暂时想到的面试问题就是这些,还有一些与技术相关性不大的问题在此就不做记录了。)
接着就问了一些你对将来的发展有什么打算呀之类的,最后面试官问你还有什么想问我的吗?…期间,大概聊了一个小时左右,聊了一些公司的业务,发展空间,薪资福利等等,整个面试时长大概两小时。

总结:本次面试面试的是一家吉安的公司,公司规模较小(20~30人大概),处于发展阶段,面试题也主要是一些比较基础比较简单的问题,对于本次面试自己的表现有点不大满意,居然连面向对象的解释都说的吞吞吐吐,连冒泡排序算法都一时没想起来,还有就是面试的Java相关的技术问题稍微有点浅也有点少,没有将自己的特长展示出来,也怪自己当时没有主动展示,另外,自己在语言表达方面还是要加强。
(注:之后的回答是自己回来冷静下来后手写的,仅自己理解,不保证完全对,6,7,8参阅了一些资料)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值