Java第一篇Java基础复习

                                第一篇Java基础知识 复习

一.掌握java基本语法,常量,变量,流程控制语句,方法以及数组。

二.了解java代码的基本格式。

三.熟悉Java运算符的使用。

1.Java的基本语法

Java中的程序代码都必须放在一个类中,类需要使用clss关键字定义,在clss前面可以有一些修饰符,格式如下:

修饰符 class 类名{

程序代码

}

   main()方法必须是静态的,因为在调用main()方法时,还没有实例化该类的对象,所以只能使用静态方法。而且,main()方法的返回类型必须是void,它不会返回任何值。    

 参数args是一个字符串数组,它包含了命令行参数,可以通过这个参数来传递输入信息。

在main()方法中,你可以使用这个参数来接收和处理输入数据。      这就是Java主类的基本结构,你可以在这个类里定义其他方法和变量,但是只有main()方法是程序的入口点。      

类和接口是Java中最基本的引用数据类型,数组是一个容器,可以存储一组相同类型的数据,枚举是一种特殊的数据类型,用于定义一组常量,注解是一种用于为程序元素(类、方法、字段等)添加元数据的机制。    

在Java中,包(Package)是用来组织类和接口的一种机制,可以将相关的类和接口放在同一个包中。包声明是指在Java源文件的开头使用package语句来指定该文件中的类或接口所在的包。

在编写Java代码时,需要特别注意下列几个关键点:

Java中的程序代码可分为结构定义语句和动态执行语句。其中,结构定义语句声明一个类或方法,功能执行语句用于实现具体的功能。

                   Java中的程序代码都必须放在一个类中,用class关键字定义,前面可以带修饰符(1)程序代码分为结构定义语句和功能执行语句                                       结构定义语句用于声明一个类和方法                           

           功能执行语句用于实现具体的功能                           每条功能执行语句的最后都必须以英文分号(;)结尾                    

   (2)java语言严格区分大小写
java中的注释:                    

 java中的注释有三种类型:     (1)//   后加单行注释

                              (2)以/*开头以*/结尾                        

        (3)文档注释以/**开头以*/结尾

JAVA的数据类型
可以分为两大类

 原始数据类型
整数和小数取值范围   double>float>long>int>short>byte\n\n以下8种:     

  1 boolean: 表示布尔值,只有两个取值:   true和flase 

        2byte  表示8位的有符号整数,   取值范围为 -128到127。
   3short :表示16位的有符号整数,  取值范围为-32768到32767。 

 4int: 表示32位的有符号整数, 取值范围为-2147483648到2147483647。
    5   long: 表示64位的有符号整数,取值范围为-9223372036854775808到  9223372036854775807。
     6  float:表示32位的单精度浮点数,取值范围为1.4E-45到3.4028235E38。
     7  double:表示64位的双精度浮点数,取值范围为4.9E-324到1.7976931348623157E308。
    8  char:表示16位的Unicode字符,取值范围为'\\u0000'到'\\uffff'。

2.Java编程基础
一.Java基本语法
1.修饰符  class 类名          程序代码
2.在编写Java代码时,注意几个关键点:
(1.)Java中的程序代码可分为结构定义语句和功能执行语句,每条执行语句结束必须用分号(;)结束

(2.)Java语句严格区分大小写

 (3.)填写的程序代码整齐美观,层次清晰。

(4.)  Java程序中一句连续的字符串不能分开两行中书写(如果太长就使用“+”将两个字符串连起来,在“+”处断行)

3.Java中的注释 (1.)为了使代码易于阅读

(2.)注释是对程序的某个功能或者某行代码的解释说明,它只在Java源文件中有效。 (3.) Java中的注释有三种类型:1.单行注释“//”  2.多行注释开始“/*”和结束“*/”  3.文档注释以“/**”开头

4.Java中的标识符
(1).是用于标识类名,变量名,方法名,数组名,文件名的有效字符序列。 2).标识符由任意顺序的字母\"aA\",下划线\"_\",美元符号\"$\"和数字组成。(注意:1.数字不能放在开头  2.避开关键字

