2021-10-12  2021-10-12    8273 字   17 分钟

java简介

语言

计算机语言

语言: 交互 获取信息。

计算机语言:人与计算机进行交互,计算机为我们做事。

计算机语言发展: 机器语言:二进制 0 1 纸带打点,速度快 汇编语言:助记符, mov add 高级计算机语言:java c c# .net html css python……. —》翻译

软件架构

应用软件 和 系统软件 应用软件:解决问题。QQ 计算器 画图 word 系统软件:硬件 hp 联想 华硕 系统:windows 苹果

软件架构 B/S:浏览器/服务器 页游 随时可玩 体验差 C/S:客户端 下客户端 体验好

前端 后端 前端 :客户端能展现的。web ui 后台: 需求处理 数据: 数据库

什么是java语言?

java之父 詹姆斯 高斯林

oak 橡树 java语言的前身

Java 是由 Sun Microsystems 公司于 1995 年 5 月推出的 Java 面向对象程序设计语言和 Java 平台的总称。由 James Gosling和同事们共同研发,并在 1995 年正式推出。后来 Sun 公司被 Oracle (甲骨文)公司收购,Java 也随之成为 Oracle 公司的产品。

Java发展的版本/平台

  • 1.2版本 规定了java的发展方向:j2ee j2se j2me 1.2 确立了java的发展方向。
  • 1.5 1.6 版本 修改java的语法结构 和重命名为: javaee javase javame 1.5 /1.6 改进了java的语法
  • java 15 版本

sun公司—》oracle公司

  • java 8 版本

1.8 lambda表达式 StreamAPI lambda streamAPI

Java分为三个体系:

JavaSE(J2SE)(Java2 Platform Standard Edition,java平台标准版) 标准版:桌面:客户端 。第一阶段

JavaEE(J2EE)(Java 2 Platform,Enterprise Edition,java平台企业版) 企业版:电商项目、门户网站

JavaME(J2ME)(Java 2 Platform Micro Edition,java平台微型版)。 缩小版:嵌入式。 安卓

  • 更名:1.6

2005 年 6 月,JavaOne 大会召开,SUN 公司公开 Java SE 6。此时,Java 的各种版本已经更名,以取消其中的数字 “2”:J2EE 更名为 Java EE,J2SE 更名为Java SE,J2ME 更名为 Java ME。

javaee 更名 :jakartaee 雅加达

主要特性

  • 开源
  • 自动的垃圾回收机制
  • Java 语言是简单的: Java 语言的语法与 C 语言和 C++ 语言很接近,使得大多数程序员很容易学习和使用。另一方面,Java 丢弃了 C++ 中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换。特别地,Java 语言不使用指针,而是引用。并提供了自动分配和回收内存空间,使得程序员不必为内存管理而担忧。
  • Java 语言是面向对象的: Java 语言提供类、接口和继承等面向对象的特性,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为 implements)。Java 语言全面支持动态绑定,而 C++语言只对虚函数使用动态绑定。总之,Java语言是一个纯的面向对象程序设计语言。
  • Java语言是分布式的: Java 语言支持 Internet 应用的开发,在基本的 Java 应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括 URL、URLConnection、Socket、ServerSocket 等。Java 的 RMI(远程方法激活)机制也是开发分布式应用的重要手段。
  • Java 语言是健壮的: Java 的强类型机制、异常处理、垃圾的自动收集等是 Java 程序健壮性的重要保证。对指针的丢弃是 Java 的明智选择。Java 的安全检查机制使得 Java 更具健壮性。
  • Java语言是安全的: Java通常被用在网络环境中,为此,Java 提供了一个安全机制以防恶意代码的攻击。除了Java 语言具有的许多安全特性以外,Java 对通过网络下载的类具有一个安全防范机制(类 ClassLoader),如分配不同的名字空间以防替代本地的同名类、字节代码检查,并提供安全管理机制(类 SecurityManager)让 Java 应用设置安全哨兵。
  • Java 语言是体系结构中立的: Java 程序(后缀为 java 的文件)在 Java 平台上被编译为体系结构中立的字节码格式(后缀为 class 的文件),然后可以在实现这个 Java 平台的任何系统中运行。这种途径适合于异构的网络环境和软件的分发。
  • Java 语言是可移植的: 这种可移植性来源于体系结构中立性,另外,Java 还严格规定了各个基本数据类型的长度。Java 系统本身也具有很强的可移植性,Java 编译器是用 Java 实现的,Java 的运行环境是用 ANSI C 实现的。
  • Java 语言是解释型的: 如前所述,Java 程序在 Java 平台上被编译为字节码格式,然后可以在实现这个 Java 平台的任何系统中运行。在运行时,Java 平台中的 Java 解释器对这些字节码进行解释执行,执行过程中需要的类在联接阶段被载入到运行环境中。
  • Java 是高性能的: 与那些解释型的高级脚本语言相比,Java 的确是高性能的。事实上,Java 的运行速度随着 JIT(Just-In-Time)编译器技术的发展越来越接近于 C++。
  • Java 语言是多线程的: 在 Java 语言中,线程是一种特殊的对象,它必须由 Thread 类或其子(孙)类来创建。通常有两种方法来创建线程:其一,使用型构为 Thread(Runnable) 的构造子类将一个实现了 Runnable 接口的对象包装成一个线程,其二,从 Thread 类派生出子类并重写 run 方法,使用该子类创建的对象即为线程。值得注意的是 Thread 类已经实现了 Runnable 接口,因此,任何一个线程均有它的 run 方法,而 run 方法中包含了线程所要运行的代码。线程的活动由一组方法来控制。Java 语言支持多个线程的同时执行,并提供多线程之间的同步机制(关键字为 synchronized)。
  • Java 语言是动态的: Java 语言的设计目标之一是适应于动态变化的环境。Java 程序需要的类能够动态地被载入到运行环境,也可以通过网络来载入所需要的类。这也有利于软件的升级。另外,Java 中的类有一个运行时刻的表示,能进行运行时刻的类型检查。

