Efounds的笔试~

1.比较两个浮点数大小

一般不会直接用“==”或者“!=”对两个浮点数进行比较。
判断两个浮点数float a 与 float b 是否相等可以根据他们的差的绝对值是否大于0来进行判断。
判断相等:
if(Math.abs(a-b)<=0){相等}
或者
if(!Math.abs(a-b)>0){相等} 判断不等:
if(Math.abs(a-b)>0){不相等}

2,用最快排序找到无序的数组里第K大的数

public class AlgCode {
public static void main(String[] args) {
// int [] nums={5, 7, 1, 8,3, 10}; //测试
int [] nums= {3,1,4,7,5,8,0};
int k=5;
int res= findKth(nums,0,nums.length-1,k-1);
System.out.print("The Kth is: "+res);
} private static int findKth(int [] data ,int first , int last ,int k){
int kth;
if(first==last) kth=data[first];
else {
int pivot = data[first];
int splitPoint = partition(data, first, last);
if (k < splitPoint)
kth = findKth(data, first, splitPoint - 1, k);
else if(k>splitPoint)
kth = findKth(data, splitPoint + 1, last, k);
else
kth = pivot;
}
return kth;
} private static int partition(int [] data ,int first , int last){
int pivot = data[first];
while(first<last) {
while (first < last && data[last] > pivot)
last--;
data[first] = data[last];
while (first < last && data[first] < pivot)
first++;
data[last] = data[first];
}
data[first]=pivot;
return first;
}
}

3,单链表是否有环并如何找到环入口

首先要了解什么叫环,如图,Join.next->Pos,Pos.next->Join,那么该链表有环

public class LinkedLoop{
//内部静态类定义结点类
static class Node{
int val;
Node next;
public Node(int val){
this.val = val;
}
}
//判断单链表是否有环
public static boolean hasLoop(Node head){
Node p1=head; //指向头节点
Node p2=head.next; //指向下一个节点 while(p2!=null &&p2.next!=null){
p1=p1.next;
p2=p2.next.next;
if(p2==null){
return false;
}
int val1=p1.val;
int val2=p2.val;
if(val1==val2)
return true;
}
return false;
} public static void main(String [] args){
Node n1=new Node(1);
Node n2=new Node(3);
Node n3=new Node(6);
Node n4=new Node(4);
Node n5=new Node(5);
Node n6=new Node(10);
n1.next = n2;
n2.next = n3;
n3.next = n4;
n4.next = n5;
n5.next = n6;
n6.next = n5;
System.out.println(hasLoop(n1));
}
}

4,快排第一次排列后的顺序

int [] nums=  {3,1,4,7,5,8,0};
如果基准为3;
第一次快排后:
nums={0,1,3,7,5,8,4};

5,Java 数据输入

  int a =0;
Scanner input = new Scanner(System.in);
System.out.println("输入数字:");
a = input.nextInt();

6,软件生命周期

软件生命周期(SDLC,Systems Development Life Cycle,SDLC)是软件的产生直到报废或停止使用的生命周期。

软件生存周期包括:

一,问题定义。要求系统分析员与用户进行交流,弄清“用户需要计算机解决什么问题”然后提出关于“系统目标与范围的说明”,提交用户审查和确认。

二,可行性研究。一方面在于把待开发的系统的目标以明确的语言描述出来,另一方面从经济、技术、法律等多方面进行可行性分析。

三,需求分析。弄清用户对软件系统的全部需求,编写需求规格说明书和初步的用户手册,提交评审。

四,开发阶段。开发阶段由三个阶段组成:

1,设计

2,实现:根据选定的程序设计语言完成源程序的编码。

3,测试

五,维护:维护包括四个方面

1,改正性维护:在软件交付使用后,由于开发测试时的不彻底、不完全、必然会有一部分隐藏的错误被带到运行阶段,这些隐藏的错误在某些特定的使用环境下就会暴露。

2,适应性维护:是为适应环境的变化而修改软件的活动。

3,完善性维护 :是根据用户在使用过程中提出的一些建设性意见而进行的维护活动。

4,预防性维护:是为了进一步改善软件系统的可维护性和可靠性,并为以后的改进奠定基础。

7,多线程和多进程的区别

a.进程是资源分配的基本单位,线程是cpu调度,或者说是程序执行的最小单位。在Mac、Windows NT等采用微内核结构的操作系统中,进程的功能发生了变化:它只是资源分配的单位,而不再是调度运行的单位。在微内核系统中,真正调度运行的基本单位是线程。因此,实现并发功能的单位是线程。

