本文从基础的知识出发,整理与Java开发相关的知识点。文中记录的主要是本人认为比较重要的但又陌生的知识,每个人情况都不尽相同,权且当做Java复习过程中的查漏补缺,也希望能对大家有所帮助。
Java简介概述
- 如何定义软件工程师和Java软件工程师?
软件工程师是一种职位的名称,通常是通过计算机的“某种编程语言”完成软件的开发。
因此,Java软件工程师是通过Java语言完成软件的开发。 - 计算机的组成
计算机=硬件(CPU、内存、硬盘、鼠标、键盘、显示器等)+软件;
软件=系统软件
(直接和硬件交互的软件,如win7,winxp,win8,win10,linux等操作系统)+应用软件
(运行在系统软件之上的软件,如QQ、微信、某某网站等) - DOS命令
DOS全称是“磁盘操作系统”,比较原始的操作计算机方式就是通过DOS命令操作计算机,而脱离图形化界面,如下形式:
命令 | 作用 |
---|---|
cd 【目录路径】 | 进入某个目录 |
cls | 清屏 |
dir 【文件名】 | 查看是否存在某个文件 |
del 【文件名】 | 删除某个文件 |
del *.class | 删除以.class结尾的所有文件 |
目录路径为绝对路径和相对路径。
绝对路径:表示该路径从某个盘符
下作为出发点的路径
相对路径:表示该路径从当前所在的路径
下作为出发点的路径
注意:(1)若我们修改了环境变量如Path,需要重新打开DOS窗口才能验证环境变量是否生效;(2)可以向DOS窗口中拖拽文件,来显示该文件的绝对路径。
- 计算机语言发展史
1)什么是计算机编程语言
提前地人为地定制好的一套交流规则,只要遵守这套语法规则,那么人和计算机之间就可以很好地沟通。
2)计算机语言发展史
第一代语言:机器语言
主要编写二进制码,直接编写100101010101这样的二进制,以打孔机为代表
第二代语言:低级语言
主要以汇编语言为代表,在低级语言中已经引入了一些英语单词,例如变量赋值mov
第三代语言:高级语言
几乎和人类的语言完全相同,即使是没有学习过计算机编程,只要看到这段代码就知道该代码主要完成什么功能,例如C语言、C++、Java
总之,编程语言的发展方向是:向着人类更加容易理解的方向发展。 - Java的三个版本
J2SE
【Java的标准版本】 该版本是基础,无论以后走EE还是ME,SE是必须要精通的。J2SE是SUN公司为java程序员准备的一套“基础类库”,这套基础类库学习之后,可以完成最基本的操作,例如,文件的读写、线程的控制…
J2EE
【Java的企业版本】这是SUN公司为程序员专门准备的一套“类库”,这套类库可以协助程序员完成企业级软件的开发,如:OA办公系统、进销存系统、超市系统…
J2ME
【Java的微型版本】 这套类库可以协助程序员完成微型设备的嵌入式开发,Java最初就是做微型设备嵌入式开发的。
2005年,在Java诞生十周年的时候,以上三个模块改名为JavaSE、JavaEE和JavaME - Java语言的发展史
- Java语言诞生于1995年
- 在1995年之前SUN公司(该公司目前被Oracle收购)为了占领智能电子消费市场,派James Gosling(Java之父)领导团队开发了一个Oak(橡树)语言
- 1996年,JDK1.0诞生
- 什么是JDK
JDK全称Java Development Kit,即Java开发工具包。做Java开发必须安装的一个工具包,由于SUN公司被Oracle公司收购,所以可从Oracle官网下载:http://www.oracle.com
JDK和JRE的区别
:JDK是Java开发工具包,是Java开发人员必须使用的工具包;JRE是Java运行时环境,如果想要运行Java程序,则必须要有Java运行时坏境;JDK安装完成后会自带一个JRE;如果在某台机器上,只需要运行Java程序,则不需要安装JDK,只需要安装JRE即可。
什么是JVM
:JVM是Java虚拟机,是虚构出来的计算机;JDK包括JRE,JRE又包括JVM;JVM是Java语言实现跨平台的法宝,而之所以能够实现跨平台,是因为不同操作系统的JVM不同
Java跨平台的实现:
Windows操作系统和Linux操作系统的内核肯定不同,这两个操作系统执行指令的方式也是不一样的,所以,显然 java程序不能直接和操作系统打交道。SUN的团队很聪明,他们想了一个办法,让java程序运行在一台虚拟的计算机当中,这个虚拟的计算机叫做Java虚拟机,简称JVM。Java虚拟机再和底层的操作系统打交道。
- Java语言的特性
简单性
:相对C++而言,Java中不再支持多继承,并且屏蔽了指针的概念;Java语言底层是C++实现的,不是C语言
面向对象
:Java是纯面向对象的,更符合人的思维逻辑,更容易理解
可移植性
:又称跨平台,Java程序可以做到一次编译,到处运行,Java程序可以在不做任何修改的情况下在Windows操作系统和Linux操作系统上运行
多线程
:Java支持多线程,允许一个应用程序同时存在两个或两个以上的线程,用于支持事务并发和多任务处理
健壮性
:和自动垃圾回收机制有关(简称GC机制),Java语言运行过程中产生的垃圾是自动回收的,不需要程序员关心。
安全性
:包括四个层次,语言级安全性、编译时安全性、运行时安全性、可执行代码安全性 - Java的加载与执行
在Java的整个生命周期,包括两个重要的阶段,分别是:编译阶段
和运行阶段
运行Java程序的执行原理:
在编译阶段,通过运行javac软件,将java源文件编译成字节码文件,如执行javac A.java
,执行完毕,生成 .class字节码文件。
在运行阶段,执行java A
命令会启动Java虚拟机JVM;JVM启动后会启动类加载器ClassLoader;ClassLoader会在硬盘上的某个位置搜索 A.class字节码文件;若找到给文件,则将其装载到JVM,JVM通过解释器将字节码文件解释成10010101这样的二进制文件,然后操作系统执行二进制文件和底层硬件平台进行交互。 - classpath的作用
- 我们知道在windows操作系统上,Path是给操作系统指路的,同理,classpath是给类加载器ClassLoader指路的,它是属于Java语言的环境变量,不属于windows操作系统。
- 默认情况下,ClassLoader从当前路径下加载xxx.class字节码文件,若我们配置了classpath环境变量,则类加载器只去指定的路径当中加载字节码文件。