100基础题Java拷问题目答案

1、面试题模块汇总ava根底笔试题及答案1.什么是B/S架构?什么是C/S架构

B/S(Browser/Server),浏览器/服务器程序
?
C/S(Client/Server),客户端/服务端,桌面应用程序

2.你所知道网络协议有那些?

HTTP:超文本传输协议

FTP:文件传输协议

SMPT:简单邮件协议

TELNET:远程终端协议

POP3:邮件读取协议

3.Java都有那些开发平台?

JAVA SE:首要用在客户端开发

JAVA EE:首要用在web应用程序开发

JAVA ME:首要用在嵌入式应用程序开发

4.什么是JVM?java虚拟机包括什么?

JVM:java虚拟机,运用硬件或软件手法完成的虚拟的核算机,Java虚拟机包括:寄存器,仓库,处理器

5.Java是否需求开发人员收回内存废物吗?

大多情况下是不需求的。Java供给了一个体系级的线程来跟踪内存分配,不再运用的内存区将会自动收回

6.什么是JDK?什么是JRE?

JDK:java development kit:java开发工具包,是开发人员所需求装置的环境

JRE:java runtime environment:java运转环境,java程序运转所需求装置的环境

7.什么是数据结构?

核算机保存,安排数据的办法

8.Java的数据结构有那些?

线性表(ArrayList)

链表(LinkedList)

栈(Stack)

队列(Queue)

图(Map)

树(Tree)

9.什么是OOP?

面向目标编程

10.什么是面向目标?

人间万物都能够当作一个目标。每个物体包括动态的行为和静态的特色,这些就构成了一个目标。

11.类与目标的关系?

类是目标的笼统,目标是类的详细,类是目标的模板,目标是类的实例

12.Java中有几种数据类型

整形:byte,short,int,long

浮点型:float,double

字符型:char

布尔型:boolean

13.什么是隐式转化,什么是显式转化

显现转化便是类型强转,把一个大类型的数据强制赋值给小类型的数据;隐式转化便是大范围的变量能够接受小范围的数据;隐式转化和显式转化其实便是自动类型转化和强制类型转化。

14.Char类型能不能转成int类型?能不能转化成string类型,能不能转成double类型

Char在java中也是比较特别的类型,它的int值从1开始,一共有2的16次方个数据;Char

15.什么是拆装箱?

拆箱:把包装类型转成根本数据类型

装箱:把根本数据类型转成包装类型

16.Java中的包装类都是那些?

byte:Byte short:Short int:Integer long:Long float:Float double:Double char:Character boolean:Boolean

17.一个java类中包括那些内容?

特色、办法、内部类、结构办法、代码块。

18.例如: if(a+1.0==4.0),这样做好吗?

欠好,因为核算机在浮点型数据运算的时分,会有差错,尽量在布尔表达式中不运用浮点型数据(if,while,switch中判别条件不运用浮点型paymentdictionary)

19.那针对浮点型数据运算呈现的差错的问题,你怎样解决?

运用Bigdecimal类进行浮点型数据的运算

20.++i与i++的差异

i++:先赋值,后核算

++i:先核算,后赋值

21.程序的结构有那些?

顺序结构

选择结构

循环结构

22.数组实例化有几种办法?

静态实例化:创立数组的时分已经指定数组中的元素,

动态实例化:实例化数组的时分,只指定了数组程度,数组中一切元素都是数组类型的默许值

23.Java中各种数据默许值

Byte,short,int,long默许是都是0

Boolean默许值是false

Char类型的默许值是’’

Float与double类型的默许是0.0

目标类型的默许值是null

24.Java常用包有那些?

Java.lang

Java.io

Java.sql

Java.util

Java.awt

Java.net

Java.math

25.Java最*的父类是哪个?

Object

26.Object类常用办法有那些?

Equals

Hashcode

toString

wait

notify

clone

getClass

27.java中有没有指针?

有指针,可是隐藏了,开发人员无法直接操作指针,由jvm来操作指针

28.java中是值传递引证传递?

理论上说,java都是引证传递,关于根本数据类型,传递是值的副本,而不是值本身。关于目标类型,传递是目标的引证,当在一个办法操作操作参数的时分,其实操作的是引证所指向的目标。

29.假设把实例化的数组的变量当成办法参数,当办法履行的时分改动了数组内的元素,那么在办法外,数组元素有产生改动吗?

改动了,因为传递是目标的引证,操作的是引证所指向的目标

30.实例化数组后,能不能改动数组长度呢?

不能,数组一旦实例化,它的长度便是固定的

31.假设数组内有5个元素,假如对数组进行反序,该如何做?

创立一个新数组,从后到前循环遍历每个元素,将取出的元素顺次顺序放入新数组中

32.形参加实参

形参:全称为“形式参数”,pelestat是在界说办法名和办法体的时分运用的参数,用于接收调用该办法时传入的实践值;实参:全称为“实践参数”,是在调用办法时传递给该办法的实践值。

33.结构办法能不能显式调用?

不能结构办法当成一般办法调用,只要在创立目标的时分它才会被体系调用

34.结构办法能不能重写?能不能重载?

能够重载,但不能重写。

35.什么是办法重载?

办法的重载便是在同一个类中允许一起存在一个以上的同名办法,只要它们的参数个数或许类型不同即可。在这种情况下,该办法就叫被重载了,这个过程称为办法的重载(override)

36.内部类与静态内部类的差异?

静态内部类相对与外部类是独立存在的,在静态内部类中无法直接拜访外部类中变量、办法。假如要拜访的话,必需求new一个外部类的目标,运用new出来的目标来拜访。可是能够直接拜访静态的变量、调用静态的办法;

一般内部类作为外部类一个成员而存在,在一般内部类中能够直接拜访外部类特色,调用外部类的办法。

假如外部类要拜访内部类的特色或许调用内部类的办法,必需求创立一个内部类的目标,运用该目标拜访特色或许调用办法。

假如其他的类要拜访一般内部类的特色或许调用一般内部类的办法,必需求在外部类中创立一个一般内部类的目标作为一个特色,外同类能够经过该特色调用一般内部类的办法或许拜访一般内部类的特色

假如其他的类要拜访静态内部类的特色或许调用静态内部类的办法,直接创立一个静态内部类目标即可。

37.Static要害字有什么效果?

Static能够润饰内部类、办法、变量、代码块

Static润饰的类是静态内部类

Static润饰的办法是静态办法,表明该办法归于当时类的,而不归于某个目标的,静态办法也不能被重写,能够直接运用类名来调用。在static办法中不能运用this或许super要害字。

Static润饰变量是静态变量或许叫类变量,静态变量被一切实例所同享,不会依赖于目标。静态变量在内存中只要一份复制,在JVM加载类的时分,只为静态分配一次内存。

Static润饰的代码块叫静态代码块,一般用来做程序优化的。静态代码块中的代码在整个类加载的时分只会履行一次。静态代码块能够有多个,假如有多个,按照先后顺序顺次履行。

38.Final在java中的效果

Final能够润饰类,润饰办法,润饰变量。

润饰的类叫终究类。该类不能被承继。

润饰的办法不能被重写。

润饰的变量叫常量,常量有必要初始化,一旦初始化后,常量的值不能产生改动。

39.Java中操作字符串运用哪个类?

String,StringBuffer,StringBuilder

40.StringBuffer,Stringbuilder有什么差异?

StringBuffer与StringBuilder都承继了AbstractStringBulder类,而AbtractStringBuilder又完成了CharSequence接口,两个类都是用来进行字符串操作的。

在做字符串拼接修正删除替换时,功率比string更高。

StringBuffer是线程安全的,Stringbuilder对错线程安全的。所以Stringbuilder比stringbuffer功率更高,StringBuffer的办法大多都加了synchronized要害字

41.String str=”aaa”,与String str=new String(“aaa”)一样吗?

不一样的。因为内存分配的办法不一样。

第一种,创立的”aaa”是常量,jvm都将其分配在常量池中。

第二种创立的是一个目标,jvm将其值分配在堆内存中。

42.String str=”aa”,String s=”bb”,String aa=aa+s;一共创立了几个目标?

一共有两个引证,三个目标。因为”aa”与”bb”都是常量,常量的值不能改动,当履行字符串拼接时分,会创立一个新的常量是” aabbb”,有将其存到常量池中。

