Java讲课笔记01:Java开发入门


在这里插入图片描述

一、为什么要学Java?

我们为什么要学Java呢?因 为Java世界排名第一嘛!谁给的底气?大概是 TIOBE 这个编程语言排行榜吧。

TIOBE是编程语言流行趋势的一个指标,每月更新,基于互联网上有经验的程序员、课程和第三方厂商的数量。排名使用著名的搜索引擎(Google、Bing、Wikipedia)进行计算。

查看TIOBE指标:https://www.tiobe.com/tiobe-index/
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
上面这幅图是几个热门编程语言(Java、C、Python、JavaScript 等等)近些年来的增长趋势。可以看得出,Java 霸占这份榜单很多年,并且还会持续更久。

为什么 Java 会如此受欢迎呢?

(1)简单易学

Java 继承了 C++ 语言面向对象的核心技术,舍弃了容易引起错误的指针,移除了运算符重载和多重继承等难以理解的概念,增加了垃圾回收机制,这些大大简化了程序员的开发成本。

(2)跨平台

任何平台只要安装了 JVM(Java 虚拟机),就能运行 Java 程序。真正实现了“Write once, run anywhere”。

(3)类库丰富

全球约有 900 万名 Java 开发人员,创造了一个充满活力和积极进取的 Java 社区,开源类库非常丰富。借助这些类库可以让开发者避免重复造轮子,不用去关注 Java 底层的开发,只关注业务的实现。

(4)使用广泛

据估计,全球范围内有超过 30 亿部设备运行 Java,超过其他任何一种语言。Java 被用于众多全球知名的网站中,包括 eBay.com、Linkedin.com、Amazon.com 和 Facebook.com。这一点应该是 Java 屹立不倒的深层次原因吧,大家都在用,才是真的强啊。

(5)薪资可观

很多企业都需要 Java 方面的人才,这是一个非常现实的原因,为了生计着想,学习 Java 这个方向不会有错!

Java广泛应用于科学教育、金融、法律和政府等行业。下面的饼图是Java语言在各个行业中的使用情况。
在这里插入图片描述

二、Java简史

Java是一个非常易于使用和存在久远的编程语言,今年(2020年)是其诞生的25周年。Java是一种广泛使用的计算机编程语言,拥有跨平台、面向对象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。
在这里插入图片描述

  • Java SE 10.0 2018-03-21
  • Java SE 11.0 2018-09-25
  • Java SE 12.0 2019-09-19
  • Java SE 13.0 2019-09-17

2010年1月27日,Oracle收购SUN公司。

https://www.oracle.com/java/
在这里插入图片描述

三、Java的特点

1、跨平台性

所谓的跨平台性,是指软件可以不受计算机硬件和操作系统的约束而在任意计算机环境下正常运行。这是软件发展的趋势和编程人员追求的目标。之所以这样说,是因为计算机硬件的种类繁多,操作系统也各不相同,不同的用户和公司有自己不同的计算机环境偏好,而软件为了能在这些不同的环境里正常运行,就需要独立于这些平台。而在Java语言中, Java自带的虚拟机很好地实现了跨平台性。 Java源程序代码经过编译后生成二进制的字节码是与平台无关的,但是可被Java虚拟机识别的一种机器码指令。 Java虚拟机提供了一个字节码到底层硬件平台及操作系统的屏障,使得Java语言具备跨平台性。

2、面向对象

面向对象是指以对象为基本粒度,其下包含属性和方法。对象的说明用属性表达,而通过使用方法来操作这个对象。面向对象技术使得应用程序的开发变得简单易用,节省代码。Java是一种面向对象的语言,也继承了面向对象的诸多好处,如代码扩展、代码复用等。

3、安全性

安全性可以分为四个层面,即语言级安全性、编译时安全性、运行时安全性、可执行代码安全性。语言级安全性指Java的数据结构是完整的对象,这些封装过的数据类型具有安全性。编译时要进行Java语言和语义的检查,保证每个变量对应一个相应的值,编译后生成Java类。运行时Java类需要类加载器载入,并经由字节码校验器校验之后才可以运行。 Java类在网络上使用时,对它的权限进行了设置,保证了被访问用户的安全性。

4、多线程

