首页 > 编程语言 >第2章:Java语言概述

第2章:Java语言概述

时间:2023-01-02 16:34:16浏览次数:40  
标签:Java 语言 JDK 概述 JVM java 目录

软件开发介绍

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

人机交互方式:
a、图形化界面(Graphical User Interface ,GUI):该方式简单直观,使用者易于接受,容易上手操作。
b、命令行方式(Command Line Interface, CLI):需要有一个控制台,输入特定的指令,让计算机完成一些操作。较为麻烦,需要记录一些命令。

常用的DOS命令:
通过Win+R调出windows的控制台命令行模式。
基本常用命令:
dir : 列出当前目录下的文件以及文件夹
md : 创建目录
rd : 删除目录
cd : 进入指定目录
cd.. : 退回到上一级目录
cd: 退回到根目录
del : 删除文件
exit : 退出 dos 命令行
补充:echo javase>1.doc (将内容javase内容写入到创建的1.doc文件中)
常用快捷键:
← →:移动光标
↑ ↓:调阅历史操作命令
Delete和Backspace:删除字符

计算机编程语言介绍:

语言:人与人之间用于沟通的一种方式。
计算机语言:人与计算机交流的方式。如果人要与计算机交流,就要学习计算机语言,计算机语言有很多总,如:C、C++、Java、PHP、Kotlin,Python,Scala等。

语言的节点划分:
第一代语言:计算机语言,指令以二进制代码形式存在。
第二代语言:汇编语言,使用助记符(便于人们记忆、并能描述指令功能和指令操作数的符号,助记符是表明指令功能的英语单词或其缩写)表示一条计算机指令。

第三代语言:高级语言。C、Pascal、面向过程的语言(结构化程序设计语言);C++ 面向过程/面向对象;Java跨平台的纯面向对象的语言;.NET跨语言的平台;Python、Scala……。

面向过程的语音和面向对象的语言的区别解析:
面向过程的语言:只需要将一件事的过程用程序化的语言描述出来就可以了,第一部怎么做,第二步怎么做,没有拓展性。
面向对象的语言:描述的并不是过程,是哪一个对象可以做这件事,调用这个对象的方式实现这个过程,后期需要扩展完全可以在这个对象中添加相应的功能,具有良好的扩展性。真正的面向对象,任何的函数和变量都是以类封装去起来的。
对于面向过程的语言具有开发效率慢,但执行效率快的特点,对于面向对象的语言则是开发效率快,但执行效率慢的特点。

Java介绍

Java语言概述:是SUN(Stanford University Network,斯坦福大学网络公司)1995年推出的一门高级变成语言。随着Java奇数在web方面的不断成熟,已经成为Web应用程序的首选开发语言。

Java简史:
1991年 Green项目,开发语言最初命名为Oak (橡树)
1994年,开发组意识到Oak 非常适合于互联网
1996年,发布JDK 1.0,约8.3万个网页应用Java技术来制作
1997年,发布JDK 1.1,JavaOne会议召开,创当时全球同类会议规模之最
1998年,发布JDK 1.2,同年发布企业平台J2EE
1999年,Java分成J2SE、J2EE和J2ME,JSP/Servlet技术诞生
2004年,发布里程碑式版本:JDK 1.5,为突出此版本的重要性,更名为JDK 5.0
2005年,J2SE -> JavaSE,J2EE -> JavaEE,J2ME -> JavaME
2009年,Oracle公司收购SUN,交易价格74亿美元
2011年,发布JDK 7.0
2014年,发布JDK 8.0,是继JDK 5.0以来变化最大的版本
2017年,发布JDK 9.0,最大限度实现模块化
2018年3月,发布JDK 10.0,版本号也称为18.3
2018年9月,发布JDK 11.0,版本号也称为18.9

Java技术体系平台 :

从Java的应用领域来分,Java语言的应用方向主要表现在以下几个方面:
• 企业级应用:主要指复杂的大企业的软件系统、各种类型的网站。Java的安全机制以及
它的跨平台的优势,使它在分布式系统领域开发中有广泛应用。应用领域包括金融、电
信、交通、电子商务等。
• Android平台应用:Android应用程序使用Java语言编写。Android开发水平的高低
很大程度上取决于Java语言核心能力是否扎实。
• 大数据平台开发:各类框架有Hadoop,spark,storm,flink等,就这类技术生态
圈来讲,还有各种中间件如flume,kafka,sqoop等等 ,这些框架以及工具大多数
是用Java编写而成,但提供诸如Java,scala,Python,R等各种语言API供编程。
• 移动领域应用:主要表现在消费和嵌入式领域,是指在各种小型设备上的应用,包括手
机、PDA、机顶盒、汽车通信设备等。

