6

还没被淘汰?为什么Java仍是未来的主流语言?原因是背景太强大!

 3 years ago
source link: https://segmentfault.com/a/1190000039946068
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

今日分享开始啦,请大家多多指教~

今天给大家分享一下Java内容,Java基础是学习JavaEE、大数据、Android开发的基石!学习Java从基础开始,细节决定成败!

1.0 Java的简单介绍

举例:Spring–Rest(Spring MVC)核心代码:

image.png

举例:Spark Spark Streaming

image.png

Java 基础知识图解

image.png

Java 基础课程概述

image.png

Java 基础课程体系

image.png

1.1 软件开发介绍

软件,即一系列按照特定顺序组织的计算机数据和指令的集合。有系统软件和应用软件之分。

  • 人机交互方式

图形化界面(Graphical User Interface GUI)这种方式简单直观,使用者易于接受,容易上手操作。

命令行方式(Command Line Interface CLI)需要有一个控制台,输入特定的指令,让计算机完成一些操作。较为麻烦,需要记录住一些命令。

常用的DOS命令

  • dir 列出当前目录下的文件以及文件夹
  • md 创建目录
  • rd 删除目录
  • cd 进入指定目录
  • cd .. : 退回到上一级目录
  • cd 退回到根目录
  • del 删除文件
  • exit : 退出 dos 命令行
  • 补充: echo javase>1.doc

常用快捷键

  • ←←→→:移动光标
  • ↑↑↓↓:调阅历史操作命令
  • Delete和Backspace:删除字符

image.png
image.png

1.2 计算机编程语言介绍

1. 什么是计算机语言

  • 语言:是人与人之间用于沟通的一种方式。例如:中国人与中国人用普通话沟通。而 中国人要和英国人交流,就要学习英语。
  • 计算机语言:人与计算机交流的方式。

如果人要与计算机交流,那么就要学习计算机语言。

计算机语言有很多种。如: C ,C++ C++,Java ,PHP Kotlin Python Scala 等。

  • 第一代语言:机器语言。指令以二进制代码形式存在。
  • 第二代语言:汇编语言。使用助记符表示一条机器指令。

image.png

第三代语言:高级语言

  • C、Pascal、Fortran面向过程的语言
  • C++面向过程面向对象
  • Java跨平台的纯面向对象的语言
  • .NET跨语言的平台
  • Python、Scala…

2.为什么选Java

理由一:如Google的Android系统结构

  • java开发效率更高(面向对象)
  • python开发周期短,但运行时间长,两者取其利处
  • 社区大,人员多

理由二:从java语言的市场需求来看

image.png

1.3 Java语言概述

1.基本概念

  • 是SUN( S tanford U niversity N etwork ,斯坦福大学网络公司 )1995年推出的一门高级 编程语言。
  • 是一种面向Internet的编程语言。Java一开始富有吸引力是因为Java程序可以在Web浏览器中运行。这些Java程序被称为Java小程序( applet )。applet 使用现代的图形用户界面与 Web 用户进行交互。 applet 内嵌在 HTML 代码中。
  • 随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。
  • 后台开发:Java、PHP、Python、Go、Node.js

2.Java技术体系平台

image.png

3.Java在各领域的应用

从Java的应用领域来分,Java语言的应用方向主要表现在以下几个方面:

企业级应用:主要指复杂的大企业的软件系统、各种类型的网站。 Java 的安全机制以及它的跨平台的优势,使它在分布式系统领域开发中有广泛应用。应用领域包括金融、电信、交通、电子商务等。

Android 平台应用Android 应用程序使用Java 语言编写。 Android 开发水平的高低很大程度上取决于 Java 语言核心能力是否扎实。

大数据平台开发 :各类框架有 Hadoop spark storm flink 等,就这类技术生态圈来讲,还有各种中间件如 flume kafka sqoop 等等 ,这些框架以及工具大多数是用 Java 编写而成,但提供诸如 Java scala Python R 等各种语言 API 供编程。

