从0开始写出你的“Hello World” | 带你学《Java编程入门》之一

简介: Java是现在最流行的编程语言之一,并且自身拥有庞大且完善的生态系统(但是你不可能要求一门语言实现的功能过多,所以有些时候 Java 不擅长的部分会被其它的语言所顶替)。在国内而言,之所以咱们的 Java 使用广泛。更多的主要原因在于有许多的大户都在使用 Java 实现其各自的核心业务。

【本节目标】
看完本篇文章,你将了解Java语言的产生和发展历程,阐述Java语言的特点以及可移植性的实现原理,学习JDK的下载,安装与配置,学会做你的第一个程序”Hello World”。

1.1 Java的产生与发展

Java 是由 SUN 公司开发的一套编程语言,其前身并不是 Java。
在 1991 年的时候,美国SUN(Stanford University NetWork)公司有一个 GREEN 项目,这个项目的核心功能在于使用 EMail 控制家电产品的运行(智能家居),在 80 年代 Email 流行的时候 ,当时可以发送 Email 是一件很牛的事情。最初 SUN 公司打算竞争此项目,但是后来考虑到 C++ 语言的复杂性,所以利用 C++ 开发出一套 OAK(橡树)平台,并且利用此平台进行项目的竞标,不过遗憾的是,这个平台的竞标失败了。后来在 1995 年 5 月 23 日的时候正式推出了Java 编程语言,同时推出了 JDK 1.0 的开发包(1996年的时候才开始可以提供陆续下载使用,到了 1997 年的时候传到了中国)。
SUN公司是一家从事于硬件开发的技术性公司,SUN 最早的代表性的产品:小型机(被广泛的应用在了 amazon 上),后来由于网络经济的发展问题(任何的经济模式都一定会出现有瓶颈)但是对于 90 年代末--2000 年初的互联网低潮而言,这就是一个严重的伤害。而 SUN 公司经历过这么一段发展之后并没有恢复往日的经济实力,终于在后来被 Oracle 公司所收购,但是在 Oracle 公司收购前最希望收购 SUN 的实际上是 IBM ,IBM 当年软件产品线上的技术基础就是 Java 语言。
但是不管这些公司如何折腾,有一点已经达成了共识:Java依然是一个稳定的、可靠的编程语言,可以承担大型服务器的程序开发任务。

1.2 Java技术的不同发展

而从最初的时代到现在 Java 语言也出现了一些技术的不同发展:按其应用不同,分为三个版本。

  • Java标准开发(J2SE、Java SE):提供底层支持,实现桌面程序开发,包括Word、Excle等;
  • Java嵌入式开发(J2ME、Java ME):智能家居就是SUN公司最初就是想做的嵌入式开发,但是这个嵌入式的发展因为当年的 Nokia 的阻拦,后来基本上被 Android 所替代了;
  • Java企业开发(J2EE、Java EE):主要进行企业平台的搭建,现在主要开发的是互联网平台。

1.3 Java语言特点

Java 之所以可以得到持续的发展力以及良好的生态系统,这完全取决于 Java 的自身的技术特征:
1、是一个行业内通用的技术实现标准: 是一种半开源产品,所以很多的厂商得以接触到 Java 的底层,这样使得 Java 开发的更加的透明;
2、是一门面向对象的编程语言:这样就使得 Java 语言语法结构更加方便开发者接受,这些面向对象的设计思想还在不断进行着扩充(不同的 JDK 版本);
3、提供有方便的内存回收处理机制:像一些编程语言里面需要明确的手工进行对象的回收与释放,否则你的程序将无法正常提供支持,但是 Java 可以提供有自动的内存回收操作,这样处理会更加方便一些(这里面就牵扯到了一些优化方面的问题了);
4、避免了复杂的指针问题,而使用更加简单的引用来代替指针:指针虽然是一种高效的内存处理模式,但是其需要较强的分析,而我们的Java在设计的时候就充分的考虑到了这一点,所以开发者直接利用引用就可以简化指针的处理,而引用也是在初学者过程之中最为麻烦最为难以理解的部分;
5、Java是为数不多支持多线程编程的开发语言:这样就可以使得单位时间内,处理的性能得到提升(性能的提升并不是绝对的);多线程也是Java 开发之中最难以理解的部分,而正确的多线程处理才是提升处理性能的核心所在;
6、Java提供有高效的网络处理能力:可以基于NIO实现更加高效的数据的传输处理;
7、Java具有良好的可移植性:这样就可以提升一个程序的适用范围。Java的可移植性实现,依靠JVM(Java虚拟机),JVM是一个由软件和硬件模拟出来的计算机,所有的程序只要有JVM的支持,就可以实现程序的执行,不同的操作系统上会有不同版本的JVM,这样就可以实现移植性。

