心得感悟
告别了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. 创建第一个程序
点击Empty Activity,再点击Next
首先,打开我们的Android studio,点击创建一个空的项目
为你的项目取名,选择适当的储存位置,选择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语言提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。
byte | short | int | long | float | double | boolean | char |
---|
(六)条件语句、循环语句回顾
在Java中,条件语句和循环语句与C语言相同,条件语句有
if...else
、switch
、while
、for
,如:
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版约瑟夫环游戏·
网友评论