一、面试准备-Java知识

1、String.valueof()、(String)、toString()的区别

答案:

(String)进行转换的时候,如果类型不匹配会抛出类型转换异常。因此在转化的时候如果不确定该类型是否为String类型,需要先用instanceof进行类型判断。

toString()是java.lang.Object类里已有的public方法。在使用时要注意,必须保证object不是null值,否则将抛出NullPointerException异常。toString()不会关注类型的转换,toString()方法返回的是该对象的字符串。

String.valueOf()是String的静态方法,可直接通过String调用。String.valueOf()方法会将非空的对象直接调用其toString方法。但是为空的情况下会返回"null"而不是null。

2、重载(Overload)和重写(Override)

答案:

重载:重载是指同一个类中的多个方法具有相同的名字,但这些方法具有不同的参数列表,即参数的数量或参数类型不能完全相同。

a.通过传递给它们的不同参数个数和参数类型来决定具体使用哪个方法,也就是多态性。

b.返回值类型可以相同也可以不同。不能以返回值类型作为重载函数的区分标准。

重写:重写是存在子父类之间的,子类定义的方法与父类中的方法具有相同的方法名字,相同的参数列表和相同的返回类型。

子类可以继承父类中的方法,而不需要重新编写相同的方法。但有时子类并不想原封不动的继承父类的方法,而是想做一定的修改。重写又称覆盖。

a.子类中不能重写父类中的final方法但是必须重写父类中的abstract方法。

区别:

方法的重载和重写都是实现多态的方式,区别在于前者实现的是编译时的多态性,而后者实现的是运行时的多态性。重载发生在一个类中,同名的方法如果有不同的参数列表(参数类型不同、参数个数不同或者二者都不同)则视为重载;重写发生在子类与父类之间,重写要求子类被重写方法与父类被重写方法有相同的参数列表,有兼容的返回类型,比父类被重写方法更好访问,不能比父类被重写方法声明更多的异常。重载对返回类型没有特殊的要求,不能根据返回类型进行区分。

3、面向对象特征之一---多态性

答案:

存在多态的前提条件:

a.有继承的关系
b.子类重写父类的方法
c.父类的引用指向子类的对象

多态性是面向对象编程的一种特性,和方法无关。分为静态多态性动态多态性

同样的一个方法能够根据输入数据的不同,做出不同的处理,即方法的重载--有不同的参数列表==>静态多态性

当子类继承自父类的相同方法,输入数据一样,但要做出有别于父类的响应时,就要重写父类方法,即在子类中重写该方法--相同参数列表,不同实现==>动态多态性

4、String、StringBuffer与StringBuilder之间的区别

答案:

运行速度:StringBuilder>StringBuffer>String

String为字符串常量,而StringBuilder和StringBuffer均为字符串变量,即String对象一旦创建之后该对象是不可更改的,但后两者的对象是变量,是可以更改的。

线程安全:在线程安全上,StringBuilder是线程不安全的,而StringBuffer是线程安全的。

String适用于少量的字符串操作的情况。
StringBuffer适用于多线程下在字符缓冲区进行大量操作的情况。
StringBuilder适用于单线程下在字符缓冲区进行大量操作的情况。

5、list、set、map的区别

答案:

list、set都是继承自Collection接口,map不是。

list存放元素有序,可重复。set存放元素无序,不可重复

list查找元素效率高,插入和删除元素效率低。set查找元素效率低,插入和删除元素效率高。

原文地址:https://www.cnblogs.com/xiaolangzhong/p/10056442.html

时间: 2024-11-09 00:31:48

一、面试准备-Java知识的相关文章

一些基础的面试的java知识,普及下。开发和测试都用得到。

直接看代码吧. package gdk.ware; import java.text.SimpleDateFormat;import java.util.Date;import java.util.HashMap;import java.util.Map.Entry; import org.testng.annotations.Test;//map的遍历@Testpublic class NewHashMap { static HashMap<String, String> map=new H

Java 程序员 面试前必备知识

前言 正文 自我介绍 数据结构和算法 Java篇 Java EE知识点储备 计算机网络 操作系统 数据库相关 XML 常识性知识 总结 前言 准备了接近两个月的面试笔试,现在终于是可以休息下了.真真是应了那句老话"台上一分钟, 台下十年功.". 人嘛,越努力,才会越幸运.机会总是留给有准备的人的. 下面分享一下我的Java实习生准备所看过的材料,(虽然至今还有些依然看不懂地方.) 希望对这方面的同学有点帮助. 正文 自我介绍 先针对自己的情况写段自我介绍,真实一些就好了,这方面我倒是没

java 知识收集

1,若方法传入的对象参数为空,则在方法中改变参数并不会改变声明的对象 public void setList(List<String> list){ list = new ArrayList<String>() ; } @Test public void t4(){ List<String> list = null ; setList(list); System.out.println(list );//输出 null } 2,不要再foreach遍历的时候删除 jav

java知识查漏补缺

一.重写(override)和重载(overload)的区别 二者除了名字相似,其实没什么联系 范围不同:重写发生在同一个类的不同方法之间.重载发生在父类和子类自荐. 前提: 重写要求:方法名相同,参数列表不同,对于返回值类型不要求相同. 重载要求:方法名形同,参数列表也相同.重载是实现多态的关键,注意如果父类中的方法是private类型,那么子类中对应方法不算重载,而相当于是定义了一个新方法. 二.final的用法 修饰类:该类不能被继承 修饰方法:该方法不能被重写 修饰属性:该属性初始化后不

Java知识简介与环境变量配置问题

一.在学习一门语言中,不仅需要掌握其语法结构,开发平台以及环境也是很重要的.在开始Java学习之前首先对其进行压缩包的下载安装,以及开发平台环境下载安装.基于此下面文章就此展开: 1.        下载并安装JDK包,然后进行快速正确安装操作.(具体安装步骤网上很多,不在赘述.) 2.        安装成功后,需要对其进行环境变量配置,这一点有点特别,特别针对C语言.C#语言开发的同学更应该注意. 环境变量配置步骤如下: 打开:计算机属性->高级->环境变量选项卡->系统变量->

java在线聊天项目 实现基本聊天功能后补充的其他功能详细需求分析 及所需要掌握的Java知识基础

补充聊天项目功能,做如下需求分析: 梳理项目开发所需的必要Java知识基础 GUI将使用更快速的swt实现 SWT(Standard Widget Toolkit) Standard Widget Toolkit是一个开源的GUI编程框架,与AWT/Swing有相似的用处,著名的开源IDE-eclipse就是用SWT开发的. 在SWT之前,Sun已经提供了一个跨平台GUI开发工具包就是AWT (Abstract Windowing Toolkit). swt开发包下载地址 链接: https:/

Java知识图谱(附:阿里Java学习计划)

摘要:     本文主要描绘了Java基础学习过程,给出Java知识结构图,以及阿里Java岗学习计划,对Java学习爱好者.准备及将要从事Java开发方面的同学大有裨益. 温馨提示:     由于CSDN对图片的压缩,导致图片观看效果不理想,建议大家通过右键"在新标签页打开图片"进行观看或直接把图片下载下来观看. JVM 1. 内存模型( 内存分为几部分? 堆溢出.栈溢出原因及实例?线上如何排查?) 2. 类加载机制 3. 垃圾回收 Java基础 什么是接口?什么是抽象类?区别是什么

面试题目java读取文本内容方式

面试题目java读取文本内容方式二种方式 第一种通过FileInputStream()方式读取 FileInputStream fis = new FileInputStream("a.txt"); //创建流对象 byte[] arr = new byte[4]; int len; while((len = fis.read(arr)) != -1) { System.out.print(new String(arr,0,len)); } fis.close(); 第二种通过:Fil

Java知识回顾 (11) 异常处理

距离最近的 Java知识回顾系列(10),2019.4.24日,到现在,已经近半年过去了. 感觉,做一件事情,如果有头无尾,实在不好,心里会一直悬着.所以,现在继续上面的内容. 再次声明,正如(1)中所描述的,本资料来自于runoob,略有修改. 异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的. 比如说,你的代码少了一个分号,那么运行出来结果是提示是错误 java.lang.Error. 异常发生的原因有很多,通常包含以下几大类: 用户输入了非法数据. 要打开的文