Java程序语言基础

第一章:走进Java世界

public    static    void    main    class    system    out    print    line    problem

main方法的框架 :public static void main(String[] args){}

main()方法是程序的入口,可以出现的任何一个类中,但要保证一个Java类种只用一个main()方法。

向控制台输出内容:System.out.println();

转义字符:

    换行:“\n”

     一个制表位:“\t”

Java程序中的注释:

单行注释:使用“ // ”开头

多行注释:以“ /* ”开头,以“ */ ”结尾。

文本注释:  以“ /** ”开头,以“ **/”结尾。

第二章:数据类型,变量和运算符

double    string    character    integer    scanner    score    name    boolean    true    false

Java常用的数据类型

Java语言提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符型,还有一种布尔型。

1.整形:byte, short, int, long

一般地整型变量默认为int类型

baty: 取值范围-128(-2^7)~127(2^7-1)    默认是 0

baty a = 127;    baty b = -128;

short: 取值范围-32768(-2^15)~32767(2^15-1)    默认值 0

short a = -32768;    short b = 32767;

int: 取值范围-2147483648(-2^31)~2147483647(2^31-1)    默认值 0   

int a = -2147483648;    int b = 2147483647;

long: 取值范围-2^{63} ~ 2^{63}-1    默认值 0L

long a = 10000L;    long b = -10000L;

L理论上不分大小写

2.浮点型:float,double

浮点数的默认类型为double类型

float: 数据类型是单精度浮点数,   默认值是0.0f;    浮点数不能用来表示精确度,如货币

float a = 234.5f;

double: 数据类型是双精度浮点数,    默认值:0.0d;    double类型同样不能表示精确的值,如货币

3.字符型:char

最小值是 \u0000(十进制等效值为0);

最大值是\ufff(即为65535);

默认值:‘\u0000’

char a = 'A';

4.布尔型:boolean

只有两个取值:true 和 false

默认值:false

boolean a = true;    boolean b = false;

5.字符串型:String

String a = "xiaoemo";

默认值:null

变量

变量是一个数据存储空间的表示(内存中的一块存储空间)。

变量由变量名,变量类型,变量的值三部分组成。

变量声明及使用

声明变量:即“根据数据类型在内存中申请一块空间”,这里需要给变量命名。

语法:数据类型 变量名;

String name;  //声明字符串变量name存储学生姓名
char sex;     //声明字符型变量sex存储性别
double score; //声明双精度浮点型变量score存储分数

为变量赋值:即“将数据存储至对应的内存空间”。

语法:变量名 = 值;

name = "张三"; //存储"张三"
score = 98.5;  //存储98.5
sex = '男';    //存储'男'

声明变量并赋值:

语法:数据类型 变量名 = 值;

String name = "张三";
double score = 98.5;
char sex = '男';

调用变量:即“使用存储的变量”

使用声明的变量名就是使用变量对应的内存空间中存储的数据。

System.out.println(name);  //从控制台输出变量name的值
System.out.println(score); //从控制台输出变量score的值
System.out.println(sex);   //从控制台输出变量sex的值

变量命名规则

规范:变量名要简短且能清晰地表达变量的作用,可以由多个单词组合而成,通常第一个单词的首字母小写,其后单词首字母要大写。

条件 合法变量名 非法变量名

1

变量必须以字母,下划线,“-”,或“$”

_myCar

scorel

$myCar

grah1_1

*myvariablel

9variable

Varia ble%

a+b

My Variable

t1-2

2 变量可以包括数字,但不能以数字开头
3 除了“-”或“$”符以外,变量名不能包含任何特殊字符
4 不能使用Java语言的关键字,如int ,class,public

运算符

赋值运算符 

    就是 “  = ”

    “=”称为赋值运算符

    “=”的功能是等号右边表达式的结果赋值给等号左边的变量

“=”和“==”的区别

(1)"="是赋值运算符,即把右边的值赋给“=”左边的变量,如int num = 20;

(2)"=="是比较运算符,即“==”左边的值与“==”右边的值比较,看它们 是否相等,如果相等则为true,否则为false,如3==4的结果为false。11

算数运算符

