java入门基础笔记语法篇(3)
一、 注释
什么是注释
- 注释定义:注释是写在程序中对代码进行解释说明的文字,方便自己和他人查看以理解程序。
Java注释的三种写法:
- 单行注释:以“//”开头,注释内容只能写一行。
- 多行注释:以“/*”开头,“*/”结尾,中间可有多行注释内容。
- 文档注释:以“/**”开头,“*/”结尾,通常用在类和方法上方。 并给出了包含三种注释写法的代码示例。
/*** 这是一个文档注释,通常用在类和方法上方*/
public class HelloWorld {public static void main(String[] args) {// 这是一个单行注释,有效范围是从//开始到当前行结尾System.out.println("HelloWorld");/*这是一个多行注释*/System.out.println("HelloWorld");}
}
注释的特点
注释只在代码编写阶段起作用,编译后的.class文件中没有注释,注释不会影响程序执行。
二、第一个 Java 程序
1.创建 Java 源文件
创建一个新的文件,命名为 HelloWorld.java。文件名必须与类名相同,并且后缀名为 .java。
2.编写代码
在 HelloWorld.java 中输入以下代码:
// 这是一个 Java 类,类名必须与文件名相同
public class HelloWorld {// 这是主方法,程序的入口点public static void main(String[] args) {// 这行代码会在控制台输出 "Hello, World!"System.out.println("Hello, World!");}
}
掌握java中输出常见字面量程序
//定义一个名为 LiteralOutputExample 的公共类,
//在 Java 中,一个 Java 文件中可以有多个类,但只能有一个公共类,且该公共类的名称必须与文件名相同。
//这里我们将通过这个类来演示 Java 中各种常见字面量的使用和输出。
public class LiteralOutputExample {/*** 程序的入口方法,Java 虚拟机(JVM)在运行 Java 程序时会从这个方法开始执行。* 该方法是静态方法(static),意味着它属于类本身,而不是类的某个实例对象,* 这样 JVM 可以直接调用而无需创建类的实例。* 参数 args 是一个字符串数组,用于接收从命令行传递给程序的参数。*/public static void main(String[] args) {// --------------- 整数字面量 ---------------// 整数字面量表示整数数值,在 Java 中有多种表示形式。// 十进制整数,这是最常见的整数表示方式,直接书写数字即可。// 这里定义了一个 int 类型的变量 integerLiteral1,并将十进制整数 100 赋值给它。int integerLiteral1 = 100;// 负的十进制整数,在数字前加上负号表示负数。// 定义 int 类型变量 integerLiteral2,并赋值为 -20。int integerLiteral2 = -20;// 使用 System.out.println 方法输出提示信息,表明下面要输出整数字面量。System.out.println("整数字面量:");// 输出十进制整数 integerLiteral1 的值。System.out.println("十进制: " + integerLiteral1);// 输出负的十进制整数 integerLiteral2 的值。System.out.println("负数: " + integerLiteral2);// 八进制整数,以 0 开头,后面跟由 0 - 7 组成的数字序列。// 这里的 012 是八进制表示,转换为十进制是 1 * 8 + 2 = 10。int octalLiteral = 012;// 输出八进制整数转换为十进制后的结果。System.out.println("八进制: " + octalLiteral);// 十六进制整数,以 0x 或 0X 开头,后面可以跟 0 - 9、a - f 或 A - F 组成的数字序列。// 这里的 0x1F 转换为十进制是 1 * 16 + 15 = 31。int hexLiteral = 0x1F;// 输出十六进制整数转换为十进制后的结果。System.out.println("十六进制: " + hexLiteral);// 二进制整数,以 0b 或 0B 开头,后面跟由 0 和 1 组成的数字序列。// 这里的 0b1010 转换为十进制是 1 * 2^3 + 0 * 2^2 + 1 * 2^1 + 0 * 2^0 = 10。int binaryLiteral = 0b1010;// 输出二进制整数转换为十进制后的结果。System.out.println("二进制: " + binaryLiteral);// --------------- 浮点数字面量 ---------------// 浮点数字面量用于表示小数数值,在 Java 中有单精度和双精度之分。// 双精度浮点数字面量,默认情况下,Java 中的小数常量就是 double 类型。// 这里定义了一个 double 类型的变量 doubleLiteral,并赋值为 3.14。double doubleLiteral = 3.14;// 单精度浮点数字面量,需要在数字后面加上 f 或 F 来明确表示这是一个 float 类型的常量。// 定义 float 类型变量 floatLiteral,并赋值为 2.718f。float floatLiteral = 2.718f;// 输出提示信息,表明下面要输出浮点数字面量。System.out.println("\n浮点数字面量:");// 输出双精度浮点数字面量的值。System.out.println("双精度: " + doubleLiteral);// 输出单精度浮点数字面量的值。System.out.println("单精度: " + floatLiteral);// --------------- 字符字面量 ---------------// 字符字面量表示单个字符,用单引号括起来。// 普通英文字符的字符字面量,这里定义了一个 char 类型的变量 charLiteral1,并赋值为字符 'A'。char charLiteral1 = 'A';// 中文字符的字符字面量,同样用单引号括起来,定义 char 类型变量 charLiteral2 并赋值为 '中'。char charLiteral2 = '中';// 转义字符,用于表示一些特殊的字符,如换行符、制表符等。// 这里的 '\n' 表示换行符,定义 char 类型变量 charLiteral3 并赋值为 '\n'。char charLiteral3 = '\n';// 输出提示信息,表明下面要输出字符字面量。System.out.println("\n字符字面量:");// 输出普通英文字符字面量的值。System.out.println("普通字符: " + charLiteral1);// 输出中文字符字面量的值。System.out.println("中文字符: " + charLiteral2);// 先输出提示信息,表明要演示换行转义字符。System.out.print("转义字符(换行): ");// 输出包含换行符的字符串,实现换行效果。System.out.print("这是换行前的内容" + charLiteral3);// 输出换行后的内容。System.out.println("这是换行后的内容");// --------------- 字符串字面量 ---------------// 字符串字面量表示由零个或多个字符组成的序列,用双引号括起来。// 普通的字符串字面量,定义一个 String 类型的变量 stringLiteral1,并赋值为 "Hello, World!"。String stringLiteral1 = "Hello, World!";// 空字符串字面量,即不包含任何字符的字符串,定义 String 类型变量 stringLiteral2 并赋值为空字符串。String stringLiteral2 = "";// 输出提示信息,表明下面要输出字符串字面量。System.out.println("\n字符串字面量:");// 输出普通字符串字面量的值。System.out.println("普通字符串: " + stringLiteral1);// 调用 String 类的 length() 方法获取空字符串的长度,结果为 0,并输出该长度。System.out.println("空字符串长度: " + stringLiteral2.length());// --------------- 布尔字面量 ---------------// 布尔字面量只有两个值:true 和 false,用于表示逻辑上的真和假。// 定义一个 boolean 类型的变量 trueLiteral,并赋值为 true,表示逻辑真。boolean trueLiteral = true;// 定义一个 boolean 类型的变量 falseLiteral,并赋值为 false,表示逻辑假。boolean falseLiteral = false;// 输出提示信息,表明下面要输出布尔字面量。System.out.println("\n布尔字面量:");// 输出布尔字面量 true 的值。System.out.println("真: " + trueLiteral);// 输出布尔字面量 false 的值。System.out.println("假: " + falseLiteral);// --------------- 空字面量 ---------------// 空字面量只有一个值:null,表示对象引用不指向任何对象。// 定义一个 Object 类型的变量 nullLiteral,并赋值为 null。// Object 是 Java 中所有类的基类,可以用来引用任何类型的对象。Object nullLiteral = null;// 输出提示信息,表明下面要输出空字面量。System.out.println("\n空字面量:");// 输出空字面量的值,会显示为 null。System.out.println("空对象引用: " + nullLiteral);}
}
输出结果:
整数字面量:
十进制: 100
负数: -20
八进制: 10
十六进制: 31
二进制: 10浮点数字面量:
双精度: 3.14
单精度: 2.718字符字面量:
普通字符: A
中文字符: 中
转义字符(换行): 这是换行前的内容
这是换行后的内容字符串字面量:
普通字符串: Hello, World!
空字符串长度: 0布尔字面量:
真: true
假: false空字面量:
空对象引用: null
字面量:字面量是程序中能直接书写的数据,Java 程序中数据的书写格式。
| 常用数据 | 生活中的写法 | 程序中该怎么写 | 说明 |
| 整数 | 666,-88 | 666,-88 | 写法一致 |
| 小数 | 13.14,-5.21 | 13.14,-5.21 | 写法一致 |
| 字符 | A,0,我 | 'A' ,'0' ,'我' | 程序中必须使用单引号,有且仅能一个字符 |
| 字符串 | helloworld | "helloworld" | 程序中必须使用双引号,内容可有可无 |
| 布尔值 | 真、假 | true、false | 只有两个值:true:代表真,false:代表假 |
| 空值 | - | 值是:null | 一个特殊的值,空值(后面会讲解作用,暂时不管) |
| 特殊字符字面量 | - | \t \n |
三、数据类型
java是一种强类型语言。这就意味着必须为每个变量声明一种类型,在java中,一共有8种基本类型(primitive type),其中有4种整型、2种浮点类型,1种用于表示Unicode编码的字符单元的字符类型char,和一种用于表示真值的boolean类型。
整型
| 类型 | 存储需求 | 取值范围 |
| int | 4字节 | -2147483648 ~ 2147483647(正好超过 20 亿) |
| short | 2 字节 | -32768 ~ 32767 |
| long | 8 字节 | -9223372036854775808 ~ 9223372036854775807 |
| byte | 1 字节 | -128 ~ 127 |
在Java中,整型的范围与运行Java代码的机器无关。与此相反,C和C++程序需要针对不同的处理器选择最为高效的整型,这样就有可能造成一个在32位处理器上运行很好的C程序在16位系统上运行却发生整数溢出。由于Java程序必须保证在所有机器上都能够得到相同的运行结果,所以各种数据类型的取值范围必须固定。
代码示例:
public class DataTypeExample {public static void main(String[] args) {// 定义byte类型变量byte b = 10;// 定义short类型变量short s = 100;// 定义int类型变量int i = 1000;// 定义long类型变量,需要在数字后面加上L或llong l = 10000000000L;System.out.println("byte类型变量b的值是:" + b);System.out.println("short类型变量s的值是:" + s);System.out.println("int类型变量i的值是:" + i);System.out.println("long类型变量l的值是:" + l);}
}
浮点类型
| 类型 | 存储需求 | 取值范围 |
| float | 4字节 | 大约 ±3.402 823 47E+38F(有效位数为 6 - 7 位) |
| double | 8 字节 | 大约 ±1.797 693 134 862 315 70E+308(有效位数为 15 位) |
代码示例:
public class DataTypeExample {public static void main(String[] args) {// 定义float类型变量,需要在数字后面加上F或ffloat f = 3.14f;// 定义double类型变量double d = 3.141592653589793;System.out.println("float类型变量f的值是:" + f);System.out.println("double类型变量d的值是:" + d);}
}
- double表示这种类型的数值精度是float类型的两倍(有人称之为双精度数值)。
- 绝大部分应用程序都采用double类型。
- 实际上,只有很少的情况适合使用float类型。
float类型的数值有一个后缀F或f(例如,3.14F)。没有后缀F的浮点数值(如3.14)默认为double类型。当然,也可以在浮点数值后面添加后缀D或d(例如,3.14D)。
char类型
char 类型:在 Java 中,char 类型用于表示单个字符,它在内存中占用 16 位(2 个字节),采用的是 Unicode 编码。这意味着 char 类型可以直接表示一个 Unicode 字符。
char类型原本用于表示单个字符。不过,现在情况已经有所变化。如今,有些 Unicode字符可以用一个char值描述,另外一些Unicode字符则需要两个char值。
Unicode:Unicode 是一种字符编码标准,它为世界上几乎所有的字符都分配了一个唯一的编号(码点),其目的是为了统一地表示和处理各种语言的文字。码点通常用十六进制表示,例如,字符 'A' 的 Unicode 码点是 U+0041。在 Java 中,可以通过转义序列 \u 后跟四位十六进制数来表示一个 Unicode 字符。例如:
char c = '\u0041';
System.out.println(c);
上述代码同样将字符 'A' 赋值给 char 变量 c,这里使用了 Unicode 转义序列。
- UTF-16编码采用不同长度的编码表示所有Unicode码点。
- 在基本的多语言级别中, 每个字符用16位表示,通常被称为代码单元(code unit);而辅助字符采用一对连续的代码单元进行编码。
- 这样构成的编码值落入基本的多语言级别中空闲的2048 字节内,通常被称为替代区域(surrogate area)[U+D800~U+DBFF用于第一个代码单元,U+DC00~U+DFFF用于第二个代码单元]。
- 在Java中,char类型描述了UTF-16编码中的一个代码单元。
- 我们强烈建议不要在程序中使用char类型,除非确实需要处理UTF-16代码单元。最好将字符串作为抽象数据类型处理。
boolean类型
public class DataTypeExample {public static void main(String[] args) {// 定义boolean类型变量boolean b = true;System.out.println("boolean类型变量b的值是:" + b);}
}
相关文章:
java入门基础笔记语法篇(3)
一、 注释 什么是注释 注释定义:注释是写在程序中对代码进行解释说明的文字,方便自己和他人查看以理解程序。 Java注释的三种写法: 单行注释:以“//”开头,注释内容只能写一行。多行注释:以“/*”开头&…...
【数据结构】深入解析:构建父子节点树形数据结构并返回前端
树形数据结构列表 一、前言二、测试数据生成三、树形代码3.1、获取根节点3.2、遍历根节点,递归获取所有子节点3.3、排序3.4、完整代码 一、前言 返回前端VO对象中,有列情况列表展示需要带树形结构,例如基于RBAC权限模型中的菜单返回…...
JAVA 使用反射比较对象属性的变化,记录修改日志。使用注解【策略模式】,来进行不同属性枚举值到中英文描述的切换,支持前端国际化。
1.首先定义一个接口,接口中有两个方法,分别是将属性转换成英文描述和中文描述。 其实就是将数据库中记录的 0 1 ,转换成后面的描述 这边定义了中文转换为默认方法,是因为有些属性不需要进行中文转换,或者该属性的枚举…...
第27章 测试驱动开发模式:深入测试技术
写在前面 这本书是我们老板推荐过的,我在《价值心法》的推荐书单里也看到了它。用了一段时间 Cursor 软件后,我突然思考,对于测试开发工程师来说,什么才更有价值呢?如何让 AI 工具更好地辅助自己写代码,或许…...
基于模糊PID的孵化箱温度控制系统(论文+源码)
1系统方案设计 本课题为基于模糊PID的孵化箱温度控制系统,其以STM32最小系统与模糊PID控制器为控制核心。系统主要包括数据采集模块、处理器模块、电机控制模块。 数据采集模块由温度传感器构成,通过温度传感器感应温度变化,获得待处理的数据…...
机器学习-数据集划分
文章目录 一. 为什么要划分数据集二. 数据集划分的方法1. 留出法:2. 交叉验证:将数据集划分为训练集,验证集,测试集3. 留一法:4. 自助法: 一. 为什么要划分数据集 为了能够评估模型的泛化能力,可…...
C++ 可变函数和参数
写一个函数,函数的参数是函数对象及参数,功能和thread类的构造函数相同。 代码示例: #include <iostream>#include <thread>#include <functional> using namespace std;void show0() { // 普通函数。cout <&…...
Hive之加载csv格式数据到hive
场景: 今天接了一个需求,将测试环境的hive数据导入到正式环境中。但是不需要整个流程的迁移,只需要迁移ads表 解决方案: 拿到这个需求首先想到两个方案: 1、将数据通过insert into语句导出,然后运行脚本 …...
C# OpenCV机器视觉:利用CNN实现快速模板匹配
在一个阳光灿烂的周末,阿强正瘫在沙发上,百无聊赖地换着电视频道。突然,一则新闻吸引了他的注意:某博物馆里一幅珍贵的古画离奇失踪,警方怀疑是被一伙狡猾的盗贼偷走了,现场只留下一些模糊不清的监控画面&a…...
【MCAL实战】MCU模块配置实践
目录 前言 正文 1.硬件分析 1.1 MCU系统模式分析 1.2MCU晶振使用分析 2.MCU通用配置 2.1 McuGeneralConfiguration 2.2 McuModuleConfiguration 2.3 McuResetSettingConf 2.4 McuTrapSettingConf 2.4 其他 3.MCU模式配置 3.1 McuModeSettingConf_0 3.2 McuModeSe…...
Vue3笔记——(三)hooks、路由
015 hooks 作用:使得代码更加模块化和可维护 Person.vue <template><div><h2>当前求和{{ sum }}</h2><button click"addFn">点我sum1</button></div> </template> <script setup lang"ts"…...
WinRAR.exe命令行的使用
工具 命令行打包命令 rem 默认压缩根目录,递归处理子文件夹使用 -r WinRAR.exe a -r test.rar C:/web/Views/...
【fly-iot飞凡物联】(20):2025年总体规划,把物联网整套技术方案和实现并落地,完成项目开发和课程录制。
前言 fly-iot飞凡物联专栏: https://blog.csdn.net/freewebsys/category_12219758.html 1,开源项目地址进行项目开发 https://gitee.com/fly-iot/fly-iot-platform 完成项目开发,接口开发。 把相关内容总结成文档,并录制课程。…...
Effective C++ 规则51:编写 new 和 delete 时需固守常规
1、背景 在 C 中,如果你需要为类自定义 new 和 delete,必须遵循一些约定和规则,以确保内存管理的一致性、可维护性和安全性。当我们使用 new 和 delete 操作时,C 编译器会: 调用全局或类特定的 operator new 来分配内…...
【更正版】梯级水光互补系统最大化可消纳电量期望短期优化调度模型
目录 1 主要内容 目标函数: 约束条件: 线性化处理: 流程示意: 2 部分代码 3 程序结果 4 下载链接 1 主要内容 该程序参考文献《梯级水光互补系统最大化可消纳电量期望短期优化调度模型》,构建了以最大化整体可…...
移动端VR处理器和传统显卡的不同
骁龙 XR 系列芯片 更多地依赖 AI 技术 来优化渲染过程,而传统的 GPU 渲染 则倾向于在低画质下运行以减少负载。这种设计是为了在有限的硬件资源下(如移动端 XR 设备)实现高性能和低功耗的平衡。以下是具体的分析: 1. AI 驱动的渲染…...
基于回归分析法的光伏发电系统最大功率计算simulink建模与仿真
目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 5.完整工程文件 1.课题概述 基于回归分析法的光伏发电系统最大功率计算simulink建模与仿真。选择回归法进行最大功率点的追踪,使用光强和温度作为影响因素,电压作为输出进行建模。…...
JVM深入学习(一)
目录 一.JVM概述 1.1 为什么要学jvm? 1.2 jvm的作用 1.3 jvm内部构造 二.JVM类加载 2.1类加载过程 2.2类加载器 2.3类加载器的分类 2.4双亲委派机制 三.运行时数据区 堆空间区域划分(堆) 为什么分区(代)?(…...
【精选】基于数据挖掘的招聘信息分析与市场需求预测系统 职位分析、求职者趋势分析 职位匹配、人才趋势、市场需求分析数据挖掘技术 职位需求分析、人才市场趋势预测
博主介绍: ✌我是阿龙,一名专注于Java技术领域的程序员,全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师,我在计算机毕业设计开发方面积累了丰富的经验。同时,我也是掘金、华为云、阿里云、InfoQ等平台…...
视觉语言模型 (VLMs):跨模态智能的探索
文章目录 一. VLMs 的重要性与挑战:连接视觉与语言的桥梁 🌉二. VLMs 的核心训练范式:四种主流策略 🗺️1. 对比训练 (Contrastive Training):拉近正例,推远负例 ⚖️2. 掩码方法 (Masking):重构…...
kafka消费者详细介绍(超级详细)
文章目录 一、Kafka 消费者与消费者组1.1 Kafka 消费者(Consumer)概述1.1.1 消费者工作流程1.1.2 消费者的关键配置 1.2 Kafka 消费者组(Consumer Group)概述1.2.1 消费者组的工作原理1.2.2 消费者组的优点1.2.3 消费者组的再均衡…...
CF 339A.Helpful Maths(Java实现)
题目分析 输入一串式子,输出从小到大排列的式子 思路分析 如上所说核心思路,但是我要使用笨方法,输入一串式子用split分割开,但是此时需要用到转义字符,即函数内参数不能直接使用“”,而是“\\”。分割开后…...
web前端3--css
注意(本文一切代码一律是在vscode中书写) 1、书写位置 1、行内样式 //<标签名 style"样式声明"> <p style"color: red;">666</p> 2、内嵌样式 1、style标签 里面写css代码 css与html之间分离 2、css属性:值…...
Java Web-Request与Response
在 Java Web 开发中,Request 和 Response 是两个非常重要的对象,用于在客户端和服务器之间进行请求和响应的处理,以下是详细介绍: Request(请求对象) Request继承体系 在 Java Web 开发中,通…...
Spring AOP通知类型全解析:掌握方法执行前后的艺术
Spring的通知(Advice)类型主要有以下几种,它们都是在方法执行的不同阶段进行拦截和处理的一种机制: 1. 前置通知(Before Advice):在目标方法执行之前执行的通知。就像你吃饭前要先洗手一样&…...
(一)HTTP协议 :请求与响应
前言 爬虫需要基础知识,HTTP协议只是个开始,除此之外还有很多,我们慢慢来记录。 今天的HTTP协议,会有助于我们更好的了解网络。 一、什么是HTTP协议 (1)定义 HTTP(超文本传输协议ÿ…...
未初始化数据恢复全攻略
没有初始化概述 在日常使用电脑、硬盘、U盘等存储设备时,我们可能会遇到“没有初始化”的提示。这一情况通常发生在存储设备突然无法被系统正常识别或访问时,系统往往要求我们先进行初始化操作。然而,初始化操作意味着对存储设备进行格式化&…...
学习数据结构(1)算法复杂度
1.数据结构和算法 (1)数据结构是计算机存储、组织数据的方式,指相互之间存在⼀种或多种特定关系的数据元素的集合 (2)算法就是定义良好的计算过程,取一个或一组的值为输入,并产生出一个或一组…...
Github 2025-01-25Rust开源项目日报Top10
根据Github Trendings的统计,今日(2025-01-25统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Rust项目10Python项目1Vue项目1JavaScript项目1Deno: 现代JavaScript和TypeScript运行时 创建周期:2118 天开发语言:Rust, JavaScript协议类型…...
免费GPU算力,不花钱部署DeepSeek-R1
在人工智能和大模型技术飞速发展的今天,越来越多的开发者和研究者希望能够亲自体验和微调大模型,以便更好地理解和应用这些先进的技术。然而,高昂的GPU算力成本往往成为了阻碍大家探索的瓶颈。幸运的是,腾讯云Cloud Studio提供了免…...
