javaguide 热点问题

系统设计基本步骤

性能相关指标

响应时间RT(Response-time) 是用户发出请求到用户收到系统处理结果所需要的时间。直接反应了系统处理用户请求速度的快慢。

并发数可以简单理解为系统能够同时供多少人访问使用也就是说系统同时能够处理的请求数量。并发数反应了系统的负载能力。

QPS(Query Per Second) 服务器每秒可以执行的查询次数。

TPS(Transaction Per Second) 服务器每秒处理的事务数(这里一个事务可以理解为客户发出请求到收到服务器的过程)

QPS基本类似于TPS,但是对于一个页面的一次访问,形成一个TPS,但一次页面请求,可能产生多次对服务器的请求,服务器对这些请求,就可计入QPS中,如访问一个页面会请求服务器2次,一次访问,产生一个T,产生2个Q

吞吐量 指的是系统单位时间内系统处理的请求数量。 请求对系统资源消耗越多,系统吞吐能力越低,反之则越高。

Read More

面经

作业帮一面-20251018

两题算法

1.输出n以内所有指数

2.自己实现开根号

问答

1.mysql中索引

2.redis中大key

集合

集合遍历的方法

  • 普通 for 循环: 可以使用带有索引的普通 for 循环来遍历 List。

  • 增强 for 循环(for-each循环): 用于循环访问数组或集合中的元素。

    1
    2
    for (String element:list){ 
    System.out.println(element);}
  • Iterator 迭代器:

    1
    2
    3
    4
    5
    Iterator<string>iterator list.iterator(); 
    while(iterator.hasNext()){
    String element.iterator.next();
    System.out.println(element);
    }
  • 使用 forEach 方法: Java 8引入了 forEach 方法,可以对集合进行快速遍历。

    1
    list.forEach(element ->system.out.println(element));
  • Stream API: Java 8的Stream API提供了丰富的功能,可以对集合进行函数式操作,如过滤、映射等。

    1
    list.stream().forEach(element ->System.out.println(element));

Read More

并发

多线程

使用多线程要注意哪些问题?

  • 原子性:提供互斥访问,同一时刻只能有一个线程对数据进行操作,在Java中使用了atomic包(这个包提供了一些支持原子操作的类,这些类可以在多线程环境下保证操作的原子性)和synchronized关键字来确保原子性;
  • 可见性:一个线程对主内存的修改可以及时地被其他线程看到,在Java中使用了synchronizedvolatile这两个关键字确保可见性;
  • 有序性:一个线程观察其他线程中的指令执行顺序,由于指令重排序,该观察结果一般杂乱无序,在Java中使用了happens-before原则来确保有序性。

Read More

Spring

Spring 是一个开源的 Java 企业级应用开发框架,它的核心目标是简化复杂的企业级应用开发,提供一套模块化、轻量级、可扩展的解决方案。

Read More