一个编程小白的Java战役

一个编程小白的Java战役

——太原理工大学机器人团队学习打卡day1

别问我,我是不会承认我学习Java是因为我下的所有游戏脚本都带病毒,所以我想自己学习做一个游戏脚本的——这的困难程度不亚于打一场战役(qwq无辜,当然,当我学了这一天后我才明白Java和Javascript的区别,哭唧唧)。正好遇上了团队举办活动,我这个懒癌晚期总算是把压在Mooc里积灰的课程拿出来溜溜了。个人表示之前从未接触过Java,编译器还是昨晚手忙脚乱的整了两个小时才装好的。所以——大家多多担待啊(指正欢迎,别欺负小白就好了)。

1、什么是Java

Java(有人叫C++ --)是一门面向对象编程语言(OOP),不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。

Java具有简单性、(纯)面向对象、分布式、健壮性、安全性、平台无关性(最大特点)与可移植性、多线程、动态性等特点(嗯,还提供了大量的库,对于小白来说还是蛮有用的)。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。

2、为什么要学Java

一个编程小白的Java战役_第1张图片

  • 简单易学,门槛低。

  • 社会需要,使用人多。

  • 功能强大。

  • 可移植性和安全性好。

  • 可以用来编游戏脚本。(这才是最重要的!之前那些与我何干z-z。当然,后来才知道那是Javascript……)

    算了,话归原题,下面开始让我们正式走进Java的世界。

3、Java的编译与运行

Java的众多特点都依赖于它的三种核心机制:

  • Java虚拟机(Java Virtual Machine)
  • 代码安全性检测(code Security)
  • 垃圾收集机制(Garbage collection)

Java程序的编译和运行和其他程序有相似之处,但也有其特点(虽然我没看出来)。
一个编程小白的Java战役_第2张图片
首先,它的源程序是xxx.java,编译称为javac(C语言里面我们叫cc),经过javac编译后生成的目标文件或者结果文件叫class文件(类文件),其中包含字节码(并非是实际机器的最终执行码),这个指令与平台无关,是Java自己定义好的,我们也称为Java的虚拟机指令(好像明白了什么)。当我们需要运行这个程序时,我们使用了Java这样一个命令,这个命令实际上是调用了虚拟机,来让这代码转化成Windows或Linux等可执行的代码(实际上就是用虚拟机来执行我们这个字节码),因此,对于不同的操作系统,只需要不同的JVM就可以运行。(总算不用改代码了)

其次,Java需要一个运行环境JRE(The Java Runtime Environment)。JRE=JVM+API(也叫Lib,是各种类库)。
一个编程小白的Java战役_第3张图片
总的一句话,Java运行环境是由虚拟机来装载这些程序并且调用相应的指令来具体的执行。

当然,自动垃圾回收才是我这种懒癌患者的最爱。
一个编程小白的Java战役_第4张图片
在C和C++中,当我们new了一个内存空间后,我们要delete这个空间,这就会出现二者不配对或者我们将一个内存的空间delete了两次等等。Java就不用了(福音呐!)。它有一个专门的线程来跟踪内存分配情况,因此在内存没有用时可以自动释放掉。

对了,还有Java开发工具包——JDK(Java Development Kid, Java开发开源工具包)。
一个编程小白的Java战役_第5张图片
它会提供java编译器、java执行器、文档生成器、java打包器、java调试器等工具供我们使用。

当然,如果我们只运行Java程序,一个JRE就可以了哦(苦逼的我还是要下开发用的JDK)。

4、对象

  • 现实世界中是客观世界中的一个实体
  • 计算机世界中是一个可标识的存储区域

类则是对象的模板。(我理解为考试同学答案和标准答案的关系,额,好像有一丢丢不恰当)
一个编程小白的Java战役_第6张图片
面向对象的程序设计都有封装、继承和多态三大特征。

  • 封装:模块化(将属性和行为封装在类中,程序定义为很多类)、信息隐蔽(将类的细节部分隐藏起来,用户只通过受保护的接口访问某个类)
  • 继承:父类和子类之间共享数据和方法(好处:更好的进行抽象与分类;增强代码的重用率 ;提高可维护性)(个人表示这算不算老一辈的关系网,小辈拿来用,因此交际圈还在,情分不减,还好调节关系……)
  • 多态(写同一语句,执行不同行为):不同的对象收到同一个消息(调用方法)可产生完全不同的效果;实现的细节则由接受对象自行决定。

5、今日小结

俗话说得好啊,“广积粮,高筑墙,缓称王”,又言:“万丈高楼平地起”,自然,基础是最重要的(别问,问就是我学太慢了,一天下来连个最基本的Java程序都没学到,找个借口来粉饰太平=-=)。所以我用了一天时间来打基础(我上面说过什么了吗?我没有,不是我,别瞎说)。虽然游戏脚本好像没法直接做了(该死的,我居然开始感兴趣了,我王者还没玩呢),我觉得学Java好像也不错(默默打开游戏,发出学习的声音)。明天再接再厉,嗯,20天后应该能学会不少,和其他人换个脚本怎么样(摸下巴,真话,绝对的真话,你们要信我啊)。拜拜,明天见。

你可能感兴趣的:(一个编程小白的Java战役)