根据B站课程《狂神说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%in,%JAVA_HOME%jrein
-
-
测试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