Java_01

一、背景

(一)简介

1.产生

开发 Java 之初的目标是创建能嵌入消费类电子产品的软件,构建一种既可移植又可跨平台的语言。

1995年,Sun公司开发了一门新的编程语言——JAVA

2.优点

Java在jvm上运行,可跨平台

(二)运行条件

1.环境变量

JDK(Java delvelopment Kit),提供了编译 运行Java程序所需的各种工具和资源。

JDK 安装目录说明如下:

  • bin目录:存放编译、运行Java 程序可执行的程序。
  • lib目录:存放Java 的类库文件。
  • jre目录:存放Java运行环境文件。

2.运行命令

  • 编译:javac xxx.java
  • 运行:j java  xxx

3.运行过程:

源文件.java——>javac编译——>字节码文件.class——>java运行——>java运行——>程序中的main方法

二、Java基本语法

(一)标识符和关键字

1.标识符

  • 在java语言中,用来标志类名、对象名、变量名、方法名、类型名、数组名、包名的有效字符序列,称为“标识符”;
  • 标识符由字母、数字、下划线、美元符号组成,且第一个字符不能是数字;
  • java语言区分大小写;
  • 标志符命名规则:类名首字母大写,变量名和方法名采用驼峰标志法,常量全大写,多个单词之间用“_”隔开,包名全小写;

2.关键字

  • 在java语言中,有一些专门的词汇已经被赋予了特殊的含义,不能再使用这些词汇来命名标识符,这些专有词汇,称为“关键字”;
  • java有50个关键字和3个保留字,均不能用来命名标识符;
    abstractassertbooleanbreakbytecasecatchchar
    classconstcontinuedefaultdodoubleelseenum
    extendsfinalfinallyfloatforgotoifimplements
    importinstanceofintinterfacelongnativenewpackage
    privateprotectedpublicreturnshortstaticstrictfpsuper
    switchsynchronizedthisthrowthrowstransienttryvoid
    volatilewhile
  • true、false、null不是关键字,是保留字,但是仍不能用来命名标识符,保留字是java预留的关键字,在以后的升级版本中可能会作为关键字;

(二)数据类型

1.基本数据类型

Java中定义了四类/八种基本数据类型

  • 整数型---- byte, short, int, long

  • 浮点数型---- float, double

  • 字符型---- char
  • 逻辑型---- boolean

2.数据类型

 3.转义字符

  •  数据类型除了boolean类型,其他基本类型数据之间可以相互赋值
  •  由于类型不同 表示数值范围 和精确度不同,所以需要强制类型转换
  •  字符转换为数字类型是对应的ASCII码表
  •  数据类型从大范围到小范围(精确度高到精确度低)需要强制类型转换
  •  强制类型转换会导致数据不准确

(三)运算符及表达式

1.算数运算符

2.赋值运算符

3.关系运算符

 

4.逻辑运算符

 5.位运算符

6.三元运算符

public class Test {
    public static void main(String[] args) {
        int a = 1;
        int b = 2;
        int c = 4;
        int res = c==a+b?++a:c>a+b?++b:++c;    //三元运算符 (表达式)?(值1):(值2),若表达式为true则取值1,反之取值2
        System.out.println(res);    //++b,结果为3
    }
}

7.自增自减运算符

public class Test003 {
    public static void main(String[] args) {
        int i = 5;
        System.out.println(i++);    //5
        System.out.println(++i);    //7
        System.out.println(i);    //7
        System.out.println(--i);    //6
        System.out.println(i--);    //6
        System.out.println(i);    //5
    }
}

8.运算符的优先级

(四)数组

1.定义

  • 数组是一个变量,存储相同数据类型的一组数据
  • 数组是一个数据类型,不是基本数据类型,是引用数据类型
  • 除了基本数据类型以外都是引用数据类型
  • 区分数组中的小变量(即元素)使用下标,下标从0开始,最末尾是总长度-1
  • 数组有长度,即数组有多少个元素,长度可哦那个arr.length来获取

2.格式

  1. 数据类型[ ]  变量名={1,2,3,……};
  2. 数据类型    变量名[ ] ={1,2,3,……};
  3. 数据类型[ ] 变量名=new 数据类型[length];
  4. 数据类型[ ] 变量名=new 数据类型[ ] {1,2,3,……};

3.特点

  • 数组一旦定义完,长度固定,不可改变
  • 当数组定义长度没有赋值时,则会使用0填充占位
  • 当给数组重新赋值,只能通过下标

4.分类

  • 一维数组
public class Test {
    public static void main(String[] args) {
        int[] i;    //声明一个整型的一维数组变量
        int ii[];    //声明一个整型的一维数组变量
        i = new int[5]; //创建一个长度为5的一维数组对象,并将变量i指向该对象
        float[] f = new float[5];    //直接创建一个长度为5的单精度浮点型一维数组对象,并将变量f指向该对象
        double[] d = {1, 2, 3.4, 4.5};    //直接初始化一个一维数组元素
        
        System.out.println(d[3]);    //通过数组下标来获取数组内的元素,数组下标从0开始,结果为4.5
        System.out.println(f[0]);    //当创建出一个数组对象时,该对象内的数组元素为该数据类型的默认值,所以此处结果为0.0
        //System.out.println(i[5]);    //当通过数组下标来获取数组内元素时,[]内的值>=数组长度则报异常java.lang.ArrayIndexOutOfBoundsException(数组下标越界)
        //System.out.println(ii[0]);    //若一个数组变量只声明而未指向某一个具体的数组对象时,编译出错
        System.out.println(d.length);    //得到该数组的长度,结果为4
    }
}
  • 多维数组
