Java帝国的诞生
C & C
- 1972年C诞生
- 贴近硬件,运行极快,效率较高
- 操作系统,编译器,数据库,网络系统等
- 指针和内存管理 --两把沉重的枷锁
- 1982年C++诞生 --非常复杂,不好学,涉及到很多计算机底层的东西
- 面向对象
- 兼容C
- 图形领域、游戏等
反抗
要建立一个新的语言
- 语法有点像C
- 没有指针
- 没有内存管理
- 真正的可移植性,编写一次,到处运行
- 面向对象
- 类型安全
- 高质量的类库
- ......
一开始命名为C++--,理念是在C++的基础上进行了优化,后来根据门口的橡树命名为oak,但是oak被别人使用了,后来改为Java;
为了实现真正的跨平台,在每个操作系统之上,又增加了一个抽象层,叫Java虚拟机,统称JVM,只要装了这个环境,Java代码在任何操作系统上都能跑。
Java初生
- 1995年,开发图形界面程序Applet,让网页变得生动,Java火了
- C语言程序员迅速加入Java领域
- Java 2 标准版(J2SE):去占领桌面
- Java 2 移动版(J2ME):去占领手机
- Java 2 企业版(J2EE):去占领服务器 -->weblogic
- 大量巨头的加入
三高问题:高可用、高性能、高并发
Java发展
- 它们基于Java开发了巨多的平台,系统,工具
- 构建工具:Ant、Maven、Jekins
- 应用服务器:Tomcat、Jetty、Jboss、Websphere(IBM开发)、weblogic
- Web开发:Structs、Spring、Hibernate、myBatis
- 开发工具:Eclipse(IBM开发)、Netbean、intellij idea、Jbuilder
- ......
看着服务器端市场被Java王国占领,微软推出.NET来对抗,微软的系统是封闭的,所有的软件都是自家的,开发工具Visual Studio,应用服务器IIS,数据库SQL Serve,只要用了.NET,几乎就绑定了微软,而且微软的系统只能运行在Windows服务器上,Windows服务器在高端市场占有率太低了。
Ruby诞生,对标Java,但并没有对Java产生威胁,用Ruby搭建大型商业系统非常少见。
除了Ruby,还有PHP、Python等,这些都适合快速开发不太复杂的Web系统,但是大型的Web系统,都是非常复杂的,只有Java能做到。
- 2006:Hadoop(大数据领域)
Java入侵大数据领域,熟悉分布式文件管理系统(MapReduce),很快就能编写处理海量数据的程序。 - 2008:Android(手机端)
运行在Android之上的,正是Java
一个伟大的帝国诞生了
Java特性和优势
- 简单性 --C++语法纯净版,没有头文件,没有指针运算,也不用分配内存
- 面向对象 --是一种程序设计技术,将重点放在对象以及对象之间的接口上,模拟的是人的思维去写程序,学习非常的快
- 可移植性 --跨平台性,Write Once, Run Anywhere!
- 高性能
- 分布式
- 动态性 --反射机制,让Java具有动态性
- 多线程
- 安全性
- 健壮性 --程序不会崩溃,异常机制
Java三大版本
- Write Once, Run Anywhere --JVM,Java虚拟机,可以跑在所有的平台上,所以Java可以实现跨平台
- JavaSE:标准版(桌面程序,控制台开发...) --整个Java的基础和核心
- JavaME:嵌入式开发(手机,小家电...) --相当于Java的微缩版本,但目前基本没人用了
- JavaEE:企业级开发(web端,服务器开发...) --提供了很多企业级开发完整的解决方案
JDK JRE JVM
- JDK:Java Development Kit(Java开发者工具),包含JDK和JVM,除此之外,还包含很多自己的工具用于程序开发,比如javac、java用来编译、运行Java程序的,javados可以生成一篇文档,jar可以把java程序打包成一个应用。
- JRE:Java Runtime Environment(Java运行时环境),包含了JVM,Applet等;JDK就是在JRE基础上扩充了一些开发工具;只要安装JRE,就可以运行java程序了,但是如果要开发,就要安装JDK。
- JVM:Java虚拟机,相当于在所有的操作系统上模拟了一个小巧的CPU,去处理Java相关的东西,Java以此实现跨平台。
搭建开发环境
- 现在更新到JDK16了,但是高版本在企业中用的并不是很多,每次更新只是增加了一些新特性
- 企业中用得最多的是JDK7和JDK8,主流是JDK8
卸载JDK的方法
- 删除Java安装目录(路径可在环境变量JAVA_HOME下查找)
- 删除JAVA_HOME
- 删除Path下和Java相关的变量
- java -version查看一下
安装JDK
- 百度搜索JDK8,找到下载地址
- 同意协议
- 下载电脑对应版本
- 双击安装JDK
- 记住安装的路径
- 配置环境变量
- 我的电脑-->右键-->属性
- 环境变量-->在系统变量新建JAVA_HOME,路径填刚才的安装目录 --一定要保证变量名是JAVA_HOME,因为以后很多环境要求是这个名字
- 配置path变量:%JAVA_HOME%\bin,%JAVA_HOME%\jre\bin
- 测试JDK是否安装成功
- 打开CMD
- java -version
Helloworld详解
- 随便建一个文件夹,存放代码
- 新建一个java文件
- 文件后缀名为.java
- Hello.java
- 【注意点】系统可能没有显示文件后缀,需要手动打开
- 编写代码
public class Hello{
public static void main(String[] args){
System.out.print("Hello,World!");
}
}
- 编译:javac java文件,会生成一个class文件
- 运行class文件:java class文件(不加后缀)
可能遇到的情况
- 每个单词的大小写不能出问题,Java是大小写敏感的
- 尽量使用英文
- 文件名和类名必须保证一致,且首字母习惯大写
- 使用了中文符号
Java程序运行机制
- 编译型
- 解释型
编译和解释都有“翻译”的意思,它们的区别在于时机不同:
编译型:把整个代码转换成计算机可以执行的代码 complile,负责编译的程序就叫'编译器';编译后的代码执行起来比较快。
解释型:执行哪里就翻译哪里,如果回头再执行,就再翻译,对性能有一定损失。
- 程序运行机制
Java语言既有编译型语言的特征,又有解释型语言的特征:
- java源文件通过Java编译器变成class文件,class文件再去被解释执行,可以理解为Java文件在执行前经过了一次“预编译”,生成的代码是介于机器码和Java源代码之间的一种程序,叫做字节码文件
- 字节码文件运行时,会到JVM虚拟机
- 字节码校验器就是检查代码写得对不对
- 解释器就是逐条翻译运行
IDEA介绍
- IDE:集成开发环境
- 能编写代码
- 及时查错,方便调试
- 还有很多其他功能
- IEDA:一般指IntelliJ IDEA,IDE的一种
psvm /main、sout - Eclipse也是一种IDE