javasocket编程例子,给大家安排上!

美团面试经历(还原最真实的4面)

美团一面:

1、自我介绍

2、聊项目相关

  • 介绍项目
  • 怎么保证redis与Mysql的数据一致性
  • 见你写了个加随机数预防缓存雪崩,解释一下
  • 未改进和改进后的Jmter测试性能对比

3、Redis

  • 为什么选择Redis作为缓存?
  • 为什么Redis的性能十分的高?
  • 说一下单进程、单线程的Redis和你平时写的多线程程序的对比
  • 如何保证Redis的高可用?(哨兵、持久化策略RDB、AOF)
  • 解释一下哨兵、RDB、AOF
  • 主从一致性
  • Redis数据淘汰策略
  • 能说一下分布式事务吗?
  • setnx是事务吗?

4、Mysql

  • 解释一下事务
  • 讲一讲事务隔离级别
  • 为什么使用B+树作为索引
  • 聚簇索引和非聚簇索引的区别

5、Java

  • Java是如何保证其安全性的
  • 刚见你说了Java 内存泄漏问题,解释一下什么情况下会出现
  • 说一下BIO、NIO、AIO

6、手撕算法

  • 一个数组找出出现次数最多的一个数,如果多个数出现的次数相同则输出第一个
  • 生产者消费者(一对一)

7、其它

  • 平时怎么学习的
  • 有什么需要问的吗?

美团二面:

1、手撕算法

  • 10个多线程保证 i从0加到10 (差点翻车,主线程忙等另外10个线程完结
  • 反转链表
  • 上台阶(n=80)

2、操作系统

  • 常用的linux命令说一下
  • 操作系统中的信号 和 信号量有什么关系
  • epoll 和 Selector 有什么区别?

3、计算机网络

  • 说一下拥塞控制

4、数据结构

  • 说一下红黑树,你平时用的技术哪里用到了它?
  • 哈希表怎么处理冲突?

5、项目相关

  • 把项目放到服务器上运行的时候有没有遇到什么问题?查看项目运行的状态怎么做?
  • spring 和 springboot的关系你是怎么理解的?
  • Spring IOC和AOP说一下你的理解
  • 为什么用消息队列?
  • 对于消息的重复消费你有什么设计方案吗?

美团三面:

  • 你怎么学的Java啊?
  • 设计模式了解吗?单例讲一下,懒汉饿汉double-check,怎么实现。策略模式,外观模式,适配器模式,装饰器模式,分别讲一下
  • 联合索引什么时候不会触发索引?
  • AOP了解么,有什么好处,如何使用,怎么实现的?
  • 支付宝到银行的转账业务怎么实现?
  • redis实现分布式锁
  • 三台机器集群,按不同权重访问,怎么做?

美团四面(hr):

  • 先介绍一下你自己吧
  • 说一下四种IO模型
  • 平时怎么去学习的?
  • 为什么你说学习了要去实践?
  • 说一下的最大的优点和缺点
  • 举一下你缺点的例子
  • 想象一下你几十年后是怎样的生活?
  • 你觉得最痛苦的一段时间
  • 对你影响最大的一件事情
  • 在安排活动的过程中有没有发生什么冲突?
  • 你有什么崇拜的人吗?
  • 你有什么想问的?

读者福利

分享一份自己整理好的Java面试手册,还有一些面试题pdf

领取方式;关注+点赞后,戳这里即可免费领取

不要停下自己学习的脚步

字节跳动的面试分享,为了拿下这个offer鬼知道我经历了什么

字节跳动的面试分享,为了拿下这个offer鬼知道我经历了什么

1R2dB)**

不要停下自己学习的脚步

[外链图片转存中…(img-tqtFjmPy-1624765396070)]

[外链图片转存中…(img-9bx8dPf7-1624765396073)]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java Socket编程是利用Java语言提供的Socket类和ServerSocket类,实现TCP/IP协议的网络编程。它可以实现客户端和服务器之间的双向通信。 下面是一个简单的Java Socket编程示例: 1. 服务器端代码 ```java import java.net.*; import java.io.*; public class Server { public static void main(String[] args) throws IOException { ServerSocket server = new ServerSocket(8888); //创建服务器Socket,绑定端口号为8888 System.out.println("服务器已启动,等待客户端连接..."); Socket socket = server.accept(); //等待客户端连接,程序阻塞在此处 System.out.println("客户端已连接:" + socket.getRemoteSocketAddress()); BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream())); //获取输入流 PrintWriter out = new PrintWriter(socket.getOutputStream()); //获取输出流 String msg; while ((msg = in.readLine()) != null) { //循环读取客户端发来的消息 System.out.println("客户端发来消息:" + msg); out.println("服务端已收到消息:" + msg); //将收到的消息回传给客户端 out.flush(); //刷新输出流 } in.close(); //关闭输入流 out.close(); //关闭输出流 socket.close(); //关闭Socket连接 server.close(); //关闭ServerSocket } } ``` 2. 客户端代码 ```java import java.net.*; import java.io.*; public class Client { public static void main(String[] args) throws IOException { Socket socket = new Socket("localhost", 8888); //创建客户端Socket,连接到本机的8888端口 System.out.println("连接成功:" + socket.getLocalSocketAddress()); BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream())); //获取输入流 PrintWriter out = new PrintWriter(socket.getOutputStream()); //获取输出流 BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); //获取控制台输入流 String msg; while ((msg = reader.readLine()) != null) { //循环读取控制台输入的消息 out.println(msg); //将消息发送给服务器 out.flush(); //刷新输出流 System.out.println("发送消息:" + msg); System.out.println("服务器回复:" + in.readLine()); //读取服务器回传的消息 } in.close(); //关闭输入流 out.close(); //关闭输出流 socket.close(); //关闭Socket连接 } } ``` 上面的代码演示了一个简单的客户端和服务器之间的通信,客户端向服务器发送消息,服务器收到消息后将消息回传给客户端。你可以根据实际需求,对这段代码进行修改和扩展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值