java基础复习(五)
1.是否了解类似 RabbitMQ.kalka 之类的队列服务? 请简述队列取务中的常见要素和使用场景?
了解,队列服务是一种应用间的通信方式,可以实现异步处理、应用解耦、流量削峰和消息通信等功能
队列服务的常见要素:生产者、消费者、消息处理中心和队列
生产者负责发送消息,消费者负责接收和处理消息,消息处理中心负责存储、确认、重试等。队列按照一定的规则分发消息
RabbitMQ遵循AMQP协议,适用实时的对可靠性要求比较高的信息传递
Kafka是Linkedln开源的消息发布订阅系统,主要用于处理大数据量的流式数据
2.你在什么时候会使用 Request/Response 模式,什么时候使用Publish/Subscribe 模式?
Request/Response 模式
1.会在与外部系统进行通信使用
2.当我需要调用第三方API时
Publish/Subscribe 模式
- 异步处理信息
- 广播消息给多个订阅者
- 动态提交或移除订阅者
3.是否使用过redis,使用过 redis 的哪种数据结构,如何优化redis?
使用过
String、List、Hash、Set、Sorted Set等
优化:
1.缩短键值对的存储长度
2.设置键值的过期时间
3.避免大量数据同时失效
4.继承数据持久化策略
5.禁用长耗时的查询命令
6.限制 Redis 内存大小
7.使用分布式架构增加读写速度
前某家面试题结束!!!
4.String s = new String(“xyz”);创建了几个字符串对象?
两个对象,一个是静态区的"xyz",一个是用 new 创建在堆上的对象
5.接口是否可继承(extends)接口?抽象类是否可实现(implements)接口?抽象类舒服可继承具体类(concreteclass)?
接口可以继承接口,而且支持多重继承。抽象类可以实现(implements)接口,抽象类可继承具体类也可以继承抽象类
6.一个".java"源文件中是否可以包含多个类(不是内部类)?有什么限制?
可以,但一个源文件中最多只能有一个公开类(public class) 而且文件名必须和公开类的类名完全保持一致。
7.Anonymous lnner Class(匿名内部类)是否可以继承其它类?是否可以实现接口?
可以继承其他类或实现其他接口,在 swing 编程和 Android 开发中常用此方式来实现事件监听和回调
8.内部类可以引用它的包含类(外部类)的成员吗?有没有什么限制?
一个内部类对象可以访问创建它的外部类对象的成员,包括私有成员
9.Java 中的 final 关键字有哪些用法?
修饰类:表示该类不能被继承;
修饰方法:表示方法不能被重写;
修饰变量:表示变量只能一次赋值以后值不能被修改(常量)
10.创建对象时构造器的调用顺序?
class A {
static {
System.out.print("1");
}
public A() {
System.out.print("2");
}
}
class B extends A{
static {
System.out.print("a");
}
public B() {
System.out.print("b");
}
}
public class Hello {
public static void main(String[] args) {
A ab = new B();
ab = new B();
}
}
执行结果:1a2b2b。
创建对象时构造器的调用顺序:
先初始化静态成员,然后调用父类构造器,再初始化非静态成员,最后调用自身构造器
11.数据类型之间的转换
- 如何将字符串转换为基本数据类型?
调用基本数据类型对应的包装类中的方法 parseXXX(String)或valueOf(String)即可返回相应基本类型
- 如何将基本数据类型转换为字符串?
一种方法是将基本数据类型与空字符串(" ")连接(+)即可获取其所对应的字符串;
另一种方法是调用String 类中的 valueOf()方法返回相应字符串
12.如何实现字符串的反转及替换?
使用 String 或 StringBuffer/StringBuilder中的方法
String文章来源:https://www.toymoban.com/news/detail-631391.html
public static String reverse(String originStr) {
if(originStr == null || originStr.length() <= 1)
return originStr;
return reverse(originStr.substring(1)) + originStr.charAt(0);
}
StringBuffer/StringBuilder文章来源地址https://www.toymoban.com/news/detail-631391.html
public static String reverse2(String s){
String str;
StringBuffer sbBuffer = new StringBuffer(s);
str=sbBuffer.reverse().toString();
return str;
}
到了这里,关于java基础复习(第六日)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!