java基础面试题(二)附答案
java基础面试题(二)附答案
值传递和引用传递是什么?java是什么传递的?
值传递意思是传递数据就是改数据原本
引用传递是传递的数据的副本,就是拷贝了一份使用,基本类型是数值,引用类型是地址
java使用的是值传递
重载和重写的区别?
重载是发生在同一个类中的,相同方法名不同的参数的多个方法,执行不同的逻辑处理
重载发生在编译期
构造方法可以重载
重载的方法名相同,参数列表不同(个数、顺序、类型)
重载的返回值和访问修饰符可以不相同
重写是发生在同一个子类中的,重写是子类对父类方法的重写构造;外部定义不能访问
- 重写发生在运行器
- 重写的方法必须名相同、参数相同
- 重写的方法访问修饰符必须大于等于父类方法的访问修饰符
- 重写的方法抛出的异常类型范围必须小于等于父类方法
- 构造方法不能重写
- 如果父类的方法是被final、private、static所修饰的则子类不能重写该方法
什么是深拷贝、什么是浅拷贝?
- 浅拷贝是拷贝对象仅仅拷贝的是此对象本身(包括此对象的成员变量),而不包括该对象的引用所指的对象;实现方法,实现Cloneable接口,重写clone方法
- 深拷贝是拷贝对象不仅仅拷贝的是此对象本身(包括此对象的成员变量),还不包括该对象的引用所指的对象
- 实现方式有两种
- 每一层的引用对象实现Cloneable接口,实现clone方法(实现复杂,但执行效率高)
- 使用序列化接口实现深拷贝(实现简单,但效率低下)
- 实现方式有两种
接口和抽象类有什么区别?
- 接口使用interface声明;抽象类使用abstract声明
- 接口使用implement实现;抽象类使用extends实现
- 接口内部定义的都是public修饰的方法;抽象类里面的方法是任意的访问修饰符
- 接口可以使实例化对象;抽象类不能实例化对象
- 接口可以被实现多个;抽象类是能实现一个
- 接口里面不能有main方法;抽象类里可以有main方法
- 接口在JDK8之前不能有方法体(之后加入了可以写default方法),声明的都是抽象方法;抽象类可以声明实例方法和抽象方法
- 接口里面不能有构造方法;抽象类中可以有构造方法
请你说一下java支持的数据类型是什么?什么是自动拆箱?
支持的数据类型是byte、short、int、long、double、float、char、string、boolean
自动拆箱就是将引用类型数据拆箱成基本数据类型;装箱相反。
解释一下为什么会出现4.0-3.6=0.4000000001这种现象?
这是java中对浮点类型数据的精度丢失;
因为java计算是将浮点类型数据转换为二进制数据存放,转换的时候二进制可能表达的与原数据略有出入,则存入的数据也会有精度缺失,
一般在科学计算或者其他权威的领域可以使用String+Bigdecimal来解决精度丢失问题。
请说明一下Comparable和Comparator接口的作用和他们的区别
- Comparable和Comparator接口都是比较器接口
- 实现Comparable接口要实现默认的ComparTo(Obj o)方法,值传入一个参数,像tree的集合的实现类一般都有实现比较器
- 实现Comparator接口实现的方法是Compar(Obj o1,Obj o2)属于自定义的比较丰富,返具有返回值 根据返回值进行具体的排序实现
- Comparable和Comparator接口都是比较器接口
谈一谈反射创建对象
反射是java程序运行中对自我的检查,并能操作内部的方法和属性
反射创建对象有五种方式
- Method类可以创建
- Filed类可以创建
- 构造方法方式创建 constructor
- Object类创建
- Class类创建
StringBuffer和StringBuilder有什么区别?
相同点:
都是继承AbstractStringBuilder父类,都能存储字符数据,都是可变的字符串。
不同点:
线程安全:
StringBuffer类下的方法都是使用了synchronize关键字所修饰,在相同的环境下,相比StringBuilder的线程安全。
性能方面:
由于StringBuffer操作需要获取锁和释放锁,性能相比StringBuilder慢一点,但是StringBuilder在相同的情况下要承担10%-15%的线程安全。
列举Object类的方法并简要说明
- HashCode()方法:获取对象的HashCode值
- equals()方法:基本类型比较值,引用类型比较地址
- wait()方法:线程等待方法
- notify()方法:线程的唤醒方法
- notifyAll()方法:线程的唤醒所有方法
- GetClass()方法:获取类对象
- clone()方法:复制对象的方法有深拷贝和浅拷贝
- toString()方法:转为字符串方法
- finalize()方法:垃圾回收时调用的方法,释放缓存等
java基础面试题(二)附答案相关推荐
- 十个Java基础面试题(附答案)
1.八种基本数据类型是什么?他们的包装类型是什么?各占多少个字节? byte Byte 1个字节.short Short 2个字节.int Integer 4个字节.long Long 8个字节.fl ...
- JavaScript面试题大全之基础面试题(附答案)
近年来,从事web前端开发的程序员越来越多,都需要使用JavaScript,这篇文章主要整理一些最常见的JavaScript面试题以及答案. 介绍JavaScript的数据类型 值类型(基本类型):字 ...
- 期中计算机网络答案,计算机网络基础自考试题「附答案」
计算机网络基础自考试题「附答案」 一.单项选择题 1.语言处理程序包括:汇编程序.编译程序和( D ) A.C程序 B.BASIC程序 C.PASCAL程序 D.解释程序 2.已知x=101010B, ...
- 50道JavaScript基础面试题(附答案)
50道JavaScript基础面试题(附答案) 1 介绍JavaScript的基本数据类型 2 说说写JavaScript的基本规范? 3 jQuery使用建议 4 Ajax使用 5 JavaScri ...
- 2014安康电大会计本科网考计算机应用基础试题答案,2014年电大网考计算机应用基础统考试题二及答案小抄[精品].doc...
2014年电大网考计算机应用基础统考试题二及答案小抄[精品] 窗体顶端 窗体底端 2011年电大网考计算机应用基础统考试题二及答案 [修改时间:2012-9-4 14:30:28 ] [编辑:Admi ...
- java 输入输出最终还是调用操作系统的内核函数,网易Java研制笔试题(附答案)——20160322...
网易Java研发笔试题(附答案)--20160322 这里的答案都是本人做的,非标准答案.如果错误,请在评论里指正,一起讨论共同进步!谢谢! 一.单选题 1. 一棵树有2个2度顶点 1个3度顶点 3个 ...
- 【前端面试题】—53道常见NodeJS基础面试题(附答案)
说到前端就不得不提到后端,我们给用户展示页面所需的数据正是从后端获取的,所以了解后端的运行原理和技术的实现很有必要. Node. js是一个不错的选择,它是基于JavaScript语法的一套服务器端( ...
- LeetCode C++基础面试题汇总附答案(一)
目录 前言 面试题及答案 1. 请简述智能指针原理 2. 引用和指针有什么区别? 3. const 和 define 有什么区别? 4. define 和 inline 有什么区别? 5. mallo ...
- 2万字70道Java经典面试题总结(附答案)
本文已经收录到Github仓库,该仓库包含计算机基础.Java基础.多线程.JVM.数据库.Redis.Spring.Mybatis.SpringMVC.SpringBoot.分布式.微服务.设计模式 ...
- 8万字208道Java经典面试题总结(附答案)
前言 最近有很多粉丝问我,有什么方法能够快速提升自己,通过阿里.腾讯.字节跳动.京东等互联网大厂的面试,我觉得短时间提升自己最快的手段就是背面试题,最近总结了Java常用的面试题,分享给大家,希望大家 ...
最新文章
- KVM虚拟机添加硬盘
- Spring抽取jdbc配置文件
- 数据切分 垂直切分、垂直拆分与水平拆分的优缺点
- 前端学习(2052)vue之电商管理系统电商系统之配置http服务
- win10如何修改IP地址
- 时速云入选2018中国企业服务创新成长50强
- 程序员1w2以下的,2020年就要面对现实了...
- 兼容多种浏览器“复制到剪贴板”的解决方案
- python long转int_将 python long/int转换为固定大小的字节数组_others_酷徒编程知识库...
- 白光led 计算机模拟,白光LED在TracePro中的建模及仿真
- easyui导出excel科学计数法问题解决方法
- ALexa网站排名查询
- U盘文件变exe文件
- PhotoShop纸张大小
- np.array的axis进行横向纵向的求和运算
- 打开secpol.msc、gpedit.msc显示“试图引用不存在的令牌”,复制到其他目录可正常打开
- 关于已移除sd卡,手机不认卡的原因和解决办法(转)
- Nature子刊:识别偏头痛脑与遗传的标志物
- Python+Django电影推荐系统搭建
- 计算机调出任务管理器的组合键是,调出任务管理器快捷键