Java基础全解:构建扎实编程技能

文章目录

      • 1. Hello World 程序
        • 深入解析:
      • 2. 数据类型
        • 深入解析:
      • 3. 条件判断
        • 深入解析:
      • 4. 循环结构
        • 深入解析:
      • 5. 数组
        • 深入解析:
      • 6. 方法定义与调用
        • 深入解析:

1. Hello World 程序

深入解析:
  • 类声明public class HelloWorld 定义了一个公共类。public 关键字意味着这个类可以在任何地方被访问。
  • 主方法public static void main(String[] args) 是每个Java应用程序的入口点。static 表示该方法属于类本身而不是类的实例;void 表示方法不返回任何值;String[] args 是命令行参数的数组。
  • 输出语句System.out.println("Hello, World!"); 使用了System类的静态成员out,它是一个PrintStream对象,提供了println方法用于打印一行文本到控制台。
public class HelloWorld {public static void main(String[] args) {System.out.println("Hello, World!");}
}

2. 数据类型

深入解析:

Java是一种强类型语言,这意味着在编译时必须明确指定变量的数据类型。以下是几种常见的数据类型:

  • 基本数据类型

    • byte:8位有符号整数,范围是-128到127。
    • short:16位有符号整数,范围是-32,768到32,767。
    • int:32位有符号整数,范围是-231到231-1。
    • long:64位有符号整数,范围是-263到263-1。
    • float:32位单精度浮点数,如float b = 5.25f;(注意小数后面跟的f)。
    • double:64位双精度浮点数,如double c = 5.25;
    • char:16位Unicode字符,如char e = 'A';
    • boolean:逻辑值,只有两个可能的值truefalse
  • 引用数据类型

    • String:用于表示字符串,实际上是一个对象,不是基本类型。例如String f = "Hello";
int a = 100;
float b = 5.25f;
double c = 5.25;
boolean d = true;
char e = 'A';
String f = "Hello";

3. 条件判断

深入解析:

条件语句允许根据不同的条件执行不同的代码块。Java支持多种条件结构,最常用的是if-else语句。

  • 简单if语句:当条件为真时执行代码块。
  • if-else语句:如果条件为真,则执行第一个代码块;否则执行第二个代码块。
  • 嵌套if-else语句:可以包含多个条件分支。
  • switch-case语句:用于处理基于不同值的选择问题,效率较高。
if (a > b) {// 如果a大于b,则执行这里的代码
} else if (a == b) {// 如果a等于b,则执行这里的代码
} else {// 如果上述条件都不满足,则执行这里的代码
}

4. 循环结构

深入解析:

循环用于重复执行一段代码直到某个条件不再满足。Java支持三种主要类型的循环:

  • for循环:适用于已知迭代次数的情况,通常包含初始化、条件检查和更新三个部分。

    for (int i = 0; i < 10; i++) {System.out.println("i: " + i);
    }
    
  • while循环:当条件为真时继续执行循环体内的代码,适合于未知迭代次数的情况。

    int i = 0;
    while (i < 10) {System.out.println("i: " + i);i++;
    }
    
  • do-while循环:至少执行一次循环体,然后检查条件是否继续执行,保证循环体至少被执行一次。

    int j = 0;
    do {System.out.println("j: " + j);j++;
    } while (j < 10);
    

5. 数组

深入解析:

数组是一种可以存储多个相同类型元素的数据结构。Java中的数组大小是固定的,一旦创建就不能改变。

  • 数组声明:可以通过两种方式声明数组。第一种方式是先声明后初始化,第二种方式是在声明的同时初始化。

    int[] arr = new int[5]; // 创建一个长度为5的int数组
    arr[0] = 1; // 设置第一个元素的值为1
    arr[1] = 2;// 或者直接初始化
    int[] arr2 = {1, 2, 3, 4, 5};
    
  • 遍历数组:可以使用for循环或者增强型for-each循环来遍历数组。

    for (int element : arr2) {System.out.println(element);
    }
    

6. 方法定义与调用

深入解析:

方法是一段可重用的代码块,通常用来完成特定的任务。定义方法的基本格式如下:

  • 方法签名:包括方法名、参数列表和返回类型。如果方法不返回任何值,则使用void关键字。
  • 方法体:由一对大括号包围,包含了具体的实现逻辑。
  • 访问修饰符:如publicprivate等,决定了方法的可见性和访问权限。
  • 静态方法:通过static关键字声明的方法属于类而不是实例,可以直接通过类名调用。
