字节基础1

博客探讨了如何在无序数组中寻找特定值k,要求O(n)时间复杂度,以及将整数转换为汉字表示。接着讨论了线程同步的不同方式,如synchronized、volatile和ReentrantLock,并对比了进程与线程的区别。此外,还涉及TCP的可靠性、HTTP数据传输、List泛型特性和wait/notify在生产者消费者模式中的应用。
摘要由CSDN通过智能技术生成

1.算法题:寻找k:在无序数组中,k的所有左值比它更小,所有右值比他更大。限定o(n)。

2.算法题:将int转换成汉字表示,尽量考虑边界以及特殊情况。(0,1,-1,10,12,123,1000,1001)

线程的同步方式

  • synchronized
  • volatile
  • ReentrantLock

进程和线程的区别?

进程:是并发执行的程序在执行过程中分配和管理资源的基本单位,是一个动态概念,竞争计算机资源的基本单位
线程:是一个进程的执行单元,比进程更小的独立运行的基本单位,它也被称为轻量级进程,是cpu调度和分派的基本单位

  • 地址空间不同:线程没有独立的地址空间,它们共享同一进程的地址空间,而进程则是独立的地址空间
  • 资源拥有不同:同一进程内的线程共享本进程的资源,但是进程之间的资源是独立的
  • 多进程比多线程更加的健壮:多线程只要一个线程挂掉,整个进程就会死掉,但是一个进程崩溃后,并不会影响其他的进程,因为进程拥有独立的地址空间
  • 进程间的切换资源消耗大,它的切换通常伴随的页调度,而线程的切换只需要切换上下文就可以了,所以在涉及频繁的切换时,使用线程要比进程好。如果同时进行并且又要共享某些变量的并发操作,那么只能用线程
  • 进程相当于一个应用程序执行的实例,每个独立的进程都拥有一个程序运行的入口,程序顺序执行序列和,而每个线程相当于这个进程的一个执行流,所以不能独立执行,必须依存于进程

优缺点:
线程执行开销小,但是不利于资源管理和保护,适合于多cpu
进程执行开销大,但是能够很好的进行资源管理和保护

客户端怎么保证服务端知道自己还活着?

心跳包,它是客户端和服务器之间定时发送通知告诉对方自己的状态的一个命令字,按照一定的时间间隔发送。客户端定时发送简单的信息到服务端告诉它自己还活着,服务端收到后会回复一个固定信息,如果服务端指定时间内没有收到客户端的信息则视为客户端断开。在知道了断开以后,服务器可能会做一些事情,比如数据清理和重新连接等等,心跳包主要也就是用于长连接的保活和断线处理

tcp的可靠性?

  • 对数据进行分割和重组
  • 确保数据按顺序传输(给每个数据包都标明序列号)
  • 支持失败重传
  • 能够进行流量控制(通过滑动窗口实现的)
  • 拥塞控制

可以通过http发送数据吗?

可以,比如post、get请求就是通过http发送的

List和List相同吗?

不同,List里面只能放String类型的变量,而List中可以放所有类型的变量,虽然最后经过泛型擦除后都是一个类型Object。并且List的值不能直接传递给List。虽然String是Object的子类,但是List并不是List的子类

List<? extends T> 和 List<? super T>

  • List<? extends T>表示类型的上界为T,这里面的元素要么是T,要么是T的子类,它是被设计用来读取数据的泛型,只能读取类型为T的元素
  • List<? super T>表示类型的下界为T,里面的元素要么为T,要么为T的父类,它被设计用来添加数据,只能写入T或T的子类型,不能用来进行读操作

用wait/notify实现生产者消费者模式

class Producer implements Runnable {
   

    private EventStorage storage;

    public Producer(EventStorage e){
   
        storage = e;
    }

    @Override
    public void run() {
   
        for (
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值