java基础知识全集(一篇看到爽)(持续更新中)

java规范(企业级)

  1. 见名知意, 命名合理

    • 强调了命名的可读性和合理性。
  2. 驼峰命名法

    • 大驼峰:首字母大写,之后每个单词的首字母也大写(如:MyVariableName)。
    • 小驼峰:首字母小写,之后每个单词的首字母大写(如:myVariableName)。
  3. 类名、接口名:大驼峰写法

    • 类名和接口名应采用大驼峰格式。
  4. 变量名、方法名:小驼峰写法

    • 变量和方法名应采用小驼峰格式。
  5. 常量名:全字母大写,单词之间下划线间隔

    • 常量名应该全部大写,并用下划线分隔多个单词(如:CONSTANT_NAME)。
  6. 包名:全字母小写

    • 包名应该全部小写。
  7. 包名规范

    • 包名应由公司域名倒序+项目名+模块名+功能名组成。
    • 尽量使用单个单词,如果需要多个单词则用下划线分割。
  8. 花括号前要加空格

    • 花括号前面需添加一个空格以保持代码整洁。
  9. 双元运算符左右要加空格

    • 双元运算符两侧都需要有空格以提高代码的可读性。

JDK相关

jdk层次

具体的关系如下:

  • JDK 包含 JRE;
  • JRE 包含 JVM;
  1. JDK(Java Development Kit):Java开发工具包,包含了用于开发和运行Java应用程序的所有工具和库。
  2. JRE(Java Runtime Environment):Java运行时环境,是运行已编译好的Java程序所必需的环境。
  3. JVM(Java Virtual Machine):Java虚拟机,负责解释执行字节码文件,实现跨平台特性。

配置环境

  1. 设置JAVA_HOME环境变量:

    • 打开“此电脑”->选择“属性”->进入“高级系统设置”->点击“环境变量”->新建一个名为"JAVA_HOME"的系统变量,并将JDK目录的地址写入其中。
    • 区分了用户变量和系统变量的区别:用户变量仅限当前用户使用;而系统变量所有用户都可以使用。
  2. 设置PATH环境变量:

    • 打开“此电脑”->选择“属性”->进入“高级系统设置”->点击“环境变量”->找到Path变量->将JDK下的bin目录地址写入Path变量中。

DOS命令

这张图片列出了Java开发环境中常用的一些命令行工具及其功能:

  1. java -version:查看Java版本信息。
  2. javac -version:查看Javac编译器版本信息。
  3. javac:用于编译Java源文件(.java)。
  4. java:运行已编译的class文件。
  5. java -jar:运行打包为JAR文件的Java应用程序。
  6. jps:列出当前系统中所有Java进程的ID和名称。
  7. jinfo:查询Java进程的配置信息,如JVM参数、系统属性等。
  8. jstat:显示Java应用程序的性能统计信息,如类加载、垃圾回收等。
  9. jmap:生成Java堆内存的快照,用于分析内存泄漏等问题。
  10. jstack:生成Java线程的堆栈跟踪,用于分析线程死锁等问题。
  11. keytool:管理密钥库(keystore)和证书。
  12. javadoc:从Java源代码中提取注释并生成API文档。
  13. 命令名 -help:获取指定命令的帮助信息。

jvm运行内存结构

JVM(Java Virtual Machine,Java虚拟机)是Java技术的核心之一,它提供了一种与平台无关的运行环境,使得Java程序能够在不同的操作系统和硬件平台上运行而无需修改。JVM是Java语言跨平台能力的关键所在。

  1. 程序计数器(Program Counter Register):

    • 主要功能是记录当前线程执行的字节码指令的地址。
    • 每个线程都有自己独立的程序计数器。
    • 程序计数器的值在异常处理过程中也发挥重要作用。
    • 占用的内存空间非常小。
  2. 本地方法栈(Native Method Stacks):

    • 每个线程都有自己的本地方法栈,保证了线程之间的隔离性和独立性。
    • 通常不受Java内存管理(如垃圾回收)的直接控制。
    • 调用一个Native方法时,JVM会创建一个新的栈帧。
  3. 虚拟机栈(VM Stack):

    • 栈帧由局部变量表、操作数栈、动态链接(指向运行时常量池的引用)、方法返回地址等部分组成。
    • 每个方法的执行都对应着虚拟机栈中的一个栈帧,栈帧是虚拟机栈的基本单位。
    • 虚拟机栈的生命周期与线程的生命周期一致。
    • 虚拟机栈是线程私有的。
  4. 方法区(Method Area):

    • 方法区在JVM启动时创建,并在JVM关闭时销毁。
    • 存储类的元数据信息、常量池、静态变量等。
    • 方法区是各个线程共享的内存区域。
  5. 堆(Heap)
    • 堆是JVM中所有线程共享的一块内存区域。
    • 堆是垃圾回收器管理的主要区域。
    • 存储对象实例和数组。

数据类型

基本数据类型