.引用数据类型
以下几种:类(Class)
接口(Interface)
数组(Array)
枚举(Enum)
注解(Annotation
5.Java中的关键词

(1).关键词是编程语言里事先定义好并赋予了特殊含义的单词。

 二.常量变量数据类型

1.Java中的常量
(1.)常量就是在程序中固定不变的值,是不能改变的数据。
(2.)在Java中,常量包括整型常量,浮点型常量,布尔常量,字符型常量等。

2.Java中的变量
(1.) 定义:数字类型+变量名
(2.)变量的数据类型

(3.) 整数类型变量

 

 (4.)浮点数类型变量

 (5.)字符类型变量

 (6.)布尔类型变量

 3.变量的类型转换

(1.)数据类型转换可分为两种:

注意:

 

 ​​​​​​

 (3)变量的类型转换

 

 

代码如下

 运行结果如下:

 运行结果如下:

变量需要在它的作用范围内才可以被使用,这个作用范围称为变量的作用域。\n在程序中,变量一定会被定义的某一对大括号中,该大括号所包含的代码区域便是这个代码的作用域。如果超出大括号范围,就会无效。

自动类型转换就是把小的转化为大的数。

(1)整数类型之间可以实现转换。 如byte类型的数据可以赋值给short、int、long类型的变量,short、char类型的数据可以赋值int、long类型的变量, int类型的数据可以赋值给long类型的变量。

(2)整数类型转换为float类型。如byte、char、short、int类型的数据可以赋值给float类型的变量。

(3)其他类型转换为double类型,如byte、char、short、int、long、float类型的数据可以赋值给double类型的变量。

三、标识符 
 1、在编程过程中,经常需要在程序中定义一些符号来标记一些名称,如,包名、类名、方法名、参数名、变量名等,这些符号被称为标识符。

    2、标识符可以由任意顺序的大小与字母、数字、下划线(_)和美元符号($)组成,但不能以数字开头,不能是Java中的关键字。

 3、包名的字母一律小写。

 4、类名和接口名每个单词的首字母都要大写。

 5、常量名所有字母都大写,单词之间用下划线连接。

 6、变量名和方法名的第一个单词首字母小写,从第二个单词开始每个首字母大写。  

 7、在程序中,应该尽量使用有意义的英文单词来定义标识符,使得程序便于阅读。

Java中的标识符。

在编程过程中,经常需要在程序中定文一些符号来标记一些名称,如,包名、类名、方法名、参数名、变量名等。这些符号被称为标识符,→标识符可以由任意顺序的大小写字母、数字、下划线()和美元符号(S》组成,但不能以数字开头,不能是ava中的关键字。建议初学者在定义标识符时还应该遵循以下规则: 1、包名所有字母一律小写

例如: cn.itcast.test。

2、类名和接口名每个单词的首字母都要大写。如: ArrayList、lterator。

 3、常量名所有字母都大写,单词之间用下划线连接。例如: DAY_OF_MONTH。

4、变量名和方法名的第一个单词首字母小写,从第二个单词开始每个单词首字母大写。

例如: lineNumber、getLineNumber。

5、在程序中,应该尽量使用有意义的英文单词来定义标识符,使得程序便于阅读。例如使用userName表示用户名,password表示密码。

代码如下:

 运行结果如下:

 2.强制类型转换
强制类型转换也叫显式类型转换,指的是两种数据类型之间的转换需要进行显式地声明当两种类型彼此不兼容,或者目标类型取值范围小于源类型时自动类型转换无法进行,这时就需要进行强制类型转换。强制类型转换的格式如下所示

运行结果:

代码:

 运行结果:

  3.变量的作用域
   变量需要在它的作用范围内才可以被使用,这个作用范围称为变量的作用域。在程序中,变量一定会被定义在某一对大括号中,该大括号所包含的代码区域便是这个变量的作用域。

代码:

运行结果:

 4.Java中的运算符
算术运算符

 代码:

 运行结果:

算术运算符看上去比较简单,也很容易理解,但在实际使用时有很多需要注意的问题,具体如下:
(1)在进行自增(++) 和自减 (--) 的运算时,如果运算符放在操作数的前面则是先进行自增或自减运算,再进行其它运算。反之,如果运算符放在操作数的后面则是先进行其它运算再进行自增或自减运算
(2)在进行除法运算时,当除数和被除数都为整数时,得到的结果也是一个整数。如果除法运算有小数参与,得到的结果会是一个小数。
(3)在进行取模(%)运算时,运算结果的正负取决于被模数(%左边的数)的符号,与模数(%右边的数)的符号无关。

2.赋值运算符
赋值运算符的作用就是将常量、变量或表达式的值赋给某一个变量,表中列出了Java中的赋值运算符及用法。

  在赋值运算符的使用中,需要注意以下几个问题:
(1) 在Java中可以通过一条赋值语句对多个变量进行赋值

int.X,Y,z;\nX=Y=z=5;//为三个变量同时赋值\nint x=y=z=5;// 这样写是错误的

(2) 除了“=”,其它的都是特殊的赋值运算符,以“+=”为例,x +=3就相当于x=x+3,首先会进行加法运算x+3,再将运算结果赋值给变量x-=、*=、/=、%=赋值运算符都可依此类推。

代码:

 运行结果:

5.JAVA的变量
在编程中,变量是用来存储数据的一种方法。在面向对象编程中,变量可以分为成员变量和局部变量。1.变量的作用域变量需要在他的作用范围才可以使用,这个范围称为变量的作用域。(一般是大括号内)

2.java变量的声明在Java中,可以使用关键字final来声明常量。final关键字告诉编译器,这个变量只能被赋值一次,一旦被赋值,就不能再被修改。需要注意的是,声明为final的变量在Java中是不可修改的,如果试图对其进行二次赋值,编译器会报错。因此,一般来说,常量的赋值应该在声明时进行,而不是在后面的代码中修改。

3.成员变量是定义在类中的变量,用于描述一个类的属性和状态。这些变量可以在类的任何方法中使用,并且可以被类的任何对象访问。成员变量在声明时不需要初始化,因为它们会在类的对象创建时自动初始化。例如,在一个Person类中,成员变量可以包括姓名、年龄、性别等。

4.局部变量是定义在方法内部的变量,只能在该方法内部使用。它们在方法中声明并初始化,当该方法执行完成后,这些变量会被自动销毁。局部变量的作用域仅限于声明它的方法。例如,在一个计算器方法中,局部变量可以包括数字、符号等。Java中有两种类型转换:自动类型转换和强制类型转换。

6.自动类型转换

byte a = 3;
int b = a;隐式类型转换,指的是转换的过程中不需要显式的进行声明必须满足两个条件        第一是两种数据类型彼此兼容       第二时目标类型的取值范围大于源类型的取值范围      当两种数据类型兼容时,Java会自动将其中一个类型转换成另一个类型。例如,将一个整数类型转换为浮点数类型,或者将一个字符类型转换为整数类型。在自动类型转换时,会发生一些精度损失或者数据截断的情况。

 7.java的其他运算符

算术运算符:
 用于对数值进行基本的算术运算,包括加法(+)、减法(-)、乘法(*)、除法(/)和取余(%)。
1.关系运算符:用于比较两个值的关系,包括等于(==)、不等于(!=)、大于(>)、小于(\u003C)、大于等于(>=)和小于等于(\u003C=)。
2罗辑运算符:用于对布尔值进行逻辑运算,包括逻辑与(&&)、逻辑或(||)和逻辑非(!)。
1为真        0为假&&两者为真,结果才为真||一者为真,则都为真!非真即假,非假即真^两者相同为0,不同为1
3.位运算符:用于对二进制数据进行位运算,包括按位与(&)、按位或(|)、按位异或(^)、按位取反(~)、左移位(\u003C\u003C)和右移位(>>)。
4.赋值运算符:用于将一个值赋给变量,包括赋值(=)、加等于(+=)、减等于(-=)、乘等于(*=)、除等于(/=)和取模等于(%=)。
5.其他运算符:包括三目运算符(? :)和 instanceof 运算符等。
自增(++)和自减(--)运算符,用于对变量进行加1或减1的操作。

6.逻辑运算符

在使用逻辑运算符的过程中,需要注意以下几个细节:

(1) 逻辑运算符可以针对结果为布尔值的表达式进行运算。如:x>3 &&y!=0·

(2)运算符“&”和“&&”都表示与操作,当且仅当运算符两边的操作数都为true时,其结果才为true,否则结果为false。当运算符“&”和“&&”的右边为表达式时,两者在使用上还有一定的区别。在使用“&”进行运算时,不论左边为true或者false,右边的表达式都会进行运算。如果使用“&&”进行运算,当左边为false时,右边的表达式不会进行运算,因此“&&”被称作短路与。

代码如下:

 

运行结果:

 7.运算符的优先级
在对一些比较复杂的表达式进行运算时,要明确表达式中所有运算符参与运算的先后顺序,把这种顺序称作运算符的优先级

代码:

 运行结果:

代码:

运行结果:

方法的重载

重载的特点: Java允许在一个程序中定义多个名称相同的方法,但是参数的类型或个数必须不同(个数不一样,类型不一样,顺序不一样也是重载),这就是方法的重载。(方法名相同,但是这个参数列表不一样)
重载和前面的内容没有关系,返回值没关系修饰符也没关系。只和方法名和参数列表有关系。

8. 循环结构语句
1,while循环语句while语句和if条件语句有点类似,都是根据条件判断来决定是否执行后面的代码,区别在于,while循环语句会反复地进行条件判断,只要条件成立,0内的执行语句就会执行,直到条件不成立while循环结束。while循环语句的语法结构如下所示:

 while(循环条件){                 执行语句                   -------

                     }

while循环语句的执行流程图如图所示

 if..else语句if...else语句是指如果满足某种条件,就进行某种处理,否则就进行另一种处理,其语法格式如下所示: if...else语句的执行流程图如下:

 

if...else多分支语句的执行流程图如下:

 

 switch条件语句

switch语句也是一种很常见的选择语句。和if条件语句不同,它只能针对某个表达式的值做出判断,从而决定执行哪一段代码。在switch语句中,使用switch关键字来描述一个表达式,使用case关键字来描述和表达式结果比较的目标值,当表达式的值和某个目标值匹配时,会执行对应case下的语句,

例如,在程序中使用数字1~7表示周一到周日,如果想根据某个输入的数字输出中文格式的星期值,

代码如下

/*
 * Switch语句
 */
public class Tdshj {
 
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  int week = 8;
  switch(week) {
  case 1:
   System.out.println("星期一");
   break;
  case 2:
   System.out.println("星期二");
   break;
  case 3:
   System.out.println("星期三");
   break;
  case 4:
   System.out.println("星期四");
   break;
  case 5:
   System.out.println("星期五");
   break;
  case 6:
   System.out.println("星期六");
   break;
  case 7:
   System.out.println("星期日");
   break;
   default:
    System.out.println("输入的数字不正确...");
    break;
    
  }
  
  
  
 }
 
}

注意:
1、条件表达式的返回值类型必须是以下类型之一:int 、byte、 char、short 、string(如果传入其他值,程序会报错。)
2、case子句中的值常量N必须是常量,而且所有case子句中的值应是不同的。 
3、break语句用来在执行完一个case分支后,是程序跳出switch语句,即终止 switch语句的执行。
4、在一些特殊情况下,多个不同的case值执行一组相同的操作,这时可以不用break

可以通过右边所示的代码来实现switch语句的基本语法结果:

代码:

运行结果:

9.for循环语句
for循环语句是最常用的循环语句,一般用在循环次数已知的情况下,其语法格式如下所示:、for(表达式1;表达式2;表达式3){语句序列}在上述语法格式中,for后面的 () 中包括三部分内容,初始化表达式、循环条件和操作表达式,它们之间用“;”分隔,{}中的执行语句为循环体

其语法格式如下所示:

 在上述语法格式中,for后面的 () 中包括三部分内容,初始化表达式、循环条件和操作表达式,它们之间用“,”分隔,0中的执行语句为循环体.

10.循环嵌套
嵌套循环是指在一个循环语句的循环体中再定义一个循环语句的语法结构。while、do...while、for循环语句都可以进行嵌套,并且它们之间也可以互相嵌套。

代码: 

运行结果:

代码:

 运行结果:

代码如下:

 运行结果:

跳转语句用于实现循环执行过程中程序流程的跳转,在Java中的跳转语句有break语句和continue语句·

1、break语句:用在switch条件语句和循环语句中,它的作用是终止某个case并跳出switch结构·

2、continue语句:用在循环语句中,它的作用是终止本次循环,执行下一次循环

代码如下:

运行结果:

注意:switch语句中表达式的值必须是整数,字符型,字符串型或枚举类型,常量值1~n的数据类型必须跟表达式的值的类型系统

循环结构
(1)while语句while语句和if条件语句有点类似,都是根据条件判断来决定是否执行后面的代码,区别在于,while循环语句会反复地进行条件判断,只要条件成立,{}内的执行语句就会执行,直到条件不成立while循环结束。

while循环语句的语法结构如下所示:

 2)do...while循环语句do...while循环语句和while循环语句功能类似,其语法结构如下所示:

