JavaSEday01
JavaSE基础day01
Java语言概述
Java语言是SUN(Stanford University Network,斯坦福大学网络公司)1995年推出的一门高级编程语言,Java语言是一种面向Internet的编程语言。Java一开始富有吸引力是因为Java程序可以在Web浏览器中运行。这些Java程序被称Java小程序(applet)。applet使用现代的图形用户界面与Web用户进行交互。applet内嵌在HTML代码中。随着Java技术在Web方面的不断成熟,已经成为Web应用程序的首选开发语言。
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技术体系平台
- JavaSE(Java Standard Edition)标准版
支持面向桌面级应用(如Windows下的应用程序)的Java平台,提供了完整的Java核心API,此版本以前成为J2SE - JavaEE(Java Enterprise Edition)企业版
是为开发企业环境下的应用程序提供的一套解决方案,该技术体系中包含的技术如:Servlet、JSP等,主要针对于Web应用程序开发。版本以前称为J2EE - Java ME(Java Micro Education)小型版
支持Java程序运行在移动终端(手机、PDA)上的平台,对JavaAPI有所精简,并加入了针对移动终端的支持,此版本以前被称为J2ME - Java Card
支持一些Java的小程序(Applets)运行在小内存设备上的平台(如智能卡)
Java语言的诞生
Java之父James Gosling团队在开发 “Green” 项目时,发现c缺少垃圾回收系统,还有可移植的安全性,分布程序设计和多线程功能。最后,他们想要一种易于移植到各种设备上的平台。
Java的特性:
- Java语言是安全的
- Java语言是体系结构中立的
- Java语言是解释型的
- Java语言是性能略高的
- Java语言是原生支持多线程的
Java语言的特点
- 特点一、面向对象
两个基本概念:类、对象
三大特性:封装、继承、多态 - 特点二、健壮性
吸收了C/C++语言的优点,但去掉了其影响程序健壮性的部分(如指针,内存的申请与释放等等),提供了一个相对安全的内存管理和访问机制 - 特点三、跨平台性
跨平台性:通过Java语言编写的应用程序在不同的系统平台上都可以运行。“Write once,Run Anywhere”
跨平台的原理:只要在需要运行Java应用程序的操作系统上,先安装一个Java虚拟机(JVM Java Virtual Machine)即可。由JVM来负责Java程序在该系统中的运行
Java核心机制一:Java虚拟机
JVM是一个虚拟的计算机,具有指令集并使用不同的存储区域。负责执行指令,管理数据、内存、寄存器。
对于不同平台,有不同的虚拟机
只有某平台提供了对应的Java虚拟机,Java程序才可以在此平台运行
Java虚拟机机制屏蔽了底层运行平台的差别,实现了“一次编译,到处运行”
Java核心机制二:垃圾回收
不再使用的内存空间应回收—— 垃圾回收。
在C/C++等语言中,由程序员负责回收无用内存。
Java 语言消除了程序员回收无用内存空间的责任:它提供一种系统级线程跟踪存储空
间的分配情况。并在JVM空闲时,检查并释放那些可被释放的存储空间。
垃圾回收在Java程序运行过程中自动进行,程序员无法精确控制和干预。
Java程序虽然存在垃圾回收机制但还是会发生内存泄漏和内存溢出的问题