整数型

  • byte: 1字节

  • short: 2字节

  • int: 4字节

  • long: 8字节

    其中long需要"L"结尾。

表示形式
  • 以0b开头的数字是二进制数;
  • 以0开头的数字是八进制数;
  • 以0x开头的数字是十六进制数;
  • 结尾为E或e的数字是科学计数法,后面跟着10的几次方,可为负数。

浮点型

  • float: 4字节,需要"F"结尾。
  • double: 8字节。

逻辑型

  • boolean: 1字节。

字符型

  • char: 2字节。

整数型特点

  • Java中出现的整数型字面量默认为int类型,数字过大时会报错。
  • Java中小于int数据类型的变量做运算会都先转换成int类型再运算。

浮点型特点

  • Java中出现的浮点型字面量默认为double类型。
  • 计算机底层存储浮点数的近似值,不能使用“==”来比较。所以判定时差值小于一个极小的小数即可。

类型转换

  1. 自动类型转换:

    • Java中的数据类型按照从小到大的顺序进行自动转换:byte < short < int < long < float < double。
  2. 强制数据类型转换:

    • 强制类型转换需要显式指定目标数据类型。
    • 例如,int y = (int)(x); 表示将变量 x 的值转换为整型赋值给 y。
  3. 多种数据类型的混合运算结果:

    • 当在表达式中混合使用不同数据类型时,最终的结果会以其中最大的数据类型为准。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/61335.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

css iframe标签使用

<iframe> 标签用于在网页中嵌入另一个 HTML 页面。它非常灵活&#xff0c;可用于嵌入内容&#xff0c;比如其他网站、视频、地图等。以下是有关 <iframe> 的详细介绍及使用方法&#xff1a; 基本语法 <iframe src"URL" width"宽度" height…

进入 RPG Prime:第六周游戏指南

进入 RPG Prime&#xff0c;在这里&#xff0c;每一个任务都是一个等待展开的史诗故事。选择你的等级&#xff0c;召集你的队伍&#xff0c;开始融合策略、魔法和神话的冒险&#xff01; 本系列共有 10 篇攻略&#xff0c;贯穿 Alpha 第 4 季&#xff0c;每周都有新攻略&#…

leetcode 数组专题 06-扫描线算法(Sweep Line Algorithm)

扫描线专题 leetcode 数组专题 06-扫描线算法&#xff08;Sweep Line Algorithm&#xff09; leetcode 数组专题 06-leetcode.218 the-skyline-problem 力扣.218 天际线问题 leetcode 数组专题 06-leetcode.252 meeting room 力扣.252 会议室 leetcode 数组专题 06-leetcod…

STM32 BootLoader 刷新项目 (十) Flash擦除-命令0x56

STM32 BootLoader 刷新项目 (十) Flash擦除-命令0x56 1. STM32F407 BootLoader 中的 Flash 擦除功能详解 在嵌入式系统中&#xff0c;BootLoader 的设计是非常关键的部分&#xff0c;它负责引导主程序的启动、升级以及安全管理。而在 STM32F407 等 MCU 上实现 BootLoader&…

网页抓取API,让数据获取更简单

网页抓取的过程通常分为以下步骤&#xff0c;尤其是在面对静态网页时&#xff1a; 获取页面 HTML&#xff1a;使用 HTTP 客户端下载目标页面的 HTML 内容。解析 HTML&#xff1a;将下载的 HTML 输入解析器&#xff0c;准备提取内容。提取数据&#xff1a;利用解析器功能&#…

Golang语言整合jwt+gin框架实现token

1.下载jwt go get -u github.com/dgrijalva/jwt-go2.新建生成token和解析token文件 2.1 新建common文件夹和jwtConfig文件夹 新建jwtconfig.go文件 2.2 jwtconfig.go文件代码 /* Time : 2021/8/2 下午3:03 Author : mrxuexi File : main Software: GoLand */ package jwtC…

Spring Security SecurityContextHolder组件

在本篇博客中&#xff0c;我们将讨论 Spring Security 的 SecurityContextHolder 组件&#xff0c;包括其实现方式、关键特性&#xff0c;并通过实际示例进行说明。 理解 SecurityContextHolder SecurityContextHolder 是 Spring Security 存储当前安全上下文详细信息的地方。…

详细分析ipvsadm负载均衡的命令

目录 前言1. 基本知识2. 命令参数3. 拓展 前言 LVS四层负载均衡架构详解Lvs推荐阅读&#xff1a;添加链接描述 1. 基本知识 ipvsadm 是用于管理和配置 Linux 服务器上 IP Virtual Server (IPVS) 的工具&#xff0c;是 Linux 提供的一个负载均衡模块&#xff0c;支持多种负载…

量化选股日常操作日记-11-ai眼镜-润欣科技

