摘要: 1、摘要 虽然知道了如何去编写线程安全的类,但是,我们不希望每一次都从底层的类开始写。 我们如何能够使用现有的线程安全类来组合为更大规模的组件或程序呢? 如何用不是线程安全的类来组合构建我们的线程安全类呢? 2、设计线程安全的类 在设计线程安全类时,需要包含以下三个要素: 1、找出构成对象状态的所有 阅读全文
posted @ 2021-09-17 12:42 Lqblalala 阅读(52) 评论(0) 推荐(0)
摘要: 1、并发简介 进程是操作系统资源分配的基本单位,线程是操作系统调度的基本单位。 线程允许在同一个进程中同时存在多个程序控制流。 线程会共享进程范围内的资源(内存句柄,文件句柄等),但每个线程都有自己的PC、栈以及局部变量等。 Java堆、方法区是线程间共享的;PC、虚拟机栈、本地方法栈是线程私有的。 阅读全文
posted @ 2021-09-17 12:41 Lqblalala 阅读(131) 评论(0) 推荐(0)
摘要: 1、简介 单例模式下,一个类只能有一个实例。外部能获取到的实例都是一样的。 Spring中的Bean默认就是单例的。 单例减少了内存占用。 如何实现? 唯一实例:static。 外部不能再创建对象:将构造器声名为私有的。 外部获取单例对象:声名一个工厂方法返回单例引用。 2、实现 /** * 线程不 阅读全文
posted @ 2021-09-17 12:40 Lqblalala 阅读(29) 评论(0) 推荐(0)
摘要: 1、对抗性搜索 对抗搜索也称为博弈搜索。 在人工智能领域可以定义为:在一定规则条件下,有完整信息的、确定性的、轮流行动的、两个游戏者的零和游戏(如象棋)。 零和游戏:即你死我活,损人利己,为了我取得最佳结果,对手必须取得最差结果。 既然是游戏,那么就可以对其进行建模了: 初始状态:游戏开始时的初始值 阅读全文
posted @ 2021-09-17 02:05 Lqblalala 阅读(786) 评论(0) 推荐(0)
摘要: 1、场景描述 需求:需要在Java里面调用Python写的模型。 问题:模型在python环境里面能够直接运行,但是用Java调用时,总会发生找不到包或者找不到动态链接库等问题。 2、解决方法 尝试一: 尝试重新导入了相关的包,以及去寻找了缺失的动态链接文件。 问题依旧存在。 尝试二: 尝试在命令行 阅读全文
posted @ 2021-09-14 16:10 Lqblalala 阅读(310) 评论(0) 推荐(0)
摘要: 1、概述 Java虚拟机规范制定了虚拟机字节码执行引擎的概念模型,本章主要从概念模型层次来探究虚拟机的方法调用和字节码执行。 方法调用中,最核心的,是如何确定调用的方法,也就是方法的分派。 字节码执行过程中,特别重要的一点是执行上下文的切换和信息的交换处理。这需要运行时数据结构的支持,也就是运行时栈 阅读全文
posted @ 2021-08-16 13:45 Lqblalala 阅读(314) 评论(13) 推荐(0)
摘要: 1、概述-什么是类加载? 将Class文件从其他地方(外存、字节流甚至是网络流中)载入内存, 并对其中数据进行校验、转换解析和初始化,最终从其中提取出能够被虚拟机使用的Java类型。 用图纸造模子,该模子能够用于生产对象。 运行时再进行类型的加载、链接和初始化虽然带来了一些性能上的影响, 但是也使得 阅读全文
posted @ 2021-08-15 13:38 Lqblalala 阅读(192) 评论(0) 推荐(0)
摘要: 1、运行时数据区域 Java虚拟机会将内存区域划分为几个区域,每个区域储存不同类型的数据或承担不同的功能。 PC,堆-Java堆,栈-虚拟机栈、本地方法栈,方法区、直接内存。 当类被实例化或static方法被调用时,Class文件被加载,关于类的信息储存在方法区里(有了模子)。 虚拟机获得了类的相关 阅读全文
posted @ 2021-08-14 20:24 Lqblalala 阅读(101) 评论(0) 推荐(0)
摘要: 1、如何判断对象是否要被回收 1、引用计数法 在对象中添加一个引用计数器,当有引用指向对象时,引用计数加一,引用失效时,计数减一。引用计数为0时,代表将被回收。 简单高效,但是难以解决循环引用问题。 2、可达性分析算法 “活着的”对象一定有从某个地方指向它的引用。 从一系列的GC Root开始遍历, 阅读全文
posted @ 2021-08-14 15:57 Lqblalala 阅读(135) 评论(0) 推荐(0)
摘要: 概述: 规范而独立的类文件结构以及只与类文件关联的虚拟机为Java实现了平台无关性,甚至还带来了一些语言无关性。 只要将源代码编译为Class文件规定的格式,JVM就可以执行。 JVM的指令描述能力比Java更强,这使得JVM可以执行不同于Java语言特性的语言。 1、Class文件整体结构 以字节 阅读全文
posted @ 2021-08-13 23:18 Lqblalala 阅读(240) 评论(0) 推荐(0)