随笔分类 -  java

摘要:线程通信的目的是为了能够让线程之间相互发送信号。另外,线程通信还能够使得线程等待其它线程的信号,比如,线程B可以等待线程A的信号,这个信号可以是线程A已经处理完成的信号。 通过共享对象通信有一个简单的实现线程之间通信的方式,就是在共享对象的变量中设置信号值。比如线程A在一个同步块中设置一个成员变量h 阅读全文
posted @ 2021-12-02 11:31 bluesky1 阅读(1974) 评论(0) 推荐(2) 编辑
摘要:Java内存模型即Java Memory Model,简称JMM。JMM定义了Java 虚拟机(JVM)在计算机内存(RAM)中的工作方式。JVM是整个计算机虚拟模型,所以JMM是隶属于JVM的。 如果我们要想深入了解Java并发编程,就要先理解好Java内存模型。Java内存模型定义了多线程之间共 阅读全文
posted @ 2021-12-02 11:19 bluesky1 阅读(51) 评论(0) 推荐(0) 编辑
摘要:一、为什么要学习Java虚拟机? 这里我们使用举例来说明为什么要学习Java虚拟机,其实这个问题就和为什么要学习数据结构和算法是一个道理,工欲善其事,必先利其器。曾经的我经常害怕处理内存溢出的问题,因为不知道他为什么会出现这个问题,当我在看了这本书以后明白了垃圾回收算法,以及JVM是如何帮助我们处理 阅读全文
posted @ 2021-09-06 09:14 bluesky1 阅读(66) 评论(0) 推荐(0) 编辑
摘要:为什么需要读写锁? 与传统锁不同的是读写锁的规则是可以共享读,但只能一个写,总结起来为:读读不互斥,读写互斥,写写互斥,而一般的独占锁是:读读互斥,读写互斥,写写互斥,而场景中往往读远远大于写,读写锁就是为了这种优化而创建出来的一种机制。注意是读远远大于写,一般情况下独占锁的效率低来源于高并发下对临 阅读全文
posted @ 2021-08-19 15:45 bluesky1 阅读(859) 评论(0) 推荐(0) 编辑
摘要:Java中的锁有很多种,经常会听到“锁”这个词。 犹如每天出门时,🔑就是一种“锁”,拿不到🔑,就进不去了。 Java那么多种类的锁,都是按不同标准来分类的。就像商店里的各种商品,可以按式样,也可以按颜色或者尺寸。 其实它们都是一种思想。 为什么会有锁? 一个进程可以包含多个线程,那么多个线程就会 阅读全文
posted @ 2021-08-19 15:13 bluesky1 阅读(170) 评论(0) 推荐(0) 编辑
摘要:我想ThreadLocal这东西,大家或多或少都了解过一点,我在接触ThreadLocal的时候,觉得这东西很神奇,在网上看了很多博客,也看了一些书,总觉得有一个坎跨不过去,所以对ThreadLocal一直是一知半解的,好在这东西在实际开发中毕竟用的不多,所以也就得过且过了。当然我说的“用的不多”, 阅读全文
posted @ 2021-08-19 15:10 bluesky1 阅读(40) 评论(0) 推荐(0) 编辑
摘要:一、序列化的含义、意义及使用场景 序列化:将对象写入到IO流中 反序列化:从IO流中恢复对象 意义:序列化机制允许将实现序列化的Java对象转换位字节序列,这些字节序列可以保存在磁盘上,或通过网络传输,以达到以后恢复成原来的对象。序列化机制使得对象可以脱离程序的运行而独立存在。 使用场景:所有可在网 阅读全文
posted @ 2021-08-19 15:09 bluesky1 阅读(263) 评论(0) 推荐(0) 编辑
摘要:性能定义 吞吐量 - 指不考虑 GC 引起的停顿时间或内存消耗,垃圾收集器能支撑应用达到的最高性能指标。 延迟 - 其度量标准是缩短由于垃圾啊收集引起的停顿时间或者完全消除因垃圾收集所引起的停顿,避免应用运行时发生抖动。 内存占用 - 垃圾收集器流畅运行所需要的内存数量。 调优原则 GC 优化的两个 阅读全文
posted @ 2021-08-19 15:00 bluesky1 阅读(76) 评论(0) 推荐(0) 编辑
摘要:一、单系统登录机制 1、http无状态协议 web应用采用browser/server架构,http作为通信协议。http是无状态协议,浏览器的每一次请求,服务器会独立处理,不与之前或之后的请求产生关联,这个过程用下图说明,三次请求/响应对之间没有任何联系。 但这也同时意味着,任何用户都能通过浏览器 阅读全文
posted @ 2021-08-19 14:56 bluesky1 阅读(162) 评论(0) 推荐(0) 编辑
摘要:Java中存在四种引用,StrongReference(强引用) 、SoftReferenc(软引用) 、WeakReferenc(弱引用)、PhantomReference(虚引用).虽然不常用,但是对于理解Java的回收等级还是很有帮助的,一句话来说这些引用只是不同回收等级的一种表现形式. St 阅读全文
posted @ 2021-08-19 14:55 bluesky1 阅读(286) 评论(0) 推荐(0) 编辑
摘要:公司的登录模块也从Session切换到JWT挺长一段时间了,抽时间来总结一下遇到的问题以及解决方案. 为什么用JWT? 在JWT之前,公司是利用传统的Session来实现登录状态的保持,分布式下则利用Redis实现Session共享集中管理,共享集中管理会带来登录强依赖Redis,然而公司的Redi 阅读全文
posted @ 2021-08-19 14:54 bluesky1 阅读(179) 评论(0) 推荐(0) 编辑
摘要:为什么需要读写锁? 与传统锁不同的是读写锁的规则是可以共享读,但只能一个写,总结起来为:读读不互斥,读写互斥,写写互斥,而一般的独占锁是:读读互斥,读写互斥,写写互斥,而场景中往往读远远大于写,读写锁就是为了这种优化而创建出来的一种机制。注意是读远远大于写,一般情况下独占锁的效率低来源于高并发下对临 阅读全文
posted @ 2021-08-19 14:52 bluesky1 阅读(307) 评论(0) 推荐(0) 编辑
摘要:1. 原始Ractor模式 相关组件的解释 Handle(句柄或是描述符):本质上表示一种资源,是操作系统提供的;该资源用于表示一个个事件,比如文件描述符,或者是针对于网络编程中的Socket描述符。事件既可以来自于外部,也可以来自内部;外部事件比如说客户端的连接请求,客户端发送过来数据等;内部事件 阅读全文
posted @ 2021-08-19 12:01 bluesky1 阅读(70) 评论(0) 推荐(0) 编辑
摘要:我认为,代码优化的最重要的作用应该是:避免未知的错误。在代码上线运行的过程中,往往会出现很多我们意想不到的错误,因为线上环境和开发环境是非常不同的,错误定位到最后往往是一个非常小的原因。 然而为了解决这个错误,我们需要先自验证、再打包出待替换的class文件、暂停业务并重启,对于一个成熟的项目而言, 阅读全文
posted @ 2021-08-19 11:57 bluesky1 阅读(162) 评论(0) 推荐(0) 编辑
摘要:1. spi 是什么 SPI全称Service Provider Interface,是Java提供的一套用来被第三方实现或者扩展的API,它可以用来启用框架扩展和替换组件。 系统设计的各个抽象,往往有很多不同的实现方案,在面向的对象的设计里,一般推荐模块之间基于接口编程,模块之间不对实现类进行硬编 阅读全文
posted @ 2021-08-19 11:38 bluesky1 阅读(127) 评论(0) 推荐(0) 编辑
摘要:我们这份面试题,包含的内容了十九了模块:Java 基础、容器、多线程、反射、对象拷贝、Java Web 模块、异常、网络、设计模式、Spring/Spring MVC、Spring Boot/Spring Cloud、Hibernate、Mybatis、RabbitMQ、Kafka、Zookeepe 阅读全文
posted @ 2021-08-19 11:35 bluesky1 阅读(382) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示