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)。

关系图如下:

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

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

  1. JAVA 判断简单密码算法_十道简单算法题二【Java实现】

    前言 清明不小心就拖了两天没更了-- 这是十道算法题的第二篇了-上一篇回顾:十道简单算法题 最近在回顾以前使用C写过的数据结构和算法的东西,发现自己的算法和数据结构是真的薄弱,现在用Java改写一下, ...

  2. python数据分析面试常见问题及答案_十道 Python 面试问题陷阱

    无论是应聘 问题1:请问如何修改以下Python代码,使得下面的代码调用类A的show方法 答:这道题的考点是类继承,只要通过class 方法指定类对象就可以了.补充的代码如下: 问题2:请问如何修改 ...

  3. java面试宝典有用么_常见的Java面试题汇总

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 二.关于集合 1.Java中的集合及其继承关系 关于集合的体系是每个人都应该烂熟于心的,尤其是对我们经常使用的List,Map的原理更该如此. 2.pol ...

  4. 面试官问了我几道Java基础没答上来

    面试官问了我几道Java基础没答上来 文章目录 面试官问了我几道Java基础没答上来 1.面向对象的三大特性,分别解释下? 2.说到多态,再来说下方法重载和重写的区别? 3.Java是面向对象的语言, ...

  5. 52道常见Python面试题,你都能答对吗?

    52道常见Python面试题,你都能答对吗? 最近有很多人找小编询问python求职面试的一些情况,python岗位众多,面试官的个性也千人千面,其实是没有固定的套路的.还是一句老话,要成功拿下一个重 ...

  6. JAVA面试八股文宝典(黑马学习随笔)-- 基础篇

    学习随笔简介 跟随着黑马满老师的<Java八股文面试题视频教程,Java面试八股文宝典>学习,视频教程地址:Java八股文面试题视频教程,Java面试八股文宝典(含阿里.腾迅大厂java面 ...

  7. [转+整理]十道海量数据处理面试题与十个方法大总结

        海量数据处理:十道面试题与十个海量数据处理方法总结 作者:July.youwang.yanxionglu. 时间:二零一一年三月二十六日 本文之总结:教你如何迅速秒杀掉:99%的海量数据处理面 ...

  8. java弱引用怎么手动释放,十分钟理解Java中的弱引用,十分钟java引用

    十分钟理解Java中的弱引用,十分钟java引用 本篇文章尝试从What.Why.How这三个角度来探索Java中的弱引用,帮助大家理解Java中弱引用的定义.基本使用场景和使用方法.由于个人水平有限 ...

  9. 50道JavaScript基础面试题(附答案)

    50道JavaScript基础面试题(附答案) 1 介绍JavaScript的基本数据类型 2 说说写JavaScript的基本规范? 3 jQuery使用建议 4 Ajax使用 5 JavaScri ...

最新文章

  1. GaitSet:通过交叉视角步态识别
  2. python解压zip文件_Python中最快解压zip文件的方法
  3. centos 设置双网卡,双网关
  4. 在linux中的sort命令,linux中sort命令
  5. 为什么我要用C写游戏 适合自己的才是最好的
  6. shell脚本实现无密码交互的SSH自动登陆
  7. qt designer 自定义插件找不到指定的模块_SpringBoot之spring-boot-load模块
  8. Qt编译报 undefined vtable问题
  9. 8051 管脚定义_8051微控制器的引脚说明
  10. 盖茨为什么会要求对机器人收税?
  11. linux 文件管理器_8个Linux文件管理器尝试
  12. Makefile语法总结
  13. scikit-learn机器学习常用算法原理及编程实战(五)
  14. Qt——P28 Stacked Widget控件
  15. Ubuntu 配置vsftpd实现FTP服务器
  16. Linux 命令(52)—— ipcrm 命令
  17. Pytorch数据的读取与存储
  18. 计算机在信息社会中最广泛的应用是,计算机一级考题及答案整理
  19. {“errcode“:40125,“errmsg“:“invalid appsecret, view more at http:\/\/t.cn\/RAEkdVq rid: 60d999f2-3ad5
  20. 计算机网络对生活的影响论文,浅论计算机对我们生活的影响论文

热门文章

  1. c语言中的无符号字节,C语言之有符号数和无符号数
  2. oracle+数据到+mysql数据库乱码_oracle数据mysql数据库乱码
  3. 化工图纸中LISP_化工设备厂参展模型设计制作
  4. python matplotlib库安装出错_使用pip install Matplotlib时出现内存错误
  5. linux中win文件转为unix,如何将文本文件从Windows转换为Unix
  6. 无人机导航定位系统Java_无人机高精度室内定位导航的技术方案
  7. java与mysql的交互_java与数据库交互常用到的一些方法
  8. python现在时间 命令,Python 日期格式和时间以及当前时间和时间戳
  9. ajax登录验证的原理,ajax用户登录验证-get和post提交方式,与工作原理—2018-8-15...
  10. html label修改字体颜色,Swift label文字显示不同颜色(字体)