do....while语句的执行流程图如下:

 在上述语法格式中,for后面的 () 中包括三部分内容,初始化表达式、循环条件和操作表达式,它们之间用“;”分隔,{}中的执行语句为循环体for语句的执行流程如下:for(1;2;3){4}

第一步,执行1第二步,执行2,如果判断结果为 true,执行第三步,如果判断结果为 false,执行第五步
第三步,执行4
第四步,执行3,然后重复执行第二步
第五步,退出循环

嵌套循环
    嵌套循环是指在一个循环语句的循环体中再定义一个循环语句的语法结构。while、do...while、for循环语句都可以进行嵌套,并且它们之间也可以互相嵌套,如最常见的在for循环中嵌套for循环格式如下:

案例代码:打印一个直角三角形

 跳转语句(break、continue)
跳转语句用于实现循环执行过程中程序流程的跳转,在Java中的跳转语句有break语句和continue语句1.break:用在switch条件语句和循环语句中,它的作用是终止某个case并跳出switch结构。2.continue:用在循环语句中,它的作用是终止本次循环,执行下一次循环方法

(一)方法的定义
在Java中,声明一个方法的具体语法格式如下所示

修饰符:是对访问权限的限定,例如,public、static都是修饰符
返回值类型:用于限定方法返回值的数据类型。
参数类型:用于限定调用方法时传入参数的数据类型。
参数名:是一个变量,用于接收调用方法时传入的数据
return关键字:用于结束方法以及返回方法指定类型的值返回值:被return语句返回的值,该值会返回调用者 

