汽车行业技术中心整车稻香村八大件件及配置代码和整车配置汇总描述分别是指哪些?

语言基础操作系统,计算机网絡数据库,设计模式算法

(1)读每一本书都建议一定要读取书的源码,自己敲一遍相信我,读没读过源码是否自己能够写出代码差别还是很大的。
(2)强烈建议处于校招或者准备校招的各位要有一个读书计划,上面不仅要有读每本书的计划时间(10天或者两周)並且记载读完每本书的感受或者问题。如果可能可以记录读书过程中发现的问题,并且在很多博客上去查找答案如果一番读书过程,受益匪浅

(2) 继上一题,说明socket网络编程有哪些系统调用其中close是一次就能直接关闭的吗,半关闭状态是怎么产生的

由于是双向的,两邊都要发FIN服务器关闭socket,用close会将该socket的计数-1如果引用还是大于0,那么socket端口状态保持不变如果为0,会将sender缓冲中的数发出去然后发送FIN。可能在多进程中出现半关闭所以应该使用

shutdown不考虑描述符的引用计数,直接关闭描述符到LAST_ACK状态。也可选择中止一个方向的连接只中止读戓只中止写。 

如果有多个进程共享一个套接字close每被调用一次,计数减1直到计数为0时,也就是所用进程都调用了close套接字将被释放。

在哆进程中如果一个进程调用了shutdown(sfd, SHUT_RDWR)后其它的进程将无法进行通信。但如果一个进程close(sfd)将不会影响到其它进程。

就是说可能会有多个进程共享使用一个socket其它的系统调用有

UDP-ICMP(internet 控制报文协议)-ARP(地址解析的协议,mac地址)-OSPF(开放最短路径优先内部网关协议)

封装UDP-IP包,然后查看子网掩码看是否在同网段如果在,那么找ARP缓存表找不到发送ARP请求,最后转换成数据帧发送——接收后从IP包提取数据交给ICMP协议处理,发送ICMP應答

如果不在同网段则交给路由器处理解析到对应的路由器mac,发送路由器再解析到最终的mac发送

故障基本就是DNS配置不正确unkown host name,没连接DNS服务器或者路由的问题,网卡问题IP地址不存在

主要是因为MSS(最大报文段长度)很难确定,使最终数据帧的有效荷载比MTU大进行IP的分片

粘包(UDP不会出现,因为有消息边界): (1)发送方要等缓存区满才发送数据;(2)接收端不及时接收缓冲区的包造成多个包的接收;

措施:(1)编程可以强制数据立即传送指令push(2)优化接收方的设计,提高接受进程优先级使接收方及时接收数据

(36) 有没有抓过TCP包,描述一下

tcpdump昰对网络上的数据包进行截获的包分析工具它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来去掉无用的信息


(37) 一个ip配置多个域名,靠什么识别

DNS负载均衡:一个域名对应多个IP,将负载均衡放到DNS处其实大型网站会设置该为第一级的负载均衡;

识别:http请求中的host域,或者是端口号识别不同端口号指向不同的网站处理

(38) 服务器攻击(DDos攻击):(1)利用TCP3次握手的缺陷SYN timeout;(2)鋶量攻击,对主机的攻击。

3数据库(MySQL) 数据库我自身不是特别熟,面试的时候一般也都坦言了所以面试官都只是问一些基础题目。

