Java入门第一季学习总结

一、课程总概

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

二、第一部分 java的介绍

java简介


1.java程序运行的原理

【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:也可直接在创建项目之后直接右击创建类(可填写包的名字)

【新建java类】

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.关键字

【java关键字】

2.标识符

1)由字母、数字、下划线、美元符号组成,但不能包含@、%、空格等其他特殊字符,不能以数字开头

2)不可以是java关键字和保留字

3)严格区分大小写

4)最好能做到见名知意

5)变量名由多单词组成时,第一个单词小写,其后单词的首字母大写,俗称骆驼式命名法(也称驼峰命名法)

6)java变量无长度限制

【标识符命名规则】

3.拼接

使用"+"可以进行字符串和变量的拼接

4.数据类型

java是一种强类型语言,就是在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

【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.养成写学习总结的习惯

这种学习方法以前还真没试过,以前的学习方式都是听讲看书做笔记,做完笔记,笔记本也就放在那了,并没有起到什么作用,记笔记完全是图个心安。这样,即便是记了笔记,也无法降低你遗忘的速度。而写学习总结这种方法,强迫你自己去看笔记、去回忆你此次学习的内容,这样,就达到了一个巩固的作用,也就是复习了一遍,可以记得更牢。上文的知识点,都是从此次学习的笔记整理而来的。

在以后的学习中也会注意采用以上方法,以学习效率提高。由于事情比较多,此次课程的学习总是断断续续的,所以在下面的学习中,我要加快脚步,尽量用比较集中的时间来学习。此次课程已经结束,但我不会停下脚步,我会继续往下学,学习更深的内容。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,098评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,213评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,960评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,519评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,512评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,533评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,914评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,574评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,804评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,563评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,644评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,350评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,933评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,908评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,146评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,847评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,361评论 2 342

推荐阅读更多精彩内容

  • 一、Java 简介 Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计...
    子非鱼_t_阅读 4,146评论 1 44
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,560评论 18 399
  • “没有无比正确的生活,只要怀揣着对生活的美好期许,并且一直努力向上,拥抱爱人和家庭,用心工作,在自己能力范围之内...
    Bigbig锋阅读 173评论 0 1
  • 昨天看了77关于理财的分享,很是触动。佩服她学习简七理财后消化吸收并高效产出的能力,由这一点,又领略了她真正学霸的...
    绽蕊向阳阅读 137评论 0 0
  • linux vi vim vim 命令合集 基本上 vi/vim 共分为三种模式,分别是命令模式(Command ...
    春天的蜜蜂阅读 880评论 0 0