Java入门学习笔记——java概述
java学习过程是在b站看的动力节点java零基础教程视频,本来看的是郝斌老师的教程,一方面是声音画面稍微有点不同步,还有年代稍微有点长,对我这种需要速成的,学习完可能还要找有差异的地方继续学习,干脆就看新点的视频教程了。在这里也是记录自己的学习笔记。
1、Java概述
Java语言发展史
- Java语言诞生于1995年。
- 其实在1995年之前SUN公司(太阳微电子公司:该公司目前被Oracle(甲骨文:做数据库的)收购了)为了占领智能电子消费产品市场,派James Gosling领导团队开发了一个Oak(橡树)语言。
- 1996年:JDK1.0诞生
- 什么是JDK?
JDK开发工具包
做Java开发必须安装的一个工具包,该工具包需要从官网下载。
目前SUN被Oracle收购了,所以下载需要去Oracle下载。
- 什么是JDK?
- Java包括三大块:
- JavaSE(Java标准版)
- JavaEE(Java企业版)
- JavaME(Java微型版)
其中JavaSE是基础,以后主攻方向是JavaSE方向。
Java语言特性【开源、免费、纯面向对象、跨平台】
- 简单性:
相对而言的,例如java中不再支持多继承,C++是支持多继承的,多继承比较复杂
C++中有指针,Java中屏蔽了指针的概念。
所以相对来说Java是简单的。
Java语言底层是C++实现的,不是C语言 - 面向对象
Java是纯面向对象的,更符合人的思维模式,更容易理解。 - 可移植性/跨平台
什么是可移植性?
java程序可以做到一次编译,到处运行。
也就是说java程序可以在windows操作系统上运行,不做任何修改,同样的java程序可以直接放到Linux操作系统上运行,这个被称为Java程序的可移植性,或者叫做跨平台。
windows操作系统内核和Linux操作系统的内核不同,两个操作系统执行指令的方式也是不一样的。java程序不直接和操作系统打交道,SUN的团队让java程序运行在一台虚拟的计算机当中,这个虚拟的计算机叫做Java虚拟机,简称JVM。JVM虚拟机再和底层的操作系统打交道,JVM有不同的版本。 - 多线程
- 健壮性:
和自动垃圾回收机制有关,自动垃圾回收机制简称GC机制。
Java语言运行过程中产生的垃圾是自动回收的,不需要程序员关心。 - 安全性
…
Java的加载与执行
- Java程序的运行包括两个重要的阶段,分别是:编译阶段和运行阶段
- 编译阶段
编译生成的程序被称为xxxx.class字节码文件- 编译阶段主要的任务是检查Java源程序是否符合Java语法,符合Java语法则能够生成正常的字节码文件,不符合Java语法规则则无法生成字节码文件。
- 字节码文件中不是纯粹的二进制,这种文件无法在操作系统当中直接执行。
- 编译阶段的过程:
- 程序员需要在硬盘的某个位置(位置随意)新建一个.java扩展名的文件,该文件被称为Java源文件,源文件当中编写的是Java源代码/源程序。而这个源程序是不能随意编写,必须符合Java语法规则(Java语法规则是需要记忆的)
- Java程序员需要使用JDK当中自带的javac.exe命令进行Java程序的编译。
Javac在DOS命令窗口中使用,
javac的使用规则:javac java源文件的路径。javac是一个java编译器工具/命令。 - 一个java源文件可以编译生成多个.class文件
- 字节码文件/class文件是最终要执行的文件,所以说class文件生成之后,java源文件删除并不会影响java程序的执行。但是一般java源程序不要删除,因为class文件最终执行效果可能不是我们想要的,那么这个时候需要回头重新修改java源程序,然后将java源程序重新编译生成新的class文件,然后在运行这个class程序,生成新的效果。
- 编译结束之后,可以将class文件拷贝到其他操作系统当中运行。【跨平台】
- 运行阶段【可以在其他操作系统当中,跨平台】
- JDK安装之后,除了自带一个javac.exe之外,还有另一个工具/命令,叫做java.exe,java.exe命令主要负责运行阶段。
- java.exe在DOS窗口中使用,使用方法:java 类名
例如:
硬盘上有一个A.class,那么就这样用:java A
硬盘上有一个B.class,那么就这样用:java B
硬盘上有一个C.class,那么就这样用:java C - 运行阶段的过程是:
- 打开DOS命令窗口
- 输入:java A
- java.exe命令会启动Java虚拟机(JVM),JVM会启动类加载器ClassLoader
- ClassLoader会去硬盘上搜索A.class文件,找到该文件则将该字节码文件装载到JVM当中。
- JVM将A.class字节码文件解释成二进制这样数据
- 然后操作系统执行二进制和底层硬件平台进行交互。
开始第一个Java程序
- 保证计算机当中已经安装了文本编辑器EditPlus
- 安装JDK【JDK一般需要从oracle的官网下载】
- JDK、JRE、JVM的关系搞清楚
- JDK目录的介绍:
JDK/bin:该目录下存放了很多命令,例如javac.exe和java.exe
javac.exe负责编译
java.exe负责运行 - 开发HelloWorld.java源程序
- 将HelloWorld.java源程序通过javac工具进行编译:
- javac 源文件路径
- 配置环境变量path
path环境变量和java语言没有关系,path环境变量是属于windows操作系统的一个知识点,path环境变量是专门给windows操作系统指路的。
将javac所在的目录配置到环境变量path中,就能在DOS窗口中随意使用javac
- 运行java程序
- 必须将路径切换到“D:\course\JavaProjects\02-JavaSE\day01”目录下
- 执行:java HelloWorld
- java 类名
Java程序运行原理
- 打开DOS命令窗口,执行java HelloWorld,执行原理?
- java.exe命令会启动JVM
- JVM启动之后会启动类加载器ClassLoader
- ClassLoader会在硬盘上的某个位置搜索HelloWorld.class字节码文件
- 找到该文件则执行
- 找不到该文件则报错
疑问:ClassLoader是在哪个位置上搜索HelloWorld.class字节码文件的?
- 默认情况下,ClassLoader从当前路径下加载xxx.class字节码文件
- 当然,也可以让ClassLoader去某个指定的路径下加载字节码文件,这时需要配置环境变量classpath
- classpath环境变量属于java语言中的环境变量,不属于windows操作系统【PATH环境变量属于操作系统】
- classpath是给ClassLoader类加载器指路的。
- 设置这样的环境变量:classpath=D:\course\JavaProjects\02-JavaSE\day02
打开dos命令窗口在任意位置,都可以执行:java HelloWorld - classpath环境变量没有配置的话,类加载器默认从当前路径下找字节码文件,
当classpath环境变量配置为某个指定的路径之后,类加载器只去指定的路径当中加载字节码文件。 - 综上所述,环境变量classpath不再配置,这样类加载器会自动从当前路径下加载class字节码文件。
所以,每一次执行.class程序的时候,需要在DOS命令窗口中先切换到.class字节码文件所在的路径下。
然后运行。 - 当然,classpath也可以这样配置:classpath=.
注意:
路径中“. .”表示上级目录
路径中“.”表示当前目录
关于java源程序当中的注释
- 什么是注释?注释的作用是什么?
- 出现在java的源程序当中,对java源代码的解释说明
- 注释不会被编译到.class字节码文件当中
- 一个好的开发习惯应该是多编写注释,这样程序的可读性比较强。
- java中的注释怎么写呢?
- 单行注释
//单行注释,只注释当前行 - 多行注释
/*
多行注释
多行注释
多行注释
多行注释
多行注释
…
*/ - javadoc注释
/
* javadoc注释
* javadoc注释
* javadoc注释
* javadoc注释
* javadoc注释
* javadoc注释
*/
注意:这种注释是比较专业的注释,该注释信息会被javadoc.exe工具解析提取并生成帮助文档。
- 单行注释
对HelloWorld程序进行解释:
需要记忆:
* public
* class
* static
* void
* System.out.println(""); 向控制台输出消息
* 类体
* 方法体
* 类体中不能直接编写java语句【除声明变量之外】
* 一个java语句必须以“;”结束
* 方法体中可以编写多条java语句
* 主方法是程序的入口,固定写法,SUN规定的。
public class和class的区别:
- 一个java源文件当中可以定义多个class
- 一个java源文件当中public的class不是必须的
- 一个class会对应生成一个xxx.class字节码文件
- 一个java源文件当中定义公开的类的话,只能有一个,并且该类名称必须和java源文件名称一致。
- 每一个class当中都可以编写main方法,都可以设定程序的入口,想执行B.class中的main方法:java B,
想执行X.class当中的main方法:java X - 注意:当在命令窗口中执行java Hello,那么要求Hello.class当中必须有主方法。没有主方法会出现运行
阶段的错误:
D:\course\JavaProjects\02-JavaSE\day02>java Hello
错误: 在类 B 中找不到主方法, 请将主方法定义为:
public static void main(String[] args)
总结第一章需要掌握的内容
- 理解java的加载与执行
- 能够自己搭建java的开发环境
- 能够独立编写HelloWorld程序,编译并运行
- 掌握环境变量path的原理以及如何配置
- 掌握环境变量classpath的原理以及如何配置
- java中的注释
- public class 和 class 的区别
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://sigusoft.com/bj/4736.html