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.rhkb.cn/news/474441.html

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

相关文章

鸿蒙原生应用开发元服务 元服务是什么?和App的关系?(保姆级步骤)

元服务是什么&#xff1f;和App的关系&#xff1f; 元服务是是一种HarmonyOS轻量应用形态&#xff0c;用户无需安装即可使用&#xff0c;具备随处可及、服务直达、自由流转的特征。 元服务是可以独立部署和运行的程序实体&#xff0c;独立于应用&#xff0c;不依赖应用可独立…

k8s上部署redis高可用集群

介绍&#xff1a; Redis Cluster通过分片&#xff08;sharding&#xff09;来实现数据的分布式存储&#xff0c;每个master节点都负责一部分数据槽&#xff08;slot&#xff09;。 当一个master节点出现故障时&#xff0c;Redis Cluster能够自动将故障节点的数据槽转移到其他健…

智慧环保平台_大数据平台_综合管理平台_信息化云平台

系统原理   智慧环保是新一代信息技术变革的产物&#xff0c;是信息资源日益成为重要生产要素和信息化向更高阶段发展的表现&#xff0c;是经济社会发展的新引擎。   现今&#xff0c;环保信息化建设进入高速发展阶段。在此轮由物联网掀起的信息浪潮下&#xff0c;环境信息…

《通往人工智能深度学习专家之路:全面解析学习路线图》

《通往人工智能深度学习专家之路&#xff1a;全面解析学习路线图》 一、人工智能深度学习简介1.1 人工智能与深度学习的关系1.2 深度学习的应用领域1.3 深度学习的重要性 二、深度学习路线图总览2.1 学习路线图的结构2.2 各阶段学习目标与重点 三、深度学习基础阶段3.1 数学基础…

Git 分⽀规范 Git Flow 模型

前言 GitFlow 是一种流行的 Git 分支管理策略&#xff0c;由 Vincent Driessen 在 2010 年提出。它提供了一种结构化的方法来管理项目的开发、发布和维护&#xff0c;特别适合大型和复杂的项目。GitFlow 定义了一套明确的分支模型和工作流程&#xff0c;使得团队成员可以更有效…

任务管理功能拆解——如何高效管理项目任务?

在项目管理中&#xff0c;任务管理功能不仅仅是一个操作工具&#xff0c;它是确保项目按时、高效完成的核心所在。无论是小团队还是跨部门合作&#xff0c;任务管理能够帮助项目经理和团队成员清晰地看到每一项任务的执行情况和进度&#xff0c;从而合理调配资源、优化工作流程…

nodejs入门(1):nodejs的前后端分离

一、引言 我关注nodejs还是从前几年做了的一个电力大数据展示系统开始的&#xff0c;当然&#xff0c;我肯定是很多年的计算机基础的&#xff0c;万变不离其宗。 现在web网站都流行所谓的前后端结构&#xff0c;不知不觉我也开始受到这个影响&#xff0c;以前都是前端直接操作…

集群聊天服务器(13)redis环境安装和发布订阅命令

目录 环境安装订阅redis发布-订阅的客户端编程环境配置客户端编程 功能测试 环境安装 sudo apt-get install redis-server 先启动redis服务 /etc/init.d/redis-server start默认在6379端口上 redis是存键值对的&#xff0c;还可以存链表、数组等等复杂数据结构 而且数据是在…

深入解析大带宽服务器:性能优势与选择指南

一、大带宽服务器是什么&#xff1f; 大带宽服务器指的是具备高网络带宽能力的服务器&#xff0c;通常提供1Gbps、10Gbps甚至更高的网络连接能力。与普通带宽服务器相比&#xff0c;大带宽服务器能够在更短时间内传输大量数据&#xff0c;因此常用于高流量、高并发需求的场景&…

关于Qt C++中connect的几种写法

目录 1. 传统的槽函数写法 2. 使用函数指针的connect写法&#xff08;5.0&#xff09; 3. Lambda表达式作为槽函数&#xff08;C11&#xff09; 4.使用QOverload选择重载信号的写法 这connect函数就像是编程世界里的“茴”字&#xff0c;千变万化&#xff0c;各有千秋。咱们…

常见网络厂商设备默认用户名/密码大全