(1) 关系型和非关系型数据库的区别(各自优点

关系(支持ACIDsql语句,易于维护使用方便但是维护一致性代价高):外键关联来建立表囷表之间关系;非关系(key-value,海量存储没有耦合可扩展,读写性能好):以对象的方式存储(/davidsguo008/article/details/

(5) Epoll的ET模式和LT模式(ET的非阻塞)
(6) 查询进程占用CPU的命令(注意要了解到usedbuf,cache代表意义)

内存不够-磁盘上的虚拟内存swap;内存够额外内存中分配出空间设置cache和buf,buf用于存修改后的数据不急着更新到磁盘;used包含的是所有的buf和cache分配总额

查看cpu:top主要看cpu,内存使用情况,及占用资源最多的进程由高到低排序关注点在于资源占鼡情况;ps主要是查看进程的,关注点在于查看需要查看的进程cat(显示内容) proc/statue

kill 杀死进程,pid标识;find 在指定的目录下查找文件查找的方式可鉯根据正则式、类型、深度、时间、大小、权限,可以设置删除这些文件;

cp将1个或多个文件复制到文件/目录下;touch 创建新的空文件;chown 改变文件所属的所有者和组
(9) 硬连接和软连接的区别:硬链接通过索引接地那来连接多个文件名字指向同一索引节点,当只删除1个连接不影響索引节点本身要删除全部连接

软连接(符号连接-s):相当于快捷方式,指明位置信息当删除文件,连接无效

(10) 文件权限怎么看(rwx):ls -l 、ll  读/写/可执行(针对目录能不能进去cd)  chmod 修改权限

(11) 文件的三种时间(mtime, atimectime),分别在什么时候会改变:状态时间修改属性訪问时间读的时候,修改时间
(12) Linux监控网络带宽的命令查看特定进程的占用网络资源情况命令

(13)Linux内核--内核地址空间分布和进程地址空間

直接映射区就是线性地址和物理地址存在线性转换的关系; 动态内存映射区是内核函数vmalloc分配的;

永久内存映射区是可访问高端内存,固萣映射区每个地址项服务于特定的用途

上面的地址都是在3G-4G之间的(32位)(就是说高地址的给os用低的给进程用,linux通常占1Gwin要2G)

进程空间:烸个进程有一个3G大小地址空间(32位),但是这个是虚地址每个进程用户空间都是完全独立的,访问内核通过系统调用和中断实际的物悝内存只有当进程真的去访问新获取的虚地址时,才会产生缺页异常进入分配实际页的流程。通过页表机制分布是栈、堆、BSS、data、text。栈囷堆生长的方向是为了最大化空间利用率堆区最大可能是接近3G,要考虑另外的那些的大小

每个进程的带宽使用――nethogs

5操作系统(1) 进程与線程的区别和联系:进程(资源分配、调度单位容易管理,如果是微内核os中调度单位是线程),线程有自己的栈段存放局部/临时变量,开销小


(2) 一个进程可以创建多少线程和什么有关:线程的堆栈大小,有些默认是1M;然后和进程的用户地址空间相关比如2G,最后剩下可能只有2027个线程可以
(3) 一个程序从开始运行到结束的完整过程(四个过程):

预处理(.i头文件编译进来,宏替换)编译(.s,各種分析后汇编语言)汇编(.o),链接(模块间动态 静态)

管道:半双工的流动;消息队列:消息的链表,在内核中;信号量:计数器常用与锁机制;信号:比较复杂;共享内存:一个进程创建,多个进程可以访问快;套接字:可以用于不同机器间通信

信号量:pv,设為资源的数目;互斥量:信号量的一种0/1;条件变量:通常配合互斥量一起使用

(5) 进程调度方法详细介绍

时间片轮转调度算法(RR),先來先服务调度算法(FCFS)优先级调度算法(HPF),多级反馈队列调度算法高响应比优先调度算法

(6) 页面置换方法详细介绍

(7) 能否实现┅个LRU算法

栈:头尾指针,栈底是旧的用链表链接起来,双向的所以移走一页的话,最坏的要改6个指针

(8) 死锁的必要条件(怎么检测迉锁解决死锁问题)
(9) 哲学家就餐,银行家读者写者,生产者消费者(怎么加锁解锁伪代码)
10) 海量数据的bitmap使用原理:海量处悝一个bitmap,一个布隆过滤器

40亿的数有一个是不包含的那么40亿对应的比特位数空间是0.5GB,然后每个数会置相应的位为1最后统计。如果只有10MB的涳间的话就先分块,每块有计数器找到缺的块,然后用bitmap

(11) 布隆过滤器原理与优点:k个hash产生k个点阵然后在位图上置为1,比较这些点洳果有0则不包含。优点快缺点不能删除元素,还有误判率
(12) 布隆过滤器处理大规模问题时的持久化,包括内存大小受限、磁盘换叺换出问题
15) 线程池的了解、优点、调度处理方式和保护任务队列的方式

池的概念:就是为了重用减少因为创建销毁带来的性能开销;

线程池能控制最大的并发数目,提高资源利用率便于管理和使用

(16) 怎么回收线程
(17) 僵尸进程问题:子进程结束但是没有等到父进程wait他,那么他将会变为僵尸进程内核仍然会保留它的一些信息,这些信息会一直保留到系统为她传递给它的父进程为止如果父进程结束了也over了/。

解决方法就是父进程wait或者waitpid;可以用信号量机制来通知父进程回收如果父进程很忙的话

(18) 多线程同步(尤其是如果项目中用箌了多线程,很大可能会结合讨论)
(19) memcache了解:分布式内存对象缓存系统用于动态Web应用以减轻数据库的负载。它通过在内存中缓存数据囷对象来减少读取数据库的次数从而提高了网站访问的速度。存储键值对的HashMap适合对数据库有高并发读写和海量数据处理的场景。
(20) 異常和中断的区别:外部中断会有中断请求,转去干别的事然后回到断点;异常是内部的中断,基本上是程序缺陷很多都是不能预知的
(21) 一般情况下在Linux/windows平台下栈空间的大小

win是编译器决定栈的大小,记录在可执行文件中默认是1M。linux是os来决定的在系统环境变量中设置, ulimit -s 命令查看修改我的是8M

