Java 编程基础:开启编程世界的大门

一、Java 环境搭建

在开始编写 Java 代码之前,我们需要先搭建 Java 开发环境。

1. 安装 JDK(Java Development Kit)

JDK 是 Java 开发的核心工具包,它包含了编译 Java 源文件所需的编译器(javac)以及运行 Java 程序的虚拟机(Java Virtual Machine,JVM)等工具。

你可以从 Oracle 官方网站下载适合你操作系统的 JDK 版本。下载完成后,按照安装向导进行安装。安装过程中需要注意设置环境变量,以便在命令行中能够方便地使用 Java 相关命令。

在 Windows 系统中,通常需要设置 JAVA_HOME 变量,指向 JDK 的安装目录,并将 %JAVA_HOME%\bin 添加到系统的 Path 变量中。在 Linux 或 Mac 系统中,可以通过修改 .bash_profile 或 .bashrc 文件来设置环境变量,例如:

export JAVA_HOME=/usr/local/java/jdk1.8.0_XX
export PATH=$JAVA_HOME/bin:$PATH

设置完成后,可以在命令行中输入 java -version 命令来检查 JDK 是否安装成功以及版本信息是否正确。

2. 选择集成开发环境(IDE)

虽然可以使用文本编辑器编写 Java 代码并在命令行中进行编译和运行,但使用集成开发环境可以大大提高开发效率。常见的 Java IDE 有 Eclipse、IntelliJ IDEA 等。

Eclipse 是一款开源的 IDE,具有丰富的插件生态系统,适合初学者使用。IntelliJ IDEA 则是一款功能强大、智能化程度高的商业 IDE,在专业开发者中广泛使用。你可以根据自己的喜好和需求选择一款 IDE 进行安装和配置。

以 Eclipse 为例,安装完成后,启动 Eclipse,创建一个新的 Java 项目,就可以开始编写 Java 代码了。

二、Java 基础语法

1. Hello World 程序

让我们从经典的 “Hello World” 程序开始,了解 Java 代码的基本结构。

public class HelloWorld {public static void main(String[] args) {System.out.println("Hello, World!");}
}

在上述代码中,public class HelloWorld 定义了一个名为 HelloWorld 的公共类。public static void main(String[] args) 是 Java 程序的入口方法,程序从这里开始执行。System.out.println("Hello, World!"); 用于在控制台输出 “Hello, World!” 字符串。

2. 数据类型

Java 是一种强类型语言,这意味着在使用变量之前必须先声明其数据类型。Java 中的基本数据类型包括:

  • 整数类型byte(1 字节)、short(2 字节)、int(4 字节)、long(8 字节)
  • 浮点类型float(4 字节)、double(8 字节)
  • 字符类型char(2 字节)
  • 布尔类型boolean(1 字节)

例如:

int age = 20;
double salary = 5000.50;
char gender = 'M';
boolean isStudent = true;

除了基本数据类型,Java 还提供了引用数据类型,如类、接口、数组等。

3. 变量与常量

  • 变量:变量是程序中存储数据的容器。在 Java 中,变量的声明格式为 数据类型 变量名;,例如 int num;。可以在声明变量的同时进行初始化,如 int num = 10;。变量的值可以在程序运行过程中被修改。

  • 常量:常量是指在程序运行过程中其值不能被改变的量。在 Java 中,可以使用 final 关键字来声明常量,例如 final double PI = 3.14159;。按照命名约定,常量通常使用大写字母表示。

4. 运算符

Java 提供了丰富的运算符,用于对数据进行各种操作。

  • 算术运算符+(加法)、-(减法)、*(乘法)、/(除法)、%(取余)
  • 关系运算符==(等于)、!=(不等于)、<(小于)、>(大于)、<=(小于等于)、>=(大于等于)
  • 逻辑运算符&&(逻辑与)、||(逻辑或)、!(逻辑非)
  • 赋值运算符=(简单赋值)、+=-=*=/= 等(复合赋值)

例如:

int a = 5, b = 3;
int sum = a + b;  // 加法运算
boolean isGreater = a > b;  // 关系运算
boolean result = (a > 2) && (b < 5);  // 逻辑运算
a += 2;  // 复合赋值运算,等价于 a = a + 2;

5. 控制语句

控制语句用于控制程序的执行流程,使程序能够根据不同的条件执行不同的代码块。

  • 条件语句if-else 语句用于根据条件判断执行不同的代码分支。例如:
int score = 80;
if (score >= 60) {System.out.println("及格");
} else {System.out.println("不及格");
}

switch 语句用于多分支条件判断,例如:

int day = 3;
switch (day) {case 1:System.out.println("星期一");break;case 2:System.out.println("星期二");break;case 3:System.out.println("星期三");break;//...default:System.out.println("无效的日期");
}
  • 循环语句for 循环用于指定次数的循环操作,例如:
for (int i = 0; i < 10; i++) {System.out.println(i);
}

while 循环在条件满足时不断执行循环体,例如:

int i = 0;
while (i < 10) {System.out.println(i);i++;
}

do-while 循环先执行一次循环体,然后再判断条件是否满足,例如:

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

此外,Java 还提供了 break 和 continue 语句用于控制循环的执行流程。break 语句用于跳出当前循环,continue 语句用于跳过本次循环的剩余代码,直接进入下一次循环。

三、数组与字符串

1. 数组

数组是一种用于存储多个相同类型数据的数据结构。在 Java 中,数组的声明和初始化方式如下:

// 声明一个整型数组
int[] numbers;
// 初始化数组,指定数组长度为 5
numbers = new int[5];
// 为数组元素赋值
numbers[0] = 1;
numbers[1] = 2;
//...// 也可以在声明时直接初始化
int[] scores = {90, 85, 95, 78, 88};

可以使用数组的下标(从 0 开始)访问数组中的元素,例如 System.out.println(numbers[2]); 将输出数组 numbers 中第三个元素的值。

2. 字符串

在 Java 中,字符串是一个非常常用的类 String。可以使用双引号括起来的字符序列来创建字符串对象,例如:

String name = "John";
String message = "Hello, " + name;

String 类提供了许多方法用于操作字符串,如 length() 方法获取字符串的长度,charAt() 方法获取指定位置的字符,substring() 方法截取字符串的一部分等。

例如:

String str = "Hello, World!";
int length = str.length();  // 获取字符串长度
char firstChar = str.charAt(0);  // 获取第一个字符
String subStr = str.substring(7);  // 截取从第 8 个字符开始的子字符串

四、方法与类

1. 方法

方法是一组用于完成特定任务的语句块。在 Java 中,方法的定义格式如下:

修饰符 返回类型 方法名(参数列表) {// 方法体return 返回值;
}

例如,定义一个计算两个整数之和的方法:

public static int add(int num1, int num2) {int sum = num1 + num2;return sum;
}

可以在其他方法中调用这个方法,例如:

public static void main(String[] args) {int result = add(5, 3);System.out.println("两数之和为:" + result);
}

2. 类

类是 Java 程序的基本组成单元,它封装了数据和方法。一个简单的类定义如下:

public class Person {// 成员变量private String name;private int age;// 构造方法public Person(String name, int age) {this.name = name;this.age = age;}// 成员方法public void introduce() {System.out.println("我叫" + name + ",今年" + age + "岁。");}
}

在上述代码中,Person 类包含了 name 和 age 两个私有成员变量,一个构造方法用于初始化对象的属性,以及一个 introduce 方法用于打印对象的信息。

可以通过创建类的对象来访问类的成员变量和方法,例如:

public static void main(String[] args) {Person person = new Person("Alice", 25);person.introduce();
}

这只是 Java 编程基础的一个简要介绍,Java 还有许多其他强大的特性和功能,如面向对象编程的继承、多态、接口,异常处理,集合框架,多线程编程等。在掌握了这些基础知识后,你可以进一步深入学习 Java 的高级知识,探索更多的编程乐趣和应用场景。希望这篇博客能够帮助你对 Java 编程有一个初步的了解和认识,祝你在编程学习的道路上一帆风顺!

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

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