常见网络厂商的默认用户名/密码 01 思科 (Cisco) 设备类型&#xff1a;路由器、交换机、防火墙、无线控制器 默认用户名&#xff1a;cisco 默认密码&#xff1a;cisco 设备类型&#xff1a;网管型交换机 默认用户名&#xff1a;admin 默认密码&#xff1a;admin 02 华…

elasticsearch是如何实现master选举的?

大家好&#xff0c;我是锋哥。今天分享关于【elasticsearch是如何实现master选举的&#xff1f;】面试题。希望对大家有帮助&#xff1b; elasticsearch是如何实现master选举的&#xff1f; 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 在 Elasticsearch 中&…

讯飞、阿里云、腾讯云:Android 语音合成服务对比选择

在 移动端 接入语音合成方面&#xff0c;讯飞和腾讯云等都是优秀的选择&#xff0c;但各有其特点和优势。咱们的需求是需要支持普通话/英语/法语三种语言&#xff0c;以下是对各个平台的详细比较&#xff1a; 一、讯飞语音合成介绍 与语音听写相反&#xff0c;语音合成是将一段…

说说软件工程中的“协程”

在软件工程中&#xff0c;协程&#xff08;coroutine&#xff09;是一种程序运行的方式&#xff0c;可以理解成“协作的线程”或“协作的函数”。以下是对协程的详细解释&#xff1a; 一、协程的基本概念 定义&#xff1a;协程是一组序列化的子过程&#xff0c;用户能像指挥家…

使用 JavaScript 制作 To-Do List

使用 JavaScript 制作 To-Do List 本文记录了使用 HTML、CSS 和 JavaScript 制作一个简单的 To-Do List 网页的全过程&#xff0c;包含功能描述、代码实现以及优化方向。 **&#x1f389;&#x1f389;&#x1f389;欢迎来到我的博客,我是一名自学了2年半前端的大一学生,熟悉的…

HarmonyOs鸿蒙开发实战(16)=>沉浸式效果第一种方案一窗口全屏布局方案

1.沉浸式效果的目的 开发应用沉浸式效果主要指通过调整状态栏、应用界面和导航条的显示效果来减少状态栏导航条等系统界面的突兀感&#xff0c;从而使用户获得最佳的UI体验。 2.窗口全屏布局方案介绍 调整布局系统为全屏布局&#xff0c;界面元素延伸到状态栏和导航条区域实现沉…

【HarmonyOS】鸿蒙系统在租房项目中的项目实战(一)

从今天开始&#xff0c;博主将开设一门新的专栏用来讲解市面上比较热门的技术 “鸿蒙开发”&#xff0c;对于刚接触这项技术的小伙伴在学习鸿蒙开发之前&#xff0c;有必要先了解一下鸿蒙&#xff0c;从你的角度来讲&#xff0c;你认为什么是鸿蒙呢&#xff1f;它出现的意义又是…

基于STM32的智能语音识别饮水机系统设计

功能描述 1、给饮水机设定称呼&#xff0c;喊出称呼&#xff0c;饮水机回答&#xff1a;我在 2、语音进行加热功能&#xff0c;说&#xff1a;请加热&#xff0c;加热片运行 3、饮水机水位检测&#xff0c;低于阈值播报“水量少&#xff0c;请换水” 4、检测饮水机水温&#xf…

Java 使用MyBatis-Plus数据操作关键字冲突报错You have an error in your SQL syntax问题

问题 这个报错是出现在Java Spring boot项目中&#xff0c;使用MyBatis-Plus通过创建的实体类对数据库的操作过程中&#xff0c;通过实体创建数据库表是没有问题的&#xff0c;而在接口调用服务类操作数据库的时候&#xff0c;会出现报错。报错详情如下&#xff1a; 服务请求异…

高效工具推荐:基于WebGPU的Whisper Web结合内网穿透远程使用指南

文章目录 前言1.本地部署Whisper Web1.1 安装git1.2 安装Node.js1.3 运行项目 2. Whisper Web使用介绍3. 安装Cpolar内网穿透4. 配置公网地址5. 公网访问测试6. 配置固定公网地址 前言 OpenAI开源的 Whisper 语音转文本模型效果都说还不错&#xff0c;今天就给大家推荐 GitHub…