1.初识Java
看待世界的方式方法
我们所处的现实世界,是由一堆物理法则所约束,比如,你我的运动速度不能超过光速,重力的作用会使我们跳起后落下等。那么这一系列的法则是由谁来定义的呢?
有人说是上帝,尼采说上帝已死。有人说是自然形成,从宇宙大爆炸之后,不需要上帝之手来推动,世界自己形成了自己,宇宙的尘埃汇聚成了恒星核,慢慢地凝聚成恒星。
那这种自然背后的规则究竟从何而来?
同学们都玩过游戏吧?
游戏里有各种各样酷炫的魔法,也有大量未知的世界等待着玩家去探索。这些游戏世界的规则都是谁创造的呢?
没错,就是程序猿/媛。
程序猿/媛创造世界法则的工具,就是编程语言,用这些语言可以编织出炫幻迷离的世界,让玩家必须遵循其中的规则。
所以,回过头来,我们是否可以这么说:
我们的现实世界其实是一个只有一条命的、大型联网的、开放世界的、角色扮演游戏。
而创造这个世界的是一个程序猿/媛,或者更准确地来说,是一位架构师(Architect)。
至于谁创造了那位Architect,那就不得而知啦。
虽然不知道 他/她 究竟是如何来的,但我们却可以通过观察这个世界,解构它、分类它、总结它,来试图学习那位Architect的技巧。
程序的作用和组成
程序来源于生活:
比如过去我们去银行取钱,要取号,然后银行柜员要求你提供银行卡,说要取多少钱,输入密码,然后才能拿到钱。
这个流程其实是固定的,但柜员有时候可能会感冒啊,有时候要上厕所啊等等,那么我们就需要等待比较长的时间才能取到钱。
后来我们就发现ATM机完全可以替代人工来完成这样的事,插入银行卡,输入要取的钱数和密码,就可以拿到钱了。
这程序会按照制定的流程去运行,它可以不输密码就吐钱出来吗?
肯定不行啊,那这个流程是谁制定的呢?就是程序员通过编程实现的。
而Java就是这样一门编程语言,当然还有很多其他的编程语言。
就目前的学习阶段而言,我们可以先这么理解:
程序是告诉计算机要做什么,并且怎么做的一系列命令或者指令。
有的程序很小,只有一两条指令,有的程序很大,可能有上万行的指令代码。
来,让我们先一睹为快,看看什么是指令或者命令:
打开cmd,输入jshell,回车,进入jshell交互器
输入 1 + 1,回车,看结果。

这是个很简单的例子,1 + 1谁都会,但我们需要让计算机去做,就必须有相应的命令。
两个1是常量,我们称之为操作数,+号是运算符,通过这样的指令,那么计算机就能知道我们的要求,知道这是一个加法运算,参与运算的两个数是1,就能给出结果了。
那么,我们就知道了,程序是由一堆指令组合而成的,这些指令必须由程序猿/媛来编写下达。
再举个例子:
老婆让你去买菜。
但是你正在打游戏啊,有点不想动。
啪,这时候你灵光一闪,决定让自己开发的机器人去替你完成这样一件事。
我们一起来想一想:
首先机器人要出门,要提上购物篮吧。
好,我们把机器人叫作A,写一段伪代码:
A:
提购物篮
打开门
出门
关上门
检测到住在8楼
点击电梯下行按钮
等待电梯到达8楼
等待电梯开门
进入电梯
点击1楼按钮
等待电梯关门
等待电梯下行至1楼
等待电梯开门
出电梯
……
我们就不再赘述后面的每一条指令了,这还是A刚下楼的一系列代码,如果考虑到路上的复杂情况,红绿灯,遇到紧急情况如何处理等,这代码怕是要写上一堆了。
所以还是赶紧挪动你的尊臀,趁没有被老婆骂之前,自己麻溜地去买菜吧~
好,这样我们就大致了解了程序的作用和组成。
介绍Java的发展史
下面,我们来看一看Java的发展史,学习一门语言,首先要了解一下这么语言的大致历史,知道它是因为什么原因出现在历史舞台上的,也就是说:它的出现是为了解决怎样的问题。
- Java是Sun公司于1995年推出的高级编程语言
- Java之父:James Gosling,国内的码友们也给了他一个爱称:高司令。
- Java最初出现是为了在网页中嵌入Applet,一种在网页中可以执行的小程序,相比于C++这样重量级的开发语言,Java显得比较轻量级,可以快速开发应用,普遍的代码量要比实现同样功能的C++少了很多。
Java也被大量地使用在了初期的嵌入式设备上,得益于其底层的虚拟机,使得所编写的Java代码,只需被编译一次,即可跨平台运行,而C++则必须针对特定的硬件进行编程,然后使用该硬件平台专用的编译器进行编译,发布后,也仅能运行于该硬件平台上,无法实现跨平台。

我们看到一门技术的出现,必然伴随着相应所需要解决的问题。
Java技术通过在硬件设备上加入了一层虚拟机,隔离抽象了硬件之间的差异。因此,在当时,其跨平台运行程序的能力独步天下,很快占领了市场。
Java平台的三大体系:
J2SE:标准版
J2ME:移动版
J2EE:企业版
我们主要学习的是J2SE和J2EE两个部分,J2ME现在基本上很少使用了,以前主要是运行在非智能手机上,现在智能手机,像Android开发,使用的都是Android生态圈的框架和工具。
J2EE是建立在J2SE的基础上,用来做企业级应用开发的,比如OA办公自动化啊,电商购物网站等。
所以我们要先把J2SE的部分学扎实,然后才能在学习J2EE时轻松自在,所以同学们千万不要好高骛远哦,把脚下的路走好,自然就到达了远方。
J2SE
那么我们首先来概览一下J2SE:JDK、JRE、JVM。

(上面是Java 8的概览图)
Install
下载安装完成后,需要设置JAVA_HOME
如果安装在C盘默认目录下,路径中带有空格,那么建议使用DOS短文件名的写法:
C:\PROGRA~1\Java\jdk-17.0.2
在后面我们学习其他软件时,例如zookeeper等,JAVA_HOME中有空格会导致解析环境变量失败,需要注意。
在不支持长文件名下的DOS都是转换成短文件名,就是后面加上~1,短文件名前面有相同的,后面依次是~2, ~3。

在Path中添加 %JAVA_HOME%\bin

- 可选
删除环境变量:C:\Program Files\Common Files\Oracle\Java\javapath
(如果安装多个Java版本,则必须删除该环境变量,否则容易与JAVA_HOME冲突)
安装完成后,测试Java是否安装成功。
打开命令行,输入:
javac -version

Hello World
JDK 9.0以上的版本可以使用jshell来做交互式编程
打开cmd:
jshell
System.out.println("Hello World")
常用的命令:
/vars
/methods
/types
/imports
/list
/drop
/edit
/save
/reset
/exit

开发步骤:编写源代码 -> 编译 -> 运行

动手做一下:
Test.java
public class Test {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
在命令行中进入到Test.java的文件目录下:
# 编译
javac Test.java
# 运行
java Test
注意事项:
- 类名必须和文件名完全一致
- 必须要有main方法作为入口:
public static void main(String[] args) - 区分大小写
- 括号都要成对出现
控制台输出
System.out.print("hello\n");
System.out.println("hello");

注释
- 单行注释://
- 多行注释:/* 代码 */
- 文档注释:/** 文档 */
编码规范
- 首字母要大写
- 使用驼峰命名规范
- 代码要缩进
IDE(集成开发环境)
目前大家使用较多的是JetBrains公司的IDEA
介绍项目创建、源码目录、包管理、编译输出目录、项目运行。
使用IDEA创建运行HelloWorld
反编译
jad -s java FileName.class
# 中文
jad -o -s java -8 FileName.class
# -o overwrite
工具下载链接
JDK:
链接:https://pan.baidu.com/s/12PCZ7W5OANIrlAG2NXmotg?pwd=3py8
提取码:3py8
IDEA:
链接:https://pan.baidu.com/s/1O6HHsvwS_rL8TGd0z3msMQ?pwd=2zp0
提取码:2zp0

浙公网安备 33010602011771号