java面试没有全部答对_十道java基础面试题,你能保证全答对吗?

java初级开发面试中经常被问到的问题有好多,下面总结一下常见的问题,先给问题,大家思考一下再看答案。

1.JDK 和 JRE 有什么区别?2.== 和 equals 有什么区别?3.说说final在java中的作用。4.String类的常用方法有哪些?5.Java中操作字符串的类有哪些?它们有什么区别。6.如何将字符串翻转?7.普通类和抽象类有什么区别?8.接口和抽象类有什么区别?9.java中的io流分几种?10.list set 和map之间有什么区别?

下面只做简短的重点回答。

答案:

1.JDK 和 JRE 有什么区别?

答:

JRE(JavaRuntimeEnviroment)是java的运行环境。面向的是Java程序的使用者。JRE是运行Java程序所必须环境的集合,包含JVM标准实现及Java核心类库。它包括Java虚拟机、Java平台核心类和支持文件

JDK(JavaDevelopmentKit)是Java开发工具包。面向的是Java程序的开发者。它提供了Java的开发环境(提供了编译器javac等工具,用于将Java文件编译为class文件)和运行环境(提供了JVM和Runtime辅助包,用于解析class文件使其得到运行,也就是JRE)。JDK是整个Java的核心,包括了Java运行环境(JRE),一堆Java工具tools.jar和Java标准类库(rt.jar)。

关系图如下:

7058558da14c1b6ff6582ee3dbfa27ec.png

2.== 和 equals 有什么区别?答:== :如果比较的是基本数据类型,则直接比较其存储的 “值”是否相等;如果比较的是引用类型的变量,则比较的是所指向的对象的地址equals:两个对象的内容是否相等,最多的是用来比较字符串

引申一个小题,答案在文章最下面找:

Integer a=1;int b=1;Integer c=new Integer(1);Integer d=128;Integer e=128;System.out.println(a==b);System.out.println(a==c);System.out.println(b==c);System.out.println(d==e);

3.说说final在java中的作用。答:分三种情况:用来修饰引用:如果引用为基本数据类型,则该引用为常量,该值无法修改;如果引用为引用数据类型,比如对象、数组,则该对象、数组本身可以修改,但指向该对象或数组的地址的引用不能修改; 如果引用时类的成员变量,则必须当场赋值,否则编译会报错。

用来修饰一个方法:当使用 final 修饰方法时,这个方法将成为最终方法,无法被子类重写。但是,该方法仍然可以被继承。

用来修饰类时:该类成为最终类,无法被继承。

4.String类的常用方法有哪些答:

indexOf() 返回指定字符的索引charAt() 返回指定索引处的字符repalce() 字符串替换trim() 去除字符串两端的空白split() 分割字符串 返回分割后的字符串数组getBytes() 返回字符串的byte类型数组length() 返回字符串的长度toLowerCase() 字符串转小写toUpperCase() 字符串转大写substring() 截取字符串equals() 字符串比较

5.Java中操作字符串的类有哪些?它们有什么区别。答:Java中操作字符串的类有String、StringBuffer、StringBuilder。

String : final 修饰,String 类的方法都是返回 new String。即对 String 对象的任何改变都不影响到原对象,对字符串的修改操作都会生成新的对象。

StringBuffer : 对字符串的操作的方法都加了 synchronized,保证线程安全。

StringBuilder : 不保证线程安全,在方法体内需要进行字符串的修改操作,可以 new StringBuilder 对象,调用 StringBuilder 对象的 append、replace、delete 等方法修改字符串。

6.如何将字符串翻转?答:

利用 StringBuffer 或 StringBuilder 的 reverse 成员方法:// StringBufferpublic static String reverse1(String str) {return new StringBuilder(str).reverse().toString();}

利用 String 的 toCharArray 方法先将字符串转化为 char 类型数组,然后将各个字符进行重新拼接:// toCharArraypublic staticString reverse2(Stringstr) {char[] chars = str.toCharArray();String reverse = "";for (int i = chars.length - 1; i >= 0; i--) {reverse += chars[i];return reverse;

利用 String 的 CharAt 方法取出字符串中的各个字符:// charAtpublicstatic String reverse3(String str) {String reverse = "";int length = str.length();for (int i = 0; i < length; i++) {reverse = str.charAt(i) + reverse;

7.普通类和抽象类有什么区别?答:

