Java入门第一季学习总结
一、课程总概
这门课程的学习难度属于入门级别,又由于有c++的基础,所以学习这门课程也是比较轻松的。可以简单地把这门课的学习分为四部分:第一部分,java的介绍(第一章);第二部分,java的数据类型及控制语句(第二章~第四章、第六章);第三部分,java的方法(第七章);第四部分,java的编程练习(第五章、第八章)。
二、第一部分 java的介绍
java简介
1.java程序运行的原理

2.名词解释
JVM(Java Virtual Machine):虚拟器
JDK(Java Development Kit):java开发工具包
JRE(Java Runtime Environment):java运行时环境
3.文件目录
java->jdk->bin(JDK命令文件,包含java.exe和javac.exe)
java->jdk->lib(类库文件,包含tools.jar)
4.配置环境变量
安装完JDK后,进行环境变量配置
JAVA_HOME 配置JDK安装路径 JDK文件位置
PATH 配置JDK命令文件位置 在最前面+bin目录位置+;
CLASSPATH 配置类库文件位置 .;+lib目录位置
配置验证:cmd->java/javac
5.开发平台
集成开发环境(IDE)是一类软件将程序开发环境和调试环境集合在一起,提高开发效率,有Eclipse、MyEclipse(是对Eclipse的扩展,是一个十分优秀的用于开发java,java ee的Eclipse的插件集合)等
使用步骤:
1)创建Java项目
2)创建程序包(便于程序管理,src文件用来放置源代码文件)
3)编写java的源代码
4)运行java程序
PS:也可直接在创建项目之后直接右击创建类(可填写包的名字)

6.简单的程序
package com.imooc;
public class helloworld{
public static void main(String[] args) {
String a="我爱慕课网";
String b="www.imooc.com";
System.out.println(a+b);
}
}
PS:其中class后面的类名必须与文件名保持一致,main函数为程序的入口
7.程序的移植
右击导入->General->现有项目到工作空间中

三、第二部分 java的数据类型及控制语句
变量与常量
1.关键字

2.标识符
1)由字母、数字、下划线、美元符号组成,但不能包含@、%、空格等其他特殊字符,不能以数字开头
2)不可以是java关键字和保留字
3)严格区分大小写
4)最好能做到见名知意
5)变量名由多单词组成时,第一个单词小写,其后单词的首字母大写,俗称骆驼式命名法(也称驼峰命名法)
6)java变量无长度限制

3.拼接
使用"+"可以进行字符串和变量的拼接
4.数据类型
java是一种强类型语言,就是在java中存储的数据都是有类型的,而且在编译时就必须确定其类型

基本数据类型:存的是数据本身
引用类型变量:存的是保存数据的地址
几种数据类型的大小:

String 是一种常见的引用数据类型,用来表示字符串
5.变量使用规则
1)先声明后使用
2)可以在声明变量的同时进行初始化,也可以声明后赋值
3)每次只能赋一个值,但可以修改多次
4)main方法中定义的变量必须先赋值,然后才能输出
5)虽然语法中没有提示错误,但在实际开发中,变量名不建议使用中文,容易产生安全隐患,譬如后期跨平台操作时出现乱码等
6.自动类型转换
1)目标类型能与源类型兼容(如double型兼容int型,但char型不能兼容int型)
2)目标类型大于源类型(如double型长度为8字节,int型为4字节,因此double型的变量可以直接存放int型的数据,但反过来就不行)
7.强制类型转换
语法:(数据类型)变量名
如:
double avg1=75.8;
int avg2=(int)avg1;
8.常量
常量被设定后,在程序运行过程中不允许改变(以提高代码的可维护性)
语法:final 数据类型 常量名=值;
PS:常量名一般使用大写字符
9.注释
一般来说,对于一份规范的程序源代码而言,注释应该占到源代码1/3以上
文档注释:以/**开头,以*/结尾
多行注释:以/*开头,以*/结尾
单行注释:以//开头,行末结尾
可以在.java所在文件夹中利用以下命令来生成API帮助文档
javadoc -d doc zh.java
PS:其中doc为新建的文件名,zh.java为java文件名
打开doc文件打开index.html页面查看API文档
PS:使用文档注释时还可以使用javadoc标记,生成更详细的文档信息
@author 标明开发该模块作者
@version 标明该模块版本
@see 参考转向,也就是相关主题
@param 对方法中某参数的说明
@return 对方法返回值的说明
@exception 对方法可能抛出异常进行说明
运算符
1.常用运算符
1)算数运算符:+ - * / % ++ --
PS:自增和自减只能用于操作变量,不能直接用于操作数值或常量
2)赋值运算符:= += -= *= /= %=
3)比较运算符:> < >= <= == !=
PS:前四个只支持左右两边为数值类型,后两个既可以是数值类型,也可以为引用类型
4)逻辑运算符:&& || ! ^
PS:^(异或)若a与b有且只有一个为true,则返回true
5)条件运算符:?:
2.运算符优先级