public static int add(int a, int b) {return a + b;
}// 调用方法
int sum = add(5, 3); // 调用add方法并将结果赋给sum变量
  • 方法重载:同一个类中可以有多个同名但参数列表不同的方法,这称为方法重载。Java根据传入参数的不同选择相应的方法。
public class Calculator {int add(int a, int b) {return a + b;}double add(double a, double b) {return a + b;}int add(int a, int b, int c) {return a + b + c;}
}

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

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

相关文章

开发规范:Restful风格

REST&#xff08;REpresentational State Transfer&#xff09;&#xff0c;表述性状态转换&#xff0c;它是一种软件架构的风格。这么说可能太过于专业&#xff0c;有些难以理解&#xff0c;不妨看个案例&#xff1a; 传统风格url 假如说我们需要使用传统风格url发起请求&am…

StarRocks-同步hive数据

官方文档对csv&#xff0c;orc ,json &#xff0c;parquet都支持的比较好。写文章的时候SR我们生产用的是3.1.x版本 1、同步hive表textfile格式的数据 hive表结构 CREATE EXTERNAL TABLE ads_d_app_rank_inc(filename string COMMENT 解析的文件名称,rank string COMMENT ap…

【大数据学习 | Spark-SQL】定义UDF和DUAF,UDTF函数

1. UDF函数&#xff08;用户自定义函数&#xff09; 一般指的是用户自己定义的单行函数。一进一出&#xff0c;函数接受的是一行中的一个或者多个字段值&#xff0c;返回一个值。比如MySQL中的&#xff0c;日期相关的dateDiff函数&#xff0c;字符串相关的substring函数。 先…

详解Qt pdf 之QPdfSelection 选择文本类

文章目录 QPdfSelection 类详解前言 详细说明公共函数说明1. 构造函数2. text3. boundingRect4. isEmpty5. startPage6. endPage 使用场景示例代码代码说明总结 QPdfSelection 类详解 前言 QPdfSelection 是 Qt PDF 模块中的一个类&#xff0c;用于表示在 PDF 文档中被选中的…

记录部署dvwa靶场踩的几个坑

DVWA reCAPTCHA key: Missing 解决方法&#xff1a;网上随便copy一个&#xff0c;粘贴到config.inc.php配置文件里&#xff0c;具体我也是参考这篇文章的&#xff1a;DVWA下载、安装You dont have permission to access this resource.Server unable to read htaccess file, de…

linux——进程间通信及管道的应用场景

linux进程的控制-CSDN博客 liunx——进程间通信&#xff08;管道通信&#xff09;-CSDN博客 文章目录 文章目录 前言 二、管道的应用 1.创建子进程 1、描述&#xff1a; 2.创建进程及管理 3、子进程接受任务 4、控制子进程 总结 前言 上篇博客我们学习了进程间通信&…

开发工具WebStorm,VSCode,HbuilderX

WebStorm、VSCode 和 HBuilderX 是三款非常受欢迎的开发工具&#xff0c;各自有不同的特点和适用场景。下面我会详细比较它们的优势和劣势&#xff0c;帮助你选择最合适的开发环境。 1. WebStorm WebStorm 是由 JetBrains 开发的一款强大的 JavaScript IDE&#xff0c;专门针对…

FPGA实现串口升级及MultiBoot(十)串口升级SPI FLASH实现

本文目录索引 工程架构example9工程设计Vivado设计Vitis设计example9工程验证1、读取FLASH ID2、擦除整个FLASH3、Blank-Check4、烧写Golden区位流5、读取FLASH内容6、烧写MultiBoot区位流(升级位流)7、MultiBoot区位流(升级位流)启动example10工程设计Vivado设计Vitis设计exam…

AIGC引领金融大模型革命:未来已来

文章目录 金融大模型的应用场景1. **金融风险管理**2. **量化交易**3. **个性化投资建议**4. **金融欺诈检测和预防**5. **智能客户服务** 金融大模型开发面临的挑战应对策略《金融大模型开发基础与实践》亮点内容简介作者简介获取方式 在AIGC&#xff08;Artificial Intellige…

设计模式学习[10]---迪米特法则+外观模式

文章目录 前言1. 迪米特法则2. 外观模式2.1 原理阐述2.2 举例说明 总结 前言 之前有写到过 依赖倒置原则&#xff0c;这篇博客中涉及到的迪米特法则和外观模式更像是这个依赖倒置原则的一个拓展。 设计模式的原则嘛&#xff0c;总归还是高内聚低耦合&#xff0c;下面就来阐述…

