校招面试题6------百度

1.关键字transient---serializeble,对象持久化

1)一旦变量被transient修饰,变量将不再是对象持久化的一部分,该变量内容在序列化后无法获得访问。
2)transient关键字只能修饰变量,而不能修饰方法和类。注意,本地变量是不能被transient关键字修饰的。变量如果是用户自定义类变量想要进行序列化,则该类需要实现Serializable接口。
3)被transient关键字修饰的变量不再能被序列化一个静态变量不管是否被transient修饰,均不能被序列化,因为序列化的是实例

2.MYISAM和INNODB的区别

MyISAM引擎是MySQL 5.1及之前版本的默认引擎,它的特点是:
不支持行锁,读取时对需要读到的所有表加锁,写入时则对表加排它锁
不支持事务
不支持外键
不支持崩溃后的安全恢复
在表有读取查询的同时,支持往表中插入新纪录
支持BLOB和TEXT的前500个字符索引,支持全文索引H
支持延迟更新索引,极大提升写入性能
对于不会进行修改的表,支持压缩表,极大减少磁盘空间占用
InnoDB
InnoDB在MySQL 5.5后成为默认引擎,它的特点是:
支持行锁,采用MVC来支持高并发
支持事务
支持外键
支持崩溃后的安全恢复
不支持全文索引

3.重写和重载
(1)重写:需要继承;方法吗和参数、返回值必须相同,权限修饰符必须大于等于父类;不可以重写父类的private方法;不可以抛出父类没有抛出的异常;
(2)重载:方法名必须相同;参数个数、类型有一个不相同;返回值可以相同也可以不同;可以有不同的访问修饰符;可以抛出不同异常

5、进程间都有哪些通信方式;
1.无名管道( pipe ):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。
2.高级管道(popen):将另一个程序当做一个新的进程在当前程序进程中启动,则它算是当前程序的子进程,这种方式我们成为高级管道方式。
3.有名管道 (named pipe) : 有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。
4.消息队列( message queue ) : 消息队列是由消息的链表,存放在内核中并由消息队列标识符标识。消息队列克服了信号传递信息少、管道只能承载无格式字节流以及缓冲区大小受限等缺点。
5.信号量( semophore ) : 信号量是一个计数器,可以用来控制多个进程对共享资源的访问。它常作为一种锁机制,防止某进程正在访问共享资源时,其他进程也访问该资源。因此,主要作为进程间以及同一进程内不同线程之间的同步手段。
6.信号 ( sinal ) : 信号是一种比较复杂的通信方式,用于通知接收进程某个事件已经发生。
7.共享内存( shared memory ) :共享内存就是映射一段能被其他进程所访问的内存,这段共享内存由一个进程创建,但多个进程都可以访问。共享内存是最快的 IPC 方式,它是针对其他进程间通信方式运行效率低而专门设计的。它往往与其他通信机制,如信号两,配合使用,来实现进程间的同步和通信。
8.套接字( socket ) : 套解口也是一种进程间通信机制,与其他通信机制不同的是,它可用于不同机器间的进程通信。

7、你觉得Java是完全面相对象的语言吗?

我认为是,因为java对基础数据类型提供了支持,同时也为其提供了包装类。。。。。。。。。

8、讲解下你对抽象,多态的理解;
抽象就是将实际事物特征抽象出来,用一个类表示,类中的属性就表示事物的不同特征。
抽象类和接口就是抽象的一种表象。
多态
①使用父类类型的引用指向子类的对象;
②该引用只能调用父类中定义的方法,不能调用子类中独有的方法;
③如果子类中重写了父类中的一个方法,那么在调用该方法的时候,将会调用子类中的这个方法;
④在多态中,子类可以调用父类中的所有方法;
多态主要体现为方法重载和方法重写,相同的行为,不同的实现方式;
⑥多态的主要应用是多态参数和多态集合
⑦如果一个方法中有父类作为参数类型,就意味着可以给该方法传递任何一个子类对象。

9、讲解下http请求里的header有什么作用

10.Get和post区别。
(1)get用于获取数据,而且应该是安全的和幂等的。post用于提交数据。(多用于新建)。
(2)GET请求的数据会附在URL之后,也就是请求头中,提交数据规模取决于浏览器对url长度的限制,http对url长度无限制;POST把提交的数据则放置在是HTTP包的包体中,理论上数据大小没有限制,提交数据的规模取决于服务器对数据的处理能力,http对包体无限制。
(3)POST的安全性要比GET的安全性高

11.Http协议相关。
HTTP 是基于 TCP/IP 协议的应用层协议。它不涉及数据包(packet)传输,主要规定了客户端和服务器之间的通信格式,默认使用80端口。
HTTP/1.0不支持连接保持,所以后来HTTP/1.1增加了Connection:keep-alive以及管道,管道机制则是允许浏览器同时发出A请求和B请求,但是服务器还是按照顺序。
HTTP/2.0是一个彻底的二进制协议;实现双向的、实时的通信(多工),避免了队头阻塞;用ID来区分数据流,客户端发出的数据流,ID一律为奇数,服务器发出的,ID为偶数;可以取消数据流;客户端还可以指定数据流的优先级。优先级越高,服务器就会越早回应;引入了头信息压缩机制和信息表;允许服务器未经请求,主动向客户端发送资源,这叫做服务器推送;