相关文章

pytorch bilstm crf的教程,注意 这里不支持批处理,要支持批处理 用torchcrf这个。

### Bi-LSTM Conditional Random Field ### pytorch tutorials https://pytorch.org/tutorials/beginner/nlp/advanced_tutorial.html ### 模型主要结构&#xff1a; ![title](sources/bilstm.png) pytorch bilstm crf的教程&#xff0c;注意 这里不支持批处理 Python version…

【SickOs1.1靶场渗透】

文章目录 一、基础信息 二、信息收集 三、反弹shell 四、提权 一、基础信息 Kali IP&#xff1a;192.168.20.146 靶机IP&#xff1a;192.168.20.150 二、信息收集 端口扫描 nmap -sS -sV -p- -A 192.168.20.150 开放了22、3128端口&#xff0c;8080端口显示关闭 22端…

【HF设计模式】03-装饰者模式

声明&#xff1a;仅为个人学习总结&#xff0c;还请批判性查看&#xff0c;如有不同观点&#xff0c;欢迎交流。 摘要 《Head First设计模式》第3章笔记&#xff1a;结合示例应用和代码&#xff0c;介绍装饰者模式&#xff0c;包括遇到的问题、遵循的 OO 原则、达到的效果。 …

Mysql数据库中,什么情况下设置了索引但无法使用?

在MySQL数据库中&#xff0c;即使已经正确设置了索引&#xff0c;但在某些情况下索引可能无法被使用。 以下是一些常见的情况&#xff1a; 1. 数据分布不均匀 当某个列的数据分布非常不均匀时&#xff0c;索引可能无法有效地过滤掉大部分的数据&#xff0c;导致索引失效。 …

秒杀业务中的库存扣减为什么不加分布式锁?

前言 说到秒杀业务的库存扣减&#xff0c;就还是得先确认我们的扣减基本方案。 秒杀场景的库存扣减方案 一般的做法是&#xff0c;先在Redis中做扣减&#xff0c;然后发送一个MQ消息&#xff0c;消费者在接到消息之后做数据库中库存的真正扣减及业务逻辑操作。 如何解决数据…

ChatGPT生成测试用例的最佳实践(一)

前面介绍的案例主要展示了ChatGPT在功能、安全和性能测试用例生成方面的应用和成果。通过ChatGPT生成测试用例&#xff0c;测试团队不仅可以提升工作效率&#xff0c;还可以加快测试工作的速度&#xff0c;尽早发现被测系统中的问题。问题及早发现有助于提高软件的质量和用户满…

基于Redis实现令牌桶算法

基于Redis实现令牌桶算法 令牌桶算法算法流程图优点缺点 实现其它限流算法 令牌桶算法 令牌桶是一种用于分组交换和电信网络的算法。它可用于检查数据包形式的数据传输是否符合定义的带宽和突发性限制&#xff08;流量不均匀或变化的衡量标准&#xff09;。它还可以用作调度算…

操作系统(8)死锁

一、概念 死锁是指在一个进程集合中的每个进程都在等待只能由该集合中的其他进程才能引起的事件&#xff0c;而无限期地僵持下去的局面。在多任务环境中&#xff0c;由于资源分配不当&#xff0c;导致两个或多个进程在等待对方释放资源时陷入无限等待的状态&#xff0c;这就是死…

Micropython 扩展C模块<HelloWorld>

开发环境 MCU&#xff1a;Pico1&#xff08;无wifi版&#xff09;使用固件&#xff1a;自编译版本开发环境&#xff1a;MacBook Pro Sonoma 14.5开发工具&#xff1a;Thonny 4.1.6开发语言&#xff1a;MicroPython 1.24 执行示例 在github上获取micropython&#xff0c;我使…

并查集基础

abstract 并查集&#xff08;Union-Find Set&#xff09;是一种数据结构&#xff0c;主要用于处理动态连通性问题&#xff08;Dynamic Connectivity Problem&#xff09;&#xff0c;例如在图论中判断两点是否属于同一个连通分量&#xff0c;以及动态地合并集合。 它广泛应用…

CloudberryDB(一)安装部署多节点分布式数据库集群

CloudberryDB&#xff1a; 一个 Greenplum Database 分布式数据库开源版本的衍生项目&#xff0c; 针对开源 Greenplum Database 优化的地方&#xff0c; CloudberryDB制定了路线图&#xff08;https://github.com/orgs/cloudberrydb/discussions/369&#xff09;并在逐步改…

解决Logitech G hub 无法进入一直转圈的方案(2024.12)

如果你不是最新版本无法加载尝试以下方案&#xff1a;删除AppData 文件夹下的logihub文件夹 具体路径&#xff1a;用户名根据实际你的请情况修改 C:\Users\Administrator\AppData\Local 如果你有通过lua编译脚本&#xff0c;记得备份&#xff01;&#xff01; ↓如果你是最新…

数据库范式与反范式化:如何权衡性能与数据一致性

目录 1. 什么是数据库范式&#xff08;Normalization&#xff09;&#xff1f;第一范式&#xff08;1NF&#xff09;第二范式&#xff08;2NF&#xff09;第三范式&#xff08;3NF&#xff09; 2. 什么是反范式化&#xff08;Denormalization&#xff09;&#xff1f;3. 反范式…

Nmap使用总结

0X00 背景 nmap是测试中常用的网络探测工具&#xff0c;但是这回简单的操作&#xff0c;一直了解不深入&#xff0c;现在深入的了解和学习一下。 在文章结构上&#xff0c;我把平时常用的内容提前了&#xff0c;以便再次查阅的时候&#xff0c;比较方便。 0X01 安装 nmap可…

【记录49】vue2 vue-office在线预览 docx、pdf、excel文档

vue2 在线预览 docx、pdf、excel文档 docx npm install vue-office/docx vue-demi0.14.6 指定版本 npm install vue-office/docx vue-demi <template><VueOfficeDocx :src"pdf" style"height: 100vh;" rendere"rendereHandler" error&…

MVC模式的理解和实践

在软件开发中&#xff0c;MVC&#xff08;Model-View-Controller&#xff09;模式是一种经典的设计模式&#xff0c;特别适用于构建用户界面复杂的Web应用程序。MVC通过将应用程序的业务逻辑、数据显示和用户交互分离&#xff0c;使代码结构更加清晰&#xff0c;易于维护和扩展…

[A-22]ARMv8/v9-SMMU多级页表架构

ver0.1 [看前序文章有惊喜,关注W\X\G=Z+H=“浩瀚架构师”,可以解锁全部文章] 前言 前文我们对SMMU的系统架构和基本功能做了简要的介绍,现在大家大致对SMMU在基于ARM体系的系统架构下的总线位置和产品形态有了基本的了解。这里我们还是简单做个前情回顾,从总线架构角度看…

【UE5 “RuntimeLoadFbx”插件】运行时加载FBX模型

前言 为了解决在Runtime时能够直接根据FBX模型路径直接加载FBX的问题&#xff0c;推荐一款名为“RuntimeLoadFBX”的插件。 用法 插件用法如下&#xff0c;只需要指定fbx的地址就可以在场景中生成Actor模型 通过指定输入参数“Cal Collision”来设置FBX模型的碰撞 还可以通过…

(11)(3.1) ESC接地和接线注意事项

文章目录 前言 1 归纳 2 电容式 3 电阻 前言 ESC 接地问题由 3 种形式的 ESC 信号/耦合问题组成&#xff0c;即电阻、电容和电感。在制造飞机时&#xff0c;应考虑这三个因素。 1 归纳 这是电流突然变化导致系统中出现大电压尖峰的趋势。电源系统中的电感主要是由 ESC 和…

精品基于Python实现的微信小程序校园导航系统-微信小程序

[含文档PPT源码等] [包运行成功永久免费答疑辅导] 《django微信小程序校园导航系统》该项目采用技术Python的django框架、mysql数据库 &#xff0c;项目含有源码、文档、PPT、配套开发软件、软件安装教程、项目发布教程、核心代码介绍视频等 软件开发环境及开发工具&#xf…