43.讲下java中的math类有那些常用办法?

Pow():幂运算

Sqrt():平方根

Round():四舍五入

Abs():求绝对值

Random():生成一个0-1的随机数,包括0不包括1

44.String类的常用办法有那些?

charAt:回来指定索引处的字符

indexOf():回来指定字符的索引

replace():字符串替换

trim():去除字符串两端空白

split():切割字符串,回来一个切割后的字符串数组

getBytes():回来字符串的byte类型数组

length():回来字符串长度

toLowerCase():将字符串转成小写字母

toUpperCase():将字符串转成大写字符

substring():截取字符串

format():格式化字符串

equals():字符串比较

45.判别两个目标是否相同,能运用equlas比较吗?

不能。Equlas大多用来做字符串比较,要判别根本数据类型或许目标类型,需求运用==

46.==与equlas有什么差异?

==能够判别根本数据类型值是否持平,也能够判别两个目标指向的内存地址是否相同,也便是说判别两个目标是否是同一个目标,Equlas一般用来做字符串比较fengxingshoes

47.如何将字符串回转?

Stringbuilder或许stringbuffer的reverse办法

48.面向目标的语言有那些特征?

封装、承继、多态

49.Java中的承继是单承继仍是多承继

Java中既有单承继,又有多承继。关于java类来说只能有一个父类,关于接口来说能够一起承继多个接口

50.什么是重写?什么是重载?

重载和重写都是java多态的体现。

重载叫overrode,在同一个类中多态的体现。当一个类中呈现了多个相同称号的办法,但参数个数和参数类型不同,办法重载与回来值无关

重写叫override,是字符类中多态的体现。当子类呈现与父类相同的办法,那么这便是办法重写。办法重写时,子类的回来值有必要与父类的共同。假如父类办法抛出一个反常,子类重写的办法抛出的反常类型不能小于父类抛出的反常类型。

51.结构办法能不能重载?能不能重写?

能够重载,有必要重写

52.假如父类只要有参结构办法,那么子类必需求重写父类的结构办法吗?

有必要重写

53.创立一个子类目标的时分,那么父类的结构办法会履行吗?

会履行。当创立一个子类目标,调用子类结构办法的时分,子类结构办法会默许调用父类的结构办法。

54.什么是父类引证指向子类目标?

是java多态一种特别的体现形式。创立父类引证,让该引证指向一个子类的目标

55.当父类引证指向子类目标的时分,子类重写了父类办法和特色,那么当拜访特色的时分,拜访是谁的特色?调用办法时,调用的是谁的办法?

子类重写了父类办法和特色,拜访的是父类的特色,调用的是子类的办法

56.Super与this表明什么?

Super表明当时类的父类目标

This表明当时类的目标

57.笼统的要害字是什么?

Abstract

58.笼统类必需求有笼统办法吗

不是有必要。笼统类能够没有笼统办法。

59.假如一个类中有笼统办法,那么这个必定是笼统类?

包括笼统办法的类必定是笼统类

60.笼统类能够运用final润饰吗?

不能够。界说笼统类便是让其他承继的,而final润饰类表明该类不能被承继,与笼统类的理念违反了

61.一般类与笼统类有什么差异?

一般类不能包括笼统办法,笼统类能够包括笼统办法

笼统类不能直接实例化,一般类能够直接实例化

62.什么是接口?

接口便是某个事物对外供给的一些功用的声明,是一种特别的java类

63.JAVA为什么需求接口?

接口弥补了java单承继的缺陷

64.接口有什么特色?

接口中声明全是public static final润饰的常量

接口中一切办法都是笼统办法

接口是没有结构办法的

接口也不能直接实例化

接口能够多承继

65.接口与笼统类有什么差异?

笼统类有结构办法,接口没有结构办法

笼统类只能单承继,接口能够多承继

笼统类能够有一般办法,接口中的一切办法都是笼统办法

接口的特色都是public static final润饰的,而笼统的不是

66.Java中反常分为哪两种?

编译时反常

运转时反常

67.说几个常见的编译时反常类?



68.反常的处理机制有几种?

反常捕捉:try…catch…finally,反常抛出:throws。

69.如何自界说一个反常

承继一个反常类,一般是RumtimeException或许Exception

