摘要: 1.1)Java有哪几种数据类型 基本数据类型:byte(1字节) short(2字节) int(4字节) long(8字节) float(4字节) double(8字节) char(2字节) boolean(1字节) 引用数据类型:String 类 接口 抽象类 枚举 数组 1.2)JVM、JRE 阅读全文
posted @ 2023-03-31 23:55 CodeWhisperer001 阅读(88) 评论(0) 推荐(0) 编辑
摘要: 21. 前缀编码 在一个字符集中,任何一个字符的编码都不是另一个字符编码的前缀。 22. JVM清理垃圾命令 GC.run 23. 循环队列引入的目的 消除线性队列的“假溢出”,充分利用存储空间。 24. Webservice是什么?它的引擎是什么? WebService是一个平台独立的、低耦合的, 阅读全文
posted @ 2023-03-31 00:30 CodeWhisperer001 阅读(8) 评论(0) 推荐(0) 编辑
摘要: 11. 线程中wait和sleep的区别 Wait方法属于Object类,使线程放弃进入执行,进入线程等待池,只能使用notify或notifyAll方法才能唤醒此线程,线程会等待进入线程池。即使在执行此方法时,线程已进入线程池,依然会放弃执行,让出线程池,交出锁。即使线程被激活,也需要等待前方线程 阅读全文
posted @ 2023-03-31 00:25 CodeWhisperer001 阅读(15) 评论(0) 推荐(0) 编辑
摘要: ​ 1. 线程和进程的区别 线程三个基本状态:就绪、执行、阻塞 线程五个基本操作:创建、就绪、运行、阻塞、终止 进程四种形式:主从式、会话式、消息或邮箱机制、共享存储区方式 进程是具有一定功能的程序关于某次数据集合上的一次运行活动,是系统进行资源分配和调度的一个独立单位。一个进程包含多个线程。 线程 阅读全文
posted @ 2023-03-31 00:21 CodeWhisperer001 阅读(31) 评论(0) 推荐(0) 编辑
摘要: JMM 就是 「Java内存模型」(java memory model)。因为在不同的硬件生产商和不同的操作系统下,内存的访问有一定的差异,所以会造成相同的代码运行在不同的系统上会出现各种问题。所以java内存模型(JMM)「屏蔽掉各种硬件和操作系统的内存访问差异,以实现让java程序在各种平台下都 阅读全文
posted @ 2023-03-31 00:17 CodeWhisperer001 阅读(68) 评论(0) 推荐(0) 编辑
摘要: 「1.保证内存可见性」 可见性是指线程之间的可见性,一个线程修改的状态对另一个线程是可见的。也就是一个线程修改的结果,另一个线程马上就能看到。 「2.禁止指令重排序」 cpu 是和缓存做交互的,但是由于 cpu 运行效率太高,所以会不等待当前命令返回结果从而继续执行下一个命令,就会有乱序执行的情况发 阅读全文
posted @ 2023-03-31 00:15 CodeWhisperer001 阅读(10) 评论(0) 推荐(0) 编辑
摘要: 上图是 set 家族整体的结构, set 继承于 Collection 接口,是一个「不允许出现重复元素,并且无序的集合」. HashSet 是「基于 HashMap 实现」的,底层「采用 HashMap 来保存元素」 元素的哈希值是通过元素的 hashcode 方法 来获取的, HashSet 首 阅读全文
posted @ 2023-03-31 00:13 CodeWhisperer001 阅读(9) 评论(0) 推荐(0) 编辑
摘要: 1.ArrayList 是实现了基于「数组」的,存储空间是连续的。LinkedList 基于「链表」的,存储空间是不连续的。(LinkedList 是双向链表) 2.对于「随机访问」 get 和 set ,ArrayList 觉得优于 LinkedList,因为 LinkedList 要移动指针。 阅读全文
posted @ 2023-03-31 00:11 CodeWhisperer001 阅读(11) 评论(0) 推荐(0) 编辑
摘要: java 是一门「开源的跨平台的面向对象的」计算机语言. 跨平台是因为 java 的 class 文件是运行在虚拟机上的,其实跨平台的,而「虚拟机是不同平台有不同版本」,所以说 java 是跨平台的. 面向对象有几个特点: 1.「封装」 两层含义:一层含义是把对象的属性和行为看成一个密不可分的整体, 阅读全文
posted @ 2023-03-31 00:09 CodeWhisperer001 阅读(27) 评论(0) 推荐(0) 编辑
摘要: JMM 就是 「Java内存模型」(java memory model)。因为在不同的硬件生产商和不同的操作系统下,内存的访问有一定的差异,所以会造成相同的代码运行在不同的系统上会出现各种问题。所以java内存模型(JMM)「屏蔽掉各种硬件和操作系统的内存访问差异,以实现让java程序在各种平台下都 阅读全文
posted @ 2023-03-31 00:07 CodeWhisperer001 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 在 Java1.6 之前的版本中,synchronized 属于重量级锁,效率低下,「锁是」 cpu 一个「总量级的资源」,每次获取锁都要和 cpu 申请,非常消耗性能。 在 「jdk1.6 之后」 Java 官方对从 JVM 层面对 synchronized 较大优化,所以现在的 synchron 阅读全文
posted @ 2023-03-31 00:05 CodeWhisperer001 阅读(20) 评论(0) 推荐(0) 编辑
摘要: ReentrantLock 意为「可重入锁」,说起 ReentrantLock 就不得不说 AQS ,因为其底层就是「使用 AQS 去实现」的。 ReentrantLock有两种模式,一种是公平锁,一种是非公平锁。 公平模式下等待线程入队列后会严格按照队列顺序去执行 非公平模式下等待线程入队列后有可 阅读全文
posted @ 2023-03-30 23:59 CodeWhisperer001 阅读(71) 评论(0) 推荐(0) 编辑