01.一步一步上手Java编程语言-我的思路
要讲的内容
知识点 | 掌握程度 |
---|---|
概述 | 理解 |
如何学习Java思路 | 理解 |
概述
观点
学习任何知识,我们必须要知道它的本质是什么,然后再分析它的行为与作用。
我为什么这样认为呢
因为如果不知道一个东西的本质,就无法分析它的行为与作用。
如果找不到一个东西的作用时?作为一个人,怎么能说服自己有动力去深入理解它呢?
所以我认为:理解一个东西本质和以及作用让我们有了一个学习的理由。让我们给自己一份学习的动力。
如何建立学习的线索
第一步:学习每一个知识点,我必须要理解它本质是什么东西
第二步:通过它的本质理解它的行为和作用
第三步:通过它的行为理解它的应用场景
第四步:通过它的应用场景圈定学习的范围
Java编程语言的学习
要求:根据以上提供的观点来学习的Java编程语言。
Java的本质是什么
Java本质上就是一门跨平台的编程语言。
通过这句话,我们知道就两个要学习的概念:跨平台,编程语言 跨平台:意思就是指Java编写的程序可以在不同的操作系统(平台)上运行 编程语言:就是J指Java一门用于编写程序的计算机语言
跨平台的理解
说明
前提:我们必须要知道由于操作系统的底层接口不同。不同操作系统的软件是不可以跨平台的。如:windows操作系统下面的软件是不可以在Linux操作系统运行的。
问题:那么Java编写语言编写的程序是如何实现跨平台的呢?(矛盾)
Java编写的程序是运行在Java虚拟机(JVM)里面的。不管任何操作系统安装Java运行环境,就可以运行Java编写的程序。
问题:我们在Java官方里面只找到了JDK、JRE,没有JVM这个软件,它们是什么关系呢?
JDK:(Java Development Kit ),Java开发包,里面包括可JRE和开发人员使用的编译工具。(程序员使用)
JRE:(Java Runtime Environment),Java运行环境,仅仅包括了运行Java程序的JVM和基础支撑库。(软件使用者使用)
JVM:(Java Virtual Machine),Java虚拟机,就是用于运行Java程序的虚拟环境。
如图所示:
结论:综上所述,作为一个Java的开发人员,我们只要安装JDK就可以编译、运行Java程序了。里面包括了JRE以及JRE里面的JVM!
环境变量
前提:JDK需要安装,并且设置了环境变量才可以使用。
扩展问题:那么为什么需要配置环境变量JAVA_HOME和PATH呢?
JAVA_HOME:是让绿色版的Java软件可以找到Java的运行环境目录。如果不配置,绿色版的Java软件就找不到运行环境。
PATH:将JDK的bin目录放在path环境变量中,只是为了在命令行下,任何目录都可以访问到jdk/bin的命令。如果不配置,必须
只能在jdk/bin下编译Java程序。
编程语言的理解
说明
编程语言的本质就是一门语言。任何的语言都是由各种语法组成的,所以我们学习Java编程语言需要学习的就是语法!
自然界的语言语法要素:主谓宾、定状补、词汇
计算机编程语言(Java)语法要素:关键字、运算符、基础库
所以,我们学习Java编程语言只要学会两部分就可以了:
第一部分:关键字+运算符组成的各种基础语法
第二部分:基础类库的记忆
基础语法
问题:我们如何学习基础语法呢?
我们可以通过先理解语法结构是什么、再通过编写Demo核对语法结构是否正确的方式来学习。
如:
/** * 类的声明语法结构: * [修饰符] class <标识符> { //类主体 } */ public class Demo01{ public static void main(String[] args){ System.out.println("Hello World"); } }
注:以上的代码段,语法结构中的[ ]表示可选的,<>表示必须的。
根据代码段,需要解决的问题有
修饰符是可选的,那么可以设置哪些修饰符呢?
标识符的规则与规范是什么呢?
一个文件里面可以有多个类吗?可以有多个共有类吗?为什么?
基础类库
Java的基础类库,就是Java的基础库,因为Java编程语言是通过类为一个最小单元组织API。所以我们称为类库。
基础类库,在java里面称为:library,"图书馆"的意思。那么类库是”图书馆“,我们开发人员就是图书馆管理员。作为一个图书馆管理员,我们可以将一个图书馆里面的书全部看完吗?不可以能!
问题:那么我们如何学习基础类库呢?
我们只要记住Java基础类库的分类就可以了。Java是通过包这个概念分类的。所以我记住JDK API的分包就可以。
如:
说明 | 包名 | 作用 |
---|---|---|
语法支撑包(默认包) | java.lang | 存放一些Java的语法支持的支持类。包括基础类型处理、线程、反射、注解等 |
帮助包 | java.util | 存放一些常用的复杂的数据结构的实现、时间、日期、集合、链表、键值对等 |
输入输出流包 | java.io | 存放阻塞流的操作API、包括各种输入、输出流 |
安全包 | java.security | 存放一些加密算法的实现,MD5、SH、DES等 |
java.net | 存放TCP、UDP协议的实现 | |
JDBC规范包 | java.sql | 存放使用JDBC规范操作数据库的API |
思考
根据以上概述的,我感受到了先建立学习线索,圈定学习范围,再学习具体知识的好处了吗?