量化交易系统开发-实时行情自动化交易-8.4.MT4/MT5平台

19年创业做过一年的量化交易但没有成功&#xff0c;作为交易系统的开发人员积累了一些经验&#xff0c;最近想重新研究交易系统&#xff0c;一边整理一边写出来一些思考供大家参考&#xff0c;也希望跟做量化的朋友有更多的交流和合作。 接下来会对于MT4/MT5平台介绍。 MetaT…

BWO-CNN-BiGRU-Attention白鲸优化算法优化卷积神经网络结合双向门控循环单元时间序列预测,含优化前后对比

BWO-CNN-BiGRU-Attention白鲸优化算法优化卷积神经网络结合双向门控循环单元时间序列预测&#xff0c;含优化前后对比 目录 BWO-CNN-BiGRU-Attention白鲸优化算法优化卷积神经网络结合双向门控循环单元时间序列预测&#xff0c;含优化前后对比预测效果基本介绍模型描述程序设计…

【Linux】死锁、读写锁、自旋锁

文章目录 1. 死锁1.1 概念1.2 死锁形成的四个必要条件1.3 避免死锁 2. 读者写者问题与读写锁2.1 读者写者问题2.2 读写锁的使用2.3 读写策略 3. 自旋锁3.1 概念3.2 原理3.3 自旋锁的使用3.4 优点与缺点 1. 死锁 1.1 概念 死锁是指在⼀组进程中的各个进程均占有不会释放的资源…

Vue3之弹窗

文章目录 第一步、引入JS第二步、弹框 在前端开发语言Vue3&#xff0c;在管理端如何进行弹窗&#xff1f;下面根据API实现效果。 Element API文档&#xff1a; Element-plus文档 搭建环境可参考博客【 初探Vue3环境搭建与nvm使用】 第一步、引入JS <script lang"ts&…

el-tree的使用及控制全选、反选、获取选中

el-tree的使用及控制全选、反选、获取选中 组件使用获取选中的id全选实现反选实现全部代码 组件使用 引入组件&#xff0c;可以参考官网组件引入参考官网示例写好基础数据结构&#xff0c;不知道怎么转换树形机构的看文章&#xff1a;一维数组转树形 <template><el-…

MySQL - 性能优化

使用 Explain 进行分析 Explain 用来分析 SELECT 查询语句&#xff0c;开发人员可以通过分析 Explain 结果来优化查询语句。 比较重要的字段有: select_type : 查询类型&#xff0c;有简单查询、联合查询、子查询等 key : 使用的索引 rows : 扫描的行数 type &#xff1a;…

2、Three.js初步认识场景Scene、相机Camera、渲染器Renderer三要素

三要素之间关系&#xff1a; 有了虚拟场景Scene&#xff0c;相机录像Camera&#xff0c;在相机小屏幕上看到的Renderer Scene当前空间 Mesh人在场景 Camera相机录像 Renderer显示器上 首先先描述下Scene&#xff1a; 这个场景为三要素之一&#xff0c;一切需要展示的东西都需…

【docker】容器卷综合讲解,以及go实现的企业案例

容器卷&#xff08;Volumes&#xff09;基础讲解&#xff1a; 容器概念 容器卷&#xff08;Volumes&#xff09;是 Docker 提供的一种持久化存储机制&#xff0c;允许容器持久化数据&#xff0c;即使容器被删除或重新创建&#xff0c;数据仍然可以保留。 卷是独立于容器的&…

cin/cout的性能优化和缓冲区同步问题

目录 背景导入 问题 1.1ios::sync_with_stdio(false) 1.2为什么要解除C/C IO流同步? 1.3使用场景 2.1cin和cout的绑定关系 2.2为什么要解除绑定关系? 2.3注意事项 背景导入 大家可以先看一下这段背景知识;后面我会谈谈自己的理解; 1.在C中&#xff0c;标准输⼊输出流…

node.js基础学习-url模块-url地址处理(二)

前言 前面我们创建了一个HTTP服务器&#xff0c;如果只是简单的http://localhost:3000/about这种链接我们是可以处理的&#xff0c;但是实际运用中一般链接都会带参数&#xff0c;这样的话如果我们只是简单的判断链接来分配数据&#xff0c;就会报404找不到链接。为了解决这个问…