发展历程

1995 年 5 月 23 日,Java 语言诞生 1996 年 1 月,第一个 JDK-JDK1.0 诞生 1996 年 4 月,10 个最主要的操作系统供应商申明将在其产品中嵌入 JAVA 技术 1996 年 9 月,约 8.3 万个网页应用了 JAVA 技术来制作 1997 年 2 月 18 日,JDK1.1 发布 1997 年 4 月 2 日,JavaOne 会议召开,参与者逾一万人,创当时全球同类会议规模之纪录 1997 年 9 月,JavaDeveloperConnection 社区成员超过十万 1998 年 2 月,JDK1.1 被下载超过 2,000,000次 1998 年 12 月 8 日,JAVA2 企业平台 J2EE 发布 1999 年 6月,SUN 公司发布 Java 的三个版本:标准版(JavaSE, 以前是 J2SE)、企业版(JavaEE 以前是 J2EE)和微型版(JavaME,以前是 J2ME) Sun公司发布了第二代Java平台(简称为Java2)的3个版本:J2ME(Java2 Micro Edition,Java2平台的微型版),应用于移动、无线及有限资源的环境;J2SE(Java 2 Standard Edition,Java 2平台的标准版),应用于桌面环境;J2EE(Java 2Enterprise Edition,Java 2平台的企业版),应用于基于Java的应用服务器。Java 2平台的发布,是Java发展过程中最重要的一个里程碑,标志着Java的应用开始普及。 2000 年 5 月 8 日,JDK1.3 发布 2000 年 5 月 29 日,JDK1.4 发布 2001 年 6 月 5 日,NOKIA 宣布,到 2003 年将出售 1 亿部支持 Java 的手机 2001 年 9 月 24 日,J2EE1.3 发布 2002 年 2 月 26 日,J2SE1.4 发布,自此 Java 的计算能力有了大幅提升 2004 年 9 月 30 日 18:00PM,J2SE1.5 发布,成为 Java 语言发展史上的又一里程碑。为了表示该版本的重要性,J2SE1.5 更名为 Java SE 5.0 2005 年 6 月,JavaOne 大会召开,SUN 公司公开 Java SE 6。此时,Java 的各种版本已经更名,以取消其中的数字 “2”:J2EE 更名为 Java EE,J2SE 更名为 Java SE,J2ME 更名为 Java ME 2006年12月,Sun公司发布了JDK1.6(也被称为Java EE 6)。2006年11月13日,Java技术的发明者Sun公司宣布,将Java技术作为免费软件对外发布。Sun公司正式发布的有关Java平台标准版的第一批源代码,以及Java迷你版的可执行源代码。从2007年3月起,全世界所有的开发人员均可对Java源代码进行修改 。 2009 年 04 月 20 日,甲骨文 74 亿美元收购 Sun,取得 Java 的版权。 2010 年 11 月,由于甲骨文对于 Java 社区的不友善,因此 Apache 扬言将退出 JCP。 2011 年 7 月 28 日,甲骨文发布 Java7.0 的正式版。 2014 年 3 月 18 日,Oracle 公司发表 Java SE 8。代表性技术包括:Lambda表达式、函数式接口、方法引用和构造器调用、Stream API、接口中的默认方法和静态方法、Optional 类、新时间日期API等。 2017 年 9 月 21 日,Oracle 公司发表 Java SE 9代表性技术包括:Java 平台级模块系统,Linking,JShell (交互式 Java REPL),改进的 Javadoc,改进的 Stream API,集合工厂方法,私有接口方法,HTTP/2,多版本兼容 JAR。 2018 年 3 月 21 日,Oracle 公司发表 Java SE 10 2018 年 9 月 25 日,Java SE 11 发布 2019 年 3 月 20 日,Java SE 12 ??