运算符 说明 举例
+ 加法运算符,求操作数的和 5+3等于8
- 减法运算符,求操作数的差 5-3等于2
* 乘法运算符,求操作数的乘积 5*3等于15
/ 除法运算符,求操作数的商 5/3等于1
% 取余运算符,求操作数相除的余数 5%3等于2

++
变量自增1,然后就将其结果进行赋值(运算) 自增运算,i++,++i
-- 先进行赋值(运算),然后变量自增1 自减运算,i--,--i

i++与++i的区别

i++先赋值,后自增

++i先自增,后赋值

数据类型转换

1.自动数据类型转换

2.强制数据类型转换

关系运算符

关系运算符 说明 举例
> 大于 99>100,结果为false
< 小于 大象的寿命<乌龟的寿命,结果为true
>= 大于等于 你的考试成绩>=200分,结果为false
<= 小于等于 每次的考试成绩>=60分,结果为false
== 等于 地球的大小==篮球的大小,结果为false
!= 不等于 水的密度!=铁的密度,结果为true

逻辑运算符

运算符 汉语名称 表达式 说明 举例
&& 与,并且 条件1 && 条件2 两个条件同时为真,则结果为真;两个条件又一个为假,则结果为假

具有选举权的条件:年满十八周岁&&中国公民

两个条件都为真则具有选举权。有一个条件为假,则不具有选举权

|| 或,或者 条件1||条件2 两个条件有一个为真,则结果为真;两个条件同时为假,则结果为假

从北京去昆明的方式:乘车||乘飞机

两个条件有一个条件为真就可以去昆明。若都为假,则不去昆明。

!条件 条件为真实,结果为假。条件为假时,结果为真 成为优秀开发人员的条件: !偷懒

Java提供了可以从控制台获取键盘输入的功能,获取整形变量调用 next整形数据类型()方法。如果获取的是字符串则需要调用next()方法。

要使用这个功能,必须在Java源代码的第一行写上:

import java.util.Scanner;或者 import java.util.*; 

第三章:选择结构

if    else    break    continue    match     gender    random    score    case    switch    sefault

exit

if选择结构:
1.基本if选择结构:可以处理单一或组合条件的情况。

语法:if(条件1){

                   //代码块

           }

2.if-else选择结构:可以处理简单的条件分支情况。(使用较频繁)

语法:if(条件1){

                   //代码块1{

           }else{

                    //代码块2 

           }

3.多重if选择结构:可以处理复杂的条件分支情况。在解决需要判断的条件是连续的区间时有很大优势。

语法:if(条件1){

                   //代码块1

          }else if(条件2){

                    //代码块2

         }else{

                    //代码块3

          }

嵌套if选择结构:在if选择结构中又包含一个或多个if选择结构的情况,一般用于较为复杂的流程控制中。

