java基础面试题21~30

26 篇文章 0 订阅
  1. 对字符串的都有哪些方法?详细说明下。

具体有String、StringBuffer和StringBuilder这三个类。

  • String是不可变类,每次操作都会生成新的String对象,并将结果指针指向新的对象,由此会产生内存碎片。
  • 如果要频繁对字符串修改,采用StringBuffer 和 StringBuilder更好一些。
  • StringBuffer是线程安全的,多线程的时候推荐使用StringBuffer,但是大多数情况下是单线程,大多使用StringBuilder。

22.String str="abc"与 String str=new String(“abc”)的定义方法一样吗?

不一样,String str="abc"的方式,jvm会将其分配到常量池中;所以建议这种写法。

而 String str=new String(“abc”) 则会被分到堆内存中,如果频繁修改,会导致内存碎片。

23.String 类的常用方法都有那些?
indexOf():返回指定字符的索引。
length():返回字符串长度。
equals():字符串比较。
replace():字符串替换。
trim():去除字符串两端空白。
split():分割字符串,返回一个分割后的字符串数组。
toLowerCase():将字符串转成小写字母。
toUpperCase():将字符串转成大写字符。
substring():截取字符串。

24.一般的类和抽象类有哪些区别?

  • 一般的类不能包含没有方法体的抽象方法,而抽象类可以包含抽象方法。
  • 抽象类不能直接用new来实例化,普通类可以直接实例化。

25.抽象类能使用 final 修饰吗?

语法上不能,从抽象类的本意来说,抽象类是让其他类继承的,如果定义为final就不能被继承,这样是违背了抽象类的本意,所以final不能修饰抽象类

26.接口和抽象类有什么区别?
接口和抽象类的概念不一样。接口是对动作的抽象,抽象类是对根源的抽象。

抽象类表示的是,这个对象是什么。cat类,dog类他们的抽象类是pet,说明他们是pet。

接口表示的是,这个对象能做什么。cat吃东西,dog吃东西,这样就可以定义一个接口“吃”,具体吃什么让类自己实现。

一个类只能继承一个类(抽象类)(正如人不可能同时是生物和非生物),但是可以实现多个接口(吃饭接口、走路接口)。

  • 接口是抽象类的变体,接口中所有的方法都是抽象的。而抽象类是声明方法的存在而不去实现它的类。
  • 接口可以多继承,抽象类不行
  • 接口定义方法,不能实现,而抽象类可以实现部分方法。
  • 接口中基本数据类型为static 而抽类象不是的。

当你关注一个事物的本质的时候,用抽象类;当你关注一个操作的时候,用接口。

27.java 中 IO 流分为几种? BIO、NIO、AIO 有什么区别?

按功能分输入流(input)和输出流(output),从类型来分可以是字节流和字符流

BIO,Block IO, 同步阻塞式 IO,就是平常经常使用的传统 IO,特点是简单方便,但并发处理能力低。
NIO,New IO, 同步非阻塞 IO,客户端和服务器端通过 Channel(通道)通讯,实现了多路复用。
AIO,Asynchronous IO, 实现了异步非堵塞 IO ,它是基于事件和回调机制。

28.Files的常用方法都有哪些?
Files.exists():检测路径是否存在。
Files.createFile():创建文件。
Files.createDirectory():创建文件夹。
Files.delete():删除文件或文件夹。
Files.copy():复制文件。
Files.move():移动文件,即复制后删除。
Files.size():查看文件的个数。
Files.read():读取文件。
Files.write():写入文件。

29.请你谈谈java中是如何支持正则表达式操作的请你简单描述一下正则表达式及其用途,

Java中的String类提供了支持正则表达式操作的方法,包括:matches()、replaceAll()、replaceFirst()、split()。此外,Java中可以用Pattern类表示正则表达式对象,它提供了丰富的API进行各种正则表达式操作

在处理字符串时,经常会有 查找符合 某些 复杂规则的字符串的需要,正则表达式就是用于 描述这些规则的工具

30.java和javascript有什么关系与区别

没什么关系,依稀记得好像是java当时很火热,javascript为了蹭热度,所以取名为javascript,实际上是完全不一样的东西。他们的关系就像:老婆和老婆饼,张三和张三丰。

JavaScript 是动态类型语言;而 Java 是静态类型语言。

JavaScript 中的变量声明采用弱类型,即变量在使用前不需作声明,而是解释器在运行时检查其数据类型。Java 采用强类型变量检查,即所有变量在编译之前必须作声明。

它们的语法和 C 语言都很相似;它们都是面向对象的(虽然实现的方式略有不同);

Java和JavaScript各有所长各有专精,Java的舞台在编程领域,而JavaScript的得心之处是在Web页面中

参考:https://blog.csdn.net/sxeric/article/details/113920719

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值