【一. Java基础:注释、变量与数据类型详解】
1. Java 基础概念
1.1 注释
-
注释:对代码的解释和说明文字
-
java的三种注释:
-
单行注释:两个斜杠 // 后面跟着你的注释内容
//哈哈
-
多行注释:以 /* 开头,以 */ 结尾,中间可以写很多行
/*哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈*/
注意:多行注释不能嵌套使用
-
文档注释:以 /** 开头,以 */ 结尾,中间可以写多行
/**哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈*/
-
1.2 关键字
-
介绍:Java 关键字是被 Java 语言赋予特定含义的英文单词。当你在代码中使用这些关键字时,Java 编译器或运行时系统就知道你想要执行什么操作
-
关键字
-
数据类型与变量的关键字:
boolean
,byte
,char
,short
,int
,long
,float
,double
,class
,interface
,enum
,void
,public
,private
,protected
,static
,final
,abstract
,transient
,volatile
-
流程控制的关键字:
if
,else
,switch
,case
,default
,for
,while
,do
,break
,continue
,return
-
异常处理的关键字:
try
,catch
,finally
,throw
,throws
-
包与导入的关键字:
package
,import
-
其他关键字:
new
,this
,super
,instanceof
,synchronized
,native
,strictfp
,assert
-
1.2.1 class
关键字
-
介绍:
class
是 Java 中最基础的关键字之一 -
作用:用于定义一个类( Java 项目的基本组成单元,一个完整的 Java 项目可能由成千上万的类组成;类比作 “模板”,可以创建多个对象实例)
-
语法
[访问修饰符] class 类名 {// 类的内容}
-
例子
public class HelloWorld {// 类的内容}
解释:
public
:访问修饰符,表示该类可以被其他类访问class
:定义类的关键字HelloWorld
:类名,遵循大驼峰命名法(单词第一个字母大写){}
:类的范围,包含类的所有成员
注意:
Java 关键字都是小写的
变量名、方法名、类名等标识符不能使用关键字
1.3 字面量
-
介绍:数据在写程序时的书写格式
-
字面量的类型:
-
整数:整数就是不带小数的数字。在程序里直接写数字就行,比如 666 ,-88
-
小数:小数就是带小数点的数字。在程序里直接写数字就行,比如 13.14,-5.21
-
字符:用单引号把字符括起来,而且里面只能有一个字符。比如 ‘A’,‘0’, ‘我’
-
字符串:用双引号引起来,它里面的内容可以有,也可以没有。比如“HelloWorld”,“ ”
-
布尔值:布尔值就两个,用来表示真假,分别是 true 和 false
-
空值:它只有一个值,就是 null
-
1.4 变量
-
介绍:在程序中临时存储数据的容器,但是这个容器中只能存一个值
-
格式:数据类型 变量名 = 数据值;
-
例子:
int age = 18; // 定义整数变量age,存的值是18 double score = 95.5; // 定义小数变量score,存的值是95.5
格式详解:
数据类型:int -->整数;double–>小数
变量名:age,score
数据值:18,95.5
分号:相当于句子的句号,结束语句
注意:
变量名不能重复
一条语句可以定义多个变量,但尽量分开定义变量
变量使用前必须赋值
1.5 数据类型
-
两大类
-
基本数据类型
-
引用数据类型
-
1.5.1 基本数据类型
分类 | 数据类型 | 关键字 | 内存占用(字节) | 取值范围 | 备注 |
---|---|---|---|---|---|
整数 | byte | byte | 1 | -128 ~ 127 | 适合小范围整数,如年龄、数量 |
short | short | 2 | -32768 ~ 32767 | 较少用,早期内存紧张时使用 | |
int | int | 3 | -2147483648 ~ 2147483647 | 默认整数类型,日常最常用 | |
long | long | 8 | -9223372036854775808 ~ 9223372036854775807 | 需加L后缀(如100L) | |
浮点数 | float | float | 4 | 1.401298e-45 ~ 3.402823e+38 | 需加F后缀(如3.14F),精度较低 |
double | double | 8 | 4.9000000e-324 ~ 1.797693e+308 | 默认浮点数类型,精度高 | |
字符 | char | char | 2 | 0 ~ 65535 | 用单引号包裹(如’A’、‘中’) |
布尔 | boolean | boolean | 1 | true / false | 表示逻辑判断结果 |
注意:
取值范围大小:double > float > long > int > short > byte
默认类型:整数默认是
int
(如10
是int
);浮点数默认是double
(如3.14
是double
)特殊后缀:
long
类型需加L
(如10000000000L
);float
类型需加F
(如1.23F
)
public class DataTypeExample {public static void main(String[] args) {// 整数类型byte age = 25;short classSize = 30;int population = 1400000000;long distance = 9460730472580800L; // 一光年(米)// 浮点数类型float pi = 3.14F;double salary = 12345.6789;// 字符类型char grade = 'A';char symbol = '©'; // 直接使用字符或'\u00A9'// 布尔类型boolean isJavaFun = true;boolean hasPet = false;// 打印变量值System.out.println("Byte: " + age);System.out.println("Short: " + classSize);System.out.println("Int: " + population);System.out.println("Long: " + distance);System.out.println("Float: " + pi);System.out.println("Double: " + salary);System.out.println("Char: " + grade + " " + symbol);System.out.println("Boolean: " + isJavaFun + ", " + hasPet);}}
1.6 标识符
- 介绍:在编程语言里为元素命名时所使用的符号,其作用是对不同的元素加以区分。在 Java 中,类名、变量名以及方法名等都属于标识符
1.6.1 标识符的构成要素
标识符的构成:
-
可以使用字母(大小写)、数字、下划线(_)以及美元符号($)来组成标识符
-
数字不可以作为标识符的开头
-
不能把 Java 的关键字当作标识符,例如
public
、class
、int
等都不可以 -
标识符是区分大小写的,像
age
和Age
就代表着不同的标识符
正确标识符:
userName
、_temp
、$count
错误标识符:
123name
(以数字开头)、class
(是关键字)、my-name
(包含连字符,不符合构成规则)
1.6.2 标识符的命名规范
-
小驼峰命名法:
-
适用于变量名和方法名
-
若标识符由单个单词组成,那么全部字母小写,例如
age
-
要是由多个单词构成,从第二个单词开始,每个单词的首字母大写,例如
firstName
、getUserInfo()
-
-
大驼峰命名法:
-
用于类名
-
当标识符是单个单词时,首字母要大写,例如
Person
、Demo
-
由多个单词组成时,每个单词的首字母都要大写,例如
HelloWorld
、HttpRequest
-
1.6.3 阿里巴巴命名规范的细节
-
避免使用拼音:一般情况下不要使用拼音来命名,除非是国际通用的拼音,比如
alibaba
、hangzhou
错误的命名示例:
jiage
(价格)、dazhe
(打折)正确的命名示例:price
、discount
-
禁止使用特殊符号:要避免使用下划线(_)和美元符号($)
错误的命名:
_name
、$value
正确的命名:name
、value
1.6.4 命名的核心准则
-
见名知意:所起的标识符名称要能够清晰地表达其用途,例如
userAge
要比a
好,calculateSalary()
要比doSomething()
更合适 -
保持简洁:命名时要避免使用过于冗长或者复杂的名称,像
getUserInformation
就比getTheInformationOfTheUser
更简洁明了
1.7 键盘录入
-
介绍:当我们编写 Java 程序时,经常需要从键盘获取用户输入的数据,比如让用户输入年龄、姓名、选择菜单等。Java 已经帮我们实现了这个功能,它把相关功能放在了
Scanner
类中,我们直接使用这个类就行,不用自己从头编写获取键盘输入的代码 -
步骤:
-
导包:找到Scanner这个类
import java.util.Scanner;
-
创建对象:申明一下,我准备开始用Scanner这个类了
Scanner sc = new Scanner(System.in);
-
Scanner
是类的名字,就像书的书名 -
sc
是我们给这个对象起的名字,不过一般习惯用sc
或者input
-
new Scanner(System.in)
就像是去图书馆借书的动作,System.in
表示从键盘输入
-
-
接收数据:真正干活的代码
-
要获取一个整数
int i = sc.nextInt();
sc.nextInt()
表示从键盘读取一个整数。int i = ...
表示把读取到的整数存到变量i
里
-
要获取一个小数
double d = sc.nextDouble();
-
要获取一行文本
String s = sc.nextLine();
-
-
注意:如果先用了
nextInt()
或者nextDouble()
,再用nextLine()
,可能会出现问题比如:int age = sc.nextInt(); // 输入一个整数,比如20 String name = sc.nextLine(); // 这里会直接跳过输入,为什么呢?
解释:这是因为
nextInt()
只读取数字,而键盘输入的回车符还在那里,nextLine()
会读取这个回车符,所以就好像跳过了输入。解决办法是在nextInt()
后面加一个nextLine()
来吃掉那个回车符改正:int age = sc.nextInt(); sc.nextLine(); // 吃掉回车符 String name = sc.nextLine(); // 现在可以正常输入姓名了
- 完整例子:
// 第一步:导包,告诉Java程序Scanner类在哪里import java.util.Scanner;public class ScannerDemo {public static void main(String[] args) {// 第二步:创建对象,申明我准备用Scanner类了Scanner sc = new Scanner(System.in);// 提示用户输入System.out.println("请输入一个数字:");// 第三步:接收数据,把键盘输入的整数存到变量i里int i = sc.nextInt();// 打印接收到的数据System.out.println("你输入的数字是:" + i);// 用完Scanner后,建议关闭它sc.close();}}
相关文章:
【一. Java基础:注释、变量与数据类型详解】
1. Java 基础概念 1.1 注释 注释:对代码的解释和说明文字 java的三种注释: 单行注释:两个斜杠 // 后面跟着你的注释内容 //哈哈多行注释:以 /* 开头,以 */ 结尾,中间可以写很多行 /*哈哈哈哈哈哈…...

得力DE-620K针式打印机打印速度不能调节维修一例
基本参数: 产品类型 票据针式打印机(平推式) 打印方式 串行点阵击打式 打印宽度 85列 打印针数 24针 可靠性 4亿次/针 色带性能 1000万字符纠错 复写能力 7份(1份原件+6份拷贝) 缓冲区 128KB 接口类型 …...
SAP在金属行业的数字化转型:无锡哲讯科技的智能解决方案
金属行业面临的发展挑战 金属行业作为制造业的基础支柱,涵盖钢铁、有色金属、金属制品等多个细分领域。当前行业正面临原材料价格波动、能耗双控政策、市场竞争加剧等多重压力。数字化转型已成为金属企业提升生产效率、优化供应链、实现绿色可持续发展的必由之路。…...
安装openresty使用nginx+lua,openresty使用jwt解密
yum install -y epel-release yum update yum search openresty # 查看是否有可用包 yum install -y openresty启动systemctl start openresty验证服务状态systemctl status openresty设置开机自启systemctl enable openrestysystemctl stop openresty # 停止服务 system…...

java基础(继承)
什么是继承 继承好处 提高代码的复用性 继承注意事项 权限修饰符 单继承、Object类 冲突: 方法重写 扩展: 其实我们不想看地址,地址看来没用,我们是用来看对象有没有问题 重写toString: 比如这个如果返回的是地址值,…...
python 实现一个完整的基于Python的多视角三维重建系统,包含特征提取与匹配、相机位姿估计、三维重建、优化和可视化等功能
多视角三维重建系统 下面我将实现一个完整的基于Python的多视角三维重建系统,包含特征提取与匹配、相机位姿估计、三维重建、优化和可视化等功能。 1. 环境准备与数据加载 首先安装必要的库: pip install opencv-python opencv-contrib-python numpy…...
行列式中某一行的元素与另一行对应元素的代数余子式乘积之和等于零
问题陈述 为什么行列式中某一行(列)的元素与另一行(列)对应元素的代数余子式乘积之和等于零?即: ∑ k 1 n a i k C j k 0 ( i ≠ j ) \sum_{k1}^{n} a_{ik} C_{jk} 0 \quad (i \ne j) k1∑naikCjk…...
【时时三省】Python 语言----字符串,列表,元组,字典常用操作异同点
目录 1,字符串常用操作 1,创建 2,访问 3,常用方法 4,内置方法 2,列表 1,创建列表 2,访问列表 3,内置方法 3,元组 1,创建 2,访问 3,内置方法 4,字典 1,创建 2,访问 3,内置方法 5,集合 1,创建 2,访问 3,内置方法 山不在高,有仙则名。水不在深,有龙则…...

基于cornerstone3D的dicom影像浏览器 第二十二章 mpr + vr
系列文章目录 第一章 下载源码 运行cornerstone3D example 第二章 修改示例crosshairs的图像源 第三章 vitevue3cornerstonejs项目创建 第四章 加载本地文件夹中的dicom文件并归档 第五章 dicom文件生成png,显示检查栏,序列栏 第六章 stack viewport 显…...
优启通添加自定义浏览器及EXLOAD使用技巧分享
文章目录 优启通添加自定义浏览器及EXLOAD使用技巧分享🚩问题描述🔧解决方案概述📁自定义软件添加方法汇总🧩快捷方式配置:exload.cfg 用法大全🧷基础用法🗂分类菜单🖥创建桌面快捷方…...

MySQL:游标 cursor 句柄
当我们select * from emp 可以查看所有的数据 这个数据就相当于一个数据表 游标的作用相当于一个索引 一个指针 指向每一个数据 假设说我要取出员工中薪资最高的前五名成员 就要用到limit关键字 但是这样太麻烦了 所以这里用到了游标 游标的声明: declare my…...

二、ZooKeeper 集群部署搭建
作者:IvanCodes 日期:2025年5月24日 专栏:Zookeeper教程 我们这次教程将以 hadoop01 (192.168.121.131), hadoop02 (192.168.121.132), hadoop03 (192.168.121.133) 三台Linux服务器为例,搭建一个ZooKeeper 3.8.4集群。 一、下载…...

<< C程序设计语言第2版 >> 练习1-14 打印输入中各个字符出现频度的直方图
1. 前言 本篇文章是<< C程序设计语言第2版 >> 的第1章的编程练习1-14, 个人觉得还有点意思, 所以写一篇文章来记录下. 希望可以给初学C的同学一点参考. 尤其是自学的同学, 或者觉得以前学得不好, 需要自己补充学习的同学. 和我的很多其它文章一样, 不建议自己还没实…...

黑马点评双拦截器和Threadlocal实现原理
文章目录 双拦截器ThreadLocal实现原理 双拦截器 实现登录状态刷新的原因: 防止用户会话过期:通过动态刷新Token有效期,确保活跃用户不会因固定过期时间而被强制登出 提升用户体验:用户无需频繁重新登录,只要…...

港股IPO市场火爆 没有港卡如何参与港股打新?
据Wind资讯数据统计,今年1月1日至5月20日,港股共有23家企业IPO,较去年同期增加6家;IPO融资规模达600亿港元,较去年同期增长626.54%,IPO融资规模重回全球首位。 港股IPO市场持续火爆,不少朋友没有…...

RESTful API 在前后端交互中的作用与实践
一、RESTful API 概述 RESTful(Representational State Transfer)API 是一种基于 HTTP 协议、面向资源的架构风格,旨在实现前后端的松散耦合和高效通信。它通过定义统一的资源标识、操作方法以及数据传输格式,为前后端提供了一种…...
Jenkins+Docker+Harbor快速部署Spring Boot项目详解
JenkinsDockerHarbor快速部署Spring Boot项目详解 Jenkins、Docker和Harbor是现代DevOps流程中的核心工具,结合使用可以实现自动化构建、测试和部署。下面我将详细介绍如何搭建这个集成环境。 一、各工具的核心作用 Jenkins 自动化CI/CD工具,负责拉取代…...

python打卡训练营打卡记录day35
知识点回顾: 三种不同的模型可视化方法:推荐torchinfo打印summary权重分布可视化进度条功能:手动和自动写法,让打印结果更加美观推理的写法:评估模式 作业:调整模型定义时的超参数,对比下效果 1…...

如何评价OpenRouter这样的大模型API聚合平台?
OpenRouter通过统一接口简化多模型访问与集成的复杂性,实现一站式调用。然而,这种便利性背后暗藏三重挑战:成本控制、服务稳定性、对第三方供应商的强依赖性。 现在AI大模型火得一塌糊涂,新模型层出不穷,各有各的长处。但是对于开发者来说,挨个去对接OpenAI、谷歌、Anthr…...
恢复二叉搜索树:递归与中序遍历的智慧应用
恢复二叉搜索树:递归与中序遍历的智慧应用 二叉搜索树(BST)是一种在算法世界里相当重要的数据结构,它的特性——左子树的节点值小于根节点,而右子树的节点值大于根节点——让它在查找、插入和删除操作上都能高效运行。然而,现实总是充满意外,有时候由于错误的操作或数据…...
从零开始构建一个区块链应用:技术解析与实践指南
区块链技术自比特币诞生以来,已经逐渐从金融领域扩展到更多行业,如供应链管理、物联网、智能合约等。它以其去中心化、不可篡改和透明性等特点,吸引了众多开发者的关注。然而,对于初学者来说,区块链技术的学习曲线可能…...

5.2.4 wpf中MultiBinding的使用方法
在 WPF 中,MultiBinding 允许将多个绑定(Binding)组合成一个逻辑结果,并通过一个转换器(IMultiValueConverter)处理这些值,最终影响目标属性。以下是其核心用法和示例: 核心组件: MultiBinding:定义多个绑定源的集合。 IMultiValueConverter:实现逻…...

技术服务业-首套运营商网络路由5G SA测试专网搭建完成并对外提供服务
为了更好的服务蜂窝无线技术及运营商测试认证相关业务,搭建了技术服务业少有的5G测试专网,可独立灵活配置、完整端到端5G(含RedCap、LAN)的网络架构。 通过走真正运营商网络路由的方式,使终端设备的测试和运营商网络兼…...

仿腾讯会议——音频服务器部分
1、中介者定义处理音频帧函数 2、 中介者实现处理音频帧函数 3、绑定函数映射 4、服务器定义音频处理函数 5、 服务器实现音频处理函数...

大文件上传,对接阿里oss采用前端分片技术。完成对应需求!
最近做了一个大文件分片上传的功能,记录下 1. 首先是安装阿里云 oss 扩展 composer require aliyuncs/oss-sdk-php 去阿里云 oss 获取配置文件 AccessKey ID *** AccessKey Secret *** Bucket名称 *** Endpoint *** 2. 前端上传,对文件进行分片…...

【场景分析】基于概率距离快速削减法的风光场景生成与削减方法
目录 1 主要内容 场景消减步骤 2 部分代码 3 程序结果 1 主要内容 该程序参考文献《含风光水的虚拟电厂与配电公司协调调度模型》场景消减部分模型,程序对风电场景进行生成并采用概率距离方法进行消减,程序先随机生成200个风电出力场景,然…...

【Java Web】3.SpringBootWeb请求响应
📘博客主页:程序员葵安 🫶感谢大家点赞👍🏻收藏⭐评论✍🏻 文章目录 一、请求 1.1 postman 1.2 简单参数 1.3 实体参数 1.4 数组集合参数 1.5 日期参数 1.6 JSON参数 1.7 路径参数 二、响应 2…...

单片机中断系统工作原理及定时器中断应用
文件目录 main.c #include <REGX52.H> #include "TIMER0.H" #include "KEY.H" #include "DELAY.H"//void Timer0_Init() { // TMOD 0x01; // TL0 64536 % 256; // TH0 64536 / 256; // ET0 1; // EA 1; // TR0 1; //}unsigned char…...

LangGraph-agent-天气助手
用于创建agent和多代理工作流 循环(有迭代次数)、可控、持久 安装langgraph包 conda create --name agent python3.12 conda activate agent pip install -U langgraph pip install langchain-openai设置 windows(>结尾) s…...

深度学习——超参数调优
第一部分:什么是超参数?为什么要调优? 一、参数 vs 超参数(Parameter vs Hyperparameter) 类型定义举例是否通过训练自动学习?参数(Parameter)是模型在训练过程中通过反向传播自动…...