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,一经查实,立即删除!

相关文章

VMworld 2010旧金山胜利闭幕

一年一度的VMware的用户大会VMworld 2010上周在旧金山胜利闭幕&#xff0c;今年的VMworld&#xff0c;创造了有一个神奇&#xff0c;超记录的参加人数&#xff08;达到了17000人&#xff09;&#xff0c;超记录的实验数量&#xff08;超过15000个实验&#xff09;&#xff0c;超…

暂时停止更新博客

由于本人最近身体有恙&#xff0c;做了个小手术&#xff0c;暂时卧床休息&#xff0c;不能继续更新博客&#xff0c;还请他人谅解&#xff01;转载于:https://www.cnblogs.com/accordion/p/4458562.html

React开发(175):注意在回调里面重新渲染列表

handleDeleteOne (id, isBatch) > {console.log(id);this.props.dispatch({type: friendHelper/delBatch,payload: {idList: [id.id],},callback: (res) > {if (res.returnCode 0) {message.success(删除成功);this.getAssistList();}},});

vim 分割窗口

From: http://buaadallas.blog.51cto.com/399160/83607 Vim用户手册 - by Bram Moolenaar 译者&#xff1a;Nek_in [url]http://vimcdoc.sf.net[/url] 分割窗口 显示两个不同的文件&#xff1b;或者同时显示一个文件的两个不同地方&#xff1b;又或者并排比较两个文 件。…

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

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

老生常谈–希望别再纠结了朋友

片幅大小与立体感的讨论--群里还有朋友在纠结升级机身FF还是买新24G 在网上的争论很多....各种讲法一堆看完后保证让你吐血不说&#xff0c;越看越迷糊 简单讲...立体感的差异之处在哪边关键就在于景深.... 简单明了我想很多人看完后依然不了一张照片要有立体与层次的感觉基本上…

java打包python到exe文件

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

React开发(173):ant design设置额外的展开行

expandedRowRender额外的展开行Function(record, index, indent, expanded):ReactNode

fail2ban封IP之Http

环境介绍&#xff1a;http是一个tomcat 的js程序 &#xff0c;设置的路径为/opt/tomcat5/logs/localhost_access_log.txt OS:centos 5.3 fail2ban版本:fail2ban-0.8.2-3.el5.rf.noarch.rpm 官方网站&#xff1a;http://www.fail2ban.org/wiki/index.php/Main_Page 背景&…

[Linux] VIM 代码折叠

From: http://www.cnblogs.com/abeen/archive/2010/08/06/1794197.html VIM 代码折叠 VIM代码折叠方式可以用"foldmethod"选项来设置&#xff0c;如: set foldmethodindent 有6种方式来折叠代码 1. manual //手工定义折叠 2. indent //用缩进表示折叠 3. expr  //…

linux time

time&#xff08;取得目前的时间&#xff09; 相关函数ctime&#xff0c;ftime&#xff0c;gettimeofday 表头文件#include<time.h> 定义函数time_t time(time_t *t); 函数说明此函数会返回从公元1970年1月1日的UTC时间从0时0分0秒算起到现在所经过的秒数。如果t 并非…

java 模拟登陆web系统_关于java模拟登陆WEB的问题。

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.net.HttpURLConnection;import java.net.URL;import javax.swing.JOptionPane;/** …

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

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

微软Windows Mobile智能手机GPRS上网设置教程(转)

总是不断的有用户咨询GPRS的设置方法。并且由于中国移动的原因&#xff0c;人为的将一个GPRS网搞成了两个接入&#xff1a;CMNET和CMWAP&#xff0c;因此带来的问题更是多多。在昨日一个用户被移动强盗般的扣取了100多元的网络费后促使了这篇文章的加速出炉。之所以推荐新手必看…

[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.角度…

java 虚类private 继承_Java经典面试36题和答案

1.”static”关键字是什么意思&#xff1f;Java中是否可以覆盖(override)一个private或者是static的方法&#xff1f;“static”关键字表明一个成员变量或者是成员方法可以在没有所属的类的实例变量的情况下被访问。Java中static方法不能被覆盖&#xff0c;因为方法覆盖是基于运…

React开发(177):opentab没有menu会报错

import { openTab } from /utils/tabUtils; connect(({ turnover, menu }) > ({turnover,menu, }))

Silverlight - IIS 7.5 部署SilverLight4网站以及问题解决

http://www.silverlightchina.net/html/tips/2010/0216/723.html 安装设置 Windows 7 IIS (HTTP Error 500.21 - Internal Server Error)解决 原因&#xff1a;在安装Framework v4.0之后&#xff0c;再启用IIS&#xff0c;导致Framework没有完全安装 解决&#xff1a;开始->…

[vim]vim 插件汇总

From: http://blog.sina.com.cn/s/blog_498a6eeb0100v06k.html 1. NERD_commenter.vim 万能的注释插件。 可以根据增加或修改&#xff0c;非常方便。 2. ctags 和cscope 用来看代码的一个工具&#xff0c;和cscope配合使用更好。 3.TagList 插件 高效地浏览源码, 出了当前文件…