java基础复习(第六日)

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

public static String reverse(String originStr) {
if(originStr == null || originStr.length() <= 1)
    return originStr;
return reverse(originStr.substring(1)) + originStr.charAt(0);
}

StringBuffer/StringBuilder

public static String reverse2(String s){
	String str;
	StringBuffer sbBuffer = new StringBuffer(s);
	str=sbBuffer.reverse().toString();
	return str;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值