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,一经查实,立即删除!

相关文章

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

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

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…

详细分析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;下…

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

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

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

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

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…

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;非接触…

linux 中mysql查看慢日志

1、到mysql容器&#xff0c;先登录到数据库&#xff0c;查看是否开启 mysql -h 127.0.0.1 -uroot -p SHOW VARIABLES LIKE slow_query_log; 2、如果没有开启&#xff0c;需要先开启 set global slow_query_log ON; 3、查看慢日志文件 SHOW VARIABLES LIKE slow_query_log…

从0开始机器学习--Day30--异常检测算法

异常检测算法(Anomaly detection algorithm) 我们定义异常检测算法的输出&#xff0c;也写作&#xff0c;这里的每一项括号内代表的是每个特征都符合各自的高斯分布&#xff08;也就是正态分布&#xff09;&#xff0c;代表均值&#xff0c;决定了模型的中心位置&#xff1b;代…

架构图解析:如何构建高效的微服务系统

在当今的数字化浪潮中&#xff0c;构建高效、灵活且可扩展的系统已成为企业的重要目标。微服务架构作为一种先进的软件设计模式&#xff0c;通过将复杂的应用程序分解为一系列小型、独立的服务&#xff0c;显著提升了系统的灵活性、可扩展性和维护性。本文将通过解析微服务系统…

排序排序的概念及其运用和选择排序

排序排序的概念及其运用和选择排序 7. 排序7.1 排序的概念及其运用7.2 选择排序算法——直接选择排序选择排序基本思想&#xff1a;直接选择排序选择排序原理参考程序 如何交换数据直接选择排序的特性总结&#xff1a; 7. 排序 7.1 排序的概念及其运用 排序&#xff1a;所谓排…

Websocket如何分块处理数据量超大的消息体

若我们服务端一次性最大处理的字节数是1M,而客户端发来了2M的数据&#xff0c;此时服务端的数据就要被切割成两次传输解码。Http协议中有分块传输&#xff0c;而在Websocket也可以分块处理超大的消息体。在jsr356标准中使用javax.websocket.MessageHandler.Partial可以分块处理…

【澜舟科技-注册/登录安全分析报告】

前言 由于网站注册入口容易被机器执行自动化程序攻击&#xff0c;存在如下风险&#xff1a; 暴力破解密码&#xff0c;造成用户信息泄露&#xff0c;不符合国家等级保护的要求。短信盗刷带来的拒绝服务风险 &#xff0c;造成用户无法登陆、注册&#xff0c;大量收到垃圾短信的…

uni-app快速入门(十)--常用内置组件(下)

本文介绍uni-app的textarea多行文本框组件、web-view组件、image图片组件、switch开关组件、audio音频组件、video视频组件。 一、textarea多行文本框组件 textarea组件在HTML 中相信大家非常熟悉&#xff0c;组件的官方介绍见&#xff1a; textarea | uni-app官网uni-app,un…