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. 15个超强悍的CSS3圆盘时钟动画赏析

    在网页上,特别是个人博客中经常会用到时钟插件,一款个性化的时钟插件不仅可以让页面显得美观,而且可以让访客看到当前的日期和时间.今天我们给大家收集了15个超强悍的圆盘时钟动画,很多都是基于CSS3,也有 ...

  2. 微信小程序之注册和入门

    一.注册 首先,在微信公众平台mp.weixin.qq.com上注册一个帐号. 小程序开放个人开发者申请注册,个人用户可访问微信公众平台,扫码验证个人身份后即可完成小程序帐号申请并进行代码开发. 这里 ...

  3. jsp 之 解决mysql不是内部或外部命令问题

    安装Mysql后,当我们在cmd中敲入mysql时会出现'Mysql'不是内部或外部命令,也不是可运行的程序或其处理文件. 打开我的电脑在我的电脑右键中选择属性,然后单击选择高级系统设置. 在系统属性 ...

  4. css实现切角效果

    1. 一个切角 思路:如果我们要得到有一个切角的元素,我们只需要使用一个径向渐变就可以达到这个目标,这个渐变需要把一个透明色标放在切角处,然后再相同的位置设置另一个色标,并且把它的颜色设置成我们想要的 ...

  5. 类和对象的创建过程(元类,__new__,__init__,__call__)

    一. type() 1.创建类的两种方式 方式一 class MyClass(object): def func(self,name): print(name) myc = MyClass() pri ...

  6. 【转】adb shell dumpsys 命令

    adb shell dumpsys,默认打印出当前系统所有service信息,在后面可加上具体的服务名 需要列出当前运行的服务,可运行: adb shell dumpsys | findstr DUM ...

  7. adb 获取Android手机信息命令(1)

    @set version=1.7.2Normal @echo ============================================================= @echo I ...

  8. 8086cpu中的标志寄存器与比较指令

    在8086CPU中有一个特殊的寄存器--标志寄存器,该寄存器不同于其他寄存器,普通寄存器是用来存放数据的读取整个寄存器具有一定的含义,但是标志寄存器是每一位都有固定的含义,记录在运算中产生的信息,标志 ...

  9. 有具体名称的匿名函数var bar = function foo(){}

    http://kangax.github.io/nfe/ 命名的函数表达式 函数表达式实际上可以经常看到.Web开发中的一个常见模式是基于某种特性测试来"分叉"函数定义,从而获得最 ...

  10. Zabbix实战-简易教程--拓扑图(Maps)

    一.拓扑图(Maps) 二话不说,有图有真相,先看看效果,再详细讲解配置过程: 图1:全国网络质量图 图2 核心机房网络质量图 二.详细配置 1.添加  map 选择 系统管理-->基础配置-- ...