抽象类不能被实例化抽象类可以有抽象方法,抽象方法只需申明,无需实现含有抽象方法的类必须申明为抽象类抽象类的子类必须实现抽象类中所有抽象方法,否则这个子类也是抽象类抽象方法不能被声明为静态抽象方法不能用 private 修饰抽象方法不能用 final 修饰

8.接口和抽象类有什么区别?答:

抽象类和接口都不能直接实例化,如果要实例化,抽象类变量必须指向实现所有抽象方法的子类对象,接口变量必须指向实现所有接口方法的类对象。抽象类要被子类继承,接口要被类实现。接口只能做方法申明,抽象类中可以做方法申明,也可以做方法实现接口里定义的变量只能是公共的静态的常量,抽象类中的变量是普通变量。抽象类里的抽象方法必须全部被子类所实现,如果子类不能全部实现父类抽象方法,那么该子类只能是抽象类。同样,一个实现接口的时候,如不能全部实现接口方法,那么该类也只能为抽象类。抽象方法只能申明,不能实现,接口是设计的结果 ,抽象类是重构的结果抽象类里可以没有抽象方法如果一个类里有抽象方法,那么这个类只能是抽象类抽象方法要被实现,所以不能是静态的,也不能是私有的。接口可继承接口,并可多继承接口,但类只能单根继承。9.java中的io流分几种?答:

按照流的流向分,可以分为输入流和输出流;按照操作单元划分,可以划分为字节流和字符流;按照流的角色划分为节点流和处理流。所有流的基类InputStream/Reader: 所有的输入流的基类,前者是字节输入流,后者是字符输入流。OutputStream/Writer: 所有输出流的基类,前者是字节输出流,后者是字符输出流。

10.list set 和map之间有什么区别?答:List 接口和 Set 接口属于 Collection 接口,Map 接口和 Collection 接口并列存在(同级)。List:元素可重复,有序性Set:元素不可重复。

LinkedHashSet 按照插入排序SortedSet 可排序HashSet 无序Map:采用键值对 存储元素,key 键唯一。

hashmap:底层结构是数组 + 链表,无序,线程不安全,效率高,允许有 null(key 和 value 都允许),父类是 AbstractMaptreemap:底层结构是红黑树,有序,将数据按照 key 排序,默认是升序排序。hashtable:底层结构是哈希表,无序,线程安全,效率低,不允许有 null 值,父类是 Dictionary//第二题运行结果truefalsetruefalse

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/405951.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

scratch的积木相与java的_scratch课堂:积木块详解

scratch作为麻省理工学院推出的少儿编程工具&#xff0c;简单易用&#xff0c;十分好学。scratch不仅仅是将编程以积木的形式进行了表现&#xff0c;更是将程序的内容进行了打包处理&#xff0c;让我们只需要根据字面的意思进行拼接即可实现功能&#xff0c;不过scratch的代码还…

java打包python到exe文件

最近想把写的python代码打包&#xff0c;以供没用安装python环境的同事使用&#xff0c;需求如下&#xff1a; 无python环境也可执行文件尽量少&#xff0c;不要太乱程序体积尽量小如果需要更新的话重复类库不用更新采用方案如下&#xff1a; 使用py2exe自动导入类库使用7-ZIP压…

React开发(176):导出所有接口供使用

export * from ‘./order’; export * from ‘./wallet’; export * from ‘./walletAccount’; export * from ‘./walletTrade’;

[vim] vim中使用cscope的安装与使用

From: http://blog.sina.com.cn/s/blog_498a6eeb0100v05m.html 1. 下载cscope-15.7 http://dldx.csdn.net/fd.php?i878111800792509&s924cf0d6a0f63bb6ca24f900 ba3fcad8解压所里面有三个文件&#xff0c; 放到vim的安装目录下即可。2.建索引-bBuild the cross-reference…

Sql Server函数全解二数学函数

阅读目录 1.绝对值函数ABS(x)和返回圆周率的函数PI()2.平方根函数SQRT(x)3.获取随机函数的函数RAND()和RAND(x)4.四舍五入函数ROUND(x,y)5.符号函数SIGN(x)6.获取整数的函数CEILING(x)和FLOOR(x)7.幂运算函数POWER(x,y)、SQUARE(x)、和EXP(x)8.对数的运算LOG(x)和LOG10(x)9.角度…

php框架 wc if_PHP if else语句