Java语言的特点 :
特点一、面向对象
两个基本概念:类、对象
三大特性:封装、继承、多态
特点二、健壮性
吸收了C/C++语言的优点,但去掉了其影响程序健壮性的部分(如指针、内存的申请与
释放等),提供了一个相对安全的内存管理和访问机制
特点三、跨平台性
通过Java语言编写的应用程序在不同的系统平台上都可以运行。“Write
once , Run Anywhere”
实现原理:只要在需要运行 java 应用程序的操作系统上,先安装一个Java虚拟机 (JVM Java
Virtual Machine) 即可。由JVM来负责Java程序在该系统中的运行。

JAVA程序实际是在JVM上进行运行的。对于不同的操作系统,提供的JVM是不一样的。

Java两种核心机制 :
(1)Java虚拟机(Java Virtal Machine)
JVM是一个虚拟的计算机,具有指令集并使用不同的存储区域。负责执行指令,管理数据、内存、寄存器。对于不同的平台有不同的虚拟机。只有某平台提供了对应的java虚拟机,java程序才可以在此平台上运行。Java虚拟机机制屏蔽了底层运行平台的差异,实现了“一次编译,到处运行”。

JVM依赖于操作系统,在操作系统上运行。
(2)垃圾收集机制(Garbage Collection)
垃圾回收即不再使用的内存空间应回收。
在C/C++语言中,由程序员手动负责回收无用内存。
Java语言消除了程序员回收无用内存空间的责任:它提供一种系统级线程跟踪存储空间的分配情况。 并在JVM空闲时,检查并释放哪些可被释放的存储空间。
垃圾回收在Java程序运行过程中自动进行,程序员无法精准控制和干预。
注:Java程序还会出现内存泄露和内存溢出的问题!

JDK、JRE、JVM的概念和关系:
JDK(Java Development Kit, java开发工具包):JDK是提供给Java开发人员使用的,其中包含了java的开发工具(编译工具javac.exe 和打包工具jar.exe等),也包括了JRE。因此在安装了JDK,就不用再单独安装JER了。
JRE(Java Runtime Environment, java运行环境):包括Java虚拟机(JVM,Java virtual Machine)和Java程序所需的核心类库等。如果只需要运行一个已经开发哈的Java程序,计算机中只需要安装JRE即可。

JDK = JRE + 开发工具集(例如Javac编译工具等)
JRE = JVM + Java SE标准类库

JDK目录解析:
安装好JDK后,JDK的目录如图所示:

bin目录:存放各个开发工具(如编译工具javac.java)
db目录:Java数据库
include目录:用C语言编写的头文件
jre目录:java运行环境
lib目录:存放一些相关的JAR包等库文件
src.zip:存放一些开源的代码以及类库

环境变量配置:
目的:希望在任何文件目录下,都可以执行JDK目录中bin目录下的开发指令。
配置环境变量PATH的作用:
每次执行 java 的工具都要进入到bin目录下,是非常麻烦的。可不可以在任何目
录下都可以执行java的工具呢?
根据windows系统在查找可执行程序的原理,可以将java工具所在路径定义到
path 环境变量中,让系统帮我们去找运行执行的程序。当我们运行某个命令的时候,系统先在当前目录下查找有没有该命令,再去配置的环境变量PATH中取搜索有无该命令。
**配置方法: **
方法一 直接配置路径:
我的电脑--属性--高级系统设置--环境变量
编辑 path 环境变量,在变量值开始处加上java工具所在目录,后面用 “ ; ”和其他值分隔
开即可。
打开DOS命令行,任意目录下敲入javac。如果出现javac 的参数信息,配置成功。

方法二 通过变量先记录其上层目录,再去配置:
我的电脑--属性--高级系统设置--环境变量
新建,变量名:JAVA_HOME, 变量值:C:\Program Files\Java\jdk1.8.0_91
编辑path环境变量,加上%JAVA_HOME%\bin即可。

编写第一个程序:HelloWord,并通过命令行对其进行编译、运行:

首先对java源程序的编译运行的所有步骤进行一个说明:
1、首先编写java的源程序(java的源程序是以扩展名为.java的文件)
2、通过javac编译工具对java源程序进行编译,生成字节码文件(扩展名为.class的文件,其名称为源文件中的类名,即可执行的java程序)
3、最后通过java命令对生成的字节码文件(class文件)进行运行。

具体过程:
现在目录下建立一个java源程序(拓展名为.java):

在我们刚刚创建的源程序中通过记事本对其进行编辑,写入代码,如图所示:

接下去,我们打开命令行,并进入到该源程序所在目录中:

然后我们通过javac对我们的java源程序进行编译(不区分大小写,因为windows是不区分大小写):

