心得感悟

告别了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中。

(四)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;//杀人总数+1totalKilled++;//判断是不是还剩一个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的学习社区【 戳我立即加入 】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!

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

  1. 超详细Java安装教程

    超详细Java安装教程 一.Java JDK下载 二.环境变量配置 一.Java JDK下载 下载方式: 官网下载 下载地址: https://www.oracle.com/java/technolo ...

  2. python27怎么新建项目_Ren'Py引擎从入门到放弃(2) —— 成功创建第一个工程

    马上注册,结交更多好友,享用更多功能,让你轻松玩转社区. 您需要 登录 才可以下载或查看,没有帐号?立即注册 x 本帖最后由 BuErShen 于 2019-6-28 18:49 编辑 Ren'Py引 ...

  3. Pyside2 学习系列三:PyInstaller打包项目瘦身(超详细的Pyside2 攻略)

    继上一篇文章打包后,发现包太大了,我们现在开始进行瘦身优化. 本项目的所有演示代码:github可在这里下载. 打包只用的工具为PyInstaller. 不想细看的朋友 可以直接跳到 最后 方法对比 ...

  4. 嵌入式:Keil uvision5环境下创建一个工程模板(步骤超详细)

    嵌入式:Keil uvision5环境下创建一个工程模板(步骤超详细) 1.创建一个空的文件夹,命名为"test"(可以为任何名字) 2.打开test文件夹,在该目录下依次创建两个 ...

  5. JAVA学习基础知识(一)JDK的安装和配置及Java的发展历史

    前言 欢迎阅读本系列文章,本文主要内容为Java的发展历史,以及在电脑上如何配置Java环境.ps:这是第一次发布java语言的文章,若出现错误,望指正. 文章目录 前言 java的发展历史 Java ...

  6. java学习里程碑_记录您的里程和社区运行情况:Java EE 7真实体验

    java学习里程碑 miles2run.org是跟踪跑步活动并与亲朋好友共享的简便方法. 可以创建然后跟踪基于天或基于距离的目标. 它还允许创建社区运行目标,并使多个跑步者参与并跟踪他们朝着该目标的活 ...

  7. 适合零基础学习者的Java学习路线图到底长啥样?一篇文章带你学会Java

    很多小伙伴在转行互联网的时候,都担心自己不能坚持,不知道Java适不适合自己. 那最好的方式就是先不要着急直接转行,自己可以先去试着学习一些基础知识,看看对Java的学习难度能否适应以及自己是否真心喜 ...

  8. Java数据库部分(MySQL+JDBC)(一、MySQL超详细学习笔记)

    所有示例使用的数据表均为Oracle提供的SQL基础数据表(t_employees.sql dept.sql emp.sql salgrade.sql) 熟练掌握多多练习即可达到完成后端开发所需具备的 ...

  9. 超详细——Java面试高频

    目录 1.基础题 1.1面向对象和面向过程的区别 1.2 Java 语言有哪些特点 1.3 Java 和 C++的区别 1.6 字符型常量和字符串常量的区别 1.7 基本类型 1.8 构造器 Cons ...

最新文章

  1. Overview of ISA and TMG Networking and ISA Networking Case Study (Part 1)
  2. 一个优秀的CIO,应该具备如何的知识体系和管理能力?
  3. OpenKruise v0.8.0 版本发布:K8s 社区首个规模化镜像预热能力
  4. 微信的行程卡服务器异常,行程卡打不开服务器崩了解决方法 行程卡短信查询步教程...
  5. qt中初始化界面的几种方法
  6. 网络编程懒人入门(一):快速理解网络通信协议(上篇)
  7. 多种脚本语言生成九九乘法口诀表
  8. apache camel 相关配置_MyBatis-Plus返回map自动转驼峰配置object-wrapper-factory
  9. SAP UI5 应用开发教程之八 - 多语言的支持
  10. c程序设计语言 hello,Hello, World!
  11. 初识贪心——调度问题
  12. 使用Google App Engine开始新的网站开发学习
  13. 模电之半导体基础篇3(半导体二极管、二极管应用)
  14. Activiti进阶(七)——排他网关(ExclusiveGateWay)
  15. linux怎么开启iis管理员权限,为每个站点的IIS设置权限
  16. 网易云音乐获取音频链接(爬虫)破解params参数
  17. Unity3d美颜滤镜
  18. nodejs 遍历json数据_异步-使用node.js遍历JSON
  19. C# 小数点后保留两位小数,四舍五入的函数及使用方法
  20. Neo4j - CQL使用

热门文章

  1. CAD用多义线动态画矩形框
  2. C# CAD视图操作之缩放
  3. HDU - 4540 威威猫系列故事——打地鼠
  4. linux 客户端ftp 登陆成功之后ls 卡死
  5. 【机器学习】发展至今的机器学习到底对我们的就业和社会产生了哪些影响?
  6. RetinaNet与点云聚类耦合的深度学习个体树分割方法研究
  7. 2022年高压电工上岗证题库及答案
  8. JSP+ssm计算机毕业设计服装销售进出货管理系统141r2【源码、数据库、LW、部署】
  9. android设置为默认短信应用,如何在Android上设置默认短信应用 | MOS86
  10. 深度学习之3D卷积神经网络