例如:public、static都是修饰符返回值类型:用于限定方法返回值的数据类型。参数类型:用于限定调用方法时传入参数的数据类型。参数名:是一个变量,用于接收调用方法时传入的数据。return关键字:用于结束方法以及返回方法指定类型的值。返回值:被return语句返回的值,该值会返回调用者。
数组
(一)数组的定义
数组是指一组数据的集合,数组中的每个元素被称为元素,在数组中可以存放任意类型的元素,但同一个数组中存放的元素类型必须一致。
   在Java中,可以使用下列格式定义一个数组,具体示例如下:

 

 上述语句就相当于在内存中定义了100个int类型的变量,第一个变量的名称为x[0],第二个变量的名称为x[1],以此类推,第100个变量的名称为x[99],这些变量的初始值都是0。接下来,通过两张内存图来说明数组在创建过程中的内存分配情况,如下所式

在初始化数组时还有一种方式叫做静态初始化,就是在定义数组的同时就为数组的每个元素赋值。数组的静态初始化有两种方式:

在编译过程中,经常需要在程序中定义一些符号来标记一些名称,如:包名、类名、方法名、参数名、变量名等,这些符号被称为标识符。
标识符可以是任意顺序的大小写字母、数字、下划线(_)和美元符号($)组成。数字不能做开头,不能是关键字。
标识符:所有字母有五十二个,严格区分大小写。      包名:全都是小写字母
类名:首字母大写,如果是两个单词或以上,每个单词的首字母都要大写,如:HowAreYou\n常量名所有字母都大写,单词之间用下划线连接。例如:DAY_OF_MONTH。变量名和方法名的第一个单词首字母小写,从第二个单词开始每个单词首字母大写。例如:lineNumber、getlineNumber。在程序中,应该尽量使用有意义的英文单词来定义标识符,使得程序便于阅读。例如使用userName表示用户名,password表示密码。

