`
zisefeiniao
  • 浏览: 167491 次
  • 性别: Icon_minigender_2
  • 来自: 成都
社区版块
存档分类
最新评论

MLDN,第一天,JAVA学习开始

阅读更多
   3月23日,第一天学习java,等了一个星期,终于回到了我最熟悉的编程语言,我想C++和Java本身差不多,所以我也不担心。今天的课算是预课班,老师说了不算课时。

今天所讲的知识点
A JDK的安装及环境变量的设置
B public class 和class
C JAVA的数据类型
D JAVA的运算符
E JAVA的关键字
F JAVA的流程控制语句
G JAVA的数组
H 和数组相关的方法
I JAVA的方法
J JAVA的方法重载
K JAVA方法递归调用




我对知识点的分析

A JDK的安装之前也需要先禁用防火墙;
JDK的安装要注意其安装路径;
一个JDK安装完成之后,要使用bin目录下的操作命令:
  • javac.exe:属于编译程序,可以将一个*.java的文件编译成*.class文件
  • java.exe:属于执行程序,可以将一个*.class文件进行执行
  • Java本身是属于编译型和解释型的开发语言,所有的代码必须经过编译之后才可以使用。
但是以上的若干命令本身并不属于windows操作系统,所以需要在path路径之中配置以上的命令的工具所在的目录。
右键点击我的电脑—属性—高级—环境变量—path的值中添加“JDK的安装路径\bin;”
或者为了之后方便的使用“JDK的安装路径”,还可以新建一个环境变量,JAVA_HOME,并设置其值为“JDK的安装路径”,那么刚才的path值就可以添加为:“%JAVA_HOME%\bin;”,之后需要使用“JDK的安装路径”的地方都可以使用JAVA_HOME代替;
B 在定义一个类的时候,要求类名称必须单词的首字母大写:TestJavaDemo。
在java程序中可以使用public class和class声明一个类,但是这两种声明有以下一种明显的区别:
• 使用public class声明的时候,类的名称必须与文件名称一致。
• 使用class声明一个类的话,那么文件名称可以与类名称不一致,但是要求执行的时候要执行的是生成后的class文件。
• 在一个java源程序中,public class只能是一个,class可以是多个,但是会生成不同的*.class文件。
C
boolean数据类型的变量只能赋值为true或false;
有些数据类型间可以发生隐式转换,数据精度低的到数据精度高的,或者说数据长度短的到数据长度长的,比如charint ,floatdouble,如果想要强制数据类型转换可以使用(数据类型),但前提也是要能发生转换的之间才可以。
JAVA采用的是UNICODE编码。

D  算术运算符和算术表达式
包括 +、-、*、/、%、++、--
运算符 ++ 和减一运算符 -- 只能用于变量,而不能用于常量或表达式。
 关系运算符和关系表达式
包括 >、>=、<、<=、== 、 !=
 逻辑运算符和逻辑表达式
包括 &&(短路与)、 ||(短路或)、!(非), &(普通与), |(普通或)
  • 普通与(&):所有的条件都要判断
  • 短路与(&&):如果第一个条件为假,则后面的条件不再判断。
  • 普通或(|):所有的条件都要判断
  • 短路或(||):如果第一个条件为真,后面的条件都不用判断了
 赋值运算符和赋值表达式
包括 =
在 = 之前加上某些特定运算符,如:+=,-=,*=,/=
 条件运算符和条件表达式
包括( ?:)
 移位运算符
>>(右移)、<<(左移)

E abstract boolean break byte case catch char
class continue default do double else extends
false final finally float for if implements
import instanceof int interface long native new
null package private protected public return short
static synchronized super this throw throws transient
true try void volatile while assert enum
但是以上有几个关键字需要说明:
  • Java中存在两个未使用到的关键字:const、goto
  • 在JDK 1.4之后增加了:assert关键字
  • 在JDK 1.5之后增加了:enum关键字
但是在java中以下的几个不属于关键字,但是属于唯一标识,也是不可以使用的:
  • true、false、null

F JAVA继续沿用用之前C/C++等语言的流程控制结构:
顺序结构、分支结构、循环结构
一、分支结构包括:
(1)单分支结构
if(条件)
{
    满足条件后需要执行的语句
}
(2)双分支结构
if(条件)
{
    满足条件后需要执行的语句
}
else
{
   在if的条件不满足的情况下需要执行的语句
}
else后面不能加条件
(3).多分支语句结构
if(条件1)
{
  满足条件1 需要执行的语句;
}
else if(条件2)
{
  不满足条件1,才会判断条件2
  满足条件2,要执行的语句序列;
}
else if(条件3)
{
.....
}
else
{
以上条件均不满足需要执行的语句序列
}
(5)switch ....case
switch(条件表达式)      //条件表达式的结果必须是整型的
{
    case  常量值1:
             语句序列1;
             break;     //跳出switch结构
    case  常量值2:
             语句序列2;
             break;
    case  常量值3:
             语句序列3;
             break;
    case  常量值4:
             语句序列4;
             break;
    ....
    case  常量值n:
             语句序列n;
             break;
 
    default:
             语句序列;
             break;
}//自然出口,安全出口
二、循环结构
1、循环结构的三要素
(1)初始化(一般指对循环变量的初始化)
(2)循环条件(一般用来确定循环变量的终止值)
(3)循环增量(一般用来描述循环变量在每次循环之后的改变值)
   增长:正增长/负增长
2、for结构
for(表达式1;表达式2;表达式3)
{
循环体语句;(1---n句)
}
或者理解成
for(循环变量的初始化 ; 循环条件 ; 循环变量增量表达式)
{
需要循环重复执行的语句;
}
i,j,k这样的单字母通常被用来定义为循环变量;
循环变量是用来控制循环的次数;
for循环的执行过程:
(1)先执行表达式1,进行初始化
(2)判断循环条件,如果满足,就执行循环体语句;
   如果不满足,就退出循环
(3)执行表达式3,改变循环变量
(4)继续判断循环条件,如果满足,就执行循环体语句;
   如果不满足,就退出循环
(5)重复第(3)(4)步
3、while循环
while (<表达式>)
{
  <语句>
}
语义是:当<表达式>的值为非零时,则执行<语句>,然后再判断<表达式>的值,只要它不为零,继续执行<语句>,如此重复,直到<表达式>的值为零为止。
4、do-while语句:
do 
{                               
  <语句>
}
while  (<表达式>);
语义是:先执行<语句>,再判别<表达式>,若<表达式>的值为非零,则重复执行<语句>,直到<表达式>的值为零为止。
5、下面几种循环语句的比较:
(1)while和for都是先判断后循环,而do-while是先循环后判断。do-while循环要无条件的执行一次循环体,而while和for循环在条件不成立时,循环体一次也不执行。
(2)对于同一问题,三种语句均可解决,但方便程度视具体情况而异。
6、break和continue的区别
break语义:为跳出当前的switch语句或循环语句,用于循环表示终止一层循环,即跳出当层循环;
continue语义为:结束本次循环,即跳过循环语句中尚未执行的语句,接着进行循环条件的判定,准备下一次循环
JAVA中的数组概念仍然用于表示处理一组具有相同数据类型的变量,主要用于解决一堆变量的命名问题并且可以整体访问这一组数据;
一、一维数组
1、一维数组的定义
• 声明格式一:
数组类型 数组名称[] = new 数据类型[长度] ;
• 声明格式二:
声明数组: 数组类型 数组名称[] = null ;
实例化数组: 数组名称 = new 数组类型[长度] ;
2、一维数组元素的使用
数组名称[下标],下标的范围是0至(数组长度-1),注意不要越界;
3、可以把栈内存空间,简单的理解为数组的名称保存(保存的是堆空间的起始位置的地址),而堆内存空间保存的是数组的具体内容。栈和堆的关系通过new关键字建立。
4、静态声明数组
即声明的同时初始化:数据类型 数组名称[] = {值1,值2,…} ;
二、二维数组
1、定义
• 声明格式一:
数组类型 数组名称[][]= new 数据类型[第一维长度] [第二维长度];
• 声明格式二:
声明数组: 数组类型 数组名称[][] = null ;
实例化数组: 数组名称 = new数据类型[第一维长度] [第二维长度];
2、二维数组元素的使用
数组名称[第一维的下标][ 第二维的下标],第一维下标的范围是0至(第一维长度-1),第二维下标的范围是0至(第二维长度-1),注意不要越界;
3、二维数组中每一行的长度可以不一致,这就需要通过静态方式声明;
例如:int temp[][] = {{1,3},{2,3,4,56},{1}} ;
三、多维数组
多维数组的定义和使用方法和之前类似,不过编程中较少使用
1、求数组的长度
一维数组名.length可以返回数组的长度
二维数组名.length可以返回第一维的长度,即行数
二维数组名[第一维的下标].length可以返回该行的元素个数
2、拷贝函数
可以将一个数组的部分内容拷贝到另外一个数组之中,使用System.arraycopy()的方法完成
arraycopy()方法是系统的方法,本身的参数的意义如下:
• 第一个参数表示源数组
• 第二个参数表示源数组的拷贝点
• 第三个参数表示目标数组
• 第四个参数表示目标数组的拷贝点
• 第五个参数表示拷贝的长度
3、排序
在java中可以非常轻松的实现数组的排序功能
java.util.Arrays.sort(一维数组名称) ;
I 方法在程序中就是一段可重复调用的代码,是对代码的一种重新组织方式。但是现在牵扯到所有的方法要由主方法直接调用。
一、定义格式如下:
public static 返回值类型 方法名称([参数列表...]){
[return 返回值] ;
}
说明(函数的四要素):
   返回值有两种类型
• 返回具体的数据类型:基本数据类型、引用数据类型
• 什么都不返回:void
函数名:是对函数体的一个命名标识,第一个单词的首字母小写,之后每个单词的首字母大写。“见名知意”
   参数列表:是一系列要实现函数功能的输入条件。如无参,则表示为空或void。
   函数体:函数要完成的功能。
二、函数的调用(三种格式)
1.语句格式:用于无返回值的方法调用
2.表达式格式:用于有返回值的方法调用
3.函数的实参格式:用于有返回值的方法调用
J 所谓的方法重载,就是指:方法名称相同,参数的类型或个数不同,调用的时候会根据传入的参数的类型或个数自动完成不同方法体的调用。
K 递归调用:就是一个方法自己调用自己,但是在使用递归操作的时候应该明确的声明一个操作的终结点。
但一般能通过简单的语句代替的不采用递归,这样会增加内存的负担,因为每调用一次方法都要开辟一个段栈空间,直到该方法调用结束才释放。


今天学习的这些基础知识,和我之前掌握的c/c++的基础部分类似,所以掌握起来没有问题。不过今天的听课过程倒是让我体会比较深,更加体会到知识点的讲解顺序,教学方法,教学的安排等非常影响学生的听课效果。而且作为一名教师,口头表达能力尤为重要,不要有太多的口头语,如果需要停顿思考,那么就停下来,不要不断重复一些无关的口头语,让学生听着很累。
在讲编程问题的时候,尽量敲代码,不要站着空讲。
讲一个问题,说清楚就可以了,没必要重复讲解,除非是难点和重点。
每一节课应该明确目标任务,并且要注明今天讲课的重点,难点,以及只是需要了解的部分,有助于学生的学习安排。这一点李兴华老师做的非常好!
每节课之前之后都需要复习总结,之前呢复习上次课程的重点部分,之后呢复习本次课程的重点部分,可以使学习连贯起来。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics