尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
计算机学习笔记 Java基础与底层原理详解①
7月30日课程复习笔记Java基础与底层原理详解本次课程深入剖析了Java语言的核心特性与底层运行机制。从Java“一次编写到处运行”的跨平台原理出发详细讲解了JDK、JRE与JVM的组成与关系。随后课程深入计算机底层系统阐述了原码、反码、补码的转换与运算规则以及不同数据类型int, float, boolean, char在内存中的存储细节与性能权衡。最后详细梳理了变量作用域、运算符优先级及位运算的巧妙应用。第一部分Java语言核心特性与运行机制1. Java的八大核心特性简单性剔除了C/C中复杂的指针操作和手动内存管理引入自动垃圾回收机制使编程更安全可靠。面向对象采用面向对象的编程思想通过类和对象组织代码支持封装、继承和多态提高了代码的复用性和扩展性。分布式支持网络编程程序可以在多台机器上协同运行适用于处理大规模数据计算。健壮性具备严格的语法检测和异常处理机制能有效防止数组越界、空指针等常见错误。体系结构中立Java程序不直接依赖特定的CPU架构如x86, ARM而是运行在Java虚拟机JVM之上。可移植性编译后的.class字节码文件可以在任何安装了JVM的操作系统Windows, Linux, macOS上运行实现“一次编写到处运行”。解释型Java源代码先被编译成字节码再由JVM解释或即时编译JIT成机器码执行。高性能支持多线程能够同时处理多个任务提高程序执行效率。2. JDK、JRE与JVM的关系JDK (Java Development Kit)Java开发工具包是程序员的“工具箱”。它包含了JRE以及编译器javac、调试器等开发工具用于开发和编译Java程序。JRE (Java Runtime Environment)Java运行时环境是运行Java程序的必要环境。它包含了JVM和核心类库。JVM (Java Virtual Machine)Java虚拟机是实现Java跨平台的核心。它负责加载、验证并执行字节码将字节码“翻译”成特定操作系统的机器指令。包含关系JDK 包含 JREJRE 包含 JVM。3. 环境变量与执行流程环境变量 (Path)配置环境变量的目的是为了让操作系统能在任意目录下找到并执行JDK的bin目录下的命令如java,javac。系统会按照当前目录 - 环境变量Path中配置的路径顺序进行查找。执行流程.java源文件 - (javac编译) -.class字节码文件 - (JVM加载、解释/编译) - 操作系统调用 - CPU执行。第二部分数据类型与底层存储原理1. 进制转换与编码基础进制表示二进制前缀0b、八进制前缀0、十进制、十六进制前缀0x。转换方法任意进制转十进制位权展开法即每一位数字乘以基数的位次方然后求和。十进制转任意进制除基取余法即不断除以目标进制数并记录余数直到商为0最后将余数倒序排列。2. 原码、反码、补码计算机内部使用补码来表示和存储有符号整数以统一加减法运算并解决“0”的歧义问题。原码最高位为符号位0正1负其余位表示数值的绝对值。反码正数的反码与原码相同负数的反码是符号位不变其余位按位取反。补码正数的补码与原码相同负数的补码是其反码加1。为何使用补码统一运算计算机只有加法器减法通过加上负数的补码来实现。解决双零问题原码和反码中存在0和-0两种表示浪费编码空间且导致逻辑复杂。补码中0只有一种表示全0而原本表示-0的编码如8位下的10000000被用来表示-128使得8位有符号整数的范围变为-128到127。3. 整型数据 (byte, short, int, long)存储大小byte(8位),short(16位),int(32位),long(64位)。默认类型与转换整数默认类型为int。声明long类型变量时若数值超出int范围需在数字后加L。byte和short在参与运算时会先被自动提升为int类型再进行计算。强制类型转换从大范围类型向小范围类型转换如int转byte需要强制转换可能导致数据溢出或精度丢失截取低位。4. 浮点型数据 (float, double)存储标准遵循IEEE 754标准分为符号位、阶码指数和尾数数值三部分。存储结构float(32位)1位符号 8位阶码 23位尾数。double(64位)1位符号 11位阶码 52位尾数。精度与范围浮点数能表示的数值范围极大但有效位数有限float约6-7位。精度分布不均数值越接近0表示越精确刻度密集数值越大相邻两个可表示数值的间隔越大刻度稀疏精度急剧下降。因此float和int虽然都是32位但int能精确表示范围内的所有整数而float在大数值时无法精确表示所有整数。5. 布尔型数据 (boolean)底层实现虽然逻辑上只需要1位0或1但在JVM底层通常实现为int类型32位。设计权衡这是为了优化CPU缓存性能。CPU与内存交互的基本单位是缓存行通常64字节。如果boolean只占1位或1字节一个缓存行会加载过多数据增加多线程竞争和等待的概率。将其设计为32位可以减少缓存行内的数据项数量提高访问效率。6. 字符型数据 (char)存储原理字符在计算机中存储的不是图形而是其对应的数字编码如ASCII, Unicode。编码与乱码char类型在Java中占2字节16位采用Unicode编码。乱码产生的根本原因是文件存储时使用的编码规则与读取时使用的编码规则不一致。流操作文件流、网络流等底层本质上都是对字节或字符数组的操作。第三部分变量、运算符与位运算1. 变量与常量变量声明Java是强类型语言声明变量必须指定类型类型 变量名;。变量分类全局变量成员变量定义在类中有默认初始值如int为0boolean为false。局部变量定义在方法中没有默认值必须手动初始化后才能使用。常量使用final关键字修饰值在初始化后不可更改。命名规范类名大驼峰方法和变量名小驼峰常量全大写加下划线。2. 运算符算术运算符,-,*,/,%。注意整数除法会向下取整如5/2结果为2。自增/自减,--。前置i先自增再参与运算。后置i先参与运算再自增。陷阱i i的结果是i的原始值因为后置会先保存i的旧值用于赋值然后再自增最后赋值操作将旧值覆盖回去。三元运算符条件 ? 值1 : 值2是if-else的简写形式。3. 位运算所有位运算都在补码基础上进行。与 ()两位都为1结果为1。或 (|)两位有一个为1结果为1。非 (~)按位取反。异或 (^)两位不同结果为1两位相同结果为0。应用不使用临时变量交换两个数原理利用异或运算的可逆性a ^ b ^ b a。步骤a a ^ b此时a存储了a和b的差异信息b a ^ b相当于(a ^ b) ^ b结果为原始a的值赋给ba a ^ b相当于(a ^ b) ^ a结果为原始b的值赋给a
RELATED

