【Java学习】从Java历史背景到创建第一个工程——超详细Java入门(多图预警

心得感悟

告别了C语言的学习,进入Java学习的第一堂课,虽然没有写很多代码,但是讲了很多理论知识,这些也算是从C到Java的缓冲吧。在这过程中,我弄错了一个很小的地方,就是添加Model时点成了从File添加,导致后面写的程序无法运行,不过翻车也能积累也经验,失败乃成功之母。


一、目的

  • 了解Java的背景等基础知识
  • 了解Java与C/C++的差异
  • 了解Java虚拟机机制
  • 了解Java中项目、包、类的关系
  • 编写第一个程序

二、内容简概

  • (一)Java发展历史
  • (二)Java语⾔特性
  • (三)Java程序运⾏机制-虚拟机机制
  • (四)Java工程、包、类等基础创建
  • (五)Java基本数据类型
  • (六)条件语句、循环语句回顾
  • (七)终端输⼊Scanner、在线查找JAVA API⽂档
  • (八)代码实战——约瑟夫环游戏

三、具体内容

(一)Java发展历史

1. Java之⽗:James Gosling

Java这个名字据说是因为第一个想取的名字Oak(橡树)已经被注册了,而当时大部分公司都会免费为程序员提供咖啡,要知道,美国人对咖啡的要求是很高的,而当时最好的咖啡豆来源于一个名叫爪哇的岛,音译过来就是Java了。

2. Java的构成

Java SE (Standard edition):开发客户端应用
Java EE (Enterprise edition):开发web端应用
Java ME (Micro Edition):开发嵌⼊式消费电子设备应用

(二)Java语⾔特性

1. 易学:Java语⾔的语法与C语⾔和C++语⾔很接近,使得⼤多数程序员很容易学习和使⽤Java
2. ⾯向对象:Java语⾔提供类、接⼝和继承等
3. 健壮:Java的强类型机制、异常处理、垃圾的⾃动收集等是Java程序健壮性的重要保证.且丢弃指针
4. 安全:Java通常被⽤在⽹络环境中,为此,Java提供了⼀个安全机制以防恶意代码的攻击。如:安全防范机制(类ClassLoader),如分配不同的名字空间以防替代本地的同名类、字节代码检查。

(三)Java程序运⾏机制-虚拟机机制

现在电脑有Windows、Mac、Linus系统,那Java是如何在这三种不同的系统中运行的呢?这就要用到虚拟机(JVM)了。虚拟机(JVM)实际上就是在你的电脑上安装一个“中转站”,通过它来将程序的字节码转换成机器码,从而能被不同的系统读懂。这个JVM就包含在JDK中。

扫描二维码关注公众号,回复: 11193788 查看本文章

(四)Java工程、包、类等基础创建

1. 创建第一个程序
首先,打开我们的Android studio,点击创建一个空的项目

点击Empty Activity,再点击Next

 

为你的项目取名,选择适当的储存位置,选择Finish

 

待加载符号消失后

 

按蓝色框条提示添加一个独立的模块,注意是右键点击文件名,不要错点成File中的模块了

 

选择Java Library,再选择Next

 

写好名字后点击Finish

 

得到下图界面,目前我们编辑只会用到Java程序应用开发,Android应用暂且不管

 

根据上一张图中Android studio界面左侧栏的提示,可以找到程序源代码的位置

截止目前,程序其实算是创建好了,只不过我们没有写入任何东西,在开始写程序前,我们再来讲解一下包和类

2. 包和类与文件夹的关系

在Java中,一个“ . ”包名或类名以文件夹的形式存在,所以其实Java的层级是很深的


如何知道一个文件是什么类型呢?可以通过看图标来判断

C:class类 I:interface接口 m:method方法

和我们的windows系统一样,Android studio里同样不能在同一文件夹下创建同名的文件,不过可以在不同目录下创建同名文件。在使用一个文件时,需要用import导入,如果是在自己的包里就不用导入。

(五)Java基本数据类型

Java语言提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。

(六)条件语句、循环语句回顾

在Java中,条件语句和循环语句与C语言相同,条件语句有 if...else
switchwhilefor,如:

for(int i = 0;i < 4;i++){
    system.out.println("i");
}

(七)终端输⼊Scanner、在线查找JAVA API⽂档

1. 终端输⼊Scanner
在C语言中,我们用scanf来获取输入,而在Java里,我们用Scanner获取输入

import java.util.Scanner; //一般系统会自动添加
public class ScannerDemo {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        // 从键盘接收数据
        //利用hasNextXXX()判断是否还有下一输入项
        while (scanner.hasNext()) {
            //利用nextXXX()方法输出内容
            String str = scanner.next();
            System.out.println(str);
        }
    }

2. 在线查找JAVA API⽂档
在线查找JAVA API⽂档
你可以通过这个文档方便地查找各种类的用法

网页预览

(八)代码实战——约瑟夫环游戏

之前我们在C语言学习中已经编写过一次这个游戏,这回我们用Java再编写一次。

public class MyClass {
}
class KillMan{
    public static void main(String[] args){
        int num = 0;

        //创建一个对象Scanner对象 用于接收终端输入
        Scanner scanner = new Scanner(System.in);

        //提示输入参与的人数
        System.out.print("请输入参与人数:");
        num = scanner.nextInt();

        //定义一个数组 保存所以的编号
        int[] temp = new int[num];

        //开始编号
        for (int i = 0;i < num;i++){
            temp[i] = i+1;
        }
        //提示输入死亡号码
        System.out.print("请输入死亡号码:");
        int killed = -1;
        int killedNumber = scanner.nextInt();
        int count = 0;
        int totalKilled = 0;
        //开始游戏
        for (int i=0;i < num;i++){
            //判断i指向的人是否死亡
            if (temp[i] != killed){
                count++;
                //判断报的是不是死亡编号
                if (count == killedNumber){
                    System.out.println(temp[i]);

                    count = 0;

                    //杀掉这个人
                    temp[i] = killed;

                    //杀人总数+1
                    totalKilled++;

                    //判断是不是还剩一个
                    if (totalKilled == num-1){
                        break;
                    }
                }
            }
            //判断是不是最后一个
            if (i == num-1){
                i = -1;
            }
        }
        for (int i = 0;i < num;i++) {
            System.out.print(temp[i] + " ");
        }
    }
}

4. 程序运行效果

Java版约瑟夫环游戏

小编推荐一个学Java的学习社区【 戳我立即加入 】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!

原创文章 152 获赞 10 访问量 4万+

猜你喜欢

转载自blog.csdn.net/dashujujiagoushi/article/details/105918869
今日推荐