多线程在操作系统中已得到了最成功的应用。多线程是指允许一个应用程序同时存在两个或两个以上的线程,用于支持事务并发和多任务处理。 Java除了内置的多线程技术之外,还定义了一些类、方法等来建立和管理用户定义的多线程。

5、简单易用

Java源代码的书写不拘泥于特定的环境,可以用记事本、文本编辑器等编辑软件来实现,然后将源文件进行编译,编译通过后可直接运行,通过调试则可得到想要的结果。

四、Java平台三版本

Java 平台有三个版本,这使软件开发人员、服务提供商和设备生产商可以针对特定的市场进行开发。

1、Java SE(Standard Edition)

Java SE 以前称为 J2SE。它允许开发和部署在桌面、服务器、嵌入式环境和实时环境中使用的 Java 应用程序。Java SE 包含了支持 Java Web 服务开发的类,并为 Java Platform,Enterprise Edition(Java EE)提供基础。

2、Java EE(Enterprise Edition)

这个版本以前称为 J2EE。企业版本帮助开发和部署可移植、健壮、可伸缩且安全的服务器端 Java 应用程序。Java EE 是在 Java SE 的基础上构建的,它提供 Web 服务、组件模型、管理和通信 API,可以用来实现企业级的面向服务体系结构(service-oriented architecture,SOA)和 Web 2.0 应用程序。

3、Java ME(Micro Edition)

这个版本以前称为 J2ME。Java ME 为在移动设备和嵌入式设备(比如手机、PDA、电视机顶盒和打印机)上运行的应用程序提供一个健壮且灵活的环境。Java ME 包括灵活的用户界面、健壮的安全模型、许多内置的网络协议以及对可以动态下载的连网和离线应用程序的丰富支持。基于Java ME 规范的应用程序只需编写一次,就可以用于许多设备,而且可以利用每个设备的本机功能。

五、JVM生态调查报告

2018年12月,由 Snyk 和 The Java Magazine 联合推出发布的 2018 JVM 生态调查报告 显示有 70% 的用户使用 Oracle JDK,21% 的用户使用 OpenJDK。其中 Java 8 的使用者占到了 79%。
在这里插入图片描述
这份报告到现在为止快到一年了,猜测情况应该变化不大。所以说,现在用 Java 8 也不用慌,大部分人也都在用 Java 8。都已经 JDK 13 了,为什么还有这么多公司使用旧版本。Java 8 已经算好的了,有的公司还在使用 7,更有甚者还在用 6,你说是不是很 6。之所以会出现这种状况,是因为升级版本耗时费力,最重要的是有可能影响服务的稳定性,虽然说 Java 是向后兼容的,但是谁知道是不是有坑在里面。在没有重大安全漏洞或重大性能提升的情况下,大多数公司还是以稳定性为主,既然 Java 8 已经能满足业务需求了,那就用它好了。现在又增加了原因,就是从今年 1 月份开始对 Oracle JDK 的商业用途进行收费。

六、JDK安装与配置

1、下载JDK8u231

https://www.oracle.com/technetwork/java/javase/downloads/index.html
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

jdk-8u231-windows-x64:Windows 64位上的JDK8,第231次更新。

JDK8u231百度网盘下载链接:https://pan.baidu.com/s/1C3dsY-qz-EMCH0Ppp6qTyA 提取码:6xil

2、安装JDK8u231

双击jdk-8u231-windows-x64.exe,进入安装向导:
在这里插入图片描述
在这里插入图片描述
更改JDK安装目录,改到D:\Program Files\Java\jdk1.8.0_231\
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
更改JRE安装目录,改到D:\Program Files\Java\jre1.8.0_231\
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
安装好JDK后,打开安装目录的bin文件夹,有54个exe可执行文件:
在这里插入图片描述

3、查看JDK版本

运行cmd,执行java -version 命令,系统报错:
在这里插入图片描述
进入JDK安装目录下的bin目录,执行java -version 命令:
在这里插入图片描述
为了在任何目录都能访问java.exejavac.exe程序,需要为JDK配置环境变量。

3、配置环境变量

打开计算机属性对话框:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
编辑Path变量:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
新建CLASSPATH变量:
在这里插入图片描述
这样,在任意目录都可以使用Java的编译器和解释器:
在这里插入图片描述
在这里插入图片描述

七、Java运行原理