移动领域应用:主要表现在消费和嵌入式领域,是指在各种小型设备上的应用,包括手机、 PDA、机顶盒、汽车通信设备等。

4.主要特性

  • Java语言是易学的 。 Java 语言的语法与 C 语言和 C++ 语言很接近,使得大多数程序员 很容易学习和使用 Java 。
  • Java语言是强制面向对象的。 Java 语言提供类、接口和继承等原语,为了简单起见, 只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制 (关键字为implements )。
  • Java语言是分布式的 。 Java 语言支持 Internet 应用的开发,在基本的 Java 应用编 程接口中有一个网络应用编程接口( java net ),它提供了用于网络应用编程的类 库,包括 URL 、 URLConnection 、 Socket 、 ServerSocket 等。 Java 的 RMI (远程方法激活)机制也是开发分布式应用的重要手段。
  • Java语言是健壮的。 Java 的强类型机制、异常处理、垃圾的自动收集等是 Java 程序 健壮性的重要保证。对指针的丢弃是 Java 的明智选择。
  • Java语言是安全的。 Java 通常被用在网络环境中,为此, Java 提供了一个安全机 制以防恶意代码的攻击。如:安全防范机制(类 ClassLoader ),如分配不同的名字空间以防替代本地的同名类、字节代码检查。
  • Java语言是体系结构中立的。 Java 程序(后缀为 java 的文件)在 Java 平台上被 编译为体系结构中立的字节码格式(后缀为 class 的文件),然后可以在实现这个 Java 平台的任何系统中运行。
  • Java语言是解释型的。如前所述, Java 程序在 Java 平台上被编译为字节码格式,然后可以在实现这个 Java 平台的任何系统的解释器中运行。
  • Java是性能略高的。与那些解释型的高级脚本语言相比, Java 的性能还是较优的。
  • Java语言是原生支持多线程的。 在 Java 语言中,线程是一种特殊的对象,它必须由Thread类或其子(孙)类来创建。

1.4 运行机制及运行过程

1.Java语言的特点

特点一:面向对象

  • 两个基本概念:类、对象
  • 三大特性:封装、继承、多态

特点二:健壮性

  • 吸收了 C/C++ 语言的优点,但去掉了其影响程序健壮性的部分(如指针、内存的申请与 释放等),提供了一个相对安全的内存管理和访问机制

特点三:跨平台性

  • 跨平台性:通过 Java 语言编写的应用程序在不同的系统平台上都可以运行。 Write once , Run Anywhere
  • 原理:只要在需要运行 java 应用程序的操作系统上,先安装一个 Java 虚拟机 (JVM Java Virtual Machine) 即可。由 JVM 来负责 Java 程序在该系统中的运行。

image.png

因为有了 JVM ,同一个 Java 程序在三个不同的操作系统中都可以执行。这样就实现了 Java 程序的跨平台性。

2.Java 两种核心机制

  • Java 虚拟机 (Java Virtal Machine)
  • 垃圾收集机制 (Garbage Collection)

image.png

核心机制垃圾回收

  • 不再使用的内存空间应回收垃圾回收。
  • 在 C/C++ 等语言中,由程序员负责回收无用内存。
  • Java 语言消除了程序员回收无用内存空间的责任:它提供一种系统级线程跟踪存储空 间的分配情况。并在 JVM 空闲时,检查并释放那些可被释放的存储空间。
  • 垃圾回收在 Java 程序运行过程中自动进行,程序员无法精确控制和干预。
  • Java 程序还会出现内存泄漏和内存溢出问题吗?Yes!

1.5 Java的环境搭建

下载 JDK

安装 JDK

配置环境变量

path:windows 系统执行命令时要搜寻的路径。

验证是否成功: javac java

选择合适的文本编辑器或 IDE 开发

1.明确什么是 JDK, JRE

image.png

  • 简单而言,使用 JDK 的开发工具完成的 java 程序,交给 JRE 去运行。

2.JDK 、 JRE 、 JVM关系(重点)

image.png