70.在反常捕捉时,假如产生反常,那么try.catch.finally块外的return句子会履行吗?

会履行,假如有finally,在finally之后被履行,假如没有finally,在catch之后被履行

71.Try.catch.finally是必需求存在的吗?

Try块有必要存在,catch和finally能够不存在,但不能一起不存在

72.Thow与thorws差异

Throw写在代码块内,throw后边跟的是一个详细的反常实例

throws写在办法前面后边,throws后边跟的是反常类,反常类能够呈现多个

73.Error与Exception差异?

Error和Exception都是java过错处理机制的一部分,都承继了Throwable类。

Exception表明的反常,反常能够经过程序来捕捉,或许优化程序来防止。

Error表明的是体系过错,不能经过程序来进行过错处理。

74.运用Log4j对程序有影响吗?

有,log4j是用来日志记载的,记载一些要害灵敏的信息,一般会将日志记载到本地文件或许数据库中。记载在本地文件中,会有频频的io操作,会耗费一些体系资源。记载在数据库中,会频频地操作数据库表,对体系功用也有必定的影响。可是为了程序安全以及数据的恢复或许bug的跟踪,这点资源耗费是能够承受的。

75.Log4j日志有几个级别?

由低到高:debug、info、wran、error

76.除了运用new创立目标之外,还能够用什么办法创立目标?

Java反射

77.Java反射创立目标功率高仍是经过new创立目标的功率高?

经过new创立目标的功率比较高。经过反射时,先找查找类资源,运用类加载器创立,过程比较繁琐,所以功率较低

78.Java中调集结构的有几个?

Coillection、Map。

79.Collection接口下有那些调集结构?

List:线性表、Set:无序调集。

80.List接口有什么特色?

顺序存储、能够有重复值。

81.Set接口有什么特色

无序存储、不能有重复值。

82.ArrayList与LinkedList有什么差异?

ArrayList与LinkedList都完成了List接口。

ArrayList是线性表,底层是运用数组完成的,它在尾端刺进和拜访数据时功率较高,

Linked是双向链表,他在中间刺进或许头部刺进时功率较高,在拜访数据时功率较低

83.Array与ArrayList有什么不一样?

Array与ArrayList都是用来存储数据的调集。ArrayList底层是运用数组完成的,可是arrayList对数组进行了封装和功用扩展,具有许多原生数组没有的一些功用。我们能够理解成ArrayList是Array的一个升级版。

84.Map有什么特色

以键值对存储数据

元素存储循序是无序的

不允许呈现重复键

85.JDBC操作的步骤

加载数据库驱动类

打开数据库衔接

履行sql句子

处理回来成果

封闭资源

86.在运用jdbc的时分,如何防止呈现sql注入的问题。

运用PreparedStatement类,而不是运用Statement类

87.怎样在JDBC内调用一个存储过程

运用CallableStatement

88.是否了解衔接池,运用衔接池有什么好处?

数据库衔接对错常耗费资源的,影响到程序的功用指标。衔接池是用来分配、办理、开释数据库衔接的,能够使应用程序重复运用同一个数据库衔接,而不是每次都创立一个新的数据库衔接。经过开释空闲时间较长的数据库衔接防止数据库因为创立太多的衔接而形成的衔接遗失问题,提高了程序功用。(plapodo)

89.你所了解的数据源技能有那些?运用数据源有什么好处?

Dbcp,c3p0等,用的最多仍是c3p0,因为c3p0比dbcp愈加安稳,安全;经过配置文件的形式来维护数据库信息,而不是经过硬编码。当衔接的数据库信息产生改动时,不需求再更改程序代码就完成了数据库信息的更新。

90.Java的io流分为哪两种?

按功用来分

输入流(input),输出流(output)

按类型来分

字节省,字符流

91.常用io类有那些?

File

FileInputSteam,FileOutputStream

BufferInputStream,BufferedOutputSream

PrintWrite

FileReader,FileWriter

BufferReader,BufferedWriter

ObjectInputStream,ObjectOutputSream

92.字节省与字符流的差异

以字节为单位输入输出数据,字节省按照8位传输

以字符为单位输入输出数据,字符流按照16位传输

93.final、finalize()、finally

性质不同

final为要害字;

finalize()为办法;

