[ 一 ] JAVA概述-学习笔记


JAVA学习概述

本文章为JAVA学习笔记,参考尚硅谷教程。

1 JAVA基础学习路线

无法显示图片时显示的文字
JAVA基础学习过程

2 JAVA基础背景

2.1 JAVA背景

SUN(Stanford University Network,斯坦福大学网络公司)1995 年推出的门高级编程语言。
Java之父James Gosling团队在开发项目时,发现C语言缺少垃圾回收系统,还有可移植的安全性、分布程序设计和多线程功能。最后,他们想要一种易于移植到各种设备上的平台。
是一种面向Internet的编程语言。Java一开始富有吸引力是因为Java程序可以在Web浏览器中运行。这些Java程序被称为Java小程序(applet)。applet使用现代的图形用户界面与Web用户进行交互。applet内嵌在HTML代码中。
随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。

2.2 JAVA语言特性

Java看成是类C语言发展和衍生的产物。Java确实是从C语言和C++语言继承了许多成份,比如Java语言的变量声明,操作符形式,参数传递,流程控制等方面和C语言、C++语言完全相同。
Java是一个纯粹的面向对象的程序设计语言。Java语言是强制面向对象的,Java语言提供类、接口和继承等原语,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为implements)。
面向对象
两个基本概念:类、对象
三大特性:封装、继承、多态
让程序更好达到高内聚低耦合的标准。
Java舍弃C语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)、多重继承(以接口取代)等特性,增加垃圾回收器功能用于回收不再被引用的对象所占据的内存空间。
JDK1.5又引入了泛型编程(Generic Programming)、类型安全的枚举不定长参数自动装/拆箱
Java语言是安全的。Java通常被用在网络环境中,为此,Java提供了一个安全机制以防恶意代码的攻击。如:安全防范机制(类ClassLoader),如分配不同的名字空间以防替代本地的同名类、字节代码检查。
Java语言是健壮的。Java的强类型机制、异常处理、垃圾的自动收集等是Java程序健壮性的重要保证。吸收C/C++语言的优点,但去掉了其影响程序健壮性的部分(如指针、内存的申请与释放等),提供了一个相对安全的内存管理和访问机制。
Java是性能略高的。与那些解释型的高级脚本语言相比,Java的性能还是较优的。
Java语言是原生支持多线程的。在Java语言中,线程是一种特殊的对象,它必须由Thread类或其子(孙)类来创建。
Java语言是体系结构中立的 / 解释型的 / 具有跨平台性。Java程序(后缀为java的文件)在Java平台上被编译为体系结构中立的字节码格式(后缀为class的文件),然后可以在实现这个Java平台的任何系统的解释器中运行。只要在需要运行 java 应用程序的操作系统上,先安装一个Java虚拟机 (JVM Java Virtual Machine) 即可。由JVM来负责Java程序在该系统中的运行。

注:Class 文件、字节码文件和类文件是一个意思

2.3 JAVA简史

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

发展阶段:

发行版本发行时间备注
Java 1.01996.01.23Sun公司发布了Java的第一个开发工具包
Java 1.11997.02.19JavaOne会议召开,创当时全球同类会议规模之最。
Java 1.21998.12.08Java拆分成:J2SE(标准版)、J2EE(企业版)、J2ME(小型版)
Java 1.32000.05.08
Java1.42004.02.06
Java 5.02004.09.30①版本号从1.4直接更新至5.0;②平台更名为JavaSE、JavaEE、JavaME
Java 6.02006.12.112009.04.20 Oracle宣布收购SUN公司
2009.04.20Oracle公司收购SUN,交易价格74亿美元。
Java 7.02011.07.02
Java 8.02014.03.18此版本是继Java 5.0以来变化最大的版本。是长期支持版本(LTS)
Java 9.02017.09.22①此版本开始,每半年更新一次;②Java 9.0开始不再支持windows 32位系统
Java 10.02018.03.21
Java 11.02018.09.25JDK安装包取消独立JRE安装包,是长期支持版本(LTS)
Java 12.02019.03.19
Java17.02021.09发布Java 17.0,版本号也称为21.9,是长期支持版本。
Java19.02022.09发布Java19.0,版本号也称为22.9。

在这里插入图片描述

2.4 Java 技术体系平台

