1.初识Java

看待世界的方式方法

我们所处的现实世界,是由一堆物理法则所约束,比如,你我的运动速度不能超过光速,重力的作用会使我们跳起后落下等。那么这一系列的法则是由谁来定义的呢?

有人说是上帝,尼采说上帝已死。有人说是自然形成,从宇宙大爆炸之后,不需要上帝之手来推动,世界自己形成了自己,宇宙的尘埃汇聚成了恒星核,慢慢地凝聚成恒星。

那这种自然背后的规则究竟从何而来?

同学们都玩过游戏吧?
游戏里有各种各样酷炫的魔法,也有大量未知的世界等待着玩家去探索。这些游戏世界的规则都是谁创造的呢?
没错,就是程序猿/媛。

程序猿/媛创造世界法则的工具,就是编程语言,用这些语言可以编织出炫幻迷离的世界,让玩家必须遵循其中的规则。

所以,回过头来,我们是否可以这么说:
我们的现实世界其实是一个只有一条命的、大型联网的、开放世界的、角色扮演游戏。
而创造这个世界的是一个程序猿/媛,或者更准确地来说,是一位架构师(Architect)。

至于谁创造了那位Architect,那就不得而知啦。

虽然不知道 他/她 究竟是如何来的,但我们却可以通过观察这个世界,解构它、分类它、总结它,来试图学习那位Architect的技巧。

程序的作用和组成

程序来源于生活:
比如过去我们去银行取钱,要取号,然后银行柜员要求你提供银行卡,说要取多少钱,输入密码,然后才能拿到钱。
这个流程其实是固定的,但柜员有时候可能会感冒啊,有时候要上厕所啊等等,那么我们就需要等待比较长的时间才能取到钱。
后来我们就发现ATM机完全可以替代人工来完成这样的事,插入银行卡,输入要取的钱数和密码,就可以拿到钱了。
这程序会按照制定的流程去运行,它可以不输密码就吐钱出来吗?
肯定不行啊,那这个流程是谁制定的呢?就是程序员通过编程实现的。
而Java就是这样一门编程语言,当然还有很多其他的编程语言。

就目前的学习阶段而言,我们可以先这么理解:
程序是告诉计算机要做什么,并且怎么做的一系列命令或者指令。
有的程序很小,只有一两条指令,有的程序很大,可能有上万行的指令代码。

来,让我们先一睹为快,看看什么是指令或者命令:
打开cmd,输入jshell,回车,进入jshell交互器
输入 1 + 1,回车,看结果。

image

这是个很简单的例子,1 + 1谁都会,但我们需要让计算机去做,就必须有相应的命令。
两个1是常量,我们称之为操作数,+号是运算符,通过这样的指令,那么计算机就能知道我们的要求,知道这是一个加法运算,参与运算的两个数是1,就能给出结果了。

那么,我们就知道了,程序是由一堆指令组合而成的,这些指令必须由程序猿/媛来编写下达。

再举个例子:
老婆让你去买菜。
但是你正在打游戏啊,有点不想动。
啪,这时候你灵光一闪,决定让自己开发的机器人去替你完成这样一件事。

我们一起来想一想:
首先机器人要出门,要提上购物篮吧。
好,我们把机器人叫作A,写一段伪代码:

A:
提购物篮
打开门
出门
关上门
检测到住在8楼
点击电梯下行按钮
等待电梯到达8楼
等待电梯开门
进入电梯
点击1楼按钮
等待电梯关门
等待电梯下行至1楼
等待电梯开门
出电梯
……

我们就不再赘述后面的每一条指令了,这还是A刚下楼的一系列代码,如果考虑到路上的复杂情况,红绿灯,遇到紧急情况如何处理等,这代码怕是要写上一堆了。

所以还是赶紧挪动你的尊臀,趁没有被老婆骂之前,自己麻溜地去买菜吧~

好,这样我们就大致了解了程序的作用和组成。

介绍Java的发展史

下面,我们来看一看Java的发展史,学习一门语言,首先要了解一下这么语言的大致历史,知道它是因为什么原因出现在历史舞台上的,也就是说:它的出现是为了解决怎样的问题。

  1. Java是Sun公司于1995年推出的高级编程语言
  2. Java之父:James Gosling,国内的码友们也给了他一个爱称:高司令。
  3. Java最初出现是为了在网页中嵌入Applet,一种在网页中可以执行的小程序,相比于C++这样重量级的开发语言,Java显得比较轻量级,可以快速开发应用,普遍的代码量要比实现同样功能的C++少了很多。