1.4 JDK的安装与配置

Java语言属于编译型与解释型的开发语言,对于Java语言,如果要想进行开发,则一定要进行 JDK(Java Development Kit) 的安装配置,而 JDK 要想获取则需要通过官方网站获得,并且也需要在本机上进行配置。可简单总结为:Java开发---->JDK的安装配置---->官网获取,本机配置。
JDK下载官网:www.oracle.com 。

image.png
图一 Oracle官网

之后,我们去看一下具体是在哪里下载:

image.png
图二 JDK下载位置

image.png
图三 JDK版本

对于JDK而言,有其本身的发展历史,主要有如下的几个标志性版本:
1、1995年5月23,JDK1.0的开发包发布,同时在1996年的时候,JDK正式提供下载,标志着Java的诞生;
2、1998年12月04日,JDK1.2版本推出,而后Java正式更名为Java2;
3、2005年5月23 日,十周年大会上,推出JDK1.5版本,同时这个版本也是带来新特性以及开发支持更多的历史版本,可以说这一版本直接决定了Java后续十年的技术核心;
4、2014年,Java提供了JDK1.8版本,并且支持有Lambda表达式,而且可以使用函数式编程;
5、2017年,Java提供了JDK1.9版本,进一步提升了JDK1.8的稳定性;
6、2018年,Java提供了JDK1.10版本,是属于JDK1.9的稳定版。
需要注意的是:

  • 如果要是进行实际项目的生产环境的部署现阶段还应该以JDK1.8为主;
  • JDK1.9和JDK1.10的差别不大,也就是说使用JDK1.9还是JDK1.10效果是类似的。

我们这里选择Windows系统JDK1.10版本进行安装下载:

image.png
图四 JDK 1.10 版本下载

我们可以看到除了JDK 外还有Server JRE 、JRE。
JRE指的是Java运行时环境,也就是说只提供有程序的解释功能,不提供有程序的开发功能,当我们的本机上配置好了JDK后将会自动进行JRE的更新处理。

image.png
图五 JDK下载

image.png
图六 框选接受

点击查看具体下载过程
接下来我们说一说安装与配置:

image.png
图七 JDK安装初始窗口

image.png
图八 JDK定制安装窗口

image.png
图九 JRE安装窗口

image.png
图十 为JRE指定安装路径

image.png
图十一 安装进度窗口

image.png
图十二 安装完成窗口

image.png
图十三 JDK可执行文件路径

image.png
图十四 环境变量配置位置【高级系统设置】

image.png
图十五 环境变量配置位置【环境变量】

image.pngimage.png
图十六 编辑Path值

image.png
图十七 验证配置结果

安装与配置的所有步骤已经列好了,如果你还有不清楚的,可以点击这里哦!

1.5 我的第一个程序

现在环境变量配置完成,我们来进行我们第一个代码实现吧。
“Hello World”的源程序实现(通过记事本或者Editplus来编写):

public class Hello{
    public static void main(String  args[]){
        System.out.println(“Hello World”);
    }
}

是不是很简单,你学会了吗?
想知道怎么运行它吗?
我来带你去看看!
想学习更多的Java的课程吗?从小白到大神,从入门到精通,更多精彩不容错过!免费为您提供更多的学习资源。
本内容视频来源于阿里云大学

下一篇:带你学《Java编程入门》之二:开启Java之路,你必须要了解的
更多Java入门编程文章查看此处