安装 JDK

  • 安装,下一步即可。
  • 建议:安装路径不要有中文或者空格等特殊符号。
  • 如果操作系统是 64 位的,软件尽量选择支持 64 位的(除非软件本身不区分 。
  • 当提示安装 JRE 时,正常在 JDK 安装时已经装过了,但是为了后续使用 Eclipse 等开发 工具不报错,建议也根据提示安装 JRE 。

3.配置环境变量 path

  • 在 dos 命令行中敲入 javac ,出现错误提示

image.png

  • 错误原因:当前执行的程序在当前目录下如果不存在, windows 系统会在系统中已有的一个名为 path 的环境变量指定的目录中查找。如果仍未找到,会出现以上的错误提示。所以进入到 jdk 安装路径 bin 目录下,执行 javac ,会看到 javac 参数提示信息。为了能在所有文件执行成功,需要配置环节变量。

image.png

  • 额外:查看JDK版本

image.png

每次执行 java 的工具都要进入到 bin 目录下,是非常麻烦的。可不可以在任何目录下都可以执行 java 的工具呢?

根据 windows 系统在查找可执行程序的原理,可以将 java 工具所在路径定义到 path 环境变量中,让系统帮我们去找运行执行的程序。

配置方法:

  • 我的电脑属性高级系统设置环境变量
  • 编辑 path 环境变量,在变量值开始处加上 java 工具所在目录,后面用 ““; 和其他值分隔 开即可。
  • 打开 DOS 命令行,任意目录下敲入 javac 。如果出现 javac 的参数信息,配置成功。

image.png

4.配置完 path 环境变量以后的验证

image.png

5.配置问题汇总解决

允许配置多个JDK版本,但是用的时候就一个

如果java或javac不能同时完成,则把JAVA_HOME放在最前面

如果用户变量不好使就直接放在环境变量

1.6 开发体验 HelloWorld

\1.将 Java 代码编写到扩展名为 .java 的文件中。

\2.通过 javac 命令对该 java 文件进行 编译 。

\3.通过 java 命令对生成的 class 文件进行 运行 。

image.png

步骤一:编写

  • 选择最简单的编辑器:记事本。
  • 敲入代码 class Test{ } 将文件保存成 Test.java ,这个 文件是存放 java 代码的文件,称为源文件。

image.png

步骤二:编译

  • 有了 java 源文件,通过编译器将其编译成 JVM 可以识别的字节码文件。
  • 在该源文件目录下,通过 javac 编译工具对 Test.java 文件进行编译。
  • 如果程序没有错误,没有任何提示,但在当前目录下会出现一个 Test.class 文 件,该文件称为字节码文件,也是可以执行的 java 的程序。

步骤三:运行

  • 有了可执行的 java 程序 Test.class 字节码文件
  • 通过运行工具 java.exe 对字节码文件进行执行。
  • 出现提示:缺少一个名称为 main 的方法。

image.png

因为一个程序的执行需要一个起始点或者入口,所以在 Test 类中的加入 public static void main(String[] args

对修改后的 Test.java 源文件需要重新编译,生成新的 class 文件后,再进行执行。

发现没有编译失败,但也没有任何效果,因为并没有告诉 JVM 要帮我们做什么事情,也就是 没有可以具体执行的语句。

想要和 JVM 来个互动,只要在 main 方法中加入一句System.out.println (“Hello因为程序进行改动,所以再重新编译,运行即可。

1.7 常见问题及解决方法

image.png

  • 源文件名不存在或者写错
  • 当前路径错误
  • 后缀名隐藏问题

image.png

  • 类文件名写错,尤其文件名与类名不一致时,要小心
  • 类文件不在当前路径下,或者不在 classpath 指定路径下

image.png

  • 声明为 public 的类应与文件名一致,否知编译失败

image.png

  • 编译失败,注意错误出现的行数,再到源代码中指定位置改错

1.8 注释

1.注释的必要性

用于注解说明解释程序的文字就是注释。

Java 中的注释类型:

  • 单行注释,格式: //注释文字
  • 多行注释,格式: :/ 注释文字 /

文档注释提高了代码的阅读性;调试程序的重要方法。

注释是一个程序员必须要具有的良好编程习惯。

将自己的思想通过注释先整理出来,再用代码去体现

  • 对于单行和多行注释,被注释的文字,不会被 JVM java 虚拟机)解释执行。
  • 多行注释里面不允许有多行注释嵌套。

2.文档注释(Java 特有)

@ author 指定 java 程序的作者

@ version 指定源文件的版本

  • 注释内容可以被 JDK 提供的工具 javadoc 所解析,生成一套以网页文件形式体现的该程序的说明文档。

image.png

小结第一个程序

  • Java 源文件以“ java ”为扩展名。源文件的基本组成部分是类 class 如本例中的Hello World 类。
  • Java 应用程序的执行入口是 main() 方法。它有固定的书写格式public static void main(String[] args )
  • Java语言严格区分大小写。但window没有区分
  • Java方法由一条条语句构成,每个语句以“;”结束。
  • 大括号 都是成对出现的,缺一不可。
  • 一个源文件中最多只能有一个 public 类。其它类的个数不限,如果源文件包含一个public 类,则文件名必须按该类名命名。

对第一个java程序进行总结

1.java程序编写-编译-运行的过程

编写:我们将编写的java代码保存在以“.java”结尾的源文件中I

编译:使用javac.exe命令编译我们的java源文件。格式:javac

运行:使用java。exe命令解释运行我们的字节码文件。格式:java类名

2.在一个java源文件中可以声明多个class。

但是,只能最多有一个类声明为public的。

而且要求声明为public的类的类名必须与源文件名相同。

3.程序的入口是main()方法。格式是固定的。

4.输出语句:

System.out.print1n():先输出数据,然后换行

System.out.print():只输出数据

5.Java方法由一条条语句构成,每个语句以“;”结束。

6.编译的过程:编译以后,会生成一个或多个字节码文件。字节码文件的文件名与java源文件的类名相同

1.9 API文档

API (Application Programming Interface, 应用程序编程接口)是Java提供的基本编程接口。

Java语言提供了大量的基础类,因此Oracle也为这些基础类提供了相应的 API 文档,用于告诉开发者如何使用这些类,以及这些类里包含的方法。

1.下载 API

image.png

2.学Java怎么看API(详细图解)+查看Java源码(IDEA)

image.png

1.10 良好的编程风格

1.正确的注释和注释风格

使用文档注释来注释整个类或整个方法。

如果注释方法中的某一个步骤,使用单行或多行注释。

2.正确的缩进和空白

使用一次 tab 操作,实现缩进

运算符两边习惯性各加一个空格。比如: 2 + 4 * 5 。

3.块的风格

Java API 源代码选择了行尾风格

image.png

1.11 常用的 Java 开发工具

文本编辑工具:

  • UltraEdit
  • EditPlus
  • TextPad
  • NotePad

1.JDK,JRE,JVM三者之间的关系,以及JDK、JRE包含的主要结构有哪些

JDK = JRE + Java的开发工具(javac.exe,java.exe,javadoc.exe)

JRD = JVM + Java核心类库

2.为什么要配置path**环境变量?如何配置?

希望在任何路径下都能正常运行

建立JAVA_HOME变量,JAVA_HOME=bin的上层目录

path=%JAVA_HOME%/bin

3.常用的几个命令行操作都有哪些?(至少4个)

cd 前往目录

cd… 返回上级目录

cd/ 返回根目录

dir 显示目录

md 创建目录 makedirectory

rd 删除目录 rmdir

del 删除文件

exit 退出

4.创建如下的类,使得运行的时候可以输出:

创建java文件:ChairMan.java

image.png

5.编译和运行上述代码的指令

编译:javac ChairMan.java

运行:java ChairMan

学习编程最容易犯的错就是语法错误。 Java 要求你必须按照语法规则编写代码。如果你的程序违反了语法规则,例如:忘记了分号、大括号、引号,或者拼错了单词, java 编译器都会报语法错误。尝试着去看懂编译器会报告的错误信息。

今日份分享已结束,请大家多多包涵和指点!


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK