面试题总结5

算法题:

1、一个数组,有奇数和偶数,将奇数放在前面偶数放在后面。

思路:

  • A、开辟一个新的数组,对元素组的数据用一个bool型数组记录每个元素的奇偶类型,之后遍历原数组,并用开辟的新数组保存奇数,然后保存偶数。
  • B、交换元素,用冒泡法的思想,将偶数沉底,奇数自然就上升了。

2、求两个单链表的交点。

首先判断链表A与链表B末节点是否相同,如果相同则两个链表必然交,然后求两个链表的长度,len_A,len_B,len = |len_A-len_B|,让长的链表从len处,短的链表从头结点开始,同步移动,知道两个两个节点的地址相同,则为两个单链表的交点。

3、Java与c++面向对象的区别。

Java和c++都能实现面向对象思想(封装、继承、多态),由于C++向后兼容了C,使得C++变成了带类的C语言,Java则是完全的面向对象语言。

  • A、指针的使用,在C++中可以使用指针,在Java里面虽然存在指针,但一般不使用。Java自带垃圾回收机制,自动检测哪些对象不再使用,然后用释放资源,避免了程序员操作指针不当,造成内存溢出。
  • B、多重继承,C++里支持多重继承,即一个子类可以继承多个父类。Java不支持多重继承,但是容许一个类可以继承多个接口,实现了C++多重继承的功能。
  • C、数据类型及类的定义。Java中要求变量定义和方法定义放在类中,便于封装,而C++容许将函数和变量定义成全局的。
  • D、自动的内存管理机制,Java有自动垃圾回收机制,new之后的对象不用程序员释放,而C++必须程序员释放。
  • E、操作符重载。C++支持操作符重载,Java不支持操作符重载。
  • F、预处理功能,C++有预编译阶段,但是增加了编译的复杂度,Java引入了import语句,和预编译功能类似。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

feng_blog6688

只需一个赞,谢谢你的鼓励

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

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

打赏作者

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

抵扣说明:

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

余额充值