【Java从入门到精通|1】从特点到第一个Hello World程序
写在前面
在计算机编程领域,Java是一门广泛应用的高级编程语言。它以其强大的跨平台性能、丰富的库和生态系统以及易于学习的语法而备受开发者欢迎。本文将引导您逐步了解Java的特点、如何安装和配置开发环境,以及如何编写您的第一个Java程序。
一、Java编程语言及其特点
Java是一门面向对象的编程语言,最早由Sun Microsystems于1995年推出。以下是Java的一些主要特点:
- 跨平台性: Java程序在不同操作系统上具有相同的行为,这得益于Java虚拟机(JVM)的存在,它将Java代码编译成字节码,然后在不同平台上执行。
- 面向对象: Java鼓励使用面向对象编程范式,通过类和对象来组织代码,实现代码的可维护性和重用性。
- 丰富的类库: Java提供了大量的标准类库,涵盖了从基本数据结构到网络编程的各个领域,简化了开发过程。
- 安全性: Java具有强大的安全特性,包括类加载器、安全管理器等,使其在网络环境中更加可靠。
- 多线程支持: Java内置了多线程支持,使开发者能够更容易地编写并发程序。
- 动态性: Java支持反射和动态代理等特性,允许在运行时检查和操作类和对象。
二、安装和配置Java开发环境
在开始编写Java程序之前,您需要安装和配置Java开发环境。以下是基本的步骤:
- 下载JDK(Java Development Kit): 访问Oracle官方网站或OpenJDK项目,下载适用于您操作系统的JDK版本。
- 安装JDK: 执行安装程序,并按照指示完成安装过程。在安装过程中,您可以选择安装JRE(Java Runtime Environment)和其他组件。
- 配置环境变量: 在系统环境变量中添加JDK的安装路径,以便系统能够找到Java执行文件。
- 验证安装: 打开终端或命令提示符,运行
java -version
命令,确保安装成功并显示正确的Java版本信息。
三、第一个Java程序
代码示例
Hello World 在Java中,编写并运行第一个程序是一种传统的入门方式。以下是一个简单的Hello World程序示例:
public class HelloWorld { public static void main(String[] args) { System.out.println("Hello, World!"); } }
代码讲解
public class HelloWorld
:定义了一个名为HelloWorld
的公共类。public static void main(String[] args)
:main
方法是Java程序的入口点,它是程序执行的起始位置。System.out.println("Hello, World!");
:这行代码输出文本到控制台。
四、数据类型和变量
在Java中,数据类型和变量是构建程序的基本要素。数据类型定义了变量的性质和可存储的数据类型,而变量是用于存储和操作数据的命名容器。更详细地讲解Java中的数据类型和变量。
数据类型:
Java的数据类型可以分为两大类:基本数据类型和引用数据类型。
基本数据类型
基本数据类型(Primitive Data Types): Java的基本数据类型是预定义的,直接存储数据值,不引用其他对象。基本数据类型分为以下几种:
整数类型:
byte
:占用8位,表示范围为 -128 到 127 的整数。short
:占用16位,表示范围为 -32,768 到 32,767 的整数。int
:占用32位,表示范围为 -2^31 到 2^31-1 的整数。long
:占用64位,表示范围为 -2^63 到 2^63-1 的整数。浮点数类型:
float
:占用32位,用于表示带小数的数值,精度约为6-7位小数。double
:占用64位,更高精度的浮点数类型,精度约为15位小数。字符类型:
char
:占用16位,用于表示单个Unicode字符。布尔类型:
boolean
:用于表示逻辑值,只有两个值:true
和false
。
引用数据类型
引用数据类型(Reference Data Types): 引用数据类型是指向对象的引用,它们不直接存储数据,而是存储对象的地址。Java中的引用数据类型包括:
- 类(Class):通过定义类创建的对象。
- 接口(Interface):用于定义方法的规范,类可以实现接口。
- 数组(Array):存储多个相同类型的数据元素的容器。
变量:
在Java中,变量是用于存储数据的命名容器。声明变量时,需要指定变量的数据类型和名称,可以选择性地为变量赋予初始值。变量的命名规则包括:
- 变量名必须以字母、下划线(_)或美元符号($)开头。
- 后续字符可以是字母、数字、下划线或美元符号。
- 变量名区分大小写。
示例: 以下是一些示例,展示了如何声明和使用不同类型的变量:
public class DataTypesAndVariables {public static void main(String[] args) {// 声明整数变量int age = 25;// 声明浮点数变量double salary = 50000.75;// 声明字符变量char grade = 'A';// 声明布尔变量boolean isStudent = true;// 声明字符串变量String name = "John Doe";// 声明引用类型变量(数组)int[] numbers = {1, 2, 3, 4, 5};} }
在上述示例中,声明了不同类型的变量并为其赋予了初始值。注意,变量的数据类型决定了变量可以存储的数据范围和类型。
总之,数据类型和变量是Java编程中的基本概念,它们在构建程序时起着关键作用。理解和正确使用不同的数据类型和变量将有助于您编写更灵活、可维护和可扩展的Java程序。
五、结论
本文介绍了
- Java编程语言的特点
- 解释了如何安装和配置Java开发环境
- 通过一个简单的Hello World程序展示了如何编写并运行Java代码
- java数据类型和变量
从这个起点出发,可以继续学习Java的更多概念和技术,逐步构建更复杂的应用程序。
Java的广泛应用范围使它成为新手和有经验的开发者的不可或缺的技能之一。
相关文章:

【Java从入门到精通|1】从特点到第一个Hello World程序
写在前面 在计算机编程领域,Java是一门广泛应用的高级编程语言。它以其强大的跨平台性能、丰富的库和生态系统以及易于学习的语法而备受开发者欢迎。本文将引导您逐步了解Java的特点、如何安装和配置开发环境,以及如何编写您的第一个Java程序。 一、Java…...

JAVA 读取jar包中excel模板
1、在resources路径下,新建report文件夹,放入excel模板 2、配置文件中的目录,分隔符使用 / template: /report/报告模板V1.0.xlsx3、使用getResourceAsStream()读取 XSSFWorkbook wb;try {//需要以/开始InputStream resourceAsStream this.g…...

解决方案:fatal error: openssl/bio.h: 没有那个文件或目录
出现报错如下: 出现该错误的原因有两个: 没有安装openssl或者libssl-dev库Libssl-dev版本过高,需要降级 一. 没有安装openssl或者libssl-dev库 使用指令安装openssl: 我的是已经安装完成了,所以再把libssl-dev的库也…...

【MySQL系列】ALTER语句详解,以及UPDATE,DELECT,TRUNCATE语句的使用+区别
💐 🌸 🌷 🍀 🌹 🌻 🌺 🍁 🍃 🍂 🌿 🍄🍝 🍛 🍤 📃个人主页 :阿然成长日记 …...
c++关键字 =delete和=default
在C的类中,有四类特殊的成员函数:① 默认构造函数;② 拷贝构造函数;③ 拷贝赋值函数(operator);④ 析构函数;它们控制着类的实例的创建、初始化、拷贝以及销毁。 (1&…...

idea 左下角的Git(Version Control)中显示Local Changes窗口
打开Local Changes窗口来查看当前Git仓库的本地变更。 使用快捷键: - Windows: Alt9 - Mac: Cmd9 解决: (1)idea打开settings (2)点击Version Control窗口选项卡,选择Commit选项,对 Use.... in…...
.net老项目中Jquery访问webservice
.net老项目中Jquery访问webservice 1. xml类型返回 jQuery.ajax({type: "POST",async: false,url: "WebService/Evection.asmx/GetCheckUpApplyEForm",contentType: "application/json",data: "{lngEvectionID:" eformSNOriginal &…...

SpringBoot项目集成ElasticSearch服务
本文已收录于专栏 《中间件合集》 目录 版本介绍背景介绍优势说明集成过程1.引入依赖2.添加配置文件3.初始化 示例说明代码结果 总结提升 版本介绍 Spring boot的版本是: 2.3.12 ElasticSearch的版本是:7.6.2 背景介绍 在我们的项目中经常会遇到对于…...

2023年网络安全比赛--综合渗透测试(超详细)
一、竞赛时间 180分钟 共计3小时 二、竞赛阶段 竞赛阶段 任务阶段 竞赛任务 竞赛时间 分值 1.扫描目标靶机将靶机开放的所有端口,当作flag提交(例:21,22,23); 2.扫描目标靶机将靶机的http服务版本信息当作flag提交(例:apache 2.3.4); 3.靶机网站存在目录遍历漏洞,请将…...

一次网络不通“争吵“引发的思考
作者: 郑明泉、余凯 为啥争吵,吵什么? “你到底在说什么啊,我K8s的ecs节点要访问clb的地址不通和本地网卡有什么关系…” 气愤语气都从电话那头传了过来,这时电话两端都沉默了。过了好一会传来地铁小姐姐甜美的播报声…...

【使用Node.js搭建自己的HTTP服务器】
文章目录 前言1.安装Node.js环境2.创建node.js服务3. 访问node.js 服务4.内网穿透4.1 安装配置cpolar内网穿透4.2 创建隧道映射本地端口 5.固定公网地址 前言 Node.js 是能够在服务器端运行 JavaScript 的开放源代码、跨平台运行环境。Node.js 由 OpenJS Foundation࿰…...

回归预测 | MATLAB实现PSO-RF粒子群优化算法优化随机森林算法多输入单输出回归预测(多指标,多图)
回归预测 | MATLAB实现PSO-RF粒子群优化算法优化随机森林算法多输入单输出回归预测(多指标,多图) 目录 回归预测 | MATLAB实现PSO-RF粒子群优化算法优化随机森林算法多输入单输出回归预测(多指标,多图)效果…...
● 392.判断子序列 ● 115.不同的子序列
● 392.判断子序列 class Solution { public:bool isSubsequence(string s, string t) {int len1s.size(),len2t.size();int res0;vector<vector<int>>dp(s.size()1,vector<int>(t.size()1,false));for(int i1;i<s.size();i){for(int j1;j<len2;j){if(…...

4.SpringCloud 基本架构
1.SpringCloud概述 Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智能路由,微代理,控制总线,一次性令牌,全局锁,…...
springboot后端返回图片,vue前端接收并显示的解决方案
后端图片数据返回 后端通过二进制流的形式,写入response中 controller层 /*** 获取签到二维码*/GetMapping("/sign-up-pict")public void signUpPict(Long id, Long semId, HttpServletResponse response) throws NoSuchAlgorithmException {signUpServ…...
算法|Day46 动态规划14
LeetCode 1143- 最长公共子序列 题目链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 题目描述:给定两个字符串 text1 和 text2,返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 ÿ…...

宠物小程序开发攻略:五分钟教你打造宠物店小程序
随着互联网技术的发展和智能手机的普及,小程序成为了各行各业的新宠。宠物服务行业也不例外,宠物店通过搭建小程序,可以实现线上线下的结合,提供更便捷的服务和更优质的用户体验。那么,宠物服务小程序的制作流程是怎样…...

open suse 15.5(任意版本) 使用阿里云的repo
一、shell suse 的包管理工具叫 zypper. zypper addrepo -f http://mirrors.aliyun.com/opensuse/distribution/leap/15.5/repo/oss/ openSUSE-15.5-Oss zypper addrepo -f http://mirrors.aliyun.com/opensuse/distribution/leap/15.5/repo/non-oss/ openSUSE-15.5-Non-Oss …...

第一篇:编写 Hello World 程序
编写 Hello World 程序 Hello World 程序就是让应用程序显示 Hello World 字符串。这是最简单的应用,但却包含了一个应用程序的基本要素,所以一般使用它来演示程序的创建过程。本章要讲的就是在Qt Creator 中创建一个图形用户界面的项目,从而…...

python 打印沁园春 雪 居中对齐 文本对齐
以下是python 中使用 DebugInfo 模块居中对齐打印《沁园春・雪》的效果 引入模块 pip install DebugInfopython代码 # -*- coding:UTF-8 -*-# region 引入必要依赖 from DebugInfo.DebugInfo import * # endregion诗文 沁园春 雪 作者: 毛主席 北国风光,千里冰封…...

接口测试中缓存处理策略
在接口测试中,缓存处理策略是一个关键环节,直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性,避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明: 一、缓存处理的核…...

XCTF-web-easyupload
试了试php,php7,pht,phtml等,都没有用 尝试.user.ini 抓包修改将.user.ini修改为jpg图片 在上传一个123.jpg 用蚁剑连接,得到flag...

css实现圆环展示百分比,根据值动态展示所占比例
代码如下 <view class""><view class"circle-chart"><view v-if"!!num" class"pie-item" :style"{background: conic-gradient(var(--one-color) 0%,#E9E6F1 ${num}%),}"></view><view v-else …...
GitHub 趋势日报 (2025年06月08日)
📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图 884 cognee 566 dify 414 HumanSystemOptimization 414 omni-tools 321 note-gen …...
leetcodeSQL解题:3564. 季节性销售分析
leetcodeSQL解题:3564. 季节性销售分析 题目: 表:sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...
Spring是如何解决Bean的循环依赖:三级缓存机制
1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间互相持有对方引用,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...

无人机侦测与反制技术的进展与应用
国家电网无人机侦测与反制技术的进展与应用 引言 随着无人机(无人驾驶飞行器,UAV)技术的快速发展,其在商业、娱乐和军事领域的广泛应用带来了新的安全挑战。特别是对于关键基础设施如电力系统,无人机的“黑飞”&…...

Linux 中如何提取压缩文件 ?
Linux 是一种流行的开源操作系统,它提供了许多工具来管理、压缩和解压缩文件。压缩文件有助于节省存储空间,使数据传输更快。本指南将向您展示如何在 Linux 中提取不同类型的压缩文件。 1. Unpacking ZIP Files ZIP 文件是非常常见的,要在 …...
Python Einops库:深度学习中的张量操作革命
Einops(爱因斯坦操作库)就像给张量操作戴上了一副"语义眼镜"——让你用人类能理解的方式告诉计算机如何操作多维数组。这个基于爱因斯坦求和约定的库,用类似自然语言的表达式替代了晦涩的API调用,彻底改变了深度学习工程…...
加密通信 + 行为分析:运营商行业安全防御体系重构
在数字经济蓬勃发展的时代,运营商作为信息通信网络的核心枢纽,承载着海量用户数据与关键业务传输,其安全防御体系的可靠性直接关乎国家安全、社会稳定与企业发展。随着网络攻击手段的不断升级,传统安全防护体系逐渐暴露出局限性&a…...