当前位置: 首页 > news >正文

【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开发环境。以下是基本的步骤:

  1. 下载JDK(Java Development Kit): 访问Oracle官方网站或OpenJDK项目,下载适用于您操作系统的JDK版本。
  2. 安装JDK: 执行安装程序,并按照指示完成安装过程。在安装过程中,您可以选择安装JRE(Java Runtime Environment)和其他组件。
  3. 配置环境变量: 在系统环境变量中添加JDK的安装路径,以便系统能够找到Java执行文件。
  4. 验证安装: 打开终端或命令提示符,运行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:用于表示逻辑值,只有两个值:truefalse

引用数据类型

引用数据类型(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程序。

五、结论

本文介绍了

  1. Java编程语言的特点
  2. 解释了如何安装和配置Java开发环境
  3. 通过一个简单的Hello World程序展示了如何编写并运行Java代码
  4. 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&#xff0…...

回归预测 | 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为开发人员提供了快速构建分布式系统中一些常见模式的工具&#xff08;例如配置管理&#xff0c;服务发现&#xff0c;断路器&#xff0c;智能路由&#xff0c;微代理&#xff0c;控制总线&#xff0c;一次性令牌&#xff0c;全局锁&#xff0c;…...

springboot后端返回图片,vue前端接收并显示的解决方案

后端图片数据返回 后端通过二进制流的形式&#xff0c;写入response中 controller层 /*** 获取签到二维码*/GetMapping("/sign-up-pict")public void signUpPict(Long id, Long semId, HttpServletResponse response) throws NoSuchAlgorithmException {signUpServ…...

算法|Day46 动态规划14

LeetCode 1143- 最长公共子序列 题目链接&#xff1a;力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 题目描述&#xff1a;给定两个字符串 text1 和 text2&#xff0c;返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 &#xff…...

宠物小程序开发攻略:五分钟教你打造宠物店小程序

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

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 字符串。这是最简单的应用&#xff0c;但却包含了一个应用程序的基本要素&#xff0c;所以一般使用它来演示程序的创建过程。本章要讲的就是在Qt Creator 中创建一个图形用户界面的项目&#xff0c;从而…...

python 打印沁园春 雪 居中对齐 文本对齐

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

RocketMQ延迟消息机制

两种延迟消息 RocketMQ中提供了两种延迟消息机制 指定固定的延迟级别 通过在Message中设定一个MessageDelayLevel参数&#xff0c;对应18个预设的延迟级别指定时间点的延迟级别 通过在Message中设定一个DeliverTimeMS指定一个Long类型表示的具体时间点。到了时间点后&#xf…...

CVPR 2025 MIMO: 支持视觉指代和像素grounding 的医学视觉语言模型

CVPR 2025 | MIMO&#xff1a;支持视觉指代和像素对齐的医学视觉语言模型 论文信息 标题&#xff1a;MIMO: A medical vision language model with visual referring multimodal input and pixel grounding multimodal output作者&#xff1a;Yanyuan Chen, Dexuan Xu, Yu Hu…...

Debian系统简介

目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版&#xff…...

UE5 学习系列(三)创建和移动物体

这篇博客是该系列的第三篇&#xff0c;是在之前两篇博客的基础上展开&#xff0c;主要介绍如何在操作界面中创建和拖动物体&#xff0c;这篇博客跟随的视频链接如下&#xff1a; B 站视频&#xff1a;s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...

智能在线客服平台:数字化时代企业连接用户的 AI 中枢

随着互联网技术的飞速发展&#xff0c;消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁&#xff0c;不仅优化了客户体验&#xff0c;还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用&#xff0c;并…...

【快手拥抱开源】通过快手团队开源的 KwaiCoder-AutoThink-preview 解锁大语言模型的潜力

引言&#xff1a; 在人工智能快速发展的浪潮中&#xff0c;快手Kwaipilot团队推出的 KwaiCoder-AutoThink-preview 具有里程碑意义——这是首个公开的AutoThink大语言模型&#xff08;LLM&#xff09;。该模型代表着该领域的重大突破&#xff0c;通过独特方式融合思考与非思考…...

【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表

1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...

论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)

笔记整理&#xff1a;刘治强&#xff0c;浙江大学硕士生&#xff0c;研究方向为知识图谱表示学习&#xff0c;大语言模型 论文链接&#xff1a;http://arxiv.org/abs/2407.16127 发表会议&#xff1a;ISWC 2024 1. 动机 传统的知识图谱补全&#xff08;KGC&#xff09;模型通过…...

uniapp微信小程序视频实时流+pc端预览方案

方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度​WebSocket图片帧​定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐​RTMP推流​TRTC/即构SDK推流❌ 付费方案 &#xff08;部分有免费额度&#x…...

C++.OpenGL (10/64)基础光照(Basic Lighting)

基础光照(Basic Lighting) 冯氏光照模型(Phong Lighting Model) #mermaid-svg-GLdskXwWINxNGHso {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GLdskXwWINxNGHso .error-icon{fill:#552222;}#mermaid-svg-GLd…...