java虚拟机

JVM

Java虚拟机有自己完善的硬件架构,如处理器、堆栈等,还具有相应的指令系统。

Java虚拟机本质上就是一个程序,当它在命令行上启动的时候,就开始执行保存在某字节码文件中的指令。Java语言的可移植性正是建立在Java虚拟机的基础上。任何平台只要装有针对于该平台的Java虚拟机,字节码文件(.class)就可以在该平台上运行。这就是“一次编译,多次运行”。

Java虚拟机不仅是一种跨平台的软件,而且是一种新的网络计算平台。该平台包括许多相关的技术,如符合开放接口标准的各种API、优化技术等。Java技术使同一种应用可以运行在不同的平台上。Java平台可分为两部分,即Java虚拟机(Java virtual machine,JVM)和Java API类库。

编译性

java语言属于高级计算机语言。计算机识别: 机器语言。

javac命令

转换成机器能够识别的代码:二进制字节码文件 用.class

jvm: Java Virtual Machine java虚拟机:虚拟的计算机,实质是一个软件。让.class文件

可以在该软件上运行。

跨平台

JVM 是一个“桥梁”,是一个“中间件”,是实现跨平台的关键,Java 代码首先被编译成字节码文件,再由 JVM 将字节码文件翻译成机器语言,从而达到运行 Java 程序的目的。

注意:编译的结果不是生成机器码,而是生成字节码,字节码不能直接运行,必须通过 JVM 翻译成机器码才能运行。不同平台下编译生成的字节码是一样的,但是由 JVM 翻译成的机器码却不一样。

所以,运行 Java 程序必须有 JVM 的支持,因为编译的结果不是机器码,必须要经过 JVM 的再次翻译才能执行。即使你将 Java 程序打包成可执行文件(例如 .exe),仍然需要JVM的支持。

注意:跨平台的是 Java 程序,不是 JVM。JVM 是用 C/C++ 开发的,是编译后的机器码,不能跨平台,不同平台下需要安装不同版本的 JVM。

  • 平台:支撑某种事物运行的环境 短信平台

  • 计算机平台 : 计算机系统 windows linux 安卓 MAC

  • 跨:可以在任意平台运行。

  • 跨平台实质: .class二进制字节码文件依靠jvm可以在任意的平台上运行。但是要求该平台装有jvm。 口号:writeonce run everywhere 一次编译 到处运行

  • 跨平台的实质:依靠jvm实现。

JRE和JDK

定义

JRE(Java Runtime Enviroment) 是 Java 的运行环境。面向 Java 程序的使用者,而不是开发者。如果你仅下载并安装了 JRE,那么你的系统只能运行 Java 程序。JRE 是运行 Java 程序所必须环境的集合,包含 JVM 标准实现及 Java 核心类库。它包括 Java 虚拟机、Java 平台核心类和支持文件。它不包含开发工具(编译器、调试器等)。

JDK(Java Development Kit) 又称 J2SDK(Java2 Software Development Kit),是 Java 开发工具包,它提供了 Java 的开发环境(提供了编译器 javac 等工具,用于将 java 文件编译为 class 文件)和运行环境(提 供了 JVM 和 Runtime 辅助包,用于解析 class 文件使其得到运行)。如果你下载并安装了 JDK,那么你不仅可以开发 Java 程序,也同时拥有了运行 Java 程序的平台。JDK 是整个 Java 的核心,包括了 Java 运行环境(JRE),一堆 Java 工具 tools.jar 和 Java 标准类库 (rt.jar)。

联系

jvm:java虚拟机 。用来运行class文件的。

jre:Java Runtime Environment java运行环境。

