当前位置: 首页 > 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; …...

C++初阶-list的底层

目录 1.std::list实现的所有代码 2.list的简单介绍 2.1实现list的类 2.2_list_iterator的实现 2.2.1_list_iterator实现的原因和好处 2.2.2_list_iterator实现 2.3_list_node的实现 2.3.1. 避免递归的模板依赖 2.3.2. 内存布局一致性 2.3.3. 类型安全的替代方案 2.3.…...

【人工智能】神经网络的优化器optimizer(二):Adagrad自适应学习率优化器

一.自适应梯度算法Adagrad概述 Adagrad&#xff08;Adaptive Gradient Algorithm&#xff09;是一种自适应学习率的优化算法&#xff0c;由Duchi等人在2011年提出。其核心思想是针对不同参数自动调整学习率&#xff0c;适合处理稀疏数据和不同参数梯度差异较大的场景。Adagrad通…...

Admin.Net中的消息通信SignalR解释

定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...

[10-3]软件I2C读写MPU6050 江协科技学习笔记(16个知识点)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...

从零实现STL哈希容器:unordered_map/unordered_set封装详解

本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说&#xff0c;直接开始吧&#xff01; 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...

3403. 从盒子中找出字典序最大的字符串 I

3403. 从盒子中找出字典序最大的字符串 I 题目链接&#xff1a;3403. 从盒子中找出字典序最大的字符串 I 代码如下&#xff1a; class Solution { public:string answerString(string word, int numFriends) {if (numFriends 1) {return word;}string res;for (int i 0;i &…...

C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。

1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj&#xff0c;再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...

关键领域软件测试的突围之路:如何破解安全与效率的平衡难题

在数字化浪潮席卷全球的今天&#xff0c;软件系统已成为国家关键领域的核心战斗力。不同于普通商业软件&#xff0c;这些承载着国家安全使命的软件系统面临着前所未有的质量挑战——如何在确保绝对安全的前提下&#xff0c;实现高效测试与快速迭代&#xff1f;这一命题正考验着…...

人工智能(大型语言模型 LLMs)对不同学科的影响以及由此产生的新学习方式

今天是关于AI如何在教学中增强学生的学习体验&#xff0c;我把重要信息标红了。人文学科的价值被低估了 ⬇️ 转型与必要性 人工智能正在深刻地改变教育&#xff0c;这并非炒作&#xff0c;而是已经发生的巨大变革。教育机构和教育者不能忽视它&#xff0c;试图简单地禁止学生使…...

Git 3天2K星标:Datawhale 的 Happy-LLM 项目介绍(附教程)

引言 在人工智能飞速发展的今天&#xff0c;大语言模型&#xff08;Large Language Models, LLMs&#xff09;已成为技术领域的焦点。从智能写作到代码生成&#xff0c;LLM 的应用场景不断扩展&#xff0c;深刻改变了我们的工作和生活方式。然而&#xff0c;理解这些模型的内部…...