百度电话面试

        前几天百度工作人员就和我商议电话面试时间,然后定在今天的10:30.于是快到时间时,

我找了个安静的地方等待来电,大概10:35时,电话响起了,说是百度的面试官,他说让我准备

笔和纸,找一个安静的地方,他过5分钟再打来。于是我马上跑到实验室拿了笔和纸,来到

教学楼5楼,很安静。他按时打过来,开始面试。

       他首先让我介绍一下我自己,然后依次从我的简历上所写的IT 技能开始问问题,

       1、关于Java,==和equals的区别,String和StringBuffer的区别

     

       2、关于操作系统,问了进程和线程的区别,在项目中是如何实现多线程的?

              还有都用过哪些操作系统,linux中什么命令来查看端口是否被占用(netstat  -anp),

             查看ip地址的命令(ifconfig)。

     

       3、关于数据库,当项目中的数据库由SQLite变成SQL Server或Oracle时,如何不改变程序,

              使得程序复用率达到最大。

              答:(我的回答)用框架Hibernate进行数据持久化操作,因为在hibernate.cfg.xml配置文件中,

                        配置了连接数据库的信息,



                    这是只需将驱动改成连接SQL Server或Oracle的驱动即可,不需要修改任何的程序。

                    Hibernate是将对象直接映射到表的关系,一个表映射成一个类,一行记录映射成一个对象,一列记录映射成对象的属性。

                    所以修改类,等于直接修改表。每个类都有一个配置文件(类名.hbm.xml),来完成这种映射。

      

       4、关于J2EE,(1)JSP和Servlet的区别

               答:(之前答错了,只知道Servlet,不知道JSP,还说JSP是运行在客户端的, 他听我说完之后,

                        重复了一遍我的答案,还问确定吗?现在才知道大错特错了。)正确答案如下:

                        JSP本质上就是Servlet,但两者的创建方式不一样,Servlet完全是JAVA程序代码构成擅长于

                        流程控制和事物处理而通过JSP来生成动态网页;

                        JSP由HTML代码和JSP标签构成,可以方便地编写动态网页,因此在实际应用中,采用Servlet来控制

                          业务流程,而采用JSP来生成动态网页;

                         在Struts框架中,JSP位于MVC设计模式的视图层,而Servlet位于控制层。

                         Servlet和JSP最主要的不同点在于,Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML里分离开来。

                         而JSP的情况是Java和HTML可以组合成一个扩展名为.jsp的文件。JSP侧重于视图,Servlet主要用于控制逻辑。

             (2)HttpServlet中的一些方法

                          int();  service();   doGet();   doPost();   destroy() ;    getServletConfig(); getServletInfo()

               (3)doGet()和doPost()的区别

                    doGet(),调用用于获取服务器信息,并将其做为响应返回给客户端。当经由Web浏览器或通过HTML、JSP直接访问Servlet的URL时,

                        一般用GET调用。  GET调用在URL里显示正传送给SERVLET的数据,这在系统的安全方面可能带来一些问题,比如用户登录,

                            表单里的用户名和密码需要发送到服务器端, 若使用Get调用,就会在浏览器的URL中显示用户名和密码。

                    doPost(),它用于客户端把数据传送到服务器端,也会有副作用。但好处是可以隐藏传送给服务器的任何数据。Post适合发送大量的数据。



          5、关于机器存储,大端和小端问题:

                   大端模式:数据的高字节保存在内存的低地址中,数据的低字节保存在内存的高地址中。

                                       这样有点类似于把数据当作字符串顺序处理。

                    小端模式:数据的高字节保存在内存的高地址后中,数据的低字节保存在内存的低地址中,

                                       和我们的逻辑方法一致。

       

         6、关于设计模式,单例模式、工厂模式

                    单例模式:保证在整个应用程序的生命周期中,任何一个时刻,单例类的实例都只存在一个(当然也可以不存在)。

                                         单例模式保证一个类仅有一个实例,同时这个类还必须提供一个访问该类的全局访问点。

                                           单例的构造函数是私有的,外部程序如果想要访问这个单例类的话,

                                           必须通过GetInstance()来请求得到这个单例类

                    工厂模式:是我们最常用的实例化对象模式了,是用工厂方法代替new操作的一种模式

          

           7、关于网络,TCP和UDP的区别

                                   详细说一下TCP连接时的三次握手,为什么是三次,不是两次?

                                   

           8、关于C语言,问了如何求得链表的长度,如果是循环链表呢?再如果是循环链表中只知道一个指向节点的指针?再如果没有指针,只知道某一个节点。

          最后问了一些项目的事。应该就这么多了。

                                

 

                       

               

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值