Java语言概述与开发环境——Java教案(一)
作者:互联网
Java语言概述与开发环境
文章目录
1. Java语言的发展历史
Java的诞生是一种误会。
1990 年年末, Sun 公司预料嵌入式系统将在未来家用电器领域大显身手 于是s un 公司成立了 个由 James Gosling (詹姆斯·高斯林)领导的" Green 计划",准备为下 代智能 如电视机、微波炉、电话)编写 个通用控制系统。
-
使用C++ ,复杂,缺少垃圾回收,可移植性,分布式,多线程功能
- 怎么办?
- James Gosling:自己搞一个语言Oak
- 其他人:自己搞,铁定凉。
- 怎么办?
-
结果:铁定凉凉。
- Green 计划转化成FirstPerson 有限公司(团队牛批的成一个公司了)
- 干什么的?创建一种高度互动的设备。
- 然后呢?跟风时代华纳公司开发机灵盒
- 接着呢?Fi rstPerson 平台给予用户过多的控制权
- 不好吗?用户好,他们可能没钱赚
- 结果呢?投标败给SGI,与3DO机灵盒交易没有成功
- 最后呢?项目夭折,人员调离。
- Green 计划转化成FirstPerson 有限公司(团队牛批的成一个公司了)
-
塞翁失马,焉知非福
- 1994年夏,互联网浏览器出现
- Gosling对Oak进行改造
- 1994年秋,完成第一个Java的网页浏览器
- 上司给予高度评价,但是Oak被别人注册,改名Java
- 1995年公布Java,免费给大家使用。几个月后,10万多人下载了Java,使用Java制作游戏。
-
人红是非多,语言也一样
- 1996年,发布JDK1.0。包含运行环境(JRE)和开发环境(JDK)
- JRE:核心API,继承API,用户界面API,发布技术,Java虚拟机
- JDK:Java程序的编译器(javac命令)
- 1998年 Java分为J2EE,J2SE,J2ME。三个版本
- 2006年,发布JDK1.6 之后两年一个版本
- 1996年,发布JDK1.0。包含运行环境(JRE)和开发环境(JDK)
-
被白送
- oracle收购sun 花了74亿doller,sun gg
- 了解oracle与谷歌的官司,你就知道为什么被白送了。
- 了解微软与sun的官司,你就知道为啥java需要配环境了。
- oracle收购sun 花了74亿doller,sun gg
-
变态式发展
- 从 Java 9 发布之后,新版本发布变成了每 6 个月一次。
- 目前在Java17,我们在用Java8 why?中国人都在用
2. Java程序运行机制
Java 种特殊的高级语言 ,它既具有解释型语言的特征,也具有编译型语言的特征,因为 Java 程序要经过先编译,后解释两个步骤。
编译:使用专门的编译器,针对特定平台将某种高级语言的源代码一次性翻译成该平台硬件执行的机器码,并包装成该平台能识别的可执行程序的格式,称为编译。编译生成的可执行程序可以脱离开发环境,在特定平台上运行。
优点:执行效率高
缺点:很难移植到其他平台(复制到特定平台,针对平台进行修改)
解释:使用专门的解释器对源程序执行解释成平台的机器码并立即执行的语言。解释型语言相当于把编译型语言中的编译和解释过程混合到一起完成。
优点:方便移植(提供特定平台的解释器即可)
缺点:执行效率低(每次都需要先进行编译)
Java编译步骤不会生成特定的平台机(操作系统)器码,而是生成一种个与平台无关的字节码(.class文件),这种字节码不是可执行的,必须使用Java解释器来执行。Java程序的执行过程必须经过先编译,后解释两个步骤。
Java的字节码文件不面向任何平台,只面向Jvm。不同平台上的JVM都是不同的,但是他们都提供了相同的接口。
Jvm是Java跨平台的主要部分。
如果没有JVM,相同的字节码在不同的平台上运行几乎是不可能的,只有通过相应的转换,而JVM就是这个转换器。
JVM细节:指令集,寄存器,类文件的格式,栈,垃圾回收堆,存储器。
目的:提供统一的标准,最终实现Java程序的平台无关性。
3. 开发Java的准备
JDK:Java标准开发包,Java应用程序开发包,提供了编译,运行Java程序所需的各种工具和资源,包括Java编译器,Java运行时环境,以及常用的Java类库。开发Java程序的必要条件。
JRE:Java运行时环境,包含运行Java程序的核心虚拟机Jvm,还包含运行Java程序的必要条件。
JVM:Jvm是运行Java程序的核心虚拟机。
Java环境配置
-
下载jdk
- 解压我发送的jdk安装包
- 路径D:\java\jdk1.8.0_131
-
配置环境变量
-
配置:
-
jdk的安装目录
-
D:\java\jdk1.8.0_131
-
-
配置Path:
-
%JAVA_HOME%\bin
-
%JAVA_HOME%\jre\bin;
-
-
配置CLASSPATH
-
.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar
-
-
测试是否安装成功
-
java javac
-
-
-
下载eclipse
-
输出:helloword!
设置环境变量
Java程序必须经过的两个步骤:
- 将源文件编译成字节码 javac命令
- 解释执行平台无关的字节码程序 java 命令
打开控制台,输入java和javac,找不到可运行程序。虽然我们安装了jdk,但是计算机并不知道安装到了哪里。
Windows操作系统根据Path环境变量来查找指令。Path环境变量的值时一系列路径,Windows操作系统将这一系列路径中依次查找命令,如果能找到,则该命令可执行。
因此,我们需要把命令所在路径添加到Path环境变量中。
用户变量:为当前用户安装,只有当前系统用户可以使用。
系统变量:这台电脑的所有用户都可以使用。
环境变量设置
(77条消息) 配置JAVA的环境变量_夏夜的博客-CSDN博客_java环境变量配置
4. 第一个Java程序
目的:输出编程语言界最著名的程序:“Hello World”。
工具:notepad++
第一步:编写java程序
public class HelloWorld{
public static void main(String[] args){
System.out.println("hello world");
}
}
第二步:编译成.class文件
问题:为什么我们的打印,并没有输出?
javac -d . HelloWorld.java
第三步:运行java程序
java HelloWorld
实操:写一个个人介绍。
5. 垃圾回收机制
传统C/C++等编程语言。
程序员负责回收已分配的内存。程序员并不知道内存应该何时被释放。如果分配出去的内存得不到及时回收,就会引起系统运行速度下降,甚至瘫痪,称为内存泄露。
缺点:
- 忘记回收无用内存,导致内存泄露,降低性能。
- 程序错误地回收程序核心类库内存,导致系统崩溃。
java语言
Java的内存分配和回收都是由JRE在后台自动进行。JRE会负责不再使用的内存。称为垃圾回收机制。
JRE会提供一个后台线程进行检测和控制,一半都是在CPU空闲或内存不足时进行垃圾回收,而程序员无法精确控制垃圾回收的时间和顺序。
Java中的对象存在堆内存中,垃圾回收是一种动态存储管理技术,会自动释放不被程序引用的对象,按照特定的垃圾回收算法实现内存资源的自动回收功能。
优点:
- 提高编程效率。不需要花时间来解决一个难懂的存储器问题。缩短开发时间
- 保护程序的完整性,
缺点:
- 开销影响程序性能。Java虚拟机必须跟踪程序中游泳的对象,才可以确定哪些对象是无用的,并最终释放这些无用对象。
- 并不能保证100%回收,不断优化中。
回收特点:
- 回收无用对象的内存空间,只能回收内存资源,对于物理资源(数据库连接,磁盘I/O)等无能为力
- 便捷回收不再使用的对象,对象置null
- 垃圾回收的不可预见性,JVM采用了不同的垃圾回收机制和回收算法,可能定时发生,可能cpu空闲发生,也有可能和原始的垃圾回收一样,内存消耗极限时发生。
- 可以调用Runtime对象的gc()和System.gc()方法来建议系统进行垃圾回收,但是只是建议。
- 垃圾回收的精确性
- 能够精确地标记或者的对象。(回收废弃对象的前提)
- 垃圾回收器能够精确地对象之间的引用关系。(实现归并和复制等算法的必要条件,通过这种方式,可以保证所有对象都被可靠的回收,所有对象都被重新分配,减少内存碎片的产生)
- JVM有多重不同的垃圾回收实现,每种回收机制因其算法差异可能表现各异。
6. 使用什么IDE工具
入门:使用黑窗口运行hello world
练习:使用eclipse
企业级开发:使用IDEA
7. 本章小结
课后练习
•1、谈谈你对JAVA的认识?
•2、分析比较编译器与解释器的异同?
•3、下载JDK、安装、配置JDK?
•4、用下载JDK的方法去下载Java SE 8 Documentation。
•5、编写第一个java程序,并编译、执行?
•6、试用java程序输出九九乘法表?
标签:教案,Java,程序,回收,概述,内存,java,垃圾 来源: https://blog.csdn.net/zhang19903848257/article/details/121425694