PS:一般在实际开发中使用小括号辅助进行优先级管理
流程控制语句
1.条件语句
1)if
2)if...else
3)if...else if...else
4) 嵌套if
5)switch
switch(){
case 值1:代码块1;break;
case 值2:代码块2;break;
case 值3:代码块3;break;
......
default:默认执行的代码;
}
①switch后面小括号中的表达式的值必须是整型或字符型
②case后面的值可以是常量数值,如1、2;也可以是一个常量表达式,如2+2;但不能是变量或者带有变量的表达式
③如果遇见未break,则会继续执行下一个case块的内容,直到遇到break语句或switch语句块
④可以把功能相同的 case 语句合并起来
如:
case1:
case2:System.out.println(" ");
⑤default块可以出现在任何位置,也可以省略
2.循环语句
1)while
2)do...while
3)for
语法:for(循环变量初始化;循环条件;循环变量变化){循环操作}
比while、do...while语句结构更简洁易读
①循环变量初始化只执行一次
②三个表达式都可以省略,但";"不可以省略
a.省略循环变量初始化,可以在for语句之前由赋值语句进行变量初始化操作
b.省略循环条件,可能造成循环一直执行下去(死循环)
c.省略循环变量变化,可以在循环体中进行循环变量变化
③循环变量初始化、循环变量变化可以使用",",同时初始化多个变量和改变多个循环变量的值
④循环条件可以使用逻辑运算符组合的表达式
4)多重循环
3.循环跳转语句
1)break
2)continue
数组
1.一维数组
1)声明数组
语法:数据类型[] 数组名;
或 数据类型 数组名[];
2)分配空间
语法:数组名=new 数据类型 [数组长度];
声明数组并分配空间:数据类型[] 数组名=new 数据类型 [数组长度];
3)赋值
直接赋值(将声明数组、分配空间和赋值合并完成)
语法:数据类型[①] 数组名={...};
等价于 数据类型[①] 数组名=new 数据类型[②]{...};
PS:①②[]内必须为空
2.二维数组
1)声明数组
语法:数据类型[][] 数组名;
或 数据类型 数组名[][];
2)分配空间
语法:数组名=new 数据类型 [行数][列数];
声明数组并分配空间:数据类型[][] 数组名=new 数据类型 [行数][列数];
3)赋值
直接赋值(将声明数组、分配空间和赋值合并完成)
语法:数据类型[①][①] 数组名={{...},{...}};
等价于 数据类型[①][①] 数组名=new 数据类型[②][②]{{...},{...}};
PS:①②[]内必须为空
4)不规则二维数组
在定义二维数组时也可以只指定行的个数,然后再为每一行分别指定列的个数。如果行的列数不同,则创建的是不规则的二维数组,如:
int [][] num=new int[3][];
num[0]=new int[2];//为第1行分配2列
num[1]=new int[3];//为第2行分配3列
num[2]=new int[4];//为第3行分配4列
3.数组的长度
一维数组
元素个数:数组名.length
二维数组
行数:数组名.length
列数:数组名[i].length
4.Arrays类
在java.util包中,有Arrays类,是java中提供的一个工具类,须在源文件中加上:
import java.util.Arrays;
1)排序(升序):Arrays.sort(数组名);
2)将数组转换为字符串:Arrays.toString(数组名);
使用这种方法可将数组中元素拼接在一起,元素间用逗号和空格隔开,如[1, 2, 3, 4]
5.使用foreach操作数组
foreach 并不是 Java 中的关键字,是 for 语句的特殊简化版本,在遍历数组、集合时, foreach 更简单便捷。从英文字面意思理解 foreach 也就是“ for 每一个”的意思。
语法:for(元素类型 元素变量:遍历对象数组){...}
四、第三部分 java的方法
方法
1.定义方法
所谓方法,就是用来解决一类问题的代码的有序组合,是一个功能模块
语法:访问修饰符 返回值类型 方法名(参数列表){方法体;}
1)访问修饰符
方法允许被访问的权限范围, 可以是 public、protected、private ,甚至可以省略 ,其中 public 表示该方法可以被其他任何代码调用。
2)返回值类型
如果方法不返回任何值,则返回值类型指定为 void ;如果方法具有返回值,则需要指定返回值的类型,并且在方法体中使用 return 语句返回值。
3)方法名
定义的方法的名字,必须使用合法的标识符(一般采用第一个单词字母小写,其他单词首字母大写的形式)。
4)参数列表
传递给方法的参数列表,参数可以有多个,多个参数间以逗号隔开,每个参数由参数类型和参数名组成,以空格隔开 。根据方法是否带参、是否带返回值,可将方法分为四类:
①无参无返回值方法
②无参带返回值方法
③带参无返回值方法
④ 带参带返回值方法
2.调用方法
语法:
先创建类的对象:类名 对象名=new 类名();
然后通过 对象名.方法名(参数列表); 来实现调用
3.带返回值方法
1) 如果方法的返回类型为 void ,则方法中不能使用 return 返回值
2) 方法的返回值最多只能有一个,不能返回多个值
3)方法返回值的类型必须兼容,例如,如果返回值类型为 int ,则不能返回 String 型值
4.带参方法
1) 调用带参方法时,必须保证实参的数量、类型、顺序与形参一一对应
2)调用方法时,实参不需要指定数据类型
3)方法的参数可以是基本数据类型,如 int、double 等,也可以是引用数据类型,如 String、数组等
5.方法的重载
定义:如果同一个类中包含了两个或两个以上方法名相同、方法参数的个数、顺序或类型不同的方法,则称为方法的重载,也可称该方法被重载了。.
执行:当调用被重载的方法时, Java 会根据参数的个数和类型来判断应该调用哪个重载方法,参数完全匹配的方法将被执行。
判断方法重载的依据:
1)必须是在同一个类中
2)方法名相同
3)方法参数的个数、顺序或类型不同
4)与方法的修饰符或返回值没有关系
五、第四部分 java的编程练习
编程练习
1.内容提示
使用Alt+/可以产生内容提示

