java应届生面试题及答案,java实战面试题
如何解决写爬虫IP受阻的问题?立即使用。
1.Java容器框架有哪些?
Java容器框架中有两个名为Collection和Set的接口。
2.list,map,set,array,它们有什么区别(推荐学习:java实习生面试问题)
接口有三个实现类:链表、数组列表和Vector。
LinkedList:底层基于链表实现,链表内存分散。每个元素存储自己的内存地址以及下一个元素的地址。
ArrayList和Vector的区别:ArrayList是非线程安全高效的;Vector基于线程安全,效率低下。
1)1)Set接口主要有两个实现类:HashSet(底层由HashMap实现)和LinkedHashSet。
2)Map接口的主要实现类:HashMap、HashTable和LinkedHashMap
HashMap是非线程安全的,高效的,支持NULLHashTable是线程安全的,效率低,不支持NULL。
Array:数组,可以存储对象和基本数据类型,长度固定。
列表:元素是有序的和可重复的。
Set:元素是无序的,不重复的,没有索引。
Map:用于存储键值对的双行集合。键值是唯一的,不能重复。
3.collection与collections有什么不同
A.javutil.Collection是一个集合接口。它为集合对象上的基本操作提供了一个通用接口方法。集合接口在Java类库中有很多具体的实现。集合接口的意义是为各种具体的集合提供一个最大化的统一操作方式。
B.java.util.Collections是一个包装类。它包含各种与集合操作相关的静态多态方法。这个类不能实例化,就像工具类一样,服务于Java的集合框架。
4.string,stringbuilder,stringbuffer有什么区别
程序中使用的字符串可以分为两类:一类是创建后不会被修改或更改的字符串变量;另一种是字符串变量,创建后可以修改。
对于前一种字符串变量,通常放在有一定名称的对象中,因为在程序中经常需要进行比较和查找。因为程序完成了对对象的上述操作,所以Java程序中存储的字符串变量是字符串变量;
至于后一种字符串变量,往往需要在程序中添加、插入和修改,所以这个字符串变量一般存储在StringBuilder类的对象中。
字符串变量,
字符串字符串字符串变量(线程安全),
StringBuilder字符串变量(非线程安全)
5.==与equals有什么区别
在程序中比较两个字符时,使用关系运算符“==”,而比较两个字符串时,需要equals()方法。
6.和的区别
是简洁运算符,而不是非简洁运算符。简洁运算符(,)和非简洁运算符(,)的区别在于,非简洁运算只取左右表达式计算完之后的结果值;简明表达式可能只计算左表达式而不计算右表达式,即只要左表达式为假,就不计算右表达式,整个表达式为假;对于 ,只要左表达式为真,右表达式不求值,整个表达式为真。
7.程序,进程和线程的区别
1)程序是包含指令和数据的文件,存储在磁盘或其他数据存储设备中,也就是说程序是静态代码。
2)进程是程序的一个执行过程,是系统运行程序的基本单元,所以进程是动态的。在一个系统中运行一个程序,就是从创建、运行到消亡的过程。简单来说,进程就是一个正在执行的程序,在计算机中执行一条又一条指令。同时,每个进程还会占用一些系统资源,比如CPU时间、内存空间、文件、输入输出设备的使用权等等。
3)线程:其实类似于进程,也是一个正在执行的程序,但线程是比进程更小的执行单元。一个进程在执行过程中可以生成多个线程,形成多条执行路径。但与进程不同的是,同类的多个线程共享同一个内存空间和一组系统资源,所以在生成一个线程或线程间切换时,系统的负担要比进程小得多。正因为如此,线程也被称为轻量级进程。
8.线程有哪几种状态?
新状态、就绪状态、运行状态、阻塞状态和死亡状态。
9.线程的互斥与同步的区别
互斥是指两个或多个线程不能同时运行,而同步是两个或多个线程按顺序运行的约束。
10.线程的同步与共享数据的区别?
共享是指线程之间共享内存数据,因为线程共享内存空间处理数据的权力,会因为多个线程同时处理数据而导致数据不一致。所以提出了同步来解决这个问题,即同步是基于共享的,是针对多线程间共享导致的数据不一致而提出的。
同步是指处理数据的线程不能处理其他线程还没有完成的数据,但是可以处理其他数据。
11.线程同步与异步区别
同步是多个线程同时访问同一个资源,等待资源访问结束,浪费时间,效率低;同步:访问资源时,可以在等待空闲时访问其他资源,实现多线程机制。
12.Java中四舍五入有哪些方法?
数学类提供了三种与舍入相关的方法:CEIL、floor和round。这些方法的功能与其英文名称的含义相对应,例如:
ceil的英文意思是ceiling,意思是四舍五入。Math.ceil(11.3)的结果是12,Math.ceil(-11.6)的结果是-11。
floor的英文单词是floor,意思是向下舍入。Math.floor(11.6)的结果是11,Math.floor(-11.4)的结果是-12。
最难掌握的是圆周率法,意思是“四舍五入”。算法是Math.floor(x 0.5),即原数加0.5后向下取整,所以Math.round(11.5)的结果是12,Math.round(-11.5)的结果是-11。
Math.round()符合这个规律:小数点后所有大于5的数相加,等于5加正数,小于5的数不加。
13.MVC分别指的是什么?
M-model模型层,通常我们写的类都放在模型层。
V-View就是视图层,一般称为jsp页面。
C-control控制层,包括动作、服务和dao,处理相关的业务逻辑。
14.类与对象的区别?
类是对某一类事物的描述,是抽象的、概念性的定义。对象是实际存在的具体个体,属于这种东西,所以也叫例。
15.Final的用法?
A.将一个类声明为最终类,即非继承类,表明它不能被其他类继承。
B.最终修饰词。无法更改指定变量的值。
C.最终修饰词。无法重载指定的方法。
Abstact的用法
A.将一个类声明为抽象类,没有实现方法。你需要子类来提供方法的实现,所以你不能创建这个类的实例。
B.抽象修饰语。指定方法只声明方法头,不声明方法体,抽象方法需要在子类中实现。
Static的用法
A.静态修饰符。指定该变量由所有对象共享,即所有实例都可以使用该变量。
B.最终修饰词。指定无需实例化对象即可调用的方法。
16.成员变量和局部变量的区别
类中定义的变量是成员变量,而方法中定义的变量是局部变量。
区别:
A.从语法形式上看,成员变量属于类,而局部变量是方法中定义的变量或方法的参数;成员变量可以由public、private和static等修饰符修改,而局部变量不能由访问控制修饰符和static修改。成员和局部变量可以由final修饰。
B.从变量在内存中的存储方式来看,成员变量是对象的一部分,而对象存在于堆内存中,局部变量存在于栈内存中。
C.从变量在内存中的生存期来看,成员变量是对象的一部分,随着对象的创建而存在,而局部变量是随着方法的调用而产生,随着方法调用的结果而自动消失。
D.如果成员变量没有赋初值,则自动赋该类型的默认值(有一个例外,被final修改但没有被static修改的成员变量必须显式赋值);局部变量不是自动赋值的,所以在使用之前必须显式赋值。以上是java实习生面试问题详情(含答案)。更多请关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。