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

49天精通Java(Day 2):Java的基本语法

上期内容回顾

在上一期的内容中,我们介绍了Java的基本概念、历史背景,并完成了JDK 1.8的安装与环境配置。你还编写并运行了第一个简单的Java程序“Hello, World!”。今天,我们将深入探讨Java的基本语法,包括变量、数据类型、运算符与表达式,以及注释与代码风格规范。

1. 变量与数据类型

在Java中,变量是用于存储数据的容器,每个变量都有一个特定的数据类型。数据类型决定了变量可以存储的数据种类以及操作这些数据的方式。

1.1 变量声明与初始化

在Java中,声明变量的语法如下:

type variableName;

例如,声明一个整数类型的变量:

int age;

你也可以在声明的同时对变量进行初始化:

int age = 25;

Java的变量类型主要分为两类:基本数据类型引用数据类型

1.2 基本数据类型

Java中有八种基本数据类型,分为四类:

  • 整数类型:

    • byte: 8位,有符号整数,范围为-128到127。
    • short: 16位,有符号整数,范围为-32,768到32,767。
    • int: 32位,有符号整数,范围为-231到231-1。
    • long: 64位,有符号整数,范围为-263到263-1。
    byte a = 100;
    short b = 10000;
    int c = 100000;
    long d = 100000L; // 后缀L表示long类型
    
  • 浮点类型:

    • float: 32位,单精度浮点数。
    • double: 64位,双精度浮点数。
    float pi = 3.14f; // 后缀f表示float类型
    double e = 2.71828;
    
  • 字符类型:

    • char: 16位Unicode字符,用单引号括起来,如'A'
    char letter = 'A';
    
  • 布尔类型:

    • boolean: 只能取值truefalse
    boolean flag = true;
    
1.3 引用数据类型

除了基本数据类型,Java还支持引用数据类型,如对象和数组。引用类型保存的是对象的引用,而不是对象本身。

String name = "John";
int[] numbers = {1, 2, 3, 4, 5};

2. 运算符与表达式

运算符是用于执行各种操作的符号,表达式则是由变量、常量和运算符组成的组合,用于计算并返回一个结果。

2.1 算术运算符

用于执行基本的数学运算:

  • + (加法)
  • - (减法)
  • * (乘法)
  • / (除法)
  • % (取模)
int x = 10;
int y = 3;
int sum = x + y; // 13
int diff = x - y; // 7
int product = x * y; // 30
int quotient = x / y; // 3
int remainder = x % y; // 1
2.2 赋值运算符

用于将值赋给变量:

  • = (赋值)
  • += (加后赋值)
  • -= (减后赋值)
  • *= (乘后赋值)
  • /= (除后赋值)
  • %= (取模后赋值)
int a = 5;
a += 3; // 相当于 a = a + 3; 结果为8
a *= 2; // 相当于 a = a * 2; 结果为16
2.3 关系运算符

用于比较两个值的大小:

  • == (等于)
  • != (不等于)
  • > (大于)
  • < (小于)
  • >= (大于或等于)
  • <= (小于或等于)
int a = 10;
int b = 20;
boolean result = a > b; // false
2.4 逻辑运算符

用于处理布尔逻辑:

  • && (逻辑与)
  • || (逻辑或)
  • ! (逻辑非)
boolean x = true;
boolean y = false;
boolean result = x && y; // false
result = x || y; // true
result = !x; // false
2.5 增量与减量运算符

用于对变量进行自增或自减操作:

  • ++ (自增)
  • -- (自减)
int num = 5;
num++; // 相当于 num = num + 1; 结果为6
num--; // 相当于 num = num - 1; 结果为4
2.6 表达式与优先级

表达式是由变量、常量、运算符和方法调用等组成的一段代码,它在程序运行时被计算为一个值。例如:

int result = 3 * (5 + 2);

在这个表达式中,首先计算5 + 2,然后乘以3,最后将结果赋值给result

运算符有优先级,优先级高的运算符先执行。如果不确定优先级,使用括号来明确表达式的计算顺序。

3. 注释与代码风格规范

注释是程序员在代码中加入的说明性文字,编译器会忽略这些内容。良好的注释和代码风格有助于提高代码的可读性和可维护性。