语法:if(条件1){

                   if(条件2){

                   //代码块1

                   }else{

                   //代码块2

           }else {

                   if(条件3){

                   //代码块3

                   }else{

                   //代码块4

            }

switch先择结构:需要多重分支并且条件判断是等值判断的情况下,使用switch选择结构会更简单,代码结构更清晰易读。
语法:switch(要判断的常量){

                   case 常量1:

                           //代码块1;

                   break;

                   case 常量2:

                           //代码块2;

                   break;

                   ......

                   case 常量n:

                           //代码块n;

                   break;

           }

第四章:循环结构(一)

while    do    index    bug    debug    step    equal    error

1.while循环结构

语法:while(循环条件){

                   循环操作

           }

2.do-while循环

语法:do{

           循环操作
           }while(循环条件);

第五章:循环结构(二)

rate    young    schedule    negative    customer    birthday    contine    return

3.for循环

语法:

for(表达式1;表达式2;表达式3){

        //循环体

}

 4.break语句

用于终止某个循环,使程序跳到循环体外的下一条语句。在循环中位于break语句后的语句将不再执行,循环也停止执行。

5.continue语句

在某次循环中,不执行完循环体中所有的语句,就想跳出此循环,开始执行下一次循环。

第六章:循环结构综合练习

break语句是用于终止某个循环,程序跳转到循环体外的下一条语句。

continue语句是用于跳出本次循环,进入下一次循环的语句。

循环结构有什么不同

1.语法不同

while循环语句:

while(条件){

        //循环体

}

do-while循环语句:

do{

        //循环体

}while(条件);

for循环语句:

for(初始化; 条件; 迭代){

        //循环体

}

2.执行顺序不同

while循环结构:

先进行条件判断,再执行循环体。如果条件不成立,退出循环。

do-while循环结构:

先执行循环体,在进行条件判断,循环体至少执行一次。

for循环结构:

先执行初始化部分,在进行条件判断,然后执行循环体,最后进行迭代部分的计算。如果条件不成立,跳出循环。

3.适用情况不同

在解决问题时,对于循环次数确定的情况,通常选用for循环结构。对于循环次数不确定的情况,通常使用while和do-while循环结构。

二重循环

1.什么是二重循环结构:一个循环体又包含另一个完整的循环结构。

while二重循环语法:

while(循环条件1){

        //循环操作1

        while(循环条件2){

                //循环操作2

        }

}

do-while二重循环语法:

do{

        //循环操作1

        do{

                //循环操作2

        }while(循环条件1);

}while(循环条件2);

for二重循环语法:

for(循环条件1){

        //循环操作1

        for(循环条件2){

                //循环操作2

        }

}

while与for嵌套二重循环语法:

while(循环条件1){

        //循环操作1

        for(循环条件2){

                //循环操作2

        }

}

2.二重循环执行顺序:外层循环执行1次内层循环执行1周。

3.continue:代表结束当前循环,继续下一次循环。

4.break:代表结束(跳出)当前循环。

第七章:类与对象基础

class    object    return    programming    null    initial    type    oriented

1.类与对象概述

  • 对象:用来描述客观事物的一个实体,由一组属性和方法构成。
  • 类定义了对象将会拥有的特征(属性)和行为(方法)。
  • 类的属性:对象所拥有的特征在类中表示时称为类的属性。
  • 类的方法:对象执行的操作称为类的方法。
  • 类和对象的关系是抽象于具体的关系,类是对象的类型,对象是类的实例
  • 对象的属性和方法被共同封装在类中,相辅相成,不可分割。
  • 面向对象程序设计的优点:
        与人类的思维习惯一致。
        隐藏信息,提高了程序的可维护性和安全性。
        提高了程序的可重用性     
  • 使用类的步骤:
        定义类:使用关键字class。
        创建类的对象:使用关键字new。
        实用类的属性和方法:使用“ . ”操作符。 

2.JAVA的类模板:

在Java中创建一个类,需要使用一个class,一个类名和一对大括号。

class是创建类的关键字。在class前有一个public,表示“公有”的意思。

        语法:public class 类名{

                   //定义属性部分

                   //定义方法部分

                   }

类名创建规则:

  • 不能使用Java中的关键字。
  • 不能包含任何嵌入的空格或点号 “.” ,以及除下划线 “_” , “$”字符外的特殊字符。
  • 不能以数字开头。
  • 类名通常由多个单词组成,每个单词的首字母大写。 

3.属性的定义:

        数据类型 变量名;

4.方法的定义:

        访问修饰符 返回值类型 方法名(){

                //方法体

        }

  • 访问修饰符限制了访问该方法的范围。
  • 返回值类型是方法执行后返回结果的类型,这个类型可以是基本类型,或者是引用类型,也可以没用返回值,此时必须使用void来描述。
  • 方法名一般使用一个有意义的名字描述该方法的作用,其命名应符合标识符的命名规则。
public class School{
    //定义属性部分:数据类型 变量名;
    String schoolName;
    int classNumber;
    int labNumber;
    //定义方法部分    访问修饰符 返回值类型  
    public void showSchool(){
        System.out.println(schoolName+"学院\n"+"配置:\n"+classNumber+"间教室\n"+labNumber+"间机房\n");
    }
}

5.创建和使用对象

        创建对象:类名 对象名 = new 类名();

        引用对象:对象名.属性名

        引用方法:对象名.方法名

public class Example02 {
    //定义属性部分(变量)
    String schoolName;
    int classNumber;
    int labNumber;
    //定义方法部分
    public void showSchool(){
        System.out.println(schoolName+"学院\n"+"配置:\n"+classNumber+"间教室\n"+labNumber+"间机房\n");
    }
    //调用属性和方法
    public static void main(String[] args) {
        Example02 object = new Example02();    //创建对象:类名 对象名 = new 类名();
        System.out.println("********初始化变量之前*********");
        object.showSchool();    //调用方法:对象名.方法名();
        //初始化(赋值)属性(变量)
        object.schoolName="许昌电气职业";
        object.classNumber= 89 ;
        object.labNumber= 89;
        System.out.println("*******初始化变量之后*******");
        object.showSchool();    //调用showSchool()方法:对象名.方法名();
    }
}

运行结果如下

Java程序语言基础_第1张图片

6.静态属性和方法

static可以用来修饰类的成员方法,类的成员变量,另外可以编写static代码块来优化程序性能。

static修饰的成员变量和成员方法习惯上称为静态变量和静态方法,可以直接通过类名来访问。

语法:

类名.静态变量名

类名.静态方法名(参数列表...)

public class Example03 {
    //创建静态属性(变量)
    static String name = "xiaoji";
    //创建静态方法
    public static void print(){
        System.out.print("一起来学习Java吧"+"\n");
    }
    public static void main(String[] args){
        Example03 object = new Example03();    //创建Example03类的对象
        System.out.println("通过对象直接访问:"+object.name);    //通过对象访问name属性    对象名.方法名();
        System.out.println("通过类名直接访问:"+Example03.name);    //通过类名访问name属性    类名.方法名();
        object.print();    //通过对象访问print()方法    对象名.方法名();
        Example03.print();    //通过类名访问print()方法    类名.方法名();
    }
}

运行结果如下

Java程序语言基础_第2张图片

 静态方法只能访问静态成员,实例方法(普通方法)可以访问静态和实例成员。之所以不允许静态方法访问实例成员变量,是因为实例成员变量是属于某个对象的,而静态方法在执行时,并不一定存在对象。

第八章:类的方法(函数)

document    method    version    parameter    private    protected

计算机中的函数

计算机中的函数是指一段可以直接被另一段程序或代码引用的程序或代码。(oop)中叫方法。

函数的语法
1.函数定义的语法
返回值类型[void]函数名([数据类型参数名,数据类型参数名,...])A
方法体
[return结果]
}

注意: 1)<>表示有的时候可以不写
2)[]表示的是定义函数的另外一种情况下的语法
2.函数调用的语法
数据类型 变量名=函数名(变量名|值,变量名|值);