public class Test {
    public static void main(String[] args) {
        int[][] i;    //声明一个整型的二维数组变量
        int ii[][];    //声明一个整型的二维数组变量
        int[] iii[];    //声明一个整型的二维数组变量
        i = new int[5][2]; //创建一个长度为5的二维数组对象,并将变量i指向该对象
        float[][] f = new float[5][2];    //直接创建一个长度为5的单精度浮点型二维数组对象,并将变量f指向该对象
        double[][] d = {{1}, {2,3}, {4,5,6}, {7,8,9,10}};    //直接初始化一个二维数组元素
        
        System.out.println(d[3][1]);    //通过数组下标来获取数组内的元素,数组下标从0开始,结果为8
        System.out.println(f[0][0]);    //当创建出二个数组对象时,该对象内的数组元素为该数据类型的默认值,所以此处结果为0.0
        //System.out.println(i[5][0]);    //当通过数组下标来获取数组内元素时,[]内的值>=数组长度则报异常java.lang.ArrayIndexOutOfBoundsException(数组下标越界)
        //System.out.println(ii[0][0]);    //若一个数组变量只声明而未指向某一个具体的数组对象时,编译出错
        System.out.println(d.length);    //得到该数组的长度,结果为4
        System.out.println(d[2].length);    //得到二位数组内的下标为2的那个一维数组的长度
    }
}

(五)流程控制语句

1.条件分支语句

  • if条件语句

/*格式1:
     * if(boolean类型表达式){
     *         满足条件执行
     * }
     *格式2:
     * if(boolean类型表达式){
     *         满足条件执行
     * }else{
     *    if条件不满足执行
     *    }
     * 格式3:
     * if(boolean类型表达式){
     * }else if(boolean类型表达式){
     *    }else if(boolean类型表达式){
     *    }else if(boolean类型表达式){
     *    }
     * 格式4:
     *     if(boolean类型表达式)
                 *    System.out.println("hello");
     * */

  • switch语句

     /**
     * switch(变量表达式){//兼容的数据类型 byte  short int char
     *     case 常量1:执行语句;break;
     *     case 常量2:执行语句;break;
     *     case 常量3:执行语句;break;
     *     case 常量4:执行语句;break;
     *     case 常量5:执行语句;break;
     *     case 常量6:执行语句;break;
     *     default:当常量都不满足是执行的语句;
     * }
     * */

public class Test {
    public static void main(String[] args) {
        int[] score = new int[5];
        score[0] = -7;
        score[1] = 65;
        score[2] = 80;
        score[3] = 90;
        score[4] = 59;
        for(int i=0; i<score.length; i++) {
            if(score[i]>=0 && score[i]<60) {
                System.out.println("不及格");
            }else if(score[i]>=60 && score[i]<80) {
                System.out.println("及格");
            }else if(score[i]>=80 && score[i]<90) {
                System.out.println("良");
            }else if(score[i]>=90 && score[i]<100) {
                System.out.println("优");
            }else {
                System.out.println("成绩异常");
            }
        }
        
        char ch = 'a';
        switch(ch) {    //switch括号内只支持 byte,short,int,char,enum五种数据类型,但是JDK1.7版本增加了String类型,所以相对于JDK1.7而言就是六种了
            case 'A':    //case为switch语句的入口,break为出口,从入口开始执行,直到遇到出口或代码执行完毕才结束
            case 'a':
                System.out.println("优");
                break;
            case 'B':
            case 'b':
                System.out.println("良");
                break;
            case 'C':
            case 'c':
                System.out.println("及格");
                break;
            default:    //若上述条件均不匹配,则进default开始执行语句
                System.out.println("不及格");
        }
    }
}

2.循环语句

  • while语句

格式:
 while(boolean类型表达式){
    当条件满足时执行
}

---break
 break可以写在switch和循环语句中
 break可以在switch中 是跳出switch语句
 break是在循环语句中是终止当前循环

---continue
continue只能写在循环 是停止本次循环 进行下一次循环

注意:与breakcontinue作用域中 代码不能写在它们下面

  • do……while语句

格式:

do{
循环体
}while(boolean表达式);
特点:与while不同  先执行循环体 再判断 即无论条件是否满足都会执行一次循环体
 

  •  for循环

---for

格式:for(初始值表达式;条件表达式;变量自增表达式){
循环体
}
循环顺序;
初始值表达式-->条件表达式-->循环体-->变量自增表达式-->条件表达式-->循环体-->
变量自增-->条件表达式.......


---- foreach
for(数据类型  变量 : 被循环的变量){

}

public class Test {
    public static void main(String[] args) {
        int res = 0;
        out:    //out是一个标号,告诉java从哪里开始执行程序
        for(int i=1; i<=10; i++) {
            if(i==3) continue out;    //continue终止本次循环,执行下次循环
            if(i==5) break out;    //break跳出循环
            res = res + i;
        }
        System.out.println(res);    //结果为1+2+4=7
        
        int res2 = 0;
        int i = 1;
        in:
        do{
            if(i==3) continue in;    //continue终止本次循环,执行下次循环
            if(i==5) break in;    //break跳出循环
            res2 = res2 + i;
            i++;
        }while(i<=10);
        System.out.println(res2);
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值