3.1 单行注释与多行注释

Java支持三种注释:

  • 单行注释:使用//,注释内容从//开始到行末。

    // 这是一个单行注释
    int a = 10; // 声明一个整数变量
    
  • 多行注释:使用/* ... */,适用于跨多行的注释。

    /** 这是一个多行注释* 可以写多行文字*/
    int b = 20;
    
  • 文档注释:使用/** ... */,用于生成JavaDoc文档。

    /*** 这是一个文档注释* 通常用于生成API文档*/
    public class MyClass {// 类的定义
    }
    
3.2 代码风格规范

良好的代码风格使代码更易读、更易维护。以下是一些常见的Java代码风格规范:

  • 缩进:使用4个空格或1个Tab进行缩进。所有代码块(如类、方法、循环等)都应缩进。
  • 命名规范
    • 类名应使用大驼峰命名法(如MyClass)。
    • 方法名和变量名应使用小驼峰命名法(如myMethodmyVariable)。
    • 常量名应使用全大写字母和下划线(如MAX_SIZE)。
  • 代码布局:每个方法之间空一行,每个逻辑块之间空一行。
  • 注释:在关键代码段前添加注释,解释代码的功能和逻辑。
public class HelloWorld {/*** 这是程序的入口方法* @param args 命令行参数*/public static void main(String[] args) {// 打印Hello, World!System.out.println("Hello, World!");}
}

4. 小结

今天我们学习了Java的基本语法,包括变量、数据类型、运算符与表达式,以及注释和代码风格规范。这些基础知识是编写健壮、可读代码的关键。

下期内容预告

在下一期中,我们将探讨Java中的控制流语句,包括条件语句和循环结构。通过这些内容,你将能够编写出逻辑更加复杂的程序。敬请期待!

相关文章:

49天精通Java(Day 2):Java的基本语法

上期内容回顾 在上一期的内容中&#xff0c;我们介绍了Java的基本概念、历史背景&#xff0c;并完成了JDK 1.8的安装与环境配置。你还编写并运行了第一个简单的Java程序“Hello, World!”。今天&#xff0c;我们将深入探讨Java的基本语法&#xff0c;包括变量、数据类型、运算…...

uni-app之旅-day01-home页

首页 3.0 创建 home 分支 &#x1f355;&#x1f355;&#x1f355;运行如下的命令&#xff0c;基于 master 分支在本地创建 home 子分支&#xff0c;用来开发和 home 首页相关的功能git branch(查看分支)git checkout -b home(创建home分支) 3.1 配置网络请求 &#x1f32…...

Vue3轻松实现导出Excel文件功能

文章目录 1.前言2.安装插件3.案例3.1 定义表格数据,设置 id 选择器3.2 据所选 dom 对象生成 sheetbook3.3 写入文件3.4 生成 xlsx文件4.完整代码1.前言 前端常用的导出 Excel的 js 库是 xlsx,但是 xlsx不能设置样式。要想设置样式,必要要结合 xlsx-style 插件一起使用,但是…...

在Kali Linux中使用VNC和iptables配置xrdp以实现远程连接

在Kali Linux中&#xff0c;使用VNC和iptables配置xrdp以实现远程连接涉及几个步骤。不过&#xff0c;值得注意的是&#xff0c;VNC和xrdp是两种不同的远程桌面协议&#xff0c;它们通常不会在同一配置中同时使用&#xff08;除非有特殊的网络架构需求&#xff09;。然而&#…...

小徐影院:Spring Boot技术下的影院革新

第四章 系统设计 4.1 系统的功能结构图 通过系统需求分析&#xff0c;本小徐影城管理系统的功能结构设计如图4-1所示&#xff1a; 图4-1 系统功能图 4.2 系统数据库设计 4.2.1 数据库E-R图 在该系统的信息中&#xff0c;由于数据库的支持&#xff0c;我们可以对数据库进行收集…...

命名空间

在 C 中&#xff0c;变量、函数和类都是大量存在的&#xff0c;这些变量、函数和类的名称将都存在于全局作用域中&#xff0c;可能会导致很多冲突&#xff0c;使用命名空间的目的是对标识符的名称进行本地化&#xff0c;以避免命名冲突或名字污染&#xff0c;namespace 关键字的…...

使用 Elastic 将 AI 摘要添加到你的网站

作者&#xff1a;来自 Elastic Gustavo Llermaly 我们目前所知道的搜索&#xff08;搜索栏、结果、过滤器、页面等&#xff09;已经取得了长足的进步&#xff0c;并实现了多种不同的功能。当我们知道找到所需内容所需的关键字或知道哪些文档包含我们想要的信息时&#xff0c;尤…...

dOOv:Java 数据验证与映射库(简化业务逻辑)

dOOv 是一个为 Java 开发人员设计的轻量化库&#xff0c;专注于数据验证和对象间的映射。与传统的验证框架不同&#xff0c;dOOv 通过提供简洁、声明式的 API&#xff0c;使得开发者可以轻松地编写、扩展和维护验证和映射规则。其设计灵感源自领域驱动设计&#xff08;DDD&…...

Arthas sc(查看JVM已加载的类信息 )

文章目录 二、命令列表2.2 class/classloader相关命令2.2.5 sc&#xff08;查看JVM已加载的类信息 &#xff09;举例1&#xff1a;模糊搜索&#xff0c;xx包下所有的类举例2&#xff1a;打印类的详细信息举例3&#xff1a;打印出类的Field信息 本人其他相关文章链接 二、命令列…...

OCR 行驶证识别 离线识别

目录 正页识别 副页识别 全部识别 OCR 行驶证识别 离线识别 正页识别 副页识别 全部识别...

PHP泛目录生成源码,可生成长尾关键词页面,带使用方法视频教程

介绍&#xff1a; 真正的好东西&#xff0c;搞网站优化seo从业必备。可以快速提升网站权重&#xff0c;带来的流量哗哗的 PHP泛目录生成源码 可生成新闻页面和关键词页面 带使用方法视频教程 泛目录可以用来提升网站收录和排名 合理运用目录可以达到快速出词和出权重的效果…...

LeetCode题练习与总结:丑数--263

一、题目描述 丑数 就是只包含质因数 2、3 和 5 的正整数。 给你一个整数 n &#xff0c;请你判断 n 是否为 丑数 。如果是&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 示例 1&#xff1a; 输入&#xff1a;n 6 输出&#xff1a;true 解释&#xff1…...

初识C语言(五)

前言 本文章就代表C语言介绍以及了解正式完成&#xff0c;后续进行具体分析和详细解析学习。知识根深蒂固才可以应付后来的学习&#xff0c;地基要打好&#xff0c;后续才会轻松。 十四、结构体 结构体是C语言中最最重要的知识点&#xff0c;使得C语言有能力描述复杂的类型。 …...

Linux:深入理解冯诺依曼结构与操作系统

目录 1. 冯诺依曼体系结构 1.1 结构分析 1.2 存储结构分布图 2. 操作系统 2.1 概念 2.2 如何管理 2.3 什么是系统调用和库函数 1. 冯诺依曼体系结构 1.1 结构分析 不管是何种计算机&#xff0c;如个人笔记本电脑&#xff0c;服务器&#xff0c;都是遵循冯诺依曼结构。…...

面试中顺序表常考的十大题目解析

在数据结构与算法的面试中&#xff0c;顺序表是一个常见的考点。它作为一种基础的数据结构&#xff0c;涵盖了多种操作和概念&#xff0c;以下将详细介绍面试中关于顺序表常考的十大题目。 &#x1f49d;&#x1f49d;&#x1f49d;如果你对顺序表的概念与理解还存在疑惑&#…...

测试管理新增视图与高级搜索功能,测试计划支持一键生成缺陷详情,MeterSphere开源持续测试工具v3.3版本发布

2024年9月29日&#xff0c;MeterSphere开源持续测试工具正式发布v3.3版本。 在这一版本中&#xff0c;接口测试方面&#xff0c;接口导入功能支持导入Postman、JMX、HAR和MeterSphere格式的文件&#xff0c;接口场景的自定义请求步骤支持cURL快捷导入&#xff1b;测试管理方面…...

TypeScript 算法手册 【归并排序】

文章目录 1. 归并排序简介1.1 归并排序定义1.2 归并排序特点 2. 归并排序步骤过程拆解2.1 分割数组2.2 递归排序2.3 合并有序数组 3. 归并排序的优化3.1 原地归并排序3.2 混合插入排序案例代码和动态图 4. 归并排序的优点5. 归并排序的缺点总结 【 已更新完 TypeScript 设计模式…...

生信名词|MOA|基因敲低与基因敲除|DMSO|MODZ|生信基础

生信名词|MOA|基因敲低与基因敲除|DMSO|MODZ|生信基础 MOA&#xff08;Mechanisms Of Action&#xff0c;作用机理&#xff09; 过去&#xff0c;在药物投入到临床使用之前&#xff0c;它的生物学机理往往未被研究透彻。如今&#xff0c;随着技术的发展&#xff0c;一种新药物…...

基础岛第3关:浦语提示词工程实践

模型部署 使用下面脚本测试模型 from huggingface_hub import login, snapshot_download import osos.environ[HF_ENDPOINT] https://hf-mirror.comlogin(token“your_access_token")models ["internlm/internlm2-chat-1_8b"]for model in models:try:snapsh…...

vscode中配置python虚拟环境

python虚拟环境作用 Python虚拟环境允许你为每个独立的项目创建一个隔离的环境&#xff0c;这样每个项目都可以拥有自己的一套Python安装包和依赖&#xff0c;不会互相影响。实际使用中&#xff0c;可以在vscode或pycharm中使用虚拟环境。 1.创建虚拟环境的方法&#xff1a; …...

基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销&#xff0c;平衡网络负载&#xff0c;延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...

rknn优化教程(二)

文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK&#xff0c;开始写第二篇的内容了。这篇博客主要能写一下&#xff1a; 如何给一些三方库按照xmake方式进行封装&#xff0c;供调用如何按…...

模型参数、模型存储精度、参数与显存

模型参数量衡量单位 M&#xff1a;百万&#xff08;Million&#xff09; B&#xff1a;十亿&#xff08;Billion&#xff09; 1 B 1000 M 1B 1000M 1B1000M 参数存储精度 模型参数是固定的&#xff0c;但是一个参数所表示多少字节不一定&#xff0c;需要看这个参数以什么…...

【JVM】- 内存结构

引言 JVM&#xff1a;Java Virtual Machine 定义&#xff1a;Java虚拟机&#xff0c;Java二进制字节码的运行环境好处&#xff1a; 一次编写&#xff0c;到处运行自动内存管理&#xff0c;垃圾回收的功能数组下标越界检查&#xff08;会抛异常&#xff0c;不会覆盖到其他代码…...

Go 语言接口详解

Go 语言接口详解 核心概念 接口定义 在 Go 语言中&#xff0c;接口是一种抽象类型&#xff0c;它定义了一组方法的集合&#xff1a; // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的&#xff1a; // 矩形结构体…...

2.Vue编写一个app

1.src中重要的组成 1.1main.ts // 引入createApp用于创建应用 import { createApp } from "vue"; // 引用App根组件 import App from ./App.vue;createApp(App).mount(#app)1.2 App.vue 其中要写三种标签 <template> <!--html--> </template>…...

STM32标准库-DMA直接存储器存取

文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA&#xff08;Direct Memory Access&#xff09;直接存储器存取 DMA可以提供外设…...

《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》

在注意力分散、内容高度同质化的时代&#xff0c;情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现&#xff0c;消费者对内容的“有感”程度&#xff0c;正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中&#xff0…...

spring:实例工厂方法获取bean

spring处理使用静态工厂方法获取bean实例&#xff0c;也可以通过实例工厂方法获取bean实例。 实例工厂方法步骤如下&#xff1a; 定义实例工厂类&#xff08;Java代码&#xff09;&#xff0c;定义实例工厂&#xff08;xml&#xff09;&#xff0c;定义调用实例工厂&#xff…...

Psychopy音频的使用

Psychopy音频的使用 本文主要解决以下问题&#xff1a; 指定音频引擎与设备&#xff1b;播放音频文件 本文所使用的环境&#xff1a; Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...