当前位置: 首页 > news >正文

一文总结java语法规则

1. 题记

Java是一门拥有较强语法规则的编程语言,本博文主要总结介绍java语言的java语法规则。

2. java语法规则

2.1 标识符(Identifiers)

  1. 定义:标识符是用来给变量、类、方法、接口等命名的字符序列。
  2. 规则:
    –标识符可以由字母(A - Z、a - z)、数字(0 - 9)、美元符号($)和下划线(_)组成。
    –标识符必须以字母、美元符号或下划线开头,不能以数字开头。
    –标识符是大小写敏感的,例如,myVariable和myvariable是两个不同的标识符。
    –不能使用 Java 中的关键字(如class、public、private等)作为标识符,但可以包含关键字作为标识符的一部分,例如,myClass是合法的。
  3. 命名惯例:
    –变量和方法名通常采用小写字母开头的驼峰命名法,例如,myVariable、calculateSum。
    –类名和接口名通常采用大写字母开头的驼峰命名法,例如,MyClass、MyInterface。
    –常量(使用final关键字修饰)通常全部使用大写字母,单词之间用下划线分隔,例如,MAX_VALUE。

2.2 关键字(Keywords)

  1. 定义:关键字是 Java 语言中已经被赋予特定意义的单词,它们用于定义数据类型、控制程序流程、访问修饰符等。
    –数据类型相关:byte、short、int、long、float、double、char、boolean、class、interface、enum。
    –控制流程相关:if、else、switch、case、default、while、do、for、break、continue、return。
    –访问修饰符相关:public、private、protected、default(在包访问权限中)。

2.3 注释(Comments)

  1. 单行注释:以//开头,直到本行结束。例如:// 这是一个单行注释,用于解释下面代码的功能。
  2. 多行注释:以/开头,以/结束,可以跨越多行。例如:
    /*
    这是一个多行注释,
    可以用于详细解释一段代码的功能,
    或者提供版权信息等。
    */
  3. 文档注释(Javadoc):以/开头,以/结束,用于生成 API 文档。例如:
    /
    *
  • 这个方法用于计算两个整数的和。
  • @param a 第一个整数
  • @param b 第二个整数
  • @return 两个整数的和
    */
public int add(int a, int b) {return a + b;
}

2.4. 数据类型和变量声明

  1. 基本数据类型声明:
    –格式为数据类型 变量名;,例如:int age;声明了一个int类型的变量age。也可以在声明变量的同时进行初始化,如int num = 5;
    –对于多个相同类型的变量,可以在一行中声明,如int a, b, c;,也可以分别初始化,如int x = 1, y = 2, z = 3;
  2. 引用数据类型声明:
    以类为例,类名 变量名;,例如Person person;声明了一个Person类的变量person。在使用之前,需要通过new关键字创建对象来进行初始化,如person = new Person(“jack_Ma”, 50);

2.5 运算符(Operators)

  1. 算术运算符:
    –加法(+)、减法(-)、乘法(*)、除法(/)、取余(%):用于基本的数学运算。例如,int result = 5 + 3;(加法),int remainder = 7 % 3;(取余)。
    –自增(++)和自减(–)运算符:有前缀和后缀两种形式。前缀形式(如++i)是先将变量的值加 1,然后再使用变量的值;后缀形式(如i++)是先使用变量的值,然后再将变量的值加 1。例如,int i = 3; int j = i++;(此时j的值为 3,i的值为 4)。
  2. 关系运算符:
    等于(==)、不等于(!=)、大于(>)、小于(<)、大于等于(>=)、小于等于(<=):用于比较两个值的大小关系。返回值为boolean类型。例如,boolean isEqual = (5 == 5);(返回true)。
  3. 逻辑运算符:
    逻辑与(&&)、逻辑或(||)、逻辑非(!):用于组合或反转boolean类型的条件。例如,boolean result = (a > 5 && b < 10);(只有当a > 5和b < 10同时为真时,result才为真)。
  4. 赋值运算符:
    –基本赋值(=):将右侧的值赋给左侧的变量。例如,int x = 3;。
    –复合赋值(+=、-=、*=、/=、%= 等):例如,x += 2;等价于x = x + 2;。

2.6 控制语句(Control Statements)

  1. 条件语句:
    if - else 语句: 根据条件执行不同的代码块。例如:
if (a > 10) {System.out.println("a大于10");
} else {System.out.println("a小于等于10");
}

switch - case 语句: 用于多分支选择。例如:

switch (dayOfWeek) {case 1:System.out.println("星期一");break;case 2:System.out.println("星期二");break;//...default:System.out.println("无效的星期");
}
  1. 循环语句:
    while 循环: 在条件为真时重复执行代码块。例如:
while (i < 10) {System.out.println(i);i++;
}

do - while 循环: 先执行一次代码块,然后在条件为真时重复执行。例如:

do {System.out.println(i);i++;
} while (i < 10);

for 循环: 用于已知循环次数的情况。例如:

for (int j = 0; j < 5; j++) {System.out.println(j);
}
  1. 跳转语句:
    break 语句: 用于跳出循环(while、do - while、for)或者switch语句。例如,在for循环中,当满足某个条件时提前结束循环。
    continue 语句: 用于跳过本次循环的剩余部分,直接开始下一次循环。例如,在for循环中,如果某个元素不符合条件,跳过对它的处理,直接处理下一个元素。

2.6 方法(Methods)

  1. 定义:方法是一段可以被重复调用的代码块,用于完成特定的功能。
  2. 格式:
    访问修饰符 返回值类型 方法名(参数列表) {
    // 方法体
    return 返回值;
    }
    例如:
public int add(int a, int b) {return a + b;
}
  1. 调用方法:可以在同一个类或者其他类中调用方法。如果是在同一个类中,直接使用方法名(参数)的形式;如果是在其他类中,需要先创建对象(对于非静态方法),然后通过对象调用方法。例如:int sum = add(3, 5);或者MyClass myObject = new MyClass(); int result = myObject.add(2, 4);。

2.8 类和对象(Classes and Objects)

  1. 类的定义:
    访问修饰符 class 类名 {
    // 成员变量
    // 成员方法
    }
    例如:
public class Person {private String name;private int age;public Person(String name, int age) {this.name = name;this.age = age;}public String getName() {return name;}public int getAge() {return age;}
}
  1. 对象的创建和使用:通过new关键字创建对象,如Person person = new Person("Andy ", 30);,然后可以通过对象访问类中的成员变量和成员方法,如System.out.println(person.getName());。

2.9 包(Packages)

  1. 定义:包用于组织和管理 Java 类,避免类名冲突。
  2. 声明包:在 Java 源文件的开头使用package语句声明包,例如package com.andy.myapp;。
  3. 导入包中的类:使用import语句导入其他包中的类,以便在当前类中使用。例如,import java.util.ArrayList;可以导入ArrayList类,这样就可以在代码中使用ArrayList来创建对象和调用方法。

码字不易,宝贵经验分享不易,请各位支持原创,转载注明出处,多多关注作者,家人们的点赞和关注是我笔耕不辍的动力。

相关文章:

一文总结java语法规则

1. 题记 Java是一门拥有较强语法规则的编程语言&#xff0c;本博文主要总结介绍java语言的java语法规则。 2. java语法规则 2.1 标识符&#xff08;Identifiers&#xff09; 定义&#xff1a;标识符是用来给变量、类、方法、接口等命名的字符序列。规则&#xff1a; –标识…...

使用 npm 安装 Yarn

PS E:\WeChat Files\wxid_fipwhzebc1yh22\FileStorage\File\2024-11\spid-admin\spid-admin> yarn install yarn : 无法将“yarn”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写&#xff0c;如果包括路径&#xff0c;请确保路径正确&#xff0c;然后…...

vue3中利用路由信息渲染菜单栏

1. 创建路由时将路由信息对象进行抽离 将路由信息对象单独抽离到router/routes.ts文件 关键&#xff1a;利用路由元信息meta&#xff0c;定义3个属性 hidden&#xff1a;控制当前路由是否显示在菜单栏中title&#xff1a;菜单拦名称icon&#xff1a;对应菜单名称前面的图标 …...

Mysql每日一题(行程与用户,困难※)

今天给大家分享一个截止到目前位置&#xff0c;我遇到最难的一道mysql题目&#xff0c;非常建议大家亲手做一遍 完整代码如下&#xff0c;这道题的主要难点是它有两个外键&#xff0c;以前没遇到过&#xff0c;我也没当回事&#xff0c;分享一下错误经验哈 当时我写的where判断…...

adb 命令 查找启动的包名以及导出安装包

查看安卓内包名 adb 查看所有安装的包 adb shell pm list packages查看安装的第三方app的包名 adb shell pm list packages -3查看启动的app的包名 adb shell dumpsys activity top | find "ACTIVITY"adb shell dumpsys activity activities | findstr "Run…...

Flink_DataStreamAPI_输出算子Sink