注意: 1)|或者意思两个都可以但每次只能出现一个。

不带参数的方法

什么是类的方法

形式参数和实际参数!
在定义函数时给的参数,参数叫什么名字与功能无关
在调用函数时给的参数叫做实际参数(实参)实参在调用时必须具有实际的值

3.形式参数和实际参数作用
形式参数:接收
!实际参数的值
际参数:传递值给形式参数


 

如何定义类的方法

类的方法必须包括以下3个部分:1.方法的返回值类型    2.方法的名称    3.方法的主体

语法:public 返回值类型 方法名(){

                   //方法的主体

           }

语法:return 表达式;

方法调用

语法:对象名.方法名();

带参数的方法

1.定义带参数方法 

<访问修饰符>返回值类型<方法名>(<参数列表>){

        //方法的主体

}

<访问修饰符>指该方法允许被访问的权限范围,只能是public,protected 或 private。public访问修饰符表示该方法可以被任何其他代码调用。

2.调用带参数方法

语法:对象名.方法名(参数1,参数2,...... ,参数n);

带多个参数的方法

第九章:常用类

equal    ignore    lower    upper    split    buffer    static    final

语法:字符串1.charAt();

charAt() 方法用于返回指定索引处的字符。索引范围为从 0 到 length() - 1。

实列:

public class text {
    public static void main(String[] args){
        String a = "xiaoemo";
        char b = a.charAt(2);
        System.out.println(b);
    }
}

运行结果:

1.简单字符串的处理

1_1:获取字符串长度

语法:字符串1.length();

返回 “字符串1”的长度。

1_2:字符串的比较

语法:字符串1.equals(字符串2);