jre = jvm + 核心类库。

jdk:Java Development Kit java软件开发工具包。

jdk = jre + java开发工具

JDK包括了JRE JRE包括了JVM

JDK的下载与安装

下载JDK

首先我们需要下载java开发工具包JDK

下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html

在下载页面中你需要选择接受许可,并根据自己的系统选择对应的版本

安装配置

原因:使想在任意目录运行的代码可以在任意目录运行

下载后JDK的安装根据提示进行,还有安装JDK的时候也会安装JRE,一并安装就可以了

安装JDK,安装过程中可以自定义安装目录等信息,例如我们选择安装目录为 C:\Program Files (x86)\Java\jdk

安装完成后,右击"我的电脑",点击"属性",选择"高级系统设置";

选择"高级"选项卡,点击"环境变量";

在 “系统变量” 中设置 3 项属性,JAVA_HOME、PATH、CLASSPATH(大小写无所谓),若已存在则点击"编辑",不存在则点击"新建"。

注意:如果使用 1.5 以上版本的 JDK,不用设置 CLASSPATH 环境变量,也可以正常编译和运行 Java 程序

变量设置参数如下:

  • 变量名:JAVA_HOME

  • 变量值:C:\Program Files (x86)\Java\jdk // 要根据自己的实际路径配置

  • 变量名:CLASSPATH

  • 变量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar; //记得前面有个"."

  • 变量名:Path

  • 变量值:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

注意:在 Windows10 中,Path 变量里是分条显示的,我们需要将%JAVA_HOME%\bin;``%JAVA_HOME%\jre\bin;分开添加,否则无法识别:

测试JDK是否安装成功

“开始”->“运行”,键入"cmd";

键入命令: java -versionjavajavac 几个命令,出现以下信息,说明环境变量配置成功;

java程序开发三个步骤

编写,编译,运行

Javac.exe编译器

Java.exe解释器

HelloWorld

  • 工具

    记事本工具:

    • 记事本工具

    • 增强记事本: Editplus、sublime Text、notepad++

    集成开发环境:

    • IDE:

    • 常用的: Eclipse 、MyEclipse、IDEA

  • java第一个小案例:

    • 1.创建一个后缀名为.java的源文件

  • 2.编辑代码

    class HellWorld{
        //main:程序的入口main方法。
        //public公开的权限修饰符
        //static静态的目前的方法一直会带着,直到面向对象就可以去掉了。
        //void无返回值的。
        //main方法的名称,由于main方法,当前名称不可改变。
        //(数据类型参数名称,数据类型参数名称)参数列表
        //String类字符串用“”引来的字符,例如:"abc"
        //数组[]
        //args表示参数名称可以随便起名
        //{}表示方法的范围
    	public static void main (String[] args){
    	//输出语句:在控制台上输出内容
    	//System.out.println(要输出的内容)
    	//System系统的
    	//out表示输出
    	//print/ln表示打印加ln表示该行结束后换行。
    	//.表示调用关系
        	System.out.println("helloworld")
    	}
    }
    

HelloWorld注意事项

​ 如果class前面用public修饰了,要求文件名与类名必须一致。并且一个java文件中,只能有一个public修饰的类,但是一个java文件中,如果都没有public修饰,可以放多个,要是有public修饰,有且只有一个可以用public修饰,并且类名与文件名相同,其它都不能用public。

总结:

​ 一个java文件中,有且只有一个public修饰的类。

2.书写规则:
①{前面有一个空格,后面有一个换行缩进。
②}一般跟着层次结构,最下面。
③不同功能的代码段之间用空行表示。
④运算符左右两侧会有空格。

1.人机交互

1.人机交互

人和计算机进行交流。方式:

① 图形化界面:

② 命令行:

1> 进入:

a) win + R 调出运行窗口

在里面输入cmd

b)也可以通过在当前目录下 shift+鼠标右键

2>常见命令:

a)切换盘符:

格式: 盘符 + [:]

b)切换路径:

格式 :

cd + 空格 + 路径

cd\表示返回根目录。

cd..表示返回上一层目录

2.环境变量的配置

1.原因

可以让javac的命令 可以在任意目录下运行。引入了环境变量。

path:

windows系统查找可执行程序时,首先在当前目录下,查找,如果可以找到,直接执行,如果找不到,

到path路径对应的路径里面查找,如果找到,执行,如果找不到,报异常。

***3.配置方式:

3.1直接配置法

1.找到path环境变量:

我的电脑右键->属性

