Java hdv_java基础阶段几个必会面试题

目录

1.说出你对面向对象的理解

在我理解,面向对象是向现实世界模型的自然延伸,这是一种“万物皆对象”的编程思想。在现实生活中的任何物体都可以归为一类事物,而每一个个体都是一类事物的实例。面向对象的编程是以对象为中心,以消息为驱动,所以程序=对象+消息。

面向对象有三大特性,封装、继承和多态。

封装就是将一类事物的属性和行为抽象成一个类,使其属性私有化,行为公开化,提高了数据的隐秘性的同时,使代码模块化。这样做使得代码的复用性更高。

继承则是进一步将一类事物共有的属性和行为抽象成一个父类,而每一个子类是一个特殊的父类--有父类的行为和属性,也有自己特有的行为和属性。这样做扩展了已存在的代码块,进一步提高了代码的复用性。

如果说封装和继承是为了使代码重用,那么多态则是为了实现接口重用。多态的一大作用就是为了解耦--为了解除父子类继承的耦合度。如果说继承中父子类的关系式IS-A的关系,那么接口和实现类之之间的关系式HAS-A。简单来说,多态就是允许父类引用(或接口)指向子类(或实现类)对象。很多的设计模式都是基于面向对象的多态性设计的。

2.JVM的内存区及其GC算法

元空间:jdk1.8取消了持久代新增了元空间,并将方法区放在元空间中

3.集合框架下的各种接口和实现类有哪些,分别有啥特点

参考:

4.string类有啥特点,有哪些常用的API

1.String类对象的相等判断使用equals()方法完成,“==”实现的是地址数值的比较

2.字符串内容一旦声明则不可改变,String类对象内容的改变是依靠引用关系的变更实现的。

3.String类有两种实例化方式,使用直接赋值可以不产生垃圾空间,并且可以自动入池,不要使用构造方法赋值。

一些常见API:

indexOf():检索字符串中某个字符或某段字符的下标。

lastIndexOf():和indexOf类似,不过是查找最后一个出现的位置。

str.lastIndexOf(str,index):从下标index往前查找最后一个出现的位置

substring():返回一个字符串的子字符串

charAt(index):返回下标对应的字符

trim():去掉字符串前后的空格

startsWith()/endsWith():检测字符串是否已制定字符串开头或结尾,返回值是boolean

split()/根据括号内的字符串分离字符串,返回值是一个字符串数组

....

5.stringBuilder和stringBuffer的区别?

运行速度:StringBuilder >StringBuffer >String

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

String:适用于少量的字符串操作的情况

StringBuilder:适用于单线程下在字符缓冲区进行大量操作的情况

StringBuffer:适

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值