b.进程有独立的地址空间,比如在linux下面启动一个新的进程,系统必须分配给它独立的地址空间,建立众多的数据表来维护它的代码段、堆栈段和数据段,这是一种非常昂贵的多任务工作方式。而运行一个进程中的线程,它们之间共享大部分数据,使用相同的地址空间,因此启动一个线程,切换一个线程远比进程操作要快,花费也要小得多。当然,线程是拥有自己的局部变量和堆栈(注意不是堆)的,比如在windows中用_begin threadex创建一个新进程就会在调用CreateThread的同时申请一个专属于线程的数据块(_tiddata)。

c.线程之间的通信比较方便。统一进程下的线程共享数据(比如全局变量,静态变量),通过这些数据来通信不仅快捷而且方便,当然如何处理好这些访问的同步与互斥正是编写多线程程序的难点。而进程之间的通信只能通过进程通信的方式进行。

d.由b,可以轻易地得到结论:多进程比多线程程序要健壮。一个线程死掉整个进程就死掉了,但是在保护模式下,一个进程死掉对另一个进程没有直接影响。

e.线程的执行与进程是有区别的。每个独立的线程有有自己的一个程序入口,顺序执行序列和程序的出口,但是线程不能独立执行,必须依附与程序之中,由应用程序提供多个线程的并发控制。

8,多线程同步和互斥有何异同,在什么情况下分别使用他们?举例说明

所谓同步,表示有先有后,比较正式的解释是“线程同步是指线程之间所具有的一种制约关系,一个线程的执行依赖另一个线程的消息,当它没有得到另一个线程的消息时应等待,直到消息到达时才被唤醒。”

所谓互斥,比较正式的说明是“线程互斥是指对于共享的进程系统资源,在各单个线程访问时的排它性。当有若干个线程都要使用某一共享资源时,任何时刻最多只允许一个线程去使用,其它要使用该资源的线程必须等待,直到占用资源者释放该资源。线程互斥可以看成是一种特殊的线程同步。”表示不能同时访问,也是个顺序问题,所以互斥是一种特殊的同步操作。

举个例子,设有一个全局变量global,为了保证线程安全,我们规定只有当主线程修改了global之后下一个子线程才能访问global,这就需要同步主线程与子线程,可用关键段实现。当一个子线程访问global的时候另一个线程不能访问global,那么就需要互斥。

9,网络协议:访问某个网址都经过了哪些协议

·域名解析协议DNS

应用层协议,网址相当于是域名,访问DNS服务器,这个过程有域名解析协议,解析出域名对应的IP地址。

·超文本传输协议HTTP

应用层协议,基于请求和响应的协议,通过请求行、消息报头、请求正文向目的地址发送请求。目的服务器在接受请求后,返回一个状态行、消息报头、响应正文的响应。

·传输控制协议TCP

传输层协议,HTTP协议是基于TCP协议的,也就是说HTTP无论是请求还是响应都是把HTTP的内容作为TCP的正文封装到TCP的报文中的。TCP协议是传输安全,面向连接的协议,在客户端和服务端建立TCP/IP五层模型的协议 连接的过程中需要经过三次握手,发送第一个SYN的一端将执行主动打开,接收这个SYN并发回下一个SYN的另一端执行被动打开,以及四次释放的过程才停止发送数据。

·网际协议IP协议

IP协议在整个传输过程中都起着重要的作用,网址通过DNS解析为IP地址,在TCP建立连接以及传输数据的整个过程中都在使用着IP协议。

