当前位置: 首页 > 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;千里冰封…...

KITTI 3D目标检测评估工具evaluate_object.cpp编译与使用避坑指南(附修改代码)

KITTI 3D目标检测评估工具深度解析&#xff1a;从编译优化到实战技巧 在自动驾驶算法研发领域&#xff0c;KITTI数据集及其评估工具链已成为行业事实上的黄金标准。作为计算机视觉与自动驾驶研究的重要基础设施&#xff0c;KITTI评估工具的正确使用直接关系到算法性能评估的准确…...

Phi-3 Forest Laboratory 入门到精通:GitHub开源项目协作全流程指南

Phi-3 Forest Laboratory 入门到精通&#xff1a;GitHub开源项目协作全流程指南 你是不是也遇到过这种情况&#xff1a;自己写的代码跑得好好的&#xff0c;一跟别人合作就乱套了。版本冲突、代码覆盖、提交信息写得像天书……明明是个简单的功能开发&#xff0c;最后花在沟通…...

C# : 引用类型都存在堆上吗

不完全是&#xff0c;这里要精确区分&#xff1a;引用类型的实例大多数存在堆上&#xff0c;但引用本身不一定在堆上。我们拆开来说&#xff1a;引用类型本身 vs 引用变量对象实例&#xff08;类的实例&#xff09;绝大多数情况下分配在 堆上由 垃圾回收器 管理生命周期引用变量…...

QLVideo:macOS视频管理效率提升的完整解决方案

QLVideo&#xff1a;macOS视频管理效率提升的完整解决方案 【免费下载链接】QuickLookVideo This package allows macOS Finder to display thumbnails, static QuickLook previews, cover art and metadata for most types of video files. 项目地址: https://gitcode.com/g…...

串口转HID实战:CH9329芯片在无外网环境下的应用指南

CH9329芯片串口转HID实战&#xff1a;隔离环境下的设备控制方案 在工业控制、医疗设备和某些特殊应用场景中&#xff0c;经常需要在物理隔离的网络环境下实现设备控制。CH9329芯片作为一款串口转HID&#xff08;人机接口设备&#xff09;的专业芯片&#xff0c;为解决这类问题提…...

LeetCodehot100-2 两数相加

class Solution { public:ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {if (l1 nullptr) return l2;if (l2 nullptr) return l1;ListNode* head l1; // 保存头节点ListNode* prev nullptr; // 记录上一个节点&#xff0c;用于连接int carry 0;// 同时遍历…...

如何选择可靠的第三方软件测试机构,构建全生命周期的软件安全防线

在数字化转型的浪潮中&#xff0c;软件已成为企业运营的核心。然而&#xff0c;伴随其重要性一同增长的&#xff0c;是日益严峻的安全威胁。传统软件开发流程中&#xff0c;安全测试往往被置于交付前的独立环节&#xff0c;这种“事后补丁”的模式导致安全漏洞发现晚、修复成本…...

告别加班!3个Word神技巧,文档处理快人一步

如影随形地跟着那堆积如山的文档&#xff0c;像学生名单&#xff0c;课程表&#xff0c;教学计划&#xff0c;家长通知等等&#xff0c;这些重复性工作着实耗费了大量精力。事实上&#xff0c;Word当中蕴含着好些能够让你达成事半功倍效果的技巧&#xff0c;一旦将它们掌握住&a…...

BY8X01-16P Arduino音频模块驱动库深度解析

1. 项目概述BY8X01-16P-Arduino 是一款专为 Arduino 生态设计的轻量级、高兼容性音频模块控制库&#xff0c;面向 BY8001-16P 与 BY8301-16P&#xff08;文档中偶见笔误为 BY83001-16P&#xff09;双芯片平台。该库并非简单封装串口指令&#xff0c;而是以嵌入式系统工程视角重…...

Go 协程池设计与调度实现

Go 协程池设计与调度实现 在并发编程中&#xff0c;Go 语言的协程&#xff08;goroutine&#xff09;以其轻量级和高性能著称。无限制地创建协程可能导致资源耗尽&#xff0c;影响系统稳定性。为此&#xff0c;协程池的设计与调度成为优化高并发场景的重要手段。本文将深入探讨…...