在Java中引入了虚拟机的概念,即在机器和编译程序之间加入了一层抽象的虚拟的机器。这台虚拟的机器在任何平台上都提供给编译程序一个的共同的接口。编译程序只需要面向虚拟机,生成虚拟机能够理解的代码,然后由解释器来将虚拟机代码转换为特定系统的机器码执行。在Java中,这种供虚拟机理解的代码叫做字节码(ByteCode)(class文件的内容),它不面向任何特定的处理器,只面向虚拟机。每一种平台的解释器是不同的,但是实现的虚拟机是相同的。Java源程序经过编译器编译后变成字节码,字节码由虚拟机解释执行,虚拟机将每一条要执行的字节码送给解释器,解释器将其翻译成特定机器上的机器码,然后在特定的机器上运行。
在这里插入图片描述
在这里插入图片描述

  • 第一步:将源程序编译成字节码文件*.java–>*.class(编译期
  • 第二步:从*.class文件将其中的内容加载到内存(类加载)(运行期
  • 第三步:执行字节码文件里的类(运行期

八、编写Java程序

我们还是完成一个经典的任务吧,在屏幕上输出“Hello World”。

1、编写源程序HelloWorld.java

将程序文件HelloWorld.java保存到D:\java_work目录里:
在这里插入图片描述

  • 关键字publicclassstaticvoid必须小写
  • 对于公共类(有public修饰的类),类名必须与文件名保持一致
  • String[] args:命令行参数是名为args的字符串数组
  • System.out.println()System类的out成员的println()方法
  • 每条语句最后必须加一个分号;作为结束符

2、编译成字节码文件HelloWorld.class

启动MS-DOS窗口,切换到D:\java_work目录,执行命令:javac HelloWorld.java
在这里插入图片描述
屏幕上没有任何提示信息,就表明编译成功了。

3、解释执行类HelloWorld

执行命令:java HelloWorld
在这里插入图片描述

4、常见错误

(1)公共类的类名与文件名不一致

在这里插入图片描述
文件名为HelloWorld,类名为HelloWord,故意删掉一个l字母。
此时,编译HelloWorld.java文件,看看会出现什么情况?
在这里插入图片描述

(2)将系统类System写成system

在这里插入图片描述
此时,编译HelloWorld.java文件,看看会出现什么情况?
在这里插入图片描述

(3)缺少语句结束符;

在这里插入图片描述
此时,编译HelloWorld.java文件,看看会出现什么情况?
在这里插入图片描述

5、课堂练习

任务1:打印个人信息

在这里插入图片描述

任务2:打印直角三角形

在这里插入图片描述
10行的直角三角形,当然可以用10条打印语句完成,如何用一条语句搞定呢?还有,100行的直角三角形,你觉得用100条打印语句来完成好吗?

九、小结

1、开发Java程序三部曲

(1)编写Java源程序(source program)

  • 注意扩展名必须是*.java
  • Java程序里有且只有一个公共类(public class)
  • 文件名一定要和公共类名保持一致(注意大小写)

(2)编译成字节码文件(bytecode file)

  • 字节码文件扩展名为*.class
  • 命令格式:javac HelloWorld.java

(3)解释执行的是类而不是文件

  • 命令格式:java HelloWorld

2、书写代码,格式要规范

书写Java代码,格式要规范,注意大小写,注意代码缩进以体现代码层次感。

十、本期Java要学的内容

本期我们准备Java基本语法、数组、字符串、面向对象(三大特性:封装、继承、多态)、IO、JDBC、多线程、GUI(可选)、网络编程等,最后我们会做一个图形界面的学生信息管理系统,提高大家Java编程的实战能力。通过学习本课程,为后续Java Web开发课程的学习奠定一个良好的基础。

十一、课后作业

任务1:打印一颗爱心

在这里插入图片描述

任务2:打印史努比

在这里插入图片描述

任务3:写一写你打算如何学习Java

任务4:申请一个CSDN博客账号

申请一个CSDN博客账号,将完成的课堂练习与课后作业发成博文。


为了提高我们开发Java程序的工作效率(work efficiency),我们需要使用某种集成开发环境(IDE:Integrated Development Environment)。有两种比较流行的Java集成开发环境:

在这里插入图片描述
本门课程我们采用第二种集成开发环境。

发布了480 篇原创文章 · 获赞 442 · 访问量 39万+

猜你喜欢

转载自blog.csdn.net/howard2005/article/details/104200274