当前位置: 首页 > news >正文

Java岗面试题--Java并发 计算机网络(日积月累,每日三题)

目录

  • 1. 面试题一:在 Java 程序中怎么保证多线程的运行安全?
    • 1.1 追问一:Java 线程同步的几种方法?
  • 2. 面试题二:JMM
  • 3. 面试题三:计算机网络的各层协议及作用?

1. 面试题一:在 Java 程序中怎么保证多线程的运行安全?

线程安全在三个方面体现:

  1. 原子性:提供互斥访问,同⼀时刻只能有⼀个线程对数据进行操作(atomic,synchronized);
  2. 可见性:⼀个线程对主内存的修改可以及时地被其他线程看到(synchronized、volatile);
  3. 有序性:⼀个线程观察其他线程中的指令执行顺序,由于指令重排序,该观察结果⼀般杂乱无序(happens&before 原则)。

补充:

  • 原子性指一个操作是不可中断的。即使是在多个线程一起执行的时候,一个操作一旦开始,就不会被其他线程干扰。
  • 可见性指当一个线程修改了某一个共享变量的值,其他的线程是否能够立即知道这个修改。显然,对于串行程序来说,可见性问题是不存在的。因为我们在任何一个操作步骤中修改了某个变量,那么在后续的步骤中,读取这个变量一定是修改后的值。
  • 有序性指对于一个线程的执行代码,我们习惯性的认为代码的执行是从前往后,依次执行的。但是在并发时,程序的执行可能会出现乱序。给人直观的感觉就是:写在前面的代码,可能会在后面执行。

1.1 追问一:Java 线程同步的几种方法?

  1. 使用 Synchronized 关键字;
  2. wait 和 notify;
  3. 使用特殊域变量 volatile 实现线程同步;
  4. 使用可重⼊锁实现线程同步;
  5. 使用阻塞队列实现线程同步;
  6. 使用信号量 Semaphore。

2. 面试题二:JMM

关于「JMM」的文章请看这位大佬的博文->>>【Java线程】Java内存模型总结

总结JMM通过控制主内存与每个线程的本地内存之间的交互,来为 Java 程序员提供内存可见性保证。


在这里,顺便复习一下计算机网络的知识吧。

3. 面试题三:计算机网络的各层协议及作用?

在这里插入图片描述
大家也可以看我的这篇文章,写的也是非常详细了—>>> OSI 7层模型讲解(大白话 通俗易懂)

http://www.lryc.cn/news/18590.html

相关文章:

  • 三菱FX3U与威纶MT8071IP走RS422通讯
  • 给想考CISP的一点建议
  • ACM 记忆化搜索
  • spring框架常用注解简单说明
  • 2023-02-24 mysql/innodb-聚合-临时表避免OOM-使用磁盘文件-分析
  • cracklib与libpwquality 评估密码的安全性
  • 【Java】保证并发安全的三大特性
  • 如何优雅的用golang封装配置项(Functional Options)
  • Springboot 使用thymeleaf 服务器无法加载resources中的静态资源异常处理
  • 服务端IOS订阅类型支付接入详细说明与注意事项
  • 【剑指Offer】重建二叉树(递归+迭代)
  • 注解@Transactional 原理和常见的坑
  • 2023年全国最新交安安全员精选真题及答案4
  • 扬帆优配|半天翻倍,“蹭热点”翻车,前期“牛股”已近腰斩
  • 6 种易于上手的编程副业,每月赚取 1,000 多美元——没有废话
  • 第九届蓝桥杯省赛 C++ B组 - 日志统计
  • 记一次服务器入侵事件的应急响应
  • 作用域链查找机制(回顾)
  • 前端基础之HTML扫盲
  • 大规模食品图像识别:T-PAMI 2023论文解读
  • 【java】Spring Cloud --Spring Cloud Alibaba RocketMq 异步通信实现
  • 玫瑰花变蚊子血,自动化无痕浏览器对比测试,新贵PlayWright Vs 老牌Selenium,基于Python3.10
  • Spring Cloud入门篇 Hello World | Spring Cloud 1
  • C++学习笔记-数据结构
  • 【C++的OpenCV】第五课-OpenCV图像常用操作(二):OpenCV的基本绘图、平滑滤波(模糊)处理
  • [SSD固态硬盘技术 19] 谁是数据的守护神? 盘内RAID1/RAID5图文详解_盘内数据冗余保护
  • linux相对于windows环境为啥相对来说更加具有安全性
  • iOS开发笔记之九十七——关于Restful API的一些总结
  • Linux系统Nginx下载和安装
  • 交叉编译 acl