Java SE(Java Standard Edition)标准版
支持面向桌面级应用(如Windows下的应用程序)的Java平台,即定位个人计算机的应用开发
提供了完整的Java核心API,包括用户界面接口AWT及Swing,网络功能与国际化、图像处理能力以及输入输出支持等。
此版本以前称为J2SE
Java EE(Java Enterprise Edition)企业版
为开发企业环境下的应用程序提供的一套解决方案,即定位在服务器端的Web应用开发
JavaEE是JavaSE的扩展,增加了用于服务器开发的类库。如:Servlet能够延伸服务器的功能,通过请求-响应的模式来处理客户端的请求;JSP是一种可以将Java程序代码内嵌在网页内的技术。
版本以前称为J2EE
Java ME(Java Micro Edition)小型版
支持Java程序运行在移动终端(手机、PDA)上的平台,即定位在消费性电子产品的应用开发。对Java API有所精简,并加入了针对移动终端的支持
JavaME是JavaSE的内伸,精简了JavaSE 的核心类库,同时也提供自己的扩展类。增加了适合微小装置的类库:javax.microedition.io.*等。
此版本以前称为J2ME
Java Card
支持一些Java小程序(Applets)运行在小内存设备(如智能卡)上的平台

注意:Android开发不等同于Java ME的开发

在这里插入图片描述

2.5 Java语言运行机制及运行过程

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

在这里插入图片描述
在这里插入图片描述

Java虚拟机的内存划分

为了提高运算效率,就对空间进行了不同区域的划分,因为每一片区域都有特定的处理数据方式和内存管理方式。

在这里插入图片描述

区域名称作用
虚拟机栈用于存储正在执行的每个Java方法的局部变量表等。局部变量表存放了编译期可知长度 的各种基本数据类型、对象引用,方法执行完,自动释放。
堆内存存储对象(包括数组对象),new来创建的,都存储在堆内存。
方法区存储已被虚拟机加载的类信息、常量、(静态变量)、即时编译器编译后的代码等数据。
本地方法栈当程序中调用了native的本地方法时,本地方法执行期间的内存区域
程序计数器程序计数器是CPU中的寄存器,它包含每一个线程下一条要执行的指令的地址
2.5.2 核心机制—垃圾回收
  • 不再使用的内存空间应回收,转为使用垃圾回收。
    • 在C/C++等语言中,由程序员负责回收无用内存。
    • Java 语言消除了程序员回收无用内存空间的责任:它提供一种系统级线程跟踪存储空间的分配情况。并在JVM空闲时,检查并释放那些可被释放的存储空间。
  • 垃圾回收在Java程序运行过程中自动进行,程序员无法精确控制和干预
  • 注意:Java程序仍会出现内存泄漏内存溢出问题。

2.6 环境搭建名词解释(JDK、JRE)

JDK(Java Development Kit Java开发工具包)
JDK是提供给Java开发人员使用的,其中包含了java的开发工具,也包括了JRE。所以安装了JDK,就不用在单独安装JRE了。
其中的开发工具:编译工具(javac.exe) 打包工具(jar.exe)等

JRE(Java Runtime Environment Java运行环境)
包括Java虚拟机(JVM Java Virtual Machine)和Java程序所需的核心类库等,
如果想要运行一个开发好的Java程序,计算机中只需要安装JRE即可。

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

简单而言,使用JDK的开发工具完成的java程序,交给JRE去运行。
无法显示图片
JAVA 8.0 Platform

在这里插入图片描述

在这里插入图片描述

2.7 Class 文件

程序员并不需要自己去适配不同的操作系统,大家都知道我们平时编写的 java 代码在编译成 Class 文件后才能执行,而 Class 文件可以在任何操作系统上的 JVM 上执行,这样就做到了“平台无关性”

###2.8 JDK的下载

2.9 Java API 文档

官方中文下载地址:Java SE 文档 — API 和文档 | Oracle 中国

  • API (Application Programming Interface,应用程序编程接口)是 Java 提供的基本编程接口。
  • Java语言提供了大量的基础类,因此 Oracle 也为这些基础类提供了相应的
  • API文档,用于告诉开发者如何使用这些类,以及这些类里包含的方法。

2.10 编程风格

缩进:按一次Tab

Java中的名称命名规范:

  • 包名:多单词组成时所有字母都小写:xxxyyyzzz
  • 类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz
  • 变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写:xxxYyyZzz
  • 常量名:所有字母都大写。多单词时每个单词用下划线连接:XXX_YYY_ZZZ
    • 注意1:在起名字时,为了提高阅读性,要尽量有意义,“见名知意”。
    • 注意2:java采用unicode字符集,因此标识符也可以使用汉字声明,但是不建议使用。
  • 24
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值