一文总结java语法规则

news2024/11/14 19:03:31

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来创建对象和调用方法。

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2240351.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

学习笔记——PLCT:milk-v duo(持续更新)

买板子 官方标配有可能是单板&#xff08;如下图&#xff09;无工具包&#xff0c;记得买之前问一下客服。

Kubernetes-ArgoCD篇-01-简介

1、什么是Argo CD Argo CD 是针对 Kubernetes 的声明式 GitOps 持续交付工具。 Argo CD官方文档地址&#xff1a;https://argo-cd.readthedocs.io Argo CD源码地址&#xff1a;https://github.com/argoproj/argo-cd 1.1 关于Argo Argo是一个开源的项目&#xff0c;主要是扩…

【Python】轻松实现机器翻译:Transformers库使用教程

轻松实现机器翻译&#xff1a;Transformers库使用教程 近年来&#xff0c;机器翻译技术飞速发展&#xff0c;从传统的基于规则的翻译到统计机器翻译&#xff0c;再到如今流行的神经网络翻译模型&#xff0c;尤其是基于Transformer架构的模型&#xff0c;翻译效果已经有了质的飞…

父子线程间传值问题以及在子线程或者异步情况下使用RequestContextHolder.getRequestAttributes()的注意事项和解决办法

用到的工具类&#xff1a; Slf4j Configuration Lazy(false) public class SpringContextUtil{public static HttpServletRequest getRequest() {ServletRequestAttributes servletRequestAttributes (ServletRequestAttributes) RequestContextHolder.getRequestAttributes()…

FRTC8563实时时钟芯片的作用

FRTC8563是NYFEA徕飞公司推出的一款实时时钟芯片&#xff0c;采用SOP-8封装形式。这种封装形式具有体积小、引脚间距小、便于集成等特点&#xff0c;使得FRTC8563能够方便地应用于各种电子设备中&#xff0c;如&#xff1a;安防摄像机、监控摄像机、行车记录仪、车载电子等。 F…

怎么样绑定域名到AWS(亚马逊云)服务器

1&#xff0c;拿着你买的域名去亚马逊申请一个证书。申请证书分两种&#xff0c;一种是去亚马逊后台填域名手动申请 &#xff0c;另一种是通过API来申请&#xff0c;类似如下代码&#xff1a; 2、证验证书。有两种方式&#xff1a;一种是通过邮件&#xff0c;另一种去到域名提供…

从0开始深度学习(28)——序列模型

序列模型是指一类特别设计来处理序列数据的神经网络模型。序列数据指的是数据中的每个元素都有先后顺序&#xff0c;比如时间序列数据&#xff08;股票价格、天气变化等&#xff09;、自然语言文本&#xff08;句子中的单词顺序&#xff09;、语音信号等。 1 统计工具 前面介绍…

边缘计算在工业互联网中的应用

&#x1f493; 博客主页&#xff1a;瑕疵的CSDN主页 &#x1f4dd; Gitee主页&#xff1a;瑕疵的gitee主页 ⏩ 文章专栏&#xff1a;《热点资讯》 边缘计算在工业互联网中的应用 边缘计算在工业互联网中的应用 边缘计算在工业互联网中的应用 引言 边缘计算概述 定义与原理 发展…

蓝桥杯——杨辉三角

