Java帝国的诞生
C语言
1972年诞生、贴近硬件、运行快、效率高;
两个枷锁:指针、内存管理(C语言放任不管,自己分配自己释放,编译的时候不显示,运行的时候才会报错)
C++
1982年诞生、面向对象、兼容C语言、但是更复杂(令人吃惊)、在图形领域和游戏领域还是很有用
想要建立新的语言
要求:语法像C语言、没有指针和内存管理、真正的可移植性、面向对象、安全、高质量类库……
Java应运而生
所有平台上只要安装了JVM虚拟机,就可以运行Java的代码。
JavaSE(占领桌面):开发桌面应用的程序员接受不了Java,开发出来很不好看,和原来的差别很大,并且还得费劲安装虚拟机;
JavaME(占领手机):移动互联网还未兴起;
JavaEE(占领服务器):适合团队去开发复杂的大型项目。
三高:高可用,高性能,高并发
Java特性和优势
简单性:纯净版C++,没有头文件、指针运算、分配内存;
面向对象:程序设计技术,模拟人的思维去写程序;
万物皆对象
可移植性:只要安装了JVM就能运行;
Write once, run anywhere.
高性能:即时编译存在,有可能会超过C++的效率;
分布式:Java为网络分布式环境所设计的,因为能处理很多TCPIC协议上的东西,在Java上通过URL(统一资源……)就像是操作本地文件一样,支持通过网络去进行调用;
动态性:Java本身不具有,但是后面的反射机制可以让Java有一些动态性,这也是C++语言无法实现的东西;
多线程:可以有更好的交互行为和实施行为(如同时看视频,同时听音乐,或者边打游戏边上QQ,这都是多线程)
安全性:为了适合网络的分布式环境,
健壮性:运行前会检查内存,不会让带电脑崩溃,就算有问题,也可以通过异常机制捕获异常,进而解决异常。
Java三大版本
Java最大的特性是跨平台(原因就是JVM,它可以运行在所有的系统上)
JavaSE
标准版,是Java的基础和核心;
主要用于桌面程序和控制台开发。
JavaME
相当于Java的微缩版,主要用于嵌入式的开发,但是已经基本不用了,pass。
JavaEE
E企业级开发!
JDK、JRE、JVM
JDK(Java Development Kit)
JRE(Java Runtime Environment)
JVM(Java Virtual Machine)
HelloWorld
%新建HelloWorld.java文件
public class HelloWorld{
public static void main(String[] args){
System.out.print("Hello, World!");
}
}
#在写代码的路径下,进入命令控制台
javac HelloWorld.java
java HelloWorld
#显示结果为
Hello, World!
Java开发环境搭建
Java既有编译型的特点也有解释型的特点;
编译和解释都有“解释”的意思,唯一的区别是时机,接下来进一步解释:
中国人老苗和外国人Miles同看一本中文小说,但是美国人看不懂,有两种方式:①把整本书翻译成英语给Miles看;②Miles找一个翻译官Jack,Jack看一段给Miles讲一段,但是Miles有事离开或者想回过头看的话,Jack还得重新翻译一遍,这两种方式都可以,但是各有好坏:①可以看到整体的翻译结果,但是如果作者更新了,那Miles就看不到了;②只要有变化,Miles就能知道。
编译型类似于把小说整本翻译为英文,就是把Java代码转换成计算机能够读懂的代码,可用作开发操作系统,类似的还有C和C++;
解释型可能会有一些性能损失,网页和服务器一些脚本对于速度的要求并不高,就可以使用这种语言,就可以用Java、JS、Python等。
.java源文件→.class字节码文件,这个过程叫预编译 ;
.class字节码文件进入虚拟机的类装载器中,通过字节码校验器进行检验;
检验无误后通过解释器,走一步运行一步告诉操作系统。
随着4G→8G→16G,解释型的效率也在不断提高。
使用IDEA开发
IDE(Integrated Development Environment)集成开发环境,集成了代码编写、分析、编译、调试功能等一体化的开发软件,如Eclipse,IDEA等。
IDEA安装和平常软件安装一致。
进入IDEA后,代码编辑一般都在左侧src文件夹下写;
右键单击选择New,再选择java class,命名为HelloWorld;
软件自动给出以下代码:
public class HelloWorld{
}
再输入psvm,回车,自动生成以下代码:
public class HelloWorld{
public static void main(String[] args){
}
}
继续输入sout,自动生成以下代码:
public class HelloWorld{
public static void main(String[] args){
System.out.println();
}
}
输入"Hello, World!",完成!