12.Java有没有多继承,接口和抽象类区别。jvm 理解
接口可以多继承,类不可以。
(1)抽象类是由abstract关键字修饰,允许包含未实现的方法。
接口是方法声明和常量值定义的集合,不允许包含变量。
(2)接口是绝对抽象的,不可以被实例化。抽象类不能被实例化。
(3)定义接口时可以使用继承,而且可以使用多继承。抽象类只能单继承。类可以实现很多个接口,但是只能继承一个抽象类;
(4)接口中所有的方法隐含的都是抽象的。而抽象类则可以同时包含抽象和非抽象的方法。Java接口中声明的变量默认都是final的。抽象类可以包含非final的变量。
(5)Java接口中的成员函数默认是public的。抽象类的成员函数可以是private,protected或者是public。
类可以不实现抽象类和接口声明的所有方法,当然,在这种情况下,类也必须得声明成是抽象的。
抽象类也不可以被实例化,但是,如果它包含main方法的话是可以被调用的。

14.数据库四个范式的区别。在设计数据库的时候如何考量。
第一范式(1NF)属性不可拆分 或 无重复的列(保证列唯一
第二范式(2NF)要求实体的属性完全依赖于主关键字。存在一个列被定义为唯一主键的表就是第二范式。(保证行唯一
第三范式(3NF)要求一个数据库表中不包含已在其它表中已包含的非主关键字信息。(外键关系
第四范式(4NF)禁止主键列和非主键列一对多关系不受约束用复合列做主键的表

3.equal和==的区别 
值类型是存储在内存中的堆栈(以后简称栈),而引用类型的变量在栈中仅仅是存储引用类型变量的地址,而其对象本身则存储在堆中。
==操作比较的是两个基本类型变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地址是否相同,

具体equals方法具体实现在说。。。。。。。。。。

5.为什么四次挥手比三次握手多一次 

因为三次握手是要建立和确认客户端和服务器之间的通信线路;而四次挥手是为了关闭两方之间的数据传递,因为是双工的,所以被动方和主动方两个流向都需要关闭和确认,所以是四次
6.介绍一下信号量和互斥锁
信号量又称为信号灯,它是用来协调不同进程间的数据对象的,而最主要的应用是共享内存方式的进程间通信。本质上,信号量是一个计数器,它用来记录对某个资源(如共享内存)的存取状况。
互斥体禁止多个线程同时进入受保护的代码“临界区”(critical section)。因此,在任意时刻,只有一个线程被允许进入这样的代码保护区。
对于互斥锁,如果资源已经被占用,资源申请者只能进入睡眠状态。但是自旋锁不会引起调用者睡眠,如果自旋锁已经被别的执行单元保持,调用者就一直循环在那里看是否该自旋锁的保持者已经释放了锁,"自旋"一词就是因此而得名。

4、进程间的通信,共享内存方式的优缺点。
环境变量/文件描述符:子进程接受父进程环境数据的拷贝以及所有文件描述符。
管道:用于相关和无关进程间的通信,而且形成两个进程间的一个通信通道,通常使用文件读写程序访问。
共享内存:使用客户机/服务器模型(C/S),服务器对客户的数据或动作请求作出反应。
动态数据交换:动态数据交换使用消息传递、共享内存、事务协议、客户/服务器范畴、同步规则以及会话协议来让数据和控制信息在进程间流动。动态数据交换对话( dynamic data exchange session, DDE )的基本模型是客户、服务器。服务器对来自客户的数据或动作作出反应。客户和服务器可以以多种关系来通信。
共享内存针对消息缓冲的缺点改而利用内存缓冲区直接交换信息,无须复制,快捷、信息量大是其优点。但是共享内存的通信方式是通过将共享的内存缓冲区直接附加到进程的虚拟地址空间中来实现的.因此,这些进程之间的读写操作的同步问题操作系统无法实现。必须由各进程利用其他同步工具解决。另外,由于内存实体存在于计算机系统中.所以只能由处于同一个计算机系统中的诸进程共享,不方便网络通信。
共享内存块提供了在任意数量的进程之间进行高效双向通信的机制。每个使用者都可以读取写入数据,但是所有程序之间必须达成并遵守一定的协议,以防止诸如在 读取信息之前覆写内存空间等竞争状态的出现。不幸的是,Linux无法严格保证提供对共享内存块的独占访问,甚至是在您通过使用IPC_PRIVATE创 建新的共享内存块的时候也不能保证访问的独占性。 同时,多个使用共享内存块的进程之间必须协调使用同一个键值。

8 tcp udp 区别  UDP应用场景

那质量换速度udp,还是那速度换质量tcp
UDP一般用于即时通信(QQ聊天 对数据准确性和丢包要求比较低,但速度必须快),在线视频(RTSP 速度一定要快,保证视频连续,但是偶尔花了一个图像帧,人们还是能接受的),网络语音电话(VoIP 语音数据包一般比较小,需要高速发送,偶尔断音或串音也没有问题)等等。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值