用 微信小程序 梦想兔企业智能风险分析助手 &#xff0c;选择AI眼镜板块&#xff0c;挖掘了几个合适的股&#xff0c;分析下来感觉 润欣科技 比较安全些适合观察&#xff0c;几块到十几块波动&#xff0c;企业基本面也没有特别大问题。就是现在价位在周期波动高位&#xff0c;下…

云安全之法律和合规

0x00 前言 本文主要内容是从法律&#xff0c;合同&#xff0c;电子举证&#xff0c;以及合规和审计这五个部分来记录一下相关的云安全内容 0x01 法律 受法律约束的影响因素 云服务所在的地区云用户所在的区域数据主体所在的区域 GDPR&#xff1a;通用数据保护法案&#xf…

动力学法测量金属弹性模量

&#x1f3eb;中南民族大学-⚛大学物理实验2-&#x1f4e0;通信工程2024 目录 Python代码 1. 绘制图像 2. 弹性模量数值计算 图像显示 Pycharm 豆包 MarsCode 非常强大&#xff01;有了它们&#xff0c;我在处理大学物理实验的数据及其可视化就非常方便&#xff0c;极大缩减…

鸿蒙的数据存储API存储和读

数据处理: 使用鸿蒙的数据存储API存储和读 随着智能设备的日益普及&#xff0c;高效、安全地管理设备上的数据成为开发者的首要任务。鸿蒙操作系统&#xff08;HarmonyOS&#xff09;作为一款面向未来的全场景分布式操作系统&#xff0c;提供了丰富的API支持&#xff0c;其中数…

NLP论文速读(EMNLP 2024)|动态奖励与提示优化来帮助语言模型的进行自我对齐

论文速读|Dynamic Rewarding with Prompt Optimization Enables Tuning-free Self-Alignment of Language Models 论文信息&#xff1a; 简介: 本文讨论的背景是大型语言模型&#xff08;LLMs&#xff09;的自我对齐问题。传统的LLMs对齐方法依赖于昂贵的训练和人类偏好注释&am…

计算机中的网络安全

在本篇中介绍了以下几个方面: 机密性 密码学 对称加密算法(DES, 3DES, AES) 公开秘钥算法 RSA大素数的获取 完整性 散列函数(MD5, SHA-1, 并没有提及算法实现) 报文鉴别(MAC) 数字签名 端点鉴别 应用 SSL(TCP网络安全) 运行时安全 防火墙的基本知识 主要体现在以下几个方…

SLM561A系列60V10-50mA单通道线性恒流LED驱动芯片,为汽车照明、景观照明助力

SLM561A系列选型参考&#xff1a; SLM561A10ae-7G SOD123 SLM561A15ae-7G SOD123 SLM561A20ae-7G SOD123 SLM561A25ae-7G SOD123 SLM561A30ae-7G SOD123 SLM561A35ae-7G SOD123 SLM561A40ae-7G SOD123 SLM561A45ae-7G SOD123 SLM561A50ae-7G SOD123 S…

golang操作mysql基础驱动github.com/go-sql-driver/mysql使用

golang中类似java操作mysql的jdbc一样&#xff0c;github.com/go-sql-driver/mysql也为go提供了基础接口&#xff0c;在开发中往往需要写更多的代码来满足自己的定制需求&#xff0c;java在驱动基础上有了扩展&#xff0c;orm框架诞生&#xff0c;mybatis、jpa等都是好用的扩展…

RabbitMQ1:初识MQ

欢迎来到“雪碧聊技术”CSDN博客&#xff01; 在这里&#xff0c;您将踏入一个专注于Java开发技术的知识殿堂。无论您是Java编程的初学者&#xff0c;还是具有一定经验的开发者&#xff0c;相信我的博客都能为您提供宝贵的学习资源和实用技巧。作为您的技术向导&#xff0c;我将…

父组件提交时让各自的子组件验证表格是否填写完整

项目场景&#xff1a; 提示&#xff1a;这里简述项目相关背景&#xff1a; 父组件中有三个表格&#xff0c;表格中时输入框&#xff0c;有些输入框是必填的&#xff0c;在父组件提交时需要验证这三个表格的必填输入框中是否有没填写的。 原因分析&#xff1a; 提示&#xff1a…

Siglus引擎 Unpack | 未完待续

前言 未完待续。 代码在这里&#xff1a;https://github.com/N0zoM1z0/SiglusEngine-Extract 以后随时会更新。&#xff08;&#xff09; 因为我是选择直接逆向游戏引擎&#xff0c;在无源码&#xff0c;不hook的情况下硬逆Siglus…… 路漫漫。。。 read.sav 可以直接逆Sigl…

黑马嵌入式开发入门模电基础学习笔记

学习视频: 黑马程序员嵌入式开发入门模电&#xff08;模拟电路&#xff09;基础 文章目录 背景介绍电流电压组件仿真三极管ne555PCBEDA案例&#xff1a;非接触式电笔案例&#xff1a;电子琴 背景介绍 电流 电压 组件 仿真 三极管 mos管 ne555 PCB EDA 案例&#xff1a;非接触…