Flink_DataStreamAPI_输出算子Sink 1连接到外部系统2输出到文件3输出到Kafka4输出到MySQL&#xff08;JDBC&#xff09;5自定义Sink输出 Flink作为数据处理框架&#xff0c;最终还是要把计算处理的结果写入外部存储&#xff0c;为外部应用提供支持。 1连接到外部系统 Flink的D…...

标准C++ 字符串

一、标准库中的字符串类型 在C中&#xff0c;字符串是一个非常重要的数据类型&#xff0c;用于表示和处理文本信息。C提供了多种方式来处理字符串&#xff0c;每种方式都有其特点和适用场景。以下是几种常见的字符串类型及其用法&#xff1a; 1. C 风格字符串 (char* 或 char…...

时序预测:多头注意力+宽度学习

✨✨ 欢迎大家来访Srlua的博文&#xff08;づ&#xffe3;3&#xffe3;&#xff09;づ╭❤&#xff5e;✨✨ &#x1f31f;&#x1f31f; 欢迎各位亲爱的读者&#xff0c;感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢&#xff0c;在这里我会分享我的知识和经验。&am…...

day06(单片机)IIC+STH20

目录 IICSHT20 I2C基础简介 为什么I2C需要使用上拉电阻&#xff1f; I2C特点 时序图分析 起始信号与终止信号 数据传输时序 字节传输和应答信号 I2C寻址 主机给从机发送一个字节 主机给从机发送多个字节 主机从从机接收一个字节 主机从从机接收多个字节 I2C寄存器 I2C_RXDR&…...

Bugku CTF_Web——文件上传

Bugku CTF_Web——文件上传 进入靶场 My name is margin,give me a image file not a php抓个包上传试试 改成png也上传失败 应该校验了文件头 增加了文件头也不行 试了一下 把文件类型改成gif可以上传 但是还是不能连接 将Content-Type改大小写 再把文件后缀名改成php4 成…...

C#版使用融合通信API发送手机短信息

目录 功能实现 范例运行环境 实现范例 类设计 类代码实现 调用范例 总结 功能实现 融合云通信服务平台&#xff0c;为企业提供全方位通信服务&#xff0c;发送手机短信是其一项核心功能&#xff0c;本文将讲述如何使用融合云服务API为终端手机用户发送短信信息&#xf…...

人工智能:重塑医疗、企业与生活的未来知识管理——以HelpLook为例

一、医疗行业&#xff1a;AI引领的医疗革新 随着人工智能&#xff08;AI&#xff09;技术的持续飞跃&#xff0c;我们正身处一场跨行业的深刻变革之中。在医疗健康的广阔舞台上&#xff0c;人工智能技术正扮演着日益重要的角色。它不仅能够辅助医生进行病例的精准诊断&#xf…...

MVVM(Model-View-ViewModel)模型

MVVM&#xff08;ModelViewViewModel&#xff09;模型是一种常用于软件开发中的架构模式&#xff0c;尤其在前端框架&#xff08;如 Vue.js、React、Angular&#xff09;中被广泛应用。它将程序的用户界面与业务逻辑分离&#xff0c;便于维护和扩展。 MVVM 的三个组成部分 1. …...

权限系统:权限应用服务设计

今天聊聊权限系统的应用服务设计。 从业务需求的角度来看&#xff0c;权限系统需要解决两个核心问题&#xff1a; 1、菜单渲染与动态展示 当用户成功登录并接入系统后&#xff0c;系统需要动态获取并展示该用户有权限访问的菜单项。 这一过程涉及前端系统与权限系统的交互。前端…...

Android音频架构

音频基础知识 声音有哪些重要属性呢&#xff1f; 响度(Loudness) 响度就是人类可以感知到的各种声音的大小&#xff0c;也就是音量。响度与声波的振幅有直接关系。 音调(Pitch) 音调与声音的频率有关系&#xff0c;当声音的频率越大时&#xff0c;人耳所感知到的音调就越高&a…...

AI 智享直播:开启直播新篇,引领未来互动新趋势!

在数字化浪潮席卷全球的今天&#xff0c;AI技术正以不可阻挡之势渗透进我们生活的方方面面&#xff0c;从智能家居到自动驾驶&#xff0c;从医疗健康到金融服务&#xff0c;无一不彰显着其强大的影响力和无限的潜力。而在这一波科技革新的洪流中&#xff0c;直播行业也迎来了前…...

【AIGC】国内AI工具复现GPTs效果详解

博客主页&#xff1a; [小ᶻZ࿆] 本文专栏: AIGC | GPTs应用实例 文章目录 &#x1f4af;前言&#x1f4af;本文所要复现的GPTs介绍&#x1f4af;GPTs指令作为提示词在ChatGPT实现类似效果&#x1f4af;国内AI工具复现GPTs效果可能出现的问题解决方法解决后的效果 &#x1…...

Charles抓https包-配置系统证书(雷电)

1、导出证书 2、下载 主页上传资源中有安装包&#xff0c;免费的 openssl 安装教程自己搜 openssl x509 -subject_hash_old -in charles.pem 3、修改证书名、后缀改成点0 雷电打开root和磁盘写入 4、导入雷电证书根目录 证书拖进去&#xff0c;基本就完成了&#xff…...

在卷积神经网络中真正占用内存的是什么

在卷积神经网络&#xff08;CNN&#xff09;中&#xff0c;占用内存的主要部分包括以下几个方面&#xff1a; 1. 模型参数&#xff08;Weights and Biases&#xff09; CNN 中的权重和偏置&#xff08;即模型的参数&#xff09;通常是占用内存的最大部分。具体来说&#xff1…...

2024 ECCV | DualDn: 通过可微ISP进行双域去噪

文章标题&#xff1a;《DualDn: Dual-domain Denoising via Differentiable ISP》 论文链接&#xff1a; DualDn 代码链接&#xff1a; https://openimaginglab.github.io/DualDn/ 本文收录于2024ECCV&#xff0c;是上海AI Lab、浙江大学、香港中文大学&#xff08;薛天帆等…...

【Python】 -- 趣味代码 - 小恐龙游戏

文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...

Linux相关概念和易错知识点(42)(TCP的连接管理、可靠性、面临复杂网络的处理)

目录 1.TCP的连接管理机制&#xff08;1&#xff09;三次握手①握手过程②对握手过程的理解 &#xff08;2&#xff09;四次挥手&#xff08;3&#xff09;握手和挥手的触发&#xff08;4&#xff09;状态切换①挥手过程中状态的切换②握手过程中状态的切换 2.TCP的可靠性&…...

Frozen-Flask :将 Flask 应用“冻结”为静态文件

Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是&#xff1a;将一个 Flask Web 应用生成成纯静态 HTML 文件&#xff0c;从而可以部署到静态网站托管服务上&#xff0c;如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...

如何为服务器生成TLS证书

TLS&#xff08;Transport Layer Security&#xff09;证书是确保网络通信安全的重要手段&#xff0c;它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书&#xff0c;可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...

【Java_EE】Spring MVC

目录 Spring Web MVC ​编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 ​编辑参数重命名 RequestParam ​编辑​编辑传递集合 RequestParam 传递JSON数据 ​编辑RequestBody ​…...

零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)

本期内容并不是很难&#xff0c;相信大家会学的很愉快&#xff0c;当然对于有后端基础的朋友来说&#xff0c;本期内容更加容易了解&#xff0c;当然没有基础的也别担心&#xff0c;本期内容会详细解释有关内容 本期用到的软件&#xff1a;yakit&#xff08;因为经过之前好多期…...

回溯算法学习

一、电话号码的字母组合 import java.util.ArrayList; import java.util.List;import javax.management.loading.PrivateClassLoader;public class letterCombinations {private static final String[] KEYPAD {"", //0"", //1"abc", //2"…...

在QWebEngineView上实现鼠标、触摸等事件捕获的解决方案

这个问题我看其他博主也写了&#xff0c;要么要会员、要么写的乱七八糟。这里我整理一下&#xff0c;把问题说清楚并且给出代码&#xff0c;拿去用就行&#xff0c;照着葫芦画瓢。 问题 在继承QWebEngineView后&#xff0c;重写mousePressEvent或event函数无法捕获鼠标按下事…...

视觉slam十四讲实践部分记录——ch2、ch3

ch2 一、使用g++编译.cpp为可执行文件并运行(P30) g++ helloSLAM.cpp ./a.out运行 二、使用cmake编译 mkdir build cd build cmake .. makeCMakeCache.txt 文件仍然指向旧的目录。这表明在源代码目录中可能还存在旧的 CMakeCache.txt 文件,或者在构建过程中仍然引用了旧的路…...

【C++进阶篇】智能指针

C内存管理终极指南&#xff1a;智能指针从入门到源码剖析 一. 智能指针1.1 auto_ptr1.2 unique_ptr1.3 shared_ptr1.4 make_shared 二. 原理三. shared_ptr循环引用问题三. 线程安全问题四. 内存泄漏4.1 什么是内存泄漏4.2 危害4.3 避免内存泄漏 五. 最后 一. 智能指针 智能指…...