2.校验:

javac -version

3.注意:

① 配置时,如果有多个jdk,建议把需要当前使用的jdk配置在前面。因为path路径从前向后读

取。

② 每个路径需要分号进行路径分隔。

3.2动态获取法

1.目的:

尽量减少对path路径的操作,减少由于对path路径的操作,而引起的问题。

2.步骤:

① 新建一个变量:

变量名称:JAVA_HOME

注意:变量名称可以是任意起名,建议叫JAVA_HOME

② 动态获取:

格式:

%变量名称%

③ 最终配置:

4.环境变量配置的原因/好处

可以让需要在任意目录下运行的命令,在任意目录下可以运行。

3.HelloWorld第一个小程序

1.开发工具

1.记事本工具:

① 记事本工具:notepad

② 增强型记事本工具:editplus sublimeText3 notepad++

2.集成开发环境:IDE

Eclipse IDEA MyEclipse

2.开发步骤:

  1. 创建.java 后缀名称的源文件。

  2. 编写代码

  3. 编译代码: .class的二进制字节码文件。

  4. 运行代码:将.class的二进制字节码文件 加载到jvm中 运行。

  5. 调试代码: 代码有问题,运行报错。

2.1 创建.java的源文件 1.注意扩展名必须是java

2.2 编写代码

java的语法规则:

① class :类

声明一个类:

class 类名 {

}

2.3 编译代码

命令 :javac

格式:

javac 文件名称.后缀名称

注意:

javac命令使用时,必须是文件的名称并且带后缀名。

一个java文件中,可以存放多个class文件。

编译后,编译成的是.class文件,并且以class的类名为名称。

2.4 运行代码

命令 :java

格式:

java 类名

2.5 程序的入口 称为main方法:又叫程序的入口。又叫主方法。

public static void main (String[] args) {

}

① public 公开的 公共的 :公园

② static: 静态的。在面向对象学习之前,方法上需要加.

③ void:无返回值的。

④ main:规定该方法就叫main

⑤ () 参数列表

1》 String:字符串 格式用"“引起来的字符,所有的在双引号中的内容都是原样输出。“abc”

2》[] 表示数组:

3》 args 表示参数的名称 ,可以改变。

⑥ 代码

class HW {

public static void main(String[] args){

}

}

2.6 打印/输出语句

① System:系统

② out:输出

③ print:打印

三个单词用点进行连接。

格式:

System.out.print(123)

注意:

语句结束之后,用分号分隔表示语句结束。

print如果加ln表示在该语句输出之后,换行。

代码:

class HW {

public static void main(String[] args){

System.out.println(123);

System.out.println(“abc”);

}

}

2.7 练习

**


****4.书写程序时注意事项

1.符号

2.书写规则

*3.public修饰类

5.Editplus工具

1.字体

必须是英文半角。

① { 前面有一个空格,后面有一个换行 缩进。

② } 一般跟着层次结构,最下面。

③ 不同功能的代码段之间用空行表示。

④ 运算符 左右两侧会有空格。

public修饰类:

一旦public修饰类,类名必须与文件名相同。并且一个java文件中,有且仅有一个类能够被

public修饰。

但是一个java文件中,可以有多个class存在。

首选项–》常规–》字体2.配置编译和运行

2.1 编译2.2 运行2.3 快捷键/自动补全

使用缩写 +空格键进行自动补全2.4自定义 快捷键2.5去掉bak 备份

6.注释

1.作用

2.注释的分类(***)

对代码进行解释说明的文字。3.注释好处:

  1. 关键字与标识符

7.1关键字

1.关键字

① 单行注释:对单行有效

格式:

//

② 多行注释:对多行有效,不允许嵌套使用。

格式:

/* */

③ 文档注释:多用于类或方法上进行解释说明。

格式:

/**

*/

① 解释说明

② 排错

③ 梳理思路

java赋予了特殊含义的单词。

例如:

class public void

注意:

(***) 保留字:

goto

const7.2 标识符

1.标识符

2.起名规则:

起标识作用的符号,程序员为类、方法、变量等成员起的字符序列,用于区分不同的成员的字符序列。

(***) 1.字母 数字 _ $ 组成,并且数字不能开头。

2.支持中文,但是不建议用中文。

3.区分大小写,但是不建议用大小写区分。

4.不能使用关键字。

5.不建议使用java中提供的类名。


avatar
青山
悟已往之不谏 知来者之可追
一言
今日诗词
站点信息
本站访客数 :
本站总访问量 :