相关文章
|
1月前
|
Java 程序员
Java编程中的异常处理:从基础到高级
在Java的世界中,异常处理是代码健壮性的守护神。本文将带你从异常的基本概念出发,逐步深入到高级用法,探索如何优雅地处理程序中的错误和异常情况。通过实际案例,我们将一起学习如何编写更可靠、更易于维护的Java代码。准备好了吗?让我们一起踏上这段旅程,解锁Java异常处理的秘密!
|
23天前
|
自然语言处理 Java
Java中的字符集编码入门-增补字符(转载)
本文探讨Java对Unicode的支持及其发展历程。文章详细解析了Unicode字符集的结构,包括基本多语言面(BMP)和增补字符的表示方法,以及UTF-16编码中surrogate pair的使用。同时介绍了代码点和代码单元的概念,并解释了UTF-8的编码规则及其兼容性。
98 60
|
1月前
|
存储 缓存 Java
Java 并发编程——volatile 关键字解析
本文介绍了Java线程中的`volatile`关键字及其与`synchronized`锁的区别。`volatile`保证了变量的可见性和一定的有序性,但不能保证原子性。它通过内存屏障实现,避免指令重排序,确保线程间数据一致。相比`synchronized`,`volatile`性能更优,适用于简单状态标记和某些特定场景,如单例模式中的双重检查锁定。文中还解释了Java内存模型的基本概念,包括主内存、工作内存及并发编程中的原子性、可见性和有序性。
Java 并发编程——volatile 关键字解析
|
1月前
|
算法 Java 调度
java并发编程中Monitor里的waitSet和EntryList都是做什么的
在Java并发编程中,Monitor内部包含两个重要队列:等待集(Wait Set)和入口列表(Entry List)。Wait Set用于线程的条件等待和协作,线程调用`wait()`后进入此集合,通过`notify()`或`notifyAll()`唤醒。Entry List则管理锁的竞争,未能获取锁的线程在此排队,等待锁释放后重新竞争。理解两者区别有助于设计高效的多线程程序。 - **Wait Set**:线程调用`wait()`后进入,等待条件满足被唤醒,需重新竞争锁。 - **Entry List**:多个线程竞争锁时,未获锁的线程在此排队,等待锁释放后获取锁继续执行。
67 12
|
1月前
|
Java 开发者 微服务
Spring Boot 入门:简化 Java Web 开发的强大工具
Spring Boot 是一个开源的 Java 基础框架,用于创建独立、生产级别的基于Spring框架的应用程序。它旨在简化Spring应用的初始搭建以及开发过程。
85 6
Spring Boot 入门:简化 Java Web 开发的强大工具
|
1月前
|
存储 安全 Java
Java多线程编程秘籍:各种方案一网打尽,不要错过!
Java 中实现多线程的方式主要有四种:继承 Thread 类、实现 Runnable 接口、实现 Callable 接口和使用线程池。每种方式各有优缺点,适用于不同的场景。继承 Thread 类最简单,实现 Runnable 接口更灵活,Callable 接口支持返回结果,线程池则便于管理和复用线程。实际应用中可根据需求选择合适的方式。此外,还介绍了多线程相关的常见面试问题及答案,涵盖线程概念、线程安全、线程池等知识点。
173 2
|
2月前
|
设计模式 Java 开发者
Java多线程编程的陷阱与解决方案####
本文深入探讨了Java多线程编程中常见的问题及其解决策略。通过分析竞态条件、死锁、活锁等典型场景,并结合代码示例和实用技巧,帮助开发者有效避免这些陷阱,提升并发程序的稳定性和性能。 ####
|
2月前
|
缓存 Java 开发者
Java多线程编程的陷阱与最佳实践####
本文深入探讨了Java多线程编程中常见的陷阱,如竞态条件、死锁和内存一致性错误,并提供了实用的避免策略。通过分析典型错误案例,本文旨在帮助开发者更好地理解和掌握多线程环境下的编程技巧,从而提升并发程序的稳定性和性能。 ####
|
1月前
|
监控 架构师 Java
Java虚拟机调优的艺术:从入门到精通####
本文作为一篇深入浅出的技术指南,旨在为Java开发者揭示JVM调优的神秘面纱,通过剖析其背后的原理、分享实战经验与最佳实践,引领读者踏上从调优新手到高手的进阶之路。不同于传统的摘要概述,本文将以一场虚拟的对话形式,模拟一位经验丰富的架构师向初学者传授JVM调优的心法,激发学习兴趣,同时概括性地介绍文章将探讨的核心议题——性能监控、垃圾回收优化、内存管理及常见问题解决策略。 ####
|
1月前
|
安全 算法 Java
Java多线程编程中的陷阱与最佳实践####
本文探讨了Java多线程编程中常见的陷阱,并介绍了如何通过最佳实践来避免这些问题。我们将从基础概念入手,逐步深入到具体的代码示例,帮助开发者更好地理解和应用多线程技术。无论是初学者还是有经验的开发者,都能从中获得有价值的见解和建议。 ####