finally为区块标志,用于try句子中;

效果

final为用于标识常量的要害字,final标识的要害字存储在常量池中(在这里final常量的详细用法将在下面进行介绍);

finalize()办法在Object中进行了界说,用于在目标“消失”时,由JVM进行调用用于对目标进行废物收回,类似于C++中的析构函数;用户自界说时,用于开释目标占用的资源(比方进行I/0操作);

finally{}用于标识代码块,与try{}进行配合,不管try中的代码履行完或没有履行完(这里指有反常),该代码块之中的程序必定会进行;

94.笼统类和接口的差异?

笼统类:

笼统办法,只要行为的概念,没有详细的行为完成。运用abstract要害字润饰,没有办法体。子类有必要重写这些笼统办法。

包括笼统办法的类,必定是笼统类。

笼统类只能被承继,一个类只能承继一个笼统类。

接口:

悉数的办法都是笼统办法,特色都是常量

不能实例化,能够界说变量。

接口变量能够引证详细完成类的实例

接口只能被完成,一个详细类完成接口,有必要完成悉数的笼统办法

接口之间能够多完成

一个详细类能够完成多个接口,完成多承继现象

95.线程同步的办法

wait():让线程等候。将线程存储到一个线程池中。

notify():唤醒被等候的线程。一般都唤醒线程池中的第一个。让被唤醒的线程处于临时阻塞状态。

notifyAll(): 唤醒一切的等候线程。将线程池中的一切线程都唤醒。

96.线程与进程的差异

进程是体系进行资源分配和调度的一个独立单位,线程是CPU调度和分配的根本单位

进程和线程的关系:

一个线程只能归于一个进程,而一个进程能够有多个线程,但至少有一个线程。

资源分配给进程,同一进程的一切线程同享该进程的一切资源。

线程在履行过程中,需求协作同步。不同进程的线程间要运用音讯通信的办法完成同步。

线程是指进程内的一个履行单元,也是进程内的可调度实体。

线程与进程的差异:

调度:线程作为调度和分配的根本单位,进程作为具有资源的根本单位。

并发性:不仅进程之间能够并发履行,同一个进程的多个线程之间也能够并发履行。

具有资源:进程是具有资源的一个独立单位,线程不具有体系资源,但能够拜访隶归于进程的资源。

体系开销:在创立或吊销进程的时分,因为体系都要为之分配和收回资源,导致体系的显着大于创立或吊销线程时的开销。但进程有独立的地址空间,进程溃散后,在保护模式下不会对其他的进程产生影响,而线程仅仅一个进程中的不同的履行途径。线程有自己的仓库和局部变量,但线程之间没有独自的地址空间,一个线程死掉就等于整个进程死掉,所以多进程的程序要比多线程的程序健壮,可是在进程切换时,耗费的资源较大,功率要差些。

97.&和&&的差异

&是位运算符。&&是布尔逻辑运算符,在进行逻辑判别时用&处理的前面为false后边的内容仍需处理,用&&处理的前面为false不再处理后边的内容。

98.重载与重写

Overload为重载,Override为重写办法的重写和重载是Java多态性的不同体现。重写是父类与子类之间多态性的一种体现,重载是一个类中多态性的一种体现。

假如在子类中界说某办法与其父类有相同的称号和参数,我们说该办法被重写 (Override)。子类的目标运用这个办法时,将调用子类中的界说,对它而言,父类中的界说如同被"屏蔽"了。

假如在一个类中界说了多个同名的办法,它们或有不同的参数个数或有不同的参数类型,则称为办法的重载(Overload)。

重载的办法是能够改动回来值的类型。

99.假如目标的引证被置为null,废物收集器是否会当即开释目标占用的内存?

不会,在下一个废物收回周期中,这个目标将是可被收回的。

100.串行(serial)收集器和吞吐量(throughput)收集器的差异是什么?

吞吐量收集器运用并行版本的新生代废物收集器,它用于中等规划和大规划数据的应用程序。而串行收集器对大多数的小应用(在现代处理器上需求大概100M左右的内存)就足够了。
————————————————

100基础题Java拷问题目答案

上一篇:Java基础语法


下一篇:多个CPU、多核CPU以及超线程(Hyper-Threading)