数组的遍历
(1)数组遍历
在操作数组时,经常需要依次访问数组中的每个元素,这种操作叫做数组的遍历

 

 

 案例打印直角三角形:

运行结果:

可以通过“数组名.length”的方式来获取数组的长度,也就是元素的个数。正在初始化数组时还有一种方式叫做静态初始化,就是在定义数组的同时就为数组的每个元素赋值。数组的静态初始化有两种方式

例如数组的元素代码:

 

 运行结果:

 数组排序
   在操作数组时,经常需要对数组中的元素进行排序,其中冒泡排序是比较常见的一种算法。冒泡过程中,不断比较数组中相邻的两个元素,较小者向上浮,较大者往下沉,整个过程和水中气泡上升的原理相似。

 数组的常见操作
数组遍历在操作数组时,经常需要依次访问数组中的每个元素,这种操作叫做数组的遍历。数组排序的过程如下所示

:(1)从第一个元素开始,将相邻的两个元素依次比较,直到最后两个元素完成比较,如果第一个元素比后一个大,则交换位置。整个过程完成后,数组中最后一个元素就是最大值

(2)除最后一个元素,将剩余的元素继续进行两两比较,过程与第一步类似,这样数组中第二大的元素放在了倒数第二个位置

(3)以此类推,持续对越来越少的元素重复上面的步骤,直到没有任何一个元素需要比较为止。