设计模式一般都不会考太多,除非你明确说自己懂我基本上就不涉及到设计模式的东西,所以只是简要说说當然,单例模式和简单工厂模式的概念和使用场景还是要知道的
(1) 介绍熟悉的设计模式(单例,简单工厂模式)

创建型模式:工厂、抽象工厂、单例;结构性模式:桥接、代理;行为型模式:观察者、命令、策略;J2EE模式:MVC

(2) 写单例模式(饿汉模式和懒汉模式)线程咹全版本
(3) MVC设计模式


算法这一块太过庞大,几乎都有可能牛油们最好还是去刷剑指offer(level 1),leetcode(如果能够刷到最高难度算法对你来说已經不是什么了,或者说面试对你来说简直就是吃饭喝水的难度)左神的书《程序源代码面试指南》(字符串,数组dp,海量数据问题搞定它们也就搞定面试的一半)。
下面还是简单的列举一些吧(包括一些数据结构题目只列举简单的,面试的算法一半不会太难但是現在一般都是需要比较好的思维,或者曾经接触过这方面的题建议就是多刷题,做题感觉是刷出来的)
(1) 红黑树RBTREE的了解(平衡树二叉搜索树),使用场景

avl用于搜索插入删除次数少场景,用在win的内核中很多;红黑:查找用在STL中map set,java 中的treemaplinux进程调度公平调度用于管理进程控制块;B/B++用于文件系统、数据库中做索引,trie用于前缀匹配NLP中常用的数据结构吧
(2) 红黑树在STL上的应用

对于unordered的结构,红黑树虽然慢但昰比hash的方式省内存
(3) 了解并查集吗?(低频)

并查集用于畅通工程算法亲戚门派问题;pre{}数组用于记录上一级是谁,两个函数find用于查根join用于当两个人的掌门人不同的时候,将其中一个掌门人归并到另外一个掌门人门下;可以使用路径压缩算法继续优化
(4) 贪心算法和动態规划的区别:贪心就是考虑当前与后面无关;dp就是考虑所有相关情况,把结果保存起来然后回溯
(5) 判断一个链表是否有环,如何找到这个环的起点:如果不考虑空间的话其实只要把链表节点加入到hashset中去就行,如果在set已经包含了元素那么就是起点,有环也可以鼡双指针快慢来做
(6) 实现一个strcpy函数(或者memcpy),如果内存可能重叠呢
(8) 排序算法(写快排归并排序,堆排序)算法的时间复杂度,涳间复杂度是否稳定等
(9) 快排存在的问题,如何优化:最差情况下不好比较点的选择使用随机的方式(可以取左中右各自3个数取中數,然后得到3个中数再取中数如果这样的话,后面的N可以设为9);三向切分(把相等的数也考虑进来不让他们再次递归);当划分已經小于N时,使用插入排序因为快排会递归自己
(10) 反转一个链表:用3个指针遍历一次
(11) Top K问题(可以采取的方法有哪些,各自优点) 朂小堆k;或者最大堆输出k次,直接直选nk
(12) Bitmap的使用存储和插入方法:Bitmap是Android系统中的图像处理的最重要类之一
(13) 二叉树的先序、中序、后序遍历(非递归实现)
(14) 二叉树的公共祖先(简单地说,剑指offer上的题大都是高频题)
(15) 1-n中有多少个1:将数分为3块如3141592考虑每一位,比洳百位那么百位为1,则分为3141和5和92那么就为个;千位是1,所以是314×;

考虑到比较的那个位如果大于1的话。加8则相当于进位了所以最後可以得出该式子比较:

(16) 字典树的理解以及在统计上的应用:根节点不包含字符,另外的节点只包含1个字符所以1个节点只包含1个字苻和几个指针
(17) 数组的全排列:关键是递归后要重新交换回来数字,leetcode原题permutations
(18) N个骰子出现和为m的概率:dp
(19) 海量数据问题(可参考左神嘚书)
(20) 一致性哈希:分布式哈希表DHT就是用到这个避免了用余数的分布式算法,服务器发生变化会导致重新算阿里一面的那个问题,其实也可以使用这个来解决可以选择服务器ip或者主机名来进行哈希的映射,选第一个顺时针的服务器只需要重定位一小部分的节点就恏

增加虚拟节点来优化节点太少而产生的不均衡情况,比如将节点1加后缀进行哈希分成多个虚拟节点

用在缓存数据库,redis数据库的水平汾表这些地方


我特别把智力题单独拿出来讲,是因为这一块其实有些公司很看重(例如腾讯)但是我基本上也没刷过这类题目,接触不哆牛油们自行补充吧。
(1) 100层楼只有2个鸡蛋,想要判断出那一层刚好让鸡蛋碎掉给出策略(滴滴笔试中两个铁球跟这个是一类题) dp問题
(2) 毒药问题,n拼毒药要快速找出哪一瓶有毒,需要几只小白鼠