我们可以看到,我们java源程序所在目录中,生成了一个名字与我们java源程序中类名一样,扩展名是class的字节码文件:

最后我们通过java命令,去运行一下这个字节码文件(java区分大小写,Test类不能写成test):

可以看到,成功显示源文件中需要输出的内容Hello World!

对第一个java程序总结:
1、java程序编写-编译-运行的过程:
编写:我们将编写的java代码保存在以.java结尾的源文件中
编译:使用javac.exe命令编译我们的java源文件,生成一个字节码文件。
运行:通过java命令,运行字节码文件(有main方法,即是作为程序入口的类)。
2、在一个java源文件中可以声明多个class类,但是,最多只能有一个类申明为public的(且该类要和文件名同名)
3、程序的入口是main()方法,格式是固定的。
public static void main(String[] args)
public static void main(String args[])
public static void main(String[] a)

4、输出语句:
System.out.println(“数据”); 先输出数据再换行
System.out.print(“数据”); 输出数据不换行
5、每个执行语句末尾都以分号(;)结束。
6、编译的过程:对源文件编译以后,会生成一个或多个字节码文件。字节码文件的文件名与java源文件中的类名相同。
7、运行只能有main方法的类。

其他相关知识要点

注释:
作用:对代码进行解释说明。
注释类型:
单行注释://注释文字
多行注释:/* 注释文字 /
文档注释(java特有):
/
*
@author 指定java程序的作者
@version 指定源文件的版本
*/
文档注释的内容可以被JDK提供的工具javadoc所解析的(javadoc只能解析文档注释,对于单行和多行注释不适用),然后生成一套以网页文件形
式体现的该程序的说明文档。

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

Java API文档:
API(Application Programming Interface, 应用程序编程接口):是java提供的基本编程接口,即提供的一些类库。
API文档:即如何使用API的说明

Java开发工具:

文本编辑工具:
记事本
UltraEdit
EditPlus
TextPad
NotePad

**Java集成开发环境(IDE,Integrated Development Environment): **
JBuilder
NetBeans
Eclipse
MyEclipse
IntelliJ IDEA

标签:Java,语言,JDK,概述,JVM,java,目录
From: https://www.cnblogs.com/bananayjy/p/17020043.html

相关文章

  • 【Java】垃圾回收机制
    原文链接:https://blog.csdn.net/qq_40479372/article/details/126743899 Java垃圾回收机制垃圾回收(GC,GarbageCollection)是Java虚拟机(JVM)垃圾回收器提供的一种用于在......
  • JavaScript 数组-概念,创建数组,遍历数组,新增元素
    JavaScript数组-概念,创建数组,遍历数组,新增元素目录JavaScript数组-概念,创建数组,遍历数组,新增元素1.数组的概念2.创建数组2.1数组的创建方式2.2利用new创建数组2.......
  • 狂神说Java(零基础) Java入门笔记
    1.Java帝国的诞生​1972年C诞生,比1995年诞生的Java早了20多年。C贴近硬件,运行极快,效率极高,用于操作系统、编译器、数据库、网络系统等,但是在指针和内存管理方面,常常让程序......
  • JavaScript原型与原型链
    面向对象在讲原型之前必须要将js与面向对象与之区分,之前我一直用面向对象的思想在往js上套,所以导致很多东西绞尽脑汁都没想明白,听人一句劝少走点弯路吧!......
  • JavaScript 流程控制-循环for,while,do-while
    JavaScript流程控制-循环目录JavaScript流程控制-循环1.循环2.for循环2.1语法结构2.2for循环重复相同的代码2.3for循环重复不相同的代码3.双重for循环3.1......
  • 【Java自动化测试】-Mock操作详解
    一、moco框架下载地址:https://repo1.maven.org/maven2/com/github/dreamhead/moco-runner/1.3.0/moco执行:java-jar./moco-runner-1.3.0-standalone.jarhttp-p8888......
  • JavaScript 流程控制-分支if,三元,Switch
    JavaScript流程控制-分支目录JavaScript流程控制-分支1.流程控制2.顺序流程控制3.分支流程控制if语句3.1分支结构3.2if语句3.3ifelse语句(双分支语句)3.4ife......
  • Java web
     1.1、WEB开发的相关知识WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源。Internet上供外界访问的Web资源分为:静态web资源(如html......
  • Java Map 集合类简介
    java.util中的集合类包含Java中某些最常用的类。最常用的集合类是List和Map。List的具体实现包括ArrayList和Vector,它们是可变大小的列表,比较适合构建、存储和......
  • C语言中产生随机数
    问:C语言中产生随机数的函数是什么?C语言中产生随机数的函数是什么?(好象有两个)以及这两个函数的头文件是什么?问题补充:rand和srand有什么区别没?答:#inc......