1 String = 与 new 的不同

使用“=”赋值不一定每次都创建一个新的字符串,而是从“字符串实例池”中查找字符串。使用“new”进行赋值,则每次都创建一个新的字符串

2 String与StringBuffer

String类是不可变类,字符串一旦初始化后,就不能被改变。而StringBuffer类是可变类,字符串值可以呗改变。常常在实际应用中看到累死这样的代码:String s=new(“hello”);s+=”world”,这两句代码首先创建一个字符hello,然后将world追加到hello结尾并重新赋值给变量s。然后,这个过程实际上是这样的:首先创建一个StringBuffer对象,然后用StringBuffer类的append方法追加字符串,最后对StringBuffer对象调用toString方法合成字符串返回。可见,使用+号连接字符串时,本质上是使用了可变的StringBuffer类,经变动肯定性能效率受到影响,所以建议需要追加字符串时,可以考虑直接使用StringBuffer类。参考答案:String类是不可变类,即字符串值一旦初始化后就不可能改变。StringBuffer是可变字符串类,类似String的缓冲区,可以修改字符串的值

3 StringBuffer 与 StringBiulder的区别

StringBuffer是线程安全的字符串缓冲,而StringBuilder不是线程安全的。

4 包装器类型?

包装类器包括Byte、Short、Integer、Long、Float、Double、Character、Boolean等类,主要用来对byte、short、integer、long、float、double、character、boolean这八种基本数据类型进行包装,使其称为引用类型。

5 JAVA参数传递

解析:值传递时编写应用时不可避免的操作。例如某方法声明形式是public void f(int x){},写方法是,必须为其传递一个int类型的实际参数,如f(10)。又如public  void g(Employee)。那么使用该方法时,必须为其传递一个Employee类型的实际参数,例如g(new Employee())。所以,对于初级程序员来说,了解Java语言的值传递规则非常重要。Java语言是本类型传递的值,例如f(10),仅仅把10复制给形式参数x,是值的拷贝。而引用类的传递时引用,即虚地址,例如g(new Employee())是把实际参数的虚地址传递给形式参数e,也就是说实际参数和形式参数的虚地址相同,物理上是同一个对象。参考答案:基本数据类型传递的是值,引用类型传递的是引用,即虚地址。

6 static修饰属性或者方法

static修饰属性或方法后,属性和方法不在属于某个特定的对象,而是所有共享,也可以说是static成员不依赖某个对象,在类加载时就被初始化。Static修饰的属性或方法,可以直接使用类名调用,而不用先实例化对象再调用

7 == 操作符的作用

解析:实际编程中,==是非常常用的操作符。很多初级程序员会使用这样的代码if(s==”save”0{},结果会发现,即使当字符串s的值为save时,if条件依然不能被执行。是==在比较引用类型时,比较的是两个对象的虚地址,而不是内容。要比较两个对象的内容是否相同,往往需要使用equal方法,例如if(s.equals(“save”)){}。==比较基本类型时,将比值的二进制是否相等,例如(x==0.5){}。值得注意的是,与空指针null值进行比较,往往用==进行,例如if(s==null||s.equals(“”)),表示如果字符串是空指针或者空串。 参考答案:==可以用来比较基本类型或者引用类型。比较基本类型时,==用来比较二进制的值,比较引用类型时,用来比较对象的虚地址。

8 && 与 & 的不同

解析:实际编程中,常常需要使用“与”或者“或”的逻辑。其中&&和&存在一定区别&&可能发生各路问题,例如if(s!=null&&s.length()==6)中,如果要的值为null,那么第一表达式的值为false,返回值肯定是false,不会计算第二个表达式的值,这就是短路。然而使用&,例如if(s!=null&s.length()==6),假设s的值为,null,返回值肯定是false,但是会判断第二个表达式的值,将发生空指针异常。实际工作中,经常使用&&操作符。 
参考答案:&&会发生短路问题,当第一个表达式的值为false时,将直接返回结果为false而不会判断第二个表达式的值。而&不会发生短路问题,即使第一个表达式的值是false,会判断第二个表达式的值

9 依赖 与 关联 的关系

解析:关联关系和依赖关系是非常常见的两种关系,二者的区别也很明显,程序员了解二者的区别能够更深入的理解面向对象的思想。 
参考答案:依赖关系是一种瞬时关系,A依赖B,指的是A的某个行为的参数是B的类型,也就是说,A要想实现这个行为,必须依赖B的实例,A关联B,是一种长久的关系。B作为A的属性存在,只要实例化一个A的对象,就会为这个A的对象实例化一个B的对象,作为它的属性使用,可以在A中任何需要使用B的地方使用B。

10 JAVA的继承

解析:继承是面向对象语言的一大特征,主要作用是重复使用,子类通过继承父类,能够重复使用父类的属性和方法。指的注意的是,有两个策略都可使实现重复使用,一个是关联,一个是继承,实际编程中,关联用的更多。因为子类继承父类后,相当于父类中的细节将暴露给子类。初级程序员一定不要随意使用继承,避免滥用继承。 参考答案:继承主要为了能够重复使用父类中的成员。Java语言中的继承是单继承,也就是说一个类最多只能继承一个父类

11 super的作用

解析:使用一些IDE生成代码时,常常会在构造方法中见到super这个关键字。顾名思义,super是和父类有关的一个关键字,熟悉super的用法对熟练掌握继承很有必要。

参考答案:如super():表示调用父类中的每一参考的构造方法:又如super(10);表示调用父类中的具有一个整型参数的构造方法。第二种用法是在子类中调用父类中的成员,如super.f();意思是调用父类中的f()方法。

12 final的作用

final修饰符是一个用途非常广泛的修饰符,可以修饰类,方法,以及属性。

参考答案:final类是不能够被继承的类,称为终极类,如String类就是final类,不能有子类。final修饰方法后,是终极方法,不能被子类覆盖,但是可以被子类继承使用。final类不能被继承,final方法不能被覆盖,final属性不能被改变

13 object类的作用,都有什么方法。

解析:Object类是一个非常重要的类,是所有类的父类,包括数组在内,也就是对一个Java类,不管是API中定义的,还是自定义的类,都直接或间接的继承了Object类。所以,如果有一个方法f(Object o),那么可以传递给这个方法任意一个类的对象,包括%%%%。因为所有对象都可以说是Object类型。 
参考答案:Object类是多有类的直接或间接的父类

常用方法:toString()  equals finalize()

14 Object类的equals与hashcode方法

解析:在Object类中,equals方法比较对象的引用值,也就是只有物理上是同一对象的两个引用,在使用equals方法返回true。hashCode方法返回一个对象的内在地址的十六进制值。由于Object类是所有类的父类,所以任意类中都拥有这两个方法,并都可以进行覆盖。尤其是操作Set,Map对象时集合元素类的equals方法和hashCode方法非常必要,因为Set和Map判断元素是否重%%%是依靠这两个方法进行。一般的原则是:如果存在X和Y两个对象,调用X.equals(Y)相同时,那么调用hashCode方法返回值也应该相同;如果X.equals(Y)返回false时,那么调用hashCode方法返回值可能相同,也可能不同。值得注意的是,只要你覆盖了equals方法,一定%%%则覆盖hashCode 方法。在实际工作中,很多IDE环境都支持覆盖equals和hashCode 方法。

参考答案:Oject类中的equals方法用来比较两个引用值,hashCode用来返回引用的内地址的十六进制数值。在Set以及Map集合中,判断两个元素是否重复时,往往需要使用这两个方法。这两个方法往往被子类覆盖,覆盖的规则是:如果存在x和y两个对象,调用x.equals(y)返回true时,那么调用hashCode方法的返回值也该相同;如果x.equals(y)返回false时,那么调用hashCode方法返回的值可能相同,也可能不同。

15 接口与抽象类

解析:接近欧的概念是一个设计层面的概念,初级程序员往往不会自己定义接口,但是会使用接口,理解接口的概念非常必要。接口定义了实现类的规范,即what to do的部分,所有实现类必须按照这个规范进行实现。 
参考答案:接口的特点是不能定义变量(只能定义静态常量static final 修饰,博友说JDK8已经修正,这个没有尝试,期待参考),而且所有方法都是抽象方法。而抽象类中可以有变量,也不强制必须有抽象方法

16 类的继承与接口的实现

解析:类继承父类与类实现接口,本质上其实是一样的。都是将父类或者接口作为模板,在这个模板上进行扩展或者重写。程序员在实际编程中,常常需要继承父类或者实现接口。 
参考答案:类继承父类只是单继承,也就是一个子类最多只有一个父类;而类实现接口可以多实现,就是一个子类可以同时实现多个接口,并覆盖所有接口中的所有抽象方法。

17 comparable接口的作用

解析:comparable接口是在实际编程中常常使用的接口,该接口定义了comareTo(Object o)方法,用来定义对象的比较逻辑。这个接口常常在其他API中会强制使用,例如Arrays类的sort(Object[])方法,就强制数组元素必须实现Comparable接口,与这个接口类似的 另外一个接口是Comparator。  
参考答案:Comparable接口定义了compareTo(Object o)方法,可以用来实现对象的比较逻辑,这个接口常常在其他API中强制使用,用来规范对象的比较逻辑

转载于:https://www.cnblogs.com/zuge/p/5477621.html

JAVA面试题(2)相关推荐

  1. java 实体类包含list 怎么取值_2019 最新 500 道 Java 面试题

    2015 年,因为工作岗位的变动,开始负责给集团招聘一些技术人员,出于对公司的负责,也为了更好的胜任技术经理的职位,在面试的这件事上,我做了大量的"功课",首先我研究了几乎所有大厂 ...

  2. Java面试题总结-Day4

    <?xml version="1.0" encoding="utf-8"?> Java面试题总结-Day4 Java面试题总结-Day4 Table ...

  3. 用友公司Java面试题(含答案)

    为什么80%的码农都做不了架构师?>>>    用友公司Java面试题(含答案) 1.Hashtable和HashMap有什么区别?   a.Hashtable是继承自陈旧的Dict ...

  4. java面试题2019 答案

    Java 面试随着时间的改变而改变.在过去的日子里,当你知道 String 和 StringBuilder 的区别(String 类型和 StringBuffer 类型的主要性能区别其实在于 Stri ...

  5. Java类加载机制详解【java面试题】

    Java类加载机制详解[java面试题] (1)问题分析: Class文件由类装载器装载后,在JVM中将形成一份描述Class结构的元信息对象,通过该元信息对象可以获知Class的结构信息:如构造函数 ...

  6. Java面试题汇总及答案2021最新(序列化含答案)

    Java面试题汇总及答案2021最新(序列化含答案) 为大家整理了2021最新的Java面试题及答案下载,这套Java面试题总汇已经汇总了Java基础面试到高级Java面试题,几乎涵盖了作为一个Jav ...

  7. Java面试题汇总及答案2021最新(ioNio)

    Java面试题汇总及答案2021最新(io&Nio) 最近给大家整理了一批Java关于io和nio的面试题一共15题,是20201最新时间整理的,并且都含答案打包下载. 适宜阅读人群 需要面试 ...

  8. Java面试题汇总2021最新(集合泛型含答案下载)

    Java面试题及答案2021最新24题(集合&泛型) 最近给大家整理了一批Java面试题一共24题,主要是搜集的Java集合&泛型这块的,是20201最新时间整理的,并且都含答案打包下 ...

  9. Java面试题及答案整理(2022年140道)持续更新

    发现网上很多Java面试题都没有答案,所以花了很长时间搜集整理出来了这套Java面试题大全,希望对大家有帮助哈~博主已将这些面试题整理到一个网站上,每天更新 Java 面试题,目前有 1万多道 Jav ...

  10. Java面试题及答案整理(2022最新版) 持续更新

    发现网上很多Java面试题都没有答案,所以花了很长时间搜集整理出来了这套Java面试题大全,希望对大家有帮助哈~博主已将这些面试题整理到一个网站上,每天更新 Java 面试题,目前有 1万多道 Jav ...

最新文章

  1. 【错误记录】VMware 虚拟机报错 ( 向 VMWare 虚拟机中的 Ubuntu 系统拷贝文件时磁盘空间不足 ② | 删除交换空间 )
  2. 数论--中国剩余定理模板
  3. 面向对象笔试题练习一
  4. 隐藏Content-Location标头带的内部IP地址的执行语句以及其可能会带来的问题
  5. 'ADB server didn't ACK'的解决办法
  6. Java替代C语言的可能性
  7. Python之 面向对象封装案例
  8. 再学 GDI+[36]: TGPPen - SetLineCap
  9. make_heap,pop_heap,push_heap
  10. Android 通过Base64上传图片到服务器
  11. Pyton学习—循环语句
  12. 为什么php不开源,php开不开源
  13. 微信 米聊 导游 服务器 李白,【文化】千古“第一导游”,我只服李白!
  14. 客厅的走廊应该怎么去设计
  15. Ansys Workbench如何导出某个节点坐标以及对应的数值
  16. TDMS转EXCEL
  17. 近两年SEO米线组工作总结回顾
  18. C语言写一个小程序,胖胖的爱心桃
  19. 今天学一招 android dimen中设置不带单位的数值
  20. win32编程与c语言的关系,Windows 编程简介 c/c++/win32

热门文章

  1. 北师大版图形的旋转二教案_北师大2011课标版(闫金铎主编)初中物理八年级下册三、重力公开课优质课课件教案视频...
  2. html5 本地批量存储,HTML5本地存储
  3. mysql更新索引不影响业务_mysql索引更新要多久
  4. tcp retransmission 出现的原因_为什么 TCP 会被 UDP 取代?
  5. 翻转矩阵(数组右移问题)
  6. 禅道设置bug模板_一款热度很高的项目管理和bug工具,免费使用,可在公司推广哦...
  7. Android 10 vivo,更快更安全,vivo产品经理宣布:iQOO将首批适配Android 10正式版
  8. 使用Python,OpenCV和Scikit-Image检测低对比度图像
  9. 使用OpenCV和Imutils构建图像的蒙太奇效果
  10. ROS与深度相机入门教程:(1)Ubuntu16.04 在ROS中驱动Intel D435i深度相机