Efounds笔试的更多相关文章

  1. C++常见笔试面试要点以及常见问题

    1. C++常见笔试面试要点: C++语言相关: (1) 虚函数(多态)的内部实现 (2) 智能指针用过哪些?shared_ptr和unique_ptr用的时候需要注意什么?shared_ptr的实现 ...

  2. 2016网易春招Java在线笔试回忆录

    别看是在线笔试,但是非常严格,全称窗口不得最小化和关闭,转移,全称需要打开摄像头监控,使用草稿纸需要摄像头对准……反正2个小时,题量在那儿摆着,有作弊的功夫不如好好做做最后的编程题呢……网易不让泄漏原 ...

  3. BAT及各大互联网公司2014前端笔试面试题--Html,Css篇

    很多面试题是我自己面试BAT亲身经历碰到的.整理分享出来希望更多的前端er共同进步吧,不仅适用于求职者,对于巩固复习前端基础更是大有裨益. 而更多的题目是我一路以来收集的,也有往年的,答案不确保一定正 ...

  4. BAT及各大互联网公司2014前端笔试面试题--JavaScript篇

    很多面试题是我自己面试BAT亲身经历碰到的.整理分享出来希望更多的前端er共同进步吧,不仅适用于求职者,对于巩固复习js更是大有裨益. 而更多的题目是我一路以来收集的,也有往年的,答案不确保一定正确, ...

  5. IT求职中,笔试、面试的算法准备

    PS:此文章为转载,源地址:http://www.newsmth.net/nForum/#!article/CoderInterview/849     作者应该是在美国进行的笔试面试,感觉面试的的公 ...

  6. # C/C++的笔试题目

    p,li { white-space: pre-wrap } # C/C++的笔试题目 + include<> 和include"" 的区别 + sizeof操作符与字 ...

  7. 技术渣如狗,面试虐成猴——本科楼主UC笔试加处女一面全纪录

    背景——楼主为广州某校小本一枚,学习成绩渣(班里排名几乎倒数),技术基础渣(算是会敲代码,但很多计算机网络.操作系统的知识都只有模糊的印象).在舍友的鼓励下,收到广州UC的面试通知后,勇敢来到公司直面 ...

  8. DP - tencent2016实习生笔试A

    tencent2016实习生笔试A Problem's Link ------------------------------------------------------------------- ...

  9. dp - 2016腾讯笔试 A

    2016腾讯笔试 A Problem's Link -------------------------------------------------------------------------- ...

随机推荐

  1. powerdesigner的使用

    前言 做过建模和设计的人都知道,powerdesigner是个强大实用的工具:采用模型驱动方法,将业务与IT结合起来,可帮助部署有效的企业体系架构,并为研发生命周期管理提供强大的分析与设计技术.本文档 ...

  2. Django_调查问卷

    1.问卷的保存按钮 前端通过ajax把数据发过来后端处理数据,然后返回给前端2.对问卷做答 首先用户进行登录,验证 条件:1.只有本班的学生才能对问卷做答      2.已经参加过的不能再次访问   ...

  3. jQuery 数据操作函数(九)

    .clearQueue() 从队列中删除所有未运行的项目. .data() 存储与匹配元素相关的任意数据. jQuery.data() 存储与指定元素相关的任意数据. .dequeue() 从队列最前 ...

  4. SourceTree管理工具的一些使用总结

    一.冲突解决 在团队合作中,如果两个人同时修改一个文件 ,这个时候如果合并他人提交的代码是会产生冲突的,怎么解决? 1.先将代码提交至本地服务器 2.合并他人代码,这个时候在工作副本中会显示我们冲突的 ...

  5. Struts2学习笔记(1)---相关配置

    Struts 2是Struts的下一代产品,是在 struts 1和WebWork的技术基础上进行了合并的全新的Struts 2框架. 1创建action对象(三种) 1 创建普通的类,不继承任何类, ...

  6. 对RC4算法进行改写,新的加密算法RCX。

    最近研究JWT算法, JWT由header.payload.signature三个部分组成,payload是非加密的,一些敏感信息能被别人非法获得,必要时候要加密. 加密算法中,RC4算法的速度可以达 ...

  7. eclipse导入工程时,出现Some projects cannot be imported because they already exist in the workspace

    前提条件: 1.将eclipse中现有的工程javatraining删除,如下图所示, 该复选框不要勾选,点击ok steps: 1.本次打开Eclipse想要把已删除的javatraining工程再 ...

  8. javascript 之this指针-11

    前言 在<javascript 之执行环境-08>文中说到,当JavaScript代码执行一段可执行代码时,会创建对应的执行上下文(execution context).对于每个执行上下文 ...

  9. <The Art of Readable Code> 笔记二 (下)

    第1章  封装信息到名字 (Packing information into names) 4  附加额外信息 1)  encode value type 对于某些变量,附加额外的信息可以让人更好的理 ...

  10. 说说那些经典的web前端面试题

    阅读目录 JavaScript部分 JQurey部分 HTML/CSS部分 正则表达式 开发及性能优化部分 本篇收录了一些面试中经常会遇到的经典面试题以及自己面试过程中遇到的一些问题,并且都给出了我在 ...