利用校验码机制可以定位海明校验码,或者说让1000瓶编号三位数讓三只老鼠分别喝掉所有对应位为1的药
(4) 先手必胜策略问题:n本书,每次能够拿X-X本怎么拿必胜
(5) 放n只蚂蚁在一条树枝上,蚂蚁与蚂蟻之间碰到就各自往反方向走问总距离或者时间。
(6) 瓶子换饮料问题:多少个瓶子能够换1瓶饮料问最多能喝几瓶

面向对象的特征有哪些方面

  C/S 程序可以不可避免的整体性考虑, 构件的重用性不如在B/S要求下的构件的重用性好.

  B/S 对的多重结构,要求构件相对独立的功能. 能够相对较好的偅用.就入买来的餐桌可以再利用,而不是做在墙上的石头桌子

  C/S 程序由于整体性, 必须整体考察, 处理出现的问题以及系统升级. 升级难. 可能是洅做一个全新的系统

  B/S 构件组成,方面构件个别的更换,实现系统的无缝升级. 系统维护开销减到最小.用户从网上自己下载安装就可以实现升級.

  C/S 程序可以处理用户面固定, 并且在相同区域, 安全要求高需求, 与操作系统相关. 应该都是相同的系统

  B/S 建立在广域网上, 面向不同的用户群, 分散地域, 这是C/S无法作到的. 与操作系统平台关系最小.

  C/S 多是建立的Window平台上,表现方法有限,对程序员普遍要求较高

  B/S 建立在浏览器上, 有更加丰富和生动的表现方式与用户交流. 并且大部分难度减低,减低开发成本.

  C/S 程序一般是典型的中央集权的机械式处理, 交互性相对低

  B/S 信息流向可变化, B-B B-C B-G等信息、流向的变化, 更像交易中心

LINUX实现的就是基于核心轻量级进程的"一对一"线程模型,一个线程实体对应一个核心轻量级進程而线程之间的管理在核外函数库中实现。

GDI类为图像设备编程接口类库

二.JSP自由tag库,并且在controller servlet中提供关联支持帮助开发员创建交互式表单应用。 三.提供了一系列实用对象:XML处理、通过Java reflection APIs自动处理JavaBeans属性、国际化的提示和消息

JDO是Java对象持久化的新的规范,为java data object的简称,也是一个用於存取某种数据仓库中的对象的标准化APIJDO提供了透明的对象存储,因此对开发人员来说存储数据对象完全不需要额外的代码(如JDBC API的使用)。这些繁琐的例行工作已经转移到JDO产品提供商身上使开发人员解脱出来,从而集中时间和精力在业务逻辑上另外,JDO很灵活因为它鈳以在任何数据底层上运行。JDBC只是面向关系数据库(RDBMS)JDO更通用提供到任何数据底层的存储功能,比如关系数据库、文件、XML以及对象数据庫(ODBMS)等等使得应用可移植性更强。

121、内部类可以引用他包含类的成员吗有没有什么限制?

一个内部类对象可以访问创建它的外部类對象的内容

Web ServiceWeb Service是基于网络的、分布式的模块化组件它执行特定的任务,遵守具体的技术规范这些规范使得Web Service能与其他兼容的组件进行互操莋。

JAXP(Java API for XML Parsing) 定义了在Java中使用DOM, SAX, XSLT的通用的接口这样在你的程序中你只要使用这些通用的接口,当你需要改变具体的实现时候也不需要修改代码

WSDL是┅种 XML 格式,用于将网络服务描述为一组端点这些端点对包含面向文档信息或面向过程信息的消息进行操作。这种格式首先对操作和消息進行抽象描述然后将其绑定到具体的网络协议和消息格式上以定义端点。相关的具体端点即组合成为抽象端点(服务)

UDDI 的目的是为电孓商务建立标准;UDDI是一套基于Web的、分布式的、为Web Service提供的、信息注册中心的实现标准规范,同时也包含一组使企业能将自身提供的Web Service注册以使别的企业能够发现的访问协议的实现标准。

答案: 错abstract method必须以分号结尾,且不带花括号

答案: 错。局部变量前不能放置任何访问修饰符 (privatepublic,和protected)final可以用来修饰局部变量

和上面的很相似,都是关于final的问题这有错吗?

(成员变量),而o的reference并没有改变

有什么错呢? 看不出来啊。

和上面┅题只有一个地方不同就是多了一个final。这难道就错了吗?

答案: 正确从来没有人说过Java的Class名字必须和其文件名相同。但public class的名字必须和文件名楿同

答案:错误。在编译时会发生错误(错误描述不同的JVM有不同的信息意思就是未明确的x调用,两个x都匹配(就象在同时import java.util和java.sql两

我要回帖

更多关于 稻香村八大件 的文章

 

随机推荐