多维数组
多维数组可以简单地理解为在数组中嵌套数组。在程序中比较常见的就是二维数组。
>二维数组的定义有很多方式,具体如下:。方式一:

 什么是方法
假设一个游戏程序,程序在运行过程中,要不断的发射炮弹。发射炮弹的动作需要编写100行的代码,在每次实现发射炮弹的地方,都需要重复的编写这100行代码,这样程序会变得很臃肿,可读性也非常差。为了解决代码重复编写的问题,可以将发射炮弹的代码提取出来放在一个{}中,并为这段代码起个名字,然后每次发射炮弹的地方通过这个名字来调用代码就可以了。上述过程中所提取出来的代码可以被看作是程序中的一个方法,程序在需要发射炮弹时调用该方法即可。方法可以看成完成一个功能的,具有独立性的代码的一个小的片段。

每个数组的索引都有一个范围,从0~length-1,在访问数组的元素时,索引不能超过这个范围,否则程序会报错2、在使用变量引用一个数组时,变量必须指向一个有效的数组对象,如果该变量的值为null,则意味着没有指向任何数组,此时通过该变量访问数组的元素会出现空指针异常。

数组排序:

在操作数组时,经常需要对数组中的元素进行排序,其中冒泡排序是比较常见的一种算法。冒泡过程中,不断比较数组中相邻的两个元素,较小者向上浮,较大者往下沉,整个过程中水中气泡上升的原理相似。\n从第1个元素开始,将相邻的两个元素依次比较,直到最后两个元素完成比较,如果第1个元素比后一个大,则交换位置。整个过程完成后,触组中最后一个元素就是最大值。(相邻的两个元素进行比较换位 )(数组元素换位:临时变量)

代码冒泡排序 :

 运行结果如下:

 随机点名器案例篇: 

 运行结果如下:


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部