Java也被大量地使用在了初期的嵌入式设备上,得益于其底层的虚拟机,使得所编写的Java代码,只需被编译一次,即可跨平台运行,而C++则必须针对特定的硬件进行编程,然后使用该硬件平台专用的编译器进行编译,发布后,也仅能运行于该硬件平台上,无法实现跨平台。

image

我们看到一门技术的出现,必然伴随着相应所需要解决的问题
Java技术通过在硬件设备上加入了一层虚拟机,隔离抽象了硬件之间的差异。因此,在当时,其跨平台运行程序的能力独步天下,很快占领了市场。

Java平台的三大体系:
J2SE:标准版
J2ME:移动版
J2EE:企业版

我们主要学习的是J2SE和J2EE两个部分,J2ME现在基本上很少使用了,以前主要是运行在非智能手机上,现在智能手机,像Android开发,使用的都是Android生态圈的框架和工具。

J2EE是建立在J2SE的基础上,用来做企业级应用开发的,比如OA办公自动化啊,电商购物网站等。

所以我们要先把J2SE的部分学扎实,然后才能在学习J2EE时轻松自在,所以同学们千万不要好高骛远哦,把脚下的路走好,自然就到达了远方。

J2SE

那么我们首先来概览一下J2SE:JDK、JRE、JVM。
image
(上面是Java 8的概览图)

Install

Oracle Java
Java Download

下载安装完成后,需要设置JAVA_HOME
如果安装在C盘默认目录下,路径中带有空格,那么建议使用DOS短文件名的写法:

C:\PROGRA~1\Java\jdk-17.0.2

在后面我们学习其他软件时,例如zookeeper等,JAVA_HOME中有空格会导致解析环境变量失败,需要注意。

在不支持长文件名下的DOS都是转换成短文件名,就是后面加上~1,短文件名前面有相同的,后面依次是~2, ~3。

image

Path中添加 %JAVA_HOME%\bin
image

  • 可选
    删除环境变量:C:\Program Files\Common Files\Oracle\Java\javapath
    (如果安装多个Java版本,则必须删除该环境变量,否则容易与JAVA_HOME冲突)

安装完成后,测试Java是否安装成功。
打开命令行,输入:

javac -version

image

Hello World

JDK 9.0以上的版本可以使用jshell来做交互式编程

打开cmd:

jshell

System.out.println("Hello World")

常用的命令:

/vars
/methods
/types
/imports
/list

/drop

/edit
/save
/reset
/exit

image


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

动手做一下:

Test.java

public class Test {

	public static void main(String[] args) {
		System.out.println("Hello World");
	}
}

在命令行中进入到Test.java的文件目录下:

# 编译
javac Test.java

# 运行
java Test

注意事项:

  1. 类名必须和文件名完全一致
  2. 必须要有main方法作为入口:public static void main(String[] args)
  3. 区分大小写
  4. 括号都要成对出现

控制台输出

System.out.print("hello\n");
System.out.println("hello");

image

注释

  1. 单行注释://
  2. 多行注释:/* 代码 */
  3. 文档注释:/** 文档 */

编码规范

  1. 首字母要大写
  2. 使用驼峰命名规范
  3. 代码要缩进

IDE(集成开发环境)

目前大家使用较多的是JetBrains公司的IDEA

介绍项目创建、源码目录、包管理、编译输出目录、项目运行。

使用IDEA创建运行HelloWorld

反编译

Jad

jad -s java FileName.class

# 中文
jad -o -s java -8 FileName.class

# -o overwrite

JD-GUI

工具下载链接

JDK:
链接:https://pan.baidu.com/s/12PCZ7W5OANIrlAG2NXmotg?pwd=3py8
提取码:3py8

IDEA:
链接:https://pan.baidu.com/s/1O6HHsvwS_rL8TGd0z3msMQ?pwd=2zp0
提取码:2zp0

posted @ 2022-04-21 17:03  AtionLove  阅读(118)  评论(0)    收藏  举报