2.Scanner类
使用Scanner工具类可以获取用户输入的数据
1)导入java.util.Scanner
import java.util.Scanner;
2)创建Scanner对象(对象名一般为input)
Scanner 对象名=new Scanner(System.in);
3)接收并保存用户输入的值
int 变量名=对象名.nextInt();//获取输入的int型数据
Double 变量名=对象名.nextDou();//获取输入的double型数据
String 变量名=对象名.next();//获取输入的String型数据
3.输出
print不换行
println下一个换行输出
4.断点调试
1)双击程序行前的竖条出现圆点

2)点击工作栏中debug

3)单步跳入(多次点击,从这句代码开始一步步执行)

PS:若进入调试视图,需要返回java视图,可点击如下按钮

5.Math类
Math类是用于进行算术操作的类,Math.random()生成0--1的浮点数。
通过(int)(Math.random()*100)生成100以内的随机int型数
6.编程练习
要求:编写一个 JAVA 程序,实现输出考试成绩的前三名
1)考试成绩已保存在数组 scores 中,数组元素依次为 89 , -23 , 64 , 91 , 119 , 52 , 73
2)要求通过自定义方法来实现成绩排名并输出操作,将成绩数组作为参数传入
3) 要求判断成绩的有效性( 0—100 ),如果成绩无效,则忽略此成绩
package com.imooc;
public class sort1 {
//完成 main 方法
public static void main(String[] args) {
int scores[]={ 89 , -23 , 64 , 91 , 119 , 52 , 73};
sort1 a=new sort1();
a.Sort(scores);
}
//定义方法完成成绩排序并输出前三名的功能
public int[] Sort(int[] score){
int t;
for(int i=0;i<score.length;i++){
for(int j=i+1;j<score.length;j++){
if(score[i]>score[j]){
t=score[i];
score[i]=score[j];
score[j]=t;
}
}
}
for(int i=score.length-1,count=0;i>=0;i--){
if(score[i]<0||score[i]>100)continue;
count++;
if(count>3)break;
System.out.println(score[i]);
}
}
}
六、心得体会
虽然这段时间事情比较多,但还是挤出时间将这个课程看完了。
总的来说,这门课程属于入门级别,对于有c++基础的我来说,还是比较简单的。学习完这门课,我对java有了一个初步的了解,了解了其数据类型以及它们可以进行的操作,了解了方法的使用方法,同时还下载了Eclipse,并进行了简单的编程,掌握了一些小技巧和开发中应注意的问题。虽然说和c++语法相似,但还是有一些不同的地方,也收获到了不少东西。学习到的知识点全部在上文中一一列出,不再赘述。
下面谈一谈我在此次课程的学习当中掌握的学习方法:
1.时间这种东西,挤挤还是会有的
既然有兴趣学习这个,那就坚持下去,不要半途而废,做到每一天都花一些时间在这方面,这样就不容易遗忘,因为变成这种东西知识点较多,如果不把学习到的东西融会贯通,不进行实践,就容易生疏,就会有学了也像没学的感觉。
2.要学会独立思考
不独立思考的后果是:只能读懂别人的代码,而如果让自己来做,却完全没有思路,再去看别人的代码,却又总是一副茅塞顿开的感觉。所以,独立思考很重要,需要我们自己去理清思路,找到解决问题的办法。如果仍然没有思路,可以自己去网上搜索,如果还是没有答案的话,再去问其他人,只有这样,才能得到更大的进步。
3.在解决问题前,要列出解题思路
先观察问题思考需要通过几个步骤能够达到要求,然后思考需要定义并调用怎样的方法,需要什么变量,进行什么操作。然后可以通过伪代码的方式,写出大致的程序,再将其转换成完整的源代码。这样做能够提高变成效率。
4.记得注释
一定要记得注释,注释很重要,要不然每次回头看自己的程序时都是一头雾水,完全不知道自己当时为什么那样做。这就又要花费时间,把自己的程序再理一遍。有了注释就可以大大地减少这些时间的耗费。
5.养成写学习总结的习惯
这种学习方法以前还真没试过,以前的学习方式都是听讲看书做笔记,做完笔记,笔记本也就放在那了,并没有起到什么作用,记笔记完全是图个心安。这样,即便是记了笔记,也无法降低你遗忘的速度。而写学习总结这种方法,强迫你自己去看笔记、去回忆你此次学习的内容,这样,就达到了一个巩固的作用,也就是复习了一遍,可以记得更牢。上文的知识点,都是从此次学习的笔记整理而来的。
Java入门第一季学习总结的更多相关文章
- JAVA入门第一季(mooc-笔记)
笔记相关信息 /** * @subject <学习与创业>作业1 * @author 信管1142班 201411671210 赖俊杰 * @className <JAVA入门第一季 ...
- Java入门第二季学习总结
课程总概 该门课程作为java入门学习的第二季,是在有一定的java基础上进行的进一步学习.由于该季涉及到了java的一些核心内容,所以相对第一季来说,课程难度有所提升.大致可将该季的课程分为五部分: ...
- Java入门第一季——从此投身Java??
找工作告一段落. 最后的工作呢,和java紧密相关,也是阴差阳错,不过都是软件开发,都好了,不过以后侧重点肯定是在java这边,php有机会还是一直学下去的,那么美的说~ Java开发第一季 一.简 ...
- Java入门第一季
慕课网:http://www.imooc.com/learn/85 Java入门知识第一季 1.Java开发环境和IDE的使用: 2.变量和常量 3.常用的运算符 4.流程控制语句 5.数组:使用Ar ...
- 《java入门第一季》之Arrays类前传(排序案例以二分查找注意的问题)
根据排序算法,可以解决一些小案例.举例如下: /* * 把字符串中的字符进行排序. * 举例:"dacgebf" * 结果:"abcdefg" * * 分析: ...
- 《java入门第一季》之面向对象(谈谈接口)
软件中有接口,这里的接口与硬件中的接口还是有很大区别的. 这里介绍接口不考虑JDK8的新特性(JDK8开始接口里面可以有非抽象方法了,介绍JDK8新特性可能要到整个第一季写完吧!) 还是直接进入接口的 ...
- 《java入门第一季》之java语法部分小案例
到这里举一个小例子把语法部分梳理一下,下一节开始进入java正式基础--面向对象的学习整理. 案例: /* 某个公司采用公用电话传递数据信息,数据是小于8位的整数,为了确保安全, 在传递过程中需要加密 ...
- Java入门 第一季第二章 变量和常量
这是我学习慕课网Java课程的笔记.原视频链接为:http://www.imooc.com/learn/85 2-1 Java中的keyword PS:Javakeyword区分大写和小写 2-2 认 ...
- 慕课网-Java入门第一季-7-4 编程练习
来源:http://www.imooc.com/code/1634 小伙伴们,请根据所学知识,参考注释,在代码编辑器中将代码补充完整.编写一个 Java 程序,实现输出学生年龄的最大值 要求: 1. ...
随机推荐
- [BZOJ 1095] [ZJOI2007]Hide 捉迷藏——线段树+括号序列(强..)
神做法-%dalao,写的超详细 konjac的博客. 如果觉得上面链接的代码不够优秀好看,欢迎回来看本蒟蒻代码- CODE WITH ANNOTATION 代码中−6-6−6表示左括号'[',用−9 ...
- 解决telnet: connect to address 127.0.0.1: Connection refused的错误信息问题
1.检查telnet是否已安装: rpm -qa telnet 2.有输出说明已安装,如果没有输出则没有安装,使用yum install telnet进行安装 3.检查telnet-server是否已 ...
- 创建基本的webpack4.x项目
1.步骤 1)运行npm init -y 快速初始化项目 2)在项目根目录创建src源代码目录和dist产品目录,目录结构 webpack4.x-base |dist |src |index.html ...
- luogu p4141 消失之物(背包dp+容斥原理)
题目传送门 昨天晚上学长讲了这题,说是什么线段树分治,然后觉得不可做,但那还不是正解,然后感觉好像好难的样子. 由于什么鬼畜的分治不会好打,然后想了一下$O(nm)$的做法,想了好长时间觉得这题好像很 ...
- codevs 2010 求后序遍历x
题目描述 Description 输入一棵二叉树的先序和中序遍历序列,输出其后序遍历序列. 输入描述 Input Description 共两行,第一行一个字符串,表示树的先序遍历,第二行一个字符串, ...
- MySQL的安装教程
一.MYSQL的安装 首先登入官网下载mysql的安装包,官网地址:https://dev.mysql.com/downloads/mysql/ 一般下载这个就好,现在的最新版本是5.8,但是据说已经 ...
- Linux安装JDK、tomcat
修改tomcat 相关配置必须重启后才生效 如何启动tomcat 在终端框内切换到tomcat 的bin路径下 启动tomcat:./startup.sh 关闭tomcat:./shutdown.sh ...
- linux安装mysql以及修改密码和重启mysql等相关命令
Linux/UNIX 上安装 MySQL Linux平台上推荐使用RPM包来安装Mysql,MySQL AB提供了以下RPM包的下载地址: MySQL - MySQL服务器.你需要该选项,除非你只想连 ...
- laravel 文件上传总结
调用 store 方法会生成唯一的 ID 来作为文件名,如果想获取原件本来的名称可以使用 $file = $request->file('file'); $file->getClientO ...
- Note 2 for <Pratical Programming : An Introduction to Computer Science Using Python 3>
Book Imformation : <Pratical Programming : An Introduction to Computer Science Using Python 3> ...