Java面试题
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java面试题,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2370字,纯文字阅读大概需要4分钟。
内容图文
![Java面试题](/upload/InfoBanner/zyjiaocheng/600/ec5afa238bc04adeae17d3967ba7408b.jpg)
java面试题
什么是面向对象?谈谈你对面向对象的理解
-
面向对象是对于面向过程来讲的,是两种不同的处理问题的角度。面向过程更注重事情的每一个步骤及顺序,面向对象更注重事情有哪些参与者(对象),以及各自需要做什么
例子:洗衣机洗衣服
面向过程会将任务拆解成一系列的步骤(函数)
-
打开洗衣机
-
放衣服
-
放洗衣粉
-
清洗
-
烘干
面向对象啧会拆出人和洗衣机两个对象
人需要做的:
-
打开洗衣机
-
放衣服
-
放洗衣粉
洗衣机需要做的:
-
清洗
-
烘干
面向过程比较直接高效,而面向对象更易于服用、扩展和维护。
面向对象的三大特性
封装
-
封装的意义:明确标识出允许外部使用的所有成员函数和数据项
-
内部细节对外部调用透明,外部调用无需修改或关心内部实现
例子
-
JavaBean属性私有,提供getset对外访问,因为属性的赋值或者获取逻辑只能由javaBean本身决定,而不能由外部修改。
-
orm框架:操作数据库,不需要关心链接如何简历,sql如何执行,只需引入mybatis,调用方法
继承
-
继承基类的方法,并做出自己的改变或扩展
-
子类共性的方法或者属性是直接调用父类的,而不需要自己再定义,只需扩展自己的方法即可
多态
-
基于对象所属类的不同,外部对同一个方法的调用,实际执行的逻辑并不相同。
-
形成多态的前提:继承,方法重写,父类引用指向子类对象,父类无法调用子类特有的方法
个人总结:
面向对象是将一件事情拆分,分出这件事情中的对象,定义每个对象需要做的事情,之后再复用或者维护,直接找到这个对象查询它下面的方法即可
面向过程是直接开始做一件事情,不考虑对象,虽然做的过程中会因为不用区分对象,效率会稍高一些,但之后想要找一个方法很不方便
JDK JRE JVM 有什么区别
JDK:全称java Develpment Kit,java开发工具
JRE:全称java Runtime Environment,java运行环境
JVM:全称java Virtual Machine,java虚拟机
String,StringBuffer,StringBuilder有什么区别?
String是final修饰的,不可变,每次操作都会产生新的String对象
StringBuffer和StringBuilder都是在原本的对象上进行操作,StringBuffer是线程安全的,StringBuilder是线程不安全的
为什么说StringBuffer是线程安全的?
StringBuffer方法都是synchronized(同步锁)修饰的。
相比之下,String,StringBuffer,StringBuilder的性能对比哪个更高效?
StringBuilder>StringBuffer>String
他们的使用场景:
经常需要改变字符串内容时需要使用StringBuffer以及StringBuilder,因为他们更改时不会创建新的对象,不会造成数据冗余。优先使用StringBuilder(性能最快),多线程使用共享变量时使用StringBuffer(线程安全)
==与equals的区别
==对比的是栈中的值,对比基本数据类型时比较的是变量,对比引用类型时则对比引用类型在堆中内存对象的地址。
equals可以被重写,不做处理的equals跟==是一样的。String类型的equals就是被重写后的(重写原理:将字符串中的每个字符取出来对比是否相等,如果相等,啧返回为true)
内容总结
以上是互联网集市为您收集整理的Java面试题全部内容,希望文章能够帮你解决Java面试题所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。