代码 package day3;public class Demo2 {public static void main(String[] args) {// TODO Auto-generated method stub// for (int i 0; i < 10; i) {// for (int j 0; j < 10; j) {// System.out.print("外&#xff1a;"i"内&#xff1a;&qu…

uniapp中多角色导致tabbar过多的解决方式

由于项目时间较紧张&#xff0c;找了很多却没找到特别合适的方法&#xff0c;最后使用了此方式。 一、自己封装tabbar组件 这里就不介绍怎么封装了&#xff0c;先说一下缺点&#xff1a; 1.跳转会有白屏问题&#xff08;并且搜了好多资料以及查看官网发现没有特别合适的方法…

【JVM】关于JVM的内部原理你到底了解多少(八股文面经知识点)

前言 &#x1f31f;&#x1f31f;本期讲解关于HTTPS的重要的加密原理~~~ &#x1f308;感兴趣的小伙伴看一看小编主页&#xff1a;GGBondlctrl-CSDN博客 &#x1f525; 你的点赞就是小编不断更新的最大动力 &#x1f386;那么废话不…

机器学习 ---模型评估、选择与验证(1)

目录 前言 一、为什么要有训练集与测试集 1、为什么要有训练集与测试集 2、如何划分训练集与测试集 二、欠拟合与过拟合 1、什么是欠拟合与欠拟合的原因 2、什么是过拟合与过拟合的原因 一些解决模型过拟合和欠拟合问题的常见方法&#xff1a; 解决过拟合问题&#…

第74期 | GPTSecurity周报

GPTSecurity是一个涵盖了前沿学术研究和实践经验分享的社区&#xff0c;集成了生成预训练Transformer&#xff08;GPT&#xff09;、人工智能生成内容&#xff08;AIGC&#xff09;以及大语言模型&#xff08;LLM&#xff09;等安全领域应用的知识。在这里&#xff0c;您可以找…

SpringBoot(八)使用AES库对字符串进行加密解密

博客的文章详情页面传递参数是使用AES加密过得,如下图所示: 这个AES加密是通用的加密方式,使用同一套算法,前端和后端都可以对加密之后的字符串进行加密解密操作。 目前线上正在使用的是前端javascript进行加密操作,将加密之后的字符串再传递到后端,PHP再进行解密操作。…

JavaScript逆向爬虫教程-------基础篇之JavaScript密码学以及CryptoJS各种常用算法的实现

目录 一、密码学介绍 1.1 为什么要学密码学?1.2 密码学里面学哪一些 二、字符编码三、位运算四、Hex 编码与 Base64 编码 4.1 Hex 编码4.2 Base64 编码 五、消息摘要算法 5.1 简介5.2 JS中的MD5、SHA、HMAC、SM3 六、对称加密算法 6.1 介绍6.2 加密模式和填充方式6.3 CryptoJ…

《实时流计算系统设计与实现》-Part 2-笔记

做不到实时 做不到实时的原因 实时计算很难。通过增量计算的方式来间接获得问题的&#xff08;伪&#xff09;实时结果&#xff0c;即使这些结果带有迟滞性和近似性&#xff0c;但只要能够带来尽可能最新的信息&#xff0c;那也是有价值的。 原因可分成3个方面&#xff1a; …

gdb调试redis。sudo

1.先启动redis-server和一个redis-cli。 2.ps -aux|grep reids查看redis相关进程。 3.开始以管理员模式附加进程调试sudo gdb -p 2968.注意这里不能不加sudo&#xff0c;因为Redis 可能以 root 用户启动&#xff0c;普通用户无法附加到该进程。否则就会出现可能下列情形&#…

长连接配置以及断线重连

目录 长连接index 主要进行连接 import SockJS from "sockjs-client"; import Stomp from "stompjs"; import { notification } from "antd"; // 网络请求API import { nowApiAddressObj } from "../api/nowApiAddressObj";// 工具 i…

LeetCode【0054】螺旋矩阵

本文目录 1 中文题目2 求解方法&#xff1a;数学模拟2.1 方法思路2.2 Python代码2.3 复杂度分析 3 题目总结 1 中文题目 给定一个 m 行 n 列的矩阵 matrix &#xff0c;请按照 顺时针螺旋顺序 &#xff0c;返回矩阵中的所有元素。 示例&#xff1a; 提示&#xff1a; 1 ≤ m …

万字长文解读深度学习——训练(DeepSpeed、Accelerate)、优化(蒸馏、剪枝、量化)、部署细节

&#x1f33a;历史文章列表&#x1f33a; 深度学习——优化算法、激活函数、归一化、正则化深度学习——权重初始化、评估指标、梯度消失和梯度爆炸深度学习——前向传播与反向传播、神经网络&#xff08;前馈神经网络与反馈神经网络&#xff09;、常见算法概要汇总万字长文解读…