# Java-interview
##Java基础面试题集
- 仅供参考,写到一半(大部分为借鉴别人博客文章,在此表示感谢)才发现已经有了,算是自己的一次复习+新的尝试
###### 1、面向对象的特征有哪些方面?
- 封装
封装把一个对象的属性私有化,同时提供一些可以被外界访问的属性的方法,如果属性不想被外界访问,我们大可不必提供方法给外界访问。但是如果一个类没有提供给外界访问的方法,那么这个类也没有什么意义了。
- 继承
继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继承父类。通过使用继承我们能够非常方便地复用以前的代码。
关于继承如下 3 点请记住:
1. 子类拥有父类对象所有的属性和方法(包括私有属性和私有方法),但是父类中的私有属性和方法子类是无法访问,**只是拥有**。
2. 子类可以拥有自己属性和方法,即子类可以对父类进行扩展。
3. 子类可以用自己的方式实现父类的方法。(以后介绍)。
- 多态
所谓多态就是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定,即一个引用变量到底会指向哪个类的实例对象,该引用变量发出的方法调用到底是哪个类中实现的方法,必须在由程序运行期间才能决定。
在Java中有两种形式可以实现多态:继承(多个子类对同一方法的重写)和接口(实现接口并覆盖接口中同一方法)。
###### 2、访问修饰符public,private,protected,以及不写(默认)时的区别?(略)
###### 3、String 是最基本的数据类型吗?
- 不是,引用数据类型(可以谈谈object)。
###### 4、float f=3.4;是否正确?
- 错,3.4是双精度数,将双精度型(double)赋值给浮点型(float)属于下转型(down-casting,也称为窄化)会造成精度损失,因此需要强制类型转换float f =(float)3.4; 或者写成float f =3.4F;。
###### 5、short s1 = 1; s1 = s1 + 1;有错吗?short s1 = 1; s1 += 1;有错吗?
- 有,第一个要先short转int再强转short,,第二个对
###### 6、Java有没有goto?(略,保留字)
###### 7、int和Integer有什么区别?
- 基本数据类型和包装类(引用数据类型)回答从equals方法,常量池引用(-128~127)来答[详情见博客](https://blog.csdn.net/chenliguan/article/details/53888018)
###### 8、&和&&的区别?
- 与运算分为普通与(&)和短路与(&&)两种
①普通与:所有的判断条件都要判断.
②短路与:如果前面的判断返回了false,那么后面不再判断,最终结果就是false.
- 或运算分为普通或(|)和短路(||)或两种
①普通或:所有的判断条件都要判断.
②短路或:如果前面的判断返回了true,那么后面不再判断,最终结果就是true.
位运算:
位与运算(&)和位或运算(|),其中“&&”和“||”不能应用在位运算上。
###### 10、Math.round(11.5) 等于多少?Math.round(-11.5)等于多少?
- 12 ,-11
###### 11、switch 是否能作用在byte 上,是否能作用在long 上,是否能作用在String上?
- switch只能是int 或这能转化为int型的byte,short,char,jdk1.7之后String也可以。[详情见博客](https://blog.csdn.net/singit/article/details/47708797)
###### 12、用最有效率的方法计算2乘以8?
- 2 << 3 位运算
###### 13、数组有没有length()方法?String有没有length()方法?
- 数组中没有length()这个方法,但是数组中有length这个属性。用来表示数组的长度。
String中有length()这个方法。用来得到字符串的长度。
###### 14、在Java中,如何跳出当前的多重嵌套循环?
- break语句2种,(break是结束整个循环体,continue是结束单次循环(跳出当前循环,到下一步))[详情见博客](https://blog.csdn.net/singit/article/details/47708797)
- return
###### 15、构造器(constructor)是否可被重写(override)?
- Constructor(构造器)不能被继承,所以不能被override(重写),但是可以被overloading(重载)
###### 16、两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对?
不对,(JVM中有一个不成文的约束,就是两个对象value相同,即equal,那么其hashcode也要相同),根据引用数据类型和基本数据类型,分地址值(值),hashcode,equals方法来答
- [详情见博客](https://blog.csdn.net/menghuanguaishou/article/details/80025647)
###### 17、是否可以继承String类?
- 不可以,因为String类有final修饰符,而final修饰的类是不能被继承的,实现细节不允许改变
###### 18、当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?
- 是值传递。Java编程语言中只有由值传递参数的。当一个对象实例作为一个参数被传递到方法中时,参数的值就是该对象的引用。对象的内容可以在被调用的方法中改变,但对象的引用是永远不会改变的。[详见]([https://snailclimb.gitee.io/javaguide/#/./essential-content-for-interview/MostCommonJavaInterviewQuestions/%E7%AC%AC%E4%B8%80%E5%91%A8%EF%BC%882018-8-7%EF%BC%89](https://snailclimb.gitee.io/javaguide/#/./essential-content-for-interview/MostCommonJavaInterviewQuestions/第一周(2018-8-7)))
###### 19、String和StringBuilder、StringBuffer的区别?
- String 类中使用 final 关键字字符数组保存字符串,`private final char value[]`,所以 String 对象是不可变的。而StringBuilder 与 StringBuffer 都继承自 AbstractStringBuilder 类,在 AbstractStringBuilder 中也是使用字符数组保存字符串`char[]value` 但是没有用 final 关键字修饰,可变,但 StringBuffer对方法加了同步锁或者对调用的方法加了同步锁,是线程安全的
###### 20、重载(Overload)和重写(Override)的区别。重载的方法能否根据返回类型进行区分?
- 重载: 发生在同一个类中,方法名必须相同,参数类型不同、个数不同、顺序不同,方法返回值和访问修饰符可以不同,发生在编译时。
- 重写: 发生在父子类中,方法名、参数列表必须相同,返回值范围小于等于父类,抛出的异常范围小于等于父类,访问修饰符范围大于等于父类;如果父类方法访问修饰符为private则子类就不能重写该方法。
###### 21、描述一下JVM加载class文件的原理机制?
- JVM中类的装载是由类加载器(ClassLoader)和它的子类来实现的,Java中的类加载器是一个重要的Java运行时系统组件,它负责在运行时查找和装入类文件中的类。 由于Java的跨平台性,经过编译的Java源程序并不是一个可执行程序,而是一个或多个类文件。
- 当Java程序需要使用某个类时,JVM会确保这个类已经被加载、连接(验证、准备和解析)和初始化
- 类的加载是指把类的.class文件中的数据读入到内存中,通常是创建一个字节数组读入.class文件,然后产生与所加载类对应的Class对象。加载完成后,Class对象还不完整,所以此时的类还不可用。当类被加载后就进入连接阶段,这一阶段包括验证、准备(为静态变量分配内存并设置默认的初始值)和解析(将符号引用替换为直接引用)三个步骤。最后JVM对类进行初始化,包括:1)如果类存在直接的父类并且这个类还没有被初始化
Java面试基础题集.zip
需积分: 1 113 浏览量
2023-12-31
11:23:24
上传
评论
收藏 25KB ZIP 举报
极致人生-010
- 粉丝: 2925
- 资源: 2826
最新资源
- MyBatis 动态 SQL:灵活而强大的查询构建器.pdf
- com.accordion.prettyo.apk
- 毕业设计:基于SSM的mysql-ssm软件bug管理系统(源码 + 数据库 + 说明文档)
- MTSQL8.0.35windows(64bit)-mysql-installer-community-8.0.35.0
- 人工智能引领音乐创作新时代之Suno AI
- Public-bicycle-usage-forecast-master.zip
- 通道处理过程模拟:从理论到实践.pdf
- 数据库第七次作业E-R图第一题
- 大厂面试真题Java语法基础面试专题及答案
- IMG20240428211124.jpg
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