Java入门

Java帝国的诞生

C 的难点:指针和内存管理

指针无比强大,能够直接操作内存,但是C语言没有给它一个工具去做越界检查,导致容易犯错

C语言对内存管理处于完全放任的态度,自己分配的空间自己释放

这些问题在编译期间发现不了,只有在运行程序期间会突然暴露,使得程序员大量的时间用于处理指针和内存分配上

C语言自称是可移植性的,在这个机器上写的代码在另外一个机器上只要编译就可以了。

实际上并不是这样,它要求所有人尽可能去的使用它们标准 C函数库,针对不同的平台,每个平台它都要写一份,有一点小小的错误都会导致编译失败。

Java为了实现真正的跨平台,它们在每个操作系统之上又增加了一个抽象层,叫Java 的虚拟机,统称JVM。所有的平台上只要安装上了JVM,它们就可以跑Java的程序,这样就实现了真正的可移植性。

用Java写的程序,最后都跑在虚拟机上,除非个别情况,一般都不用看到操作系统

Applet现如今已慢慢被淘汰

J2SE、J2ME在占领桌面端和手机端的过程中败下阵来

Java在服务器端程序中占据优势,强大、健壮、安全、简单、跨平台。在J2EE 的规范指导下,发现它们特别适合团队去开发一些复杂的大型项目。

三高问题:高可用、高性能、高并发

Java特性和优势

Java 三大版本

目前Java比较偏向于web方向的设计,即服务器开发

Java最大的一个特性是跨平台性,Java里面有一个虚拟机(JVM),就是一个虚构出来的计算机,这个虚构的计算机可以跑在所有的平台上

JavaSE是Java 的基础以及核心

JavaME相当于Java 的微缩版,主要用于嵌入式开发。目前来说,几乎没有人学它了

学好JavaEE 的基础是要把JavaSE的基础打牢

JDK JRE JVM

JDK:Java开发者工具,包含JRE、JVM,在JER之上扩充了一些开发工具

JRE:Java运行时环境,只要安装了JRE,就可以运行Java程序了

JVM:Java虚拟机,可以简单的把它当作一种规范。它可以用软件来实现,也可以用硬件来实现;它就相当于在所有的操作系统上模拟了一个小巧的cpu去处理Java相关的东西

Java 的跨平台核心是用了JVM,通过Java虚拟机,屏蔽了底层系统的一些差别,实现了一次编译,到处运行

安装开发环境

企业中用得最多的是JDK7、JDK8(主流)

卸载JDK

  1. 删除java的安装目录
  2. 删除JAVA_HOME
  3. 删除path下关于java的目录
  4. 打开cmd,查看java -version

安装JDK

  1. 百度搜索JDK8,找到下载地址

  2. 同意协议,下载电脑对应的版本

  3. 双击安装JDK

  4. 记住安装的路径

  5. 配置环境变量

    1. 我的电脑-->右键-->属性-->高级系统设置

    2. 环境变量-->在系统变量中新建变量名JAVA_HOME,变量值为安装的JDK的位置

  1. 配置path变量

    在系统变量中找到path,双击打开后添加2个值

​ %%表示引用,配置JAVA_HOME中的bin目录和jre中的bin目录

把2个bin目录合并到一起写,虽然检查时安装成功,但是,在Dos中运行java程序时报错了,显示javac命令不存在,说明环境变量配置有问题

修改path中的变量,分开写,再次运行java程序,未出现报错



配置完成后,一定要点击确认!!!

4.检查JDK是否安装成功,打开cmd,输入java -version

文本编辑器:notepad++

JDK中的各目录的含义

bin:放了Java中可执行的文件

include:由于JDK是用C、C++编写的,所以在启动的时候需要引入一些C语言的头文件。这个目录里面就存放了这样一些头文件

jre:Java运行时环境

lib:放了一些Java的类库文件

src.zip:里面是一些资源文件,里面放了很多Java类,解压可以看到Java基础类的源代码

Java程序运行机制

例子:外国人要看一本中文书,有2种方式,

  1. 把中文书翻译成一本英文书

  2. 找一个翻译人员来进行翻译(一边看一边进行翻译,跟着翻译人员的进度走)

    2种的优缺点:

    把整本书变成英文,外国人可以看完;但是若书的作者更改了书的内容,外国人想要再看,得把这本书重新翻译一遍,再次花钱购买,代价较大。

    若有一个翻译人员实时翻译,若内容修改,可立马翻译过来,节省成本。但是,若翻译官有事不在,或者是外国人想要返回到前面看,那么翻译官得往回走,重新翻译一遍

编译型:类似把中文书翻译成英文书进行出售

解释型:说一句,解释一句(要执行什么,就去读什么)

计算机的高级编程语言类型分为2种,编译型和解释型。

Java属于这2种,它既有编译型的特点,又有解释型的特点

不同点:时机不同

编译型执行速度更快,因为它把所有东西都已经翻译好了,电脑只管执行就好了。对操作系统的要求比较低。因此,开发操作系统,如windows、linus等一般用编译型去做。C、C++都是编译型的

解释型,如网页,还有一些服务器的脚本,对速度要求不高,一般使用解释型的语言,边执行,边解释

Java是2者的结合。虽然Java语言比较接近解释型语言的特征,但是从Java文件变成class文件,这中间经历的过程,叫做编译的过程。把Java的源文件通过Java的编译器变成class 文件,然后这个class文件才真正的被执行。可理解成在真正执行之前经过了一次预编译,生成介于机器码和Java源代码之间的字节码文件。

字节码文件运行的时候,会走到JVM(虚拟机),把class文件放到虚拟机的类装载器中,这样,类就会被加载到JVM中,通过字节码校验器判断代码是否正确,再通过解释器解释给操作系统(走一步,运行一步)

随着技术的发展,编译型和解释型的界限变得越来越模糊

IDEA安装

IDE:集成开发环境

集成开发环境IDE,Integrated Development Environment )是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器调试器和图形用户界面等工具。集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务套。所有具备这一特性的软件或者软件套(组)都可以叫集成开发环境。如微软的Visual Studio系列,Borland的[C++ Builder](https://baike.baidu.com/item/C%2B%2B Builder)、Delphi系列等。该程序可以独立运行,也可以和其它程序并用。IDE多被用于开发HTML应用软件。例如,许多人在设计网站时使用IDE(如HomeSiteDreamWeaver等),因为很多项任务会自动生成。

IDEA优化

原文地址:https://www.cnblogs.com/xgbbd/p/13468405.html