相关推荐

LLMs访问ACM数字图书馆:检索增强生成技术实现与应用

LLMs访问ACM数字图书馆:检索增强生成技术实现与应用

现在正是让LLMs访问ACM数字图书馆的时候在人工智能技术快速发展的今天,大型语言模型(LLMs)如ChatGPT、GPT-4等已经在自然语言处理领域展现出惊人的能力。然而,这些模型在专业学术领域的知识获取和推理能力仍存在明显局限。作为计算…

📅 2026/9/17 16:01:45
大语言模型表征引导技术解析与实践

大语言模型表征引导技术解析与实践

1. 项目概述"Improved Representation Steering for Language Models"这个标题直指当前大语言模型研究中最前沿的方向之一——如何更精准地控制模型的行为输出。作为一名长期跟踪语言模型发展的研究者,我发现2023年以来,模型控制技术已经从简单…

📅 2026/9/20 14:20:18
C++编程基础:const、define、typedef、inline与constexpr的深度解析与实践指南

C++编程基础:const、define、typedef、inline与constexpr的深度解析与实践指南

1. 项目概述:为什么我们需要重新审视这些“基础”?在C的日常开发中,const、#define、typedef和inline这几个关键字或预处理指令,就像工具箱里的螺丝刀、扳手一样常见。很多开发者,尤其是从C语言转过来的朋友&#xff0…

📅 2026/9/5 22:30:52
MORE NEWS

更多资讯

📰

57页职业生涯规划PPT:从自我认知到实施路径的完整方法论

简介:一份面向职场人士、在校学生及人力资源管理者的职业生涯规划培训PPT,共57页,围绕职业探寻、建立、成功与完成的全过程展开。内容从个人人生价值观、自我认知与困惑梳理入手,系统讲解如何与主管沟通、设定近期和中期目标&…

📰

SAP PS全流程本质:WBS与FICO/MM/SD模块的实时耦合机制

1. 为什么SAP PS模块的“全流程”常被误解为“走完菜单”——从一个真实项目失控说起去年接手某制造企业ERP升级,客户反复强调:“我们只要PS模块能跑通项目全生命周期。”上线前两周,WBS创建、网络活动排程、资源分配、成本计划全部完成&…

📰

美国热水器能效测试Appendix Y:从法规到实验室实施指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

SAP PP中MPS与MRP的区别:主生产计划与物料需求计划的本质、配置及避坑指南

做了快十年SAP PP实施,我面试顾问必问一个问题:MPS和MRP有什么区别?十个候选人有九个能背出“MPS是主生产计划,MRP是物料需求计划”,但往深了问一句——MPS在SAP里靠什么配置标识?跑完MPS之后还要看什么&am…

📰

办公楼亚克力LED发光字制作安装施工组织设计全解析

简介:一份办公楼亚克力LED发光字制作安装工程的施工组织设计文档,面向广告标识制作企业、工程技术人员及项目管理人员,可用于指导类似户外发光字项目的现场施工与安全管控。文档完整覆盖工程说明、工程概况、工艺流程、施工要求、钢结构制作、…

📰

Enzyme ShallowWrapper.forEach() 详解:遍历浅渲染节点并链式操作

Enzyme ShallowWrapper.forEach() 详解:遍历浅渲染节点并链式操作 【免费下载链接】enzyme JavaScript Testing utilities for React 项目地址: https://gitcode.com/gh_mirrors/en/enzyme 导读 .forEach(fn) 是 Enzyme ShallowWrapper 提供的集合遍历方法&…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