Java入门教程(上)
Java入门教程(上)
Java是一种流行的面向对象编程语言,以其简洁、可移植和强大的特性,被广泛应用于各种软件开发领域。对于初学者来说,掌握Java的基础知识和编程技巧是非常重要的。本文将带你从零开始学习Java,涵盖基本语法、面向对象编程和常用的Java API。
1. Java简介
1.1 什么是Java
Java是一种面向对象的编程语言,由Sun Microsystems(现为Oracle公司)于1995年发布。Java具有以下主要特性:
- 跨平台:Java程序可以在任何安装了Java虚拟机(JVM)的设备上运行,即“写一次,运行到处”。
- 面向对象:Java是一种纯面向对象的编程语言,支持继承、封装和多态等面向对象特性。
- 丰富的类库:Java提供了丰富的标准类库,涵盖了常见的编程任务,如数据结构、网络编程、文件操作等。
1.2 安装Java开发环境
要开始Java编程,需要先安装Java开发工具包(JDK)。以下是安装步骤:
- 下载JDK:访问Oracle官方网站,下载并安装适合你操作系统的JDK版本。
- 配置环境变量:将JDK的bin目录添加到系统的PATH环境变量中。
- 验证安装:在命令行输入
java -version和javac -version,如果显示出相应的版本信息,说明安装成功。
2. Java基本语法
2.1 第一个Java程序
下面是一个简单的Java程序,它打印“Hello, World!”到控制台:
public class HelloWorld {public static void main(String[] args) {System.out.println("Hello, World!");}
}
2.2 Java的基本结构
Java程序由类和方法组成,每个Java程序至少包含一个类和一个main方法。以下是Java程序的基本结构:
- 类:使用
class关键字定义类,类名与文件名相同。 - 方法:使用
public static void main(String[] args)定义程序的入口方法。
2.3 变量与数据类型
Java是强类型语言,每个变量都必须声明数据类型。常见的数据类型包括:
- 整数类型:
byte、short、int、long - 浮点类型:
float、double - 字符类型:
char - 布尔类型:
boolean
示例:
java复制代码public class DataTypes {public static void main(String[] args) {int age = 25;double salary = 5000.50;char grade = 'A';boolean isEmployed = true;System.out.println("Age: " + age);System.out.println("Salary: " + salary);System.out.println("Grade: " + grade);System.out.println("Employed: " + isEmployed);}
}
2.4 运算符
Java提供了丰富的运算符,用于执行各种操作。常见的运算符包括:
- 算术运算符:
+、-、*、/、% - 关系运算符:
==、!=、>、<、>=、<= - 逻辑运算符:
&&、||、!
示例:
java复制代码public class Operators {public static void main(String[] args) {int a = 10;int b = 20;// 算术运算System.out.println("a + b = " + (a + b));System.out.println("a - b = " + (a - b));// 关系运算System.out.println("a == b: " + (a == b));System.out.println("a != b: " + (a != b));// 逻辑运算boolean result = (a > 5) && (b < 30);System.out.println("Result: " + result);}
}
2.5 控制结构
Java提供了多种控制结构,用于控制程序的执行流程。常见的控制结构包括:
- 条件语句:
if、else if、else、switch - 循环语句:
for、while、do-while
示例:
java复制代码public class ControlStructures {public static void main(String[] args) {int score = 85;// if-else语句if (score >= 90) {System.out.println("Grade: A");} else if (score >= 80) {System.out.println("Grade: B");} else {System.out.println("Grade: C");}// for循环for (int i = 0; i < 5; i++) {System.out.println("i: " + i);}// while循环int count = 0;while (count < 3) {System.out.println("count: " + count);count++;}}
}
在本文中,我们介绍了Java的基础知识,包括Java简介、开发环境安装、基本语法、变量和数据类型、运算符和控制结构。下一篇文章中,我们将深入探讨Java的面向对象编程(OOP)思想和常用的Java API。
欢迎大家在评论区分享你们在学习Java过程中遇到的问题和经验,一起交流学习。
相关文章:
Java入门教程(上)
Java入门教程(上) Java是一种流行的面向对象编程语言,以其简洁、可移植和强大的特性,被广泛应用于各种软件开发领域。对于初学者来说,掌握Java的基础知识和编程技巧是非常重要的。本文将带你从零开始学习Java…...
【Linux】Linux下使用套接字进行网络编程
🔥博客主页: 我要成为C领域大神🎥系列专栏:【C核心编程】 【计算机网络】 【Linux编程】 【操作系统】 ❤️感谢大家点赞👍收藏⭐评论✍️ 本博客致力于知识分享,与更多的人进行学习交流 用于网络应用开…...
强化学习-Q-learning、SARSA和PPO等算法
强化学习 强化学习是一种机器学习方法,它关注智能体如何通过与环境的交互来最大化期望的累积奖励。在这个过程中,智能体不断尝试不同的行为策略,并根据结果调整策略,以提高长期的性能。以下是几种常见的强化学习算法:…...
HarmonyOS SDK助力鸿蒙原生应用“易感知、易理解、易操作”
6月21-23日,华为开发者大会(HDC 2024)盛大开幕。6月23日上午,《HarmonyOS开放能力,使能应用原生易用体验》分论坛成功举办,大会邀请了多位华为技术专家深度解读如何通过根技术、开放能力、场景化控件等亮点…...
Java基础入门day72
day72 mybatis mybatis的实现方式 三种实现方式: 纯xml方式,namespace随便写,id随便写,只要保证整个项目namespaceid唯一即可 xml接口的方式,namespace必须是接口的全路径,id必须是接口的方法名…...
文本编辑命令和正则表达式
一、 编辑文本的命令 正则表达式匹配的是文本内容,Linux的文本三剑客,都是针对文本内容。 文本三剑客 grep:过滤文本内容 sed:针对文本内容进行增删改查 (本文不相关) awk:按行取列 &#x…...
云手机群控功能讲解
接触云手机之前,很多企业或者个人卖家都对群控有浓厚的兴趣,云手机群控具体是什么呢?云手机群控,顾名思义,是指能够同时对多台云手机进行集中控制和管理的功能。打破了传统单台手机操作的限制,实现了规模化…...
gdb用法
创建文件 // main.cpp文件 // 稳态误差 void pid_test_wentaiwucha() {float p 1.5;int t 1; // t 1s;int target 5; // 5m/sfloat output 0;float radis 3; // 稳态误差std::cout << "output: " << std::endl;fo…...
聊一聊UDF/UDTF/UDAF是什么,开发要点及如何使用?
背景介绍 UDF来源于Hive,Hive可以允许用户编写自己定义的函数UDF,然后在查询中进行使用。星环Inceptor中的UDF开发规范与Hive相同,目前有3种UDF: A. UDF--以单个数据行为参数,输出单个数据行; UDF&#…...
配置Nginx二级域名
一、环境 (一)配置 1.服务器 linux CentOS 2.反向代理 Nginx 3.开放端口 云服务器开放端口80和443 二、域名备案 (一)腾讯云 1.腾讯云域名备案流程 备注:一级域名备案后,二级域名可以不用再备案&a…...
LeetCode——判断回文数
给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。 回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 例如,121 是回文,而 …...
shell:使用结构化语句(for、while循环)
1. for命令 下面是bash shell中for命令的基本格式。 for var in list docommands done每次for命令遍历值列表,它都会将列表中的下个值赋给$test变量。$test变量可以像for 命令语句中的其他脚本变量一样使用。在最后一次迭代后,$test变量的值会在shell脚…...
数据结构_绪论
1.数据结构的研究内容 研究数据的特性和数据之间的关系 用计算机解决一个问题的步骤 1.具体问题抽象成数学模型 实质: 分析问题--->提取操作对象--->找出操作对象之间的关系(数据结构)--->用数学语言描述 操作对象对象之间的关系 2.设计算法 3.编程,调试,运行 …...
AI自动生成角色和情节连续的漫画,中山大学联想提出AutoStudio,可以多轮交互式连续生成并保持主题一致性。
中山大学和联想研究院提出AutoStudio: 是一种无需训练的多代理框架,用于多轮交互式图像生成,能够在生成多样化图像的同时保持主体一致性。 AutoStudio 采用三个基于 LLM 的智能体来解释人类意图并为 SD 模型生成适当的布局指导。此外,还引入…...
【经典面试题】RabbitMQ如何防止重复消费?
RabbitMQ的消息消费是有确认机制的,正常情况下,消费者在消费消息成功后,会发送一个确认消息,消息队列接收到之后,就会将该消息从消息队列中删除,下次也就不会再投递了。 但是如果存在网络延迟的问题&#…...
如何自己录制教学视频?零基础也能上手
随着在线教育的蓬勃发展,录制教学视频成为了教师和教育工作者们不可或缺的一项技能。无论是为了远程教学、课程分享还是知识普及,教学视频的录制都变得愈发重要。可是如何自己录制教学视频呢?本文将介绍两种录制教学视频的方法,这…...
【android】用 ExpandableListView 来实现 TreeView树形菜单视图
使用 ExpandableListView 来实现 TreeView 创建一个 ExpandableListAdapter 来为其提供数据。以下演示了如何使用 ExpandableListView 来展示树形结构的数据: 首先,在布局文件中添加 ExpandableListView: <ExpandableListViewandroid:i…...
策略模式与函数式编程应用
策略模式 | 单一职责原则(Single Responsibility Principle, SRP):islenone和islentwo分别根据特定条件返回电话号码 函数式编程: ‘’ if pd.isna(self.note1) else len(re.findall(r’\d, self.note1)) 重复代码: 当…...
docker原理记录C-N-A
docker原理 容器技术的兴起源于 PaaS 技术的普及 Docker 项目通过“容器镜像”,解决了应用打包这个根本性难题容器本身没有价值,有价值的是“容器编排”Cgroups 和 Namespace Cgroups 技术是用来制造约束的主要手段,而Namespace 技术则是用…...
【LeetCode】每日一题:二叉树的层次遍历
给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。 解题思路 水题 AC代码 # Definition for a binary tree node. # class TreeNode: # def __init__(self, val0, leftNone, rightN…...
wordpress后台更新后 前端没变化的解决方法
使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…...
7.4.分块查找
一.分块查找的算法思想: 1.实例: 以上述图片的顺序表为例, 该顺序表的数据元素从整体来看是乱序的,但如果把这些数据元素分成一块一块的小区间, 第一个区间[0,1]索引上的数据元素都是小于等于10的, 第二…...
【Linux】shell脚本忽略错误继续执行
在 shell 脚本中,可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行,可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令,并忽略错误 rm somefile…...
中南大学无人机智能体的全面评估!BEDI:用于评估无人机上具身智能体的综合性基准测试
作者:Mingning Guo, Mengwei Wu, Jiarun He, Shaoxian Li, Haifeng Li, Chao Tao单位:中南大学地球科学与信息物理学院论文标题:BEDI: A Comprehensive Benchmark for Evaluating Embodied Agents on UAVs论文链接:https://arxiv.…...
Linux相关概念和易错知识点(42)(TCP的连接管理、可靠性、面临复杂网络的处理)
目录 1.TCP的连接管理机制(1)三次握手①握手过程②对握手过程的理解 (2)四次挥手(3)握手和挥手的触发(4)状态切换①挥手过程中状态的切换②握手过程中状态的切换 2.TCP的可靠性&…...
2021-03-15 iview一些问题
1.iview 在使用tree组件时,发现没有set类的方法,只有get,那么要改变tree值,只能遍历treeData,递归修改treeData的checked,发现无法更改,原因在于check模式下,子元素的勾选状态跟父节…...
华为OD机试-食堂供餐-二分法
import java.util.Arrays; import java.util.Scanner;public class DemoTest3 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseint a in.nextIn…...
Java面试专项一-准备篇
一、企业简历筛选规则 一般企业的简历筛选流程:首先由HR先筛选一部分简历后,在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如:Boss直聘(招聘方平台) 直接按照条件进行筛选 例如:…...
Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?
在大数据处理领域,Hive 作为 Hadoop 生态中重要的数据仓库工具,其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式,很多开发者常常陷入选择困境。本文将从底…...
JVM 内存结构 详解
内存结构 运行时数据区: Java虚拟机在运行Java程序过程中管理的内存区域。 程序计数器: 线程私有,程序控制流的指示器,分支、循环、跳转、异常处理、线程恢复等基础功能都依赖这个计数器完成。 每个线程都有一个程序计数…...