无论在何种编程语言中&#xff0c;流程控制都是很重要的内容。由于 PHP 的大部分语法都继承了C语言的特点&#xff0c;因此在流程控制方面&#xff0c;PHP 有着和C语言类似的流程控制。if else 语句是流程控制中根据条件判断执行的一种。该语句执行时先对条件进行判断&#xff…

无线路由与无线AP有什么不同

无线路由与无线AP有什么不同 无线网络从07年开始就进入高速发展的时期&#xff0c;无论是企业还是家庭&#xff0c;在组建网络的时候&#xff0c;大部分都会选择架设无线网络。但是无线网络因为其多种协议、多种功能&#xff0c;产品之间也会有不小的差别&#xff0c;就像很多人…

iOS - 判断用户是否允许推送通知(iOS7/iOS8)

&#xff08;iOS8中用户开启的推送通知类型对应的是UIUserNotificationType&#xff08;下边代码中UIUserNotificationSettings的types属性的类型&#xff09;&#xff0c;iOS7对应的是UIRemoteNotificationType&#xff09; 此处以iOS8的UIUserNotificationType为例&#xff0…

第一课 PE格式

From: http://bbs.pediy.com/showpost.php?p138590&postcount2 要想学脱壳&#xff0c;第一步就得掌握PE格式&#xff0c;PE是Portable Executable File Format&#xff08;可移植的执行体&#xff09;简写&#xff0c;它是目前Windows平台上的主流可执行文件格式。 Micr…

React开发(182):ant design table中 带线框的列表

ReactDOM.render(<Tablecolumns{columns}dataSource{data}borderedtitle{() > Header}footer{() > Footer}/>,mountNode, );

Linux DHCP Server 配置给FIT AP 使用的option

Linux DHCP Server 配置给FIT AP 使用的option 2010-09-17 09:45:52标签&#xff1a;Linux DHCP Server option FIT    [推送到技术圈] 版权声明&#xff1a;原创作品&#xff0c;允许转载&#xff0c;转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将…

Claims 认证详解(1)

很多时候&#xff0c;我们进行应用程序之间的交互。比如&#xff0c;一个员工登录了门户网站后&#xff0c;需要访问进销存系统、CRM系统&#xff0c;如果不进行特殊处理&#xff0c;就需要多次输入用户名和密码。用过SharePoint的朋友&#xff0c;可能知道有个“单点登录”的东…

php什么设置前端代码,代码编辑器与PHPSTUDY的安装与配置过程(前端第一课)

前端第一课&#xff1a;编辑器与PHPSTUDY的安装与配置过程编辑器安装过程1.Visual Studio Code 官网下载软件&#xff0c;解压下载文件&#xff0c;打开安装程序安装至你的计算机。2.安装“Chinese(Simplified)Language Pack for Visual Studio Code” 插件&#xff0c;并重启v…

重学java基础第二十课:环境配置和第一个helloWorld

大家好 我是歌谣 闲来无事做 不如敲代码 今天大概说如何编译一个简单的helloWorld小案例 安装环境的配置 1首先进入jdk的官网 找到对应的jdk版本 这边一window为例 2接下来--右键--计算机--属性--进行高级系统设置 3在用户变量里面配置 JAVA_HOME:G:\java CLASSPATH:.;%JAV…

vim QuickFix 窗口

From: http://hi.baidu.com/bali5/blog/item/82f87c0ab670a136b0351d4f.html 在上一节的图10中大家可以看到在窗口下面有一个显示查询结果的窗口, 这个窗口中列出了查询命令的查询结果, 用户可以从这个窗口中选择每个结果进行查看, 这个窗口叫"QuickFix"窗口, 以前也…

谷歌笔试题(Google十二岁生日晚)

2010-9-27日是Google十二岁生日&#xff0c;就在生日当天&#xff0c;Google进行了一场宣讲会加笔试。Google果然不一般&#xff0c;宣讲会门外都站满了人&#xff0c;也可见竞争之激烈&#xff0c;据说只需要40个人参加面试&#xff0c;而笔试的人有1000之多&#xff0c;汗………

RHE5服务器配置——Samba服务器

Samba的核心 Samba的核心是两个守护进程&#xff0c;即smbd和nmbd。服务器启动到停止期间持续运行&#xff0c;smba监听139TCP端口&#xff1b;nmbd监听137和 138UDP端口。smbd和nmbd使用的全部配置信息保存在smb.conf文件中&#xff0c;smb.conf向smbd和nmbd两个守护进程说明输…