比较两个字符串的值是否相同,返回boolean类型的值。如果相同,则返回true;否则返回false。

双等号(==)和 equals()方法的区别?

  • “==”判断的是两个字符串对象在内存中的首地址是否相等,即判断是否是同一个字符串对象
  • equals()方法判断的是两个字符串的值是否相等

1_3:忽略字符的大小写比较字符串

语法:字符串1.equalslgnoreCase(字符串2);

忽略大小写,比较字符串1和字符串2。如果都相同,则返回true;否则返回false。

1_4:将字符变小写

语法:字符串.toLowerCase();    

           返回字符串的小写形式

1_5:将字符变大写

语法:字符串.toUpperCase();   

           返回字符串的大写形式

2.复杂的字符串处理

2_1.字符串的链接

语法:字符串1.concat(字符串2);       

字符串2被连接到字符串1的后面,返回链接后的新字符串。

2_2.连接字符串的方法有两种:

        1.使用“+”运算符

        2.使用String类的concat()方法

2_3.字符串的提取和查询

indexOf();       

在字符串内搜索某个指定的字符或字符串,它返回出现第一个比配字符的位置

lastIndexOf();       

搜索最后一个出现的字符(或字符串)的位置

substring(int index);       

调用时括号中写的是要提取的字符串的开始位置,方法的返回值就是要提取的字符串

substring(int beginindex,int endindex)

2_4.字符串的拆分

字符串1.split(String separator,int limit);

separator可选项,标识拆分字符串时使用一个或多个字符。如果不选择该项,则返回包含该字符串所有单个字符的元素数组;

limit可选项,该值用来限制返回数组中的元素个数。

3.StringBuffer类

1.如何使用StringBuffer类

声明StringBuffer对象并初始化

StringBuffer object = new StringBuffer();

声明一个字符串

StringBuffer object = new StringBuffer("青春无悔");

2.常用的StringBuffer类方法

字符串1.toString();    将StringBuffer类型的字符串1转换为String类型的对象并返回。

字符串1.append(字符串2);    将字符串1连接到字符串2后并返回。

字符串1.insert(位置,参数);    将参数插入到字符串1的指定位置后并返回

第十章:数组

array        length        sort        maximum        minimum        reference        info        primitive

1.数组的基本概述

  • 数组就是一个变量,用于将同类型的数据存储在内存中。数组中的每一个数据元素都属于统一数据类型。
  • 数组就是在内存空间划出一串连续的空间
  • 数组是可以在内存中连续存储多个元素的结构,数组中的所有元素必须属于相同的数据类型。
  • 数组中的元素通过数组的下标进行访问,数组的下标从0开始。
  • 数组可以用一个循环为元素赋值,或者用一个循环输出数组中的元素信息。
  • 数组的基本要素。1.标识符(数组名) 2.数组元素 3.数组下标 4.元素类型5.数组的大小()长度。
  • 通过“数组.length”可获得数组长度。
  • 利用Arrays类提供的sort()方法可以方便地对数组中的元素进行排序。

2.如何使用数组

2_1.声明数组

语法:数据类型[] 数组名;

int[] scores;
double[] height;
String[] names;

2_2.分配空间

语法:数组名 = new 数据类型[数组长度];

scores = new int[30];
height = new double[30];
names = new String[30];

语法:数据类型[] 数组名 = new 数据类型[数组长度]

int[] scores = new int[30];

2_3.赋值

语法:数组名[数组下标];

scores[0] = 89;
scores[1] = 60;
scores[2] = 70;

语法:数据类型[] 数组名 = {值1,值2,值3,值4......,值n}

int[] scores = {60,70,98,90,76}; //创建一个长度为5的数组scores

语法:数据类型[] 数组名 = new 数据类型[]{值1,值2,值3,......,值n }

int[] scores = new int[]{60,70,98,90,76};

3.运用for循环从控制台录入数据

int[] scores = new int[5]    //定义数组
Scanner sc = new Scanner(System.in);
for(int i = 0; i < scores.length; i++){
    scores[i] = sc.nextInt();
}

4.对数据进行处理

Array.sort(数组名);    完成对数组的排序

你可能感兴趣的:(java,java,排序算法)