美文网首页
Java基础语法

Java基础语法

作者: Harper324 | 来源:发表于2019-01-16 14:02 被阅读0次
    • 标识符:程序之中用来定义名称的都叫标识符,类名,变量名,方法名都被称为标识符
      • 所有的标识符都应该以字母(A-Z/a-z)美元符($)或者下划线(_)开始
      • 首字符之后可以是字母(A-Z/a-z)美元符($)下划线(_)数字的任何字符组合
      • 关键字不能用作标识符
      • 标识符是大小写敏感的
    • 关键字
      Java关键字
    • 变量
      • 局部变量:没有特殊的关键字将变量标记为局部变量,这完全取决于声明变量的位置——它位于方法的两个大括号之间。因此,局部变量只对声明它们的方法可见,对于类的其他部分来说它们是不可见的。
      • 类变量(静态域): 类变量是使用static关键字修饰的域。这告诉编译器无论这个类有多少个实例,这个变量只有一个副本。
      • 成员变量(非静态域):从技术层面来说,对象将它们各自的状态存在“非静态域”中,也就是没有使用static关键字修饰的域。非静态域也被称为实例变量,因为对于类的每个实例(换句话说,就是每个对象)来说,它们的值都是独立的。
      • 命名:小驼峰法
      • 必须声明后才可以使用,可以先声明后初始化也可以声明的同时初始化
      • main方法中定义的变量必须先初始化,然后才能输出
    • 常量
      常量,通常用来表示系统中不可变的量比如圆周率等,这种情况就可以用常量来定义,通常用final关键字来声明。
      • 常量在定义的时候,就需要对常量进行初始化。
      • 常量一旦初始化之后,就不能再次对其赋值。
      • final关键字不仅可以用来修饰基本数据类型的常量,还可以用来修饰对象的引用或者方法。
      • final关键字与static关键字同时使用。
      • 命名:全部大写, 相邻单词之间用下划线(_)隔开
    • 方法
      方法,就是具有独立业务逻辑的代码集合,通常是解决一类问题的步骤的有序组合,包含在类和对象中,在程序中创建,在其他地方调用。
      • 定义
      修饰符 返回值类型 方法名(参数类型 参数名) {
          方法体
          return 返回值;
      }
      
      
      • 调用
    public class HelloWorld {
       public static void main(String[] args) {
           //创建对象hello
           HelloWorld hello = new HelloWorld();
           //调用方法
            hello.showMyLove();
       }
       //定义方法
       public void showMyLove() {
           System.out.println("I love basketball");
        }
    }
    
    • 修饰符:这是可选的,告诉编译器如何调用该方法。定义了该方法的访问类型。
    • 返回值类型: 就是return之后的返回值的类型,有些方法可能没有返回值,用关键字void来表示。
    • 参数:由参数类型和参数名称组成。参数名是一个变量,用于接收调用方法时传入的数据。调用方法时,实参不需要指定数据类型;多个参数以逗号分隔。
    • 方法体:被封装的独立代码块,是方法的核心部分,处理重要的业务逻辑。
    • 返回值:返回值的类型必须兼容且只能有一个
    • 命名:小驼峰法
    • 方法体遵循单一职责原则,即每个方法就仅仅做一件事情,这样可以增加可读性和可维护性。
    • 方法的重载:同一个类中包含了两个或两个以上方法名相同,方法参数的个数、顺序或类型不同的方法,则称为方法的重载
    • 数据类型
      • Java数据类型可分为内置数据类型引用数据类型
        内置数据类型存储数据本身,包括八种基本类型,其中六种数字类型(四种整数型,两种浮点型),一个字符类型,一个布尔型。
        引用数据类型存储数据的空间地址,包括类(class)接口(interface)数组
      • 数据的自动类型转换的条件:1、目标类型与源类型兼容;2、目标类型大于源类型(比如int转double)
      • 强制类型转换:有可能造成数据的丢失
    double height=168.5;
    int height2=(int)height; //height2=168
    

    Java内置数据类型
    • 变量的初始化
    String name="小明";
    char sex='男'; //char型变量要用单引号括起来
    int age=22;
    double weight=66.5;
    float height=178.5f; 
    boolean isStudent=true;
    
    • 可以用内置数据类型自带属性获得该类型的值的范围等
    System.out.println("byte的大小:"+Byte.SIZE+" byte的默认值:"+a+
    " byte的数据范围:"+Byte.MIN_VALUE+"~"+Byte.MAX_VALUE);
    
    • Java运算符
      算术、赋值、比较、逻辑、条件运算符。
      • 条件运算符(三元运算符):布尔表达式?表达式1:表达式2;如果布尔表达式为真,则返回表达式1的值,否则返回表达式2的值
      • 运算符优先级
        运算符优先级
        注意:
        1、>、<、>=、<=只支持对数值类型进行比较
        2、==、!=两边的数据可以使数据类型、也可以是引用类型
        3、逻辑运算符有短路原则
    • 条件语句
      注意
      1、if语句括号中的表达式的值必须为布尔类型
      2、switch语句中的变量类型可以是:byte、short、int、char以及枚举。从Java SE 7开 始,switch支持字符串String类型了,同时case标签必须为字符串常量或字面量。

    3、case后面的值可以是常量数值或常量表达式,但不能是变量或变量表达式
    4、default语句可以放在任意位置,也可以省略,default分支不需要break语句

    • 循环语句
      1、使用for语句时,括号中的三个表达式必须用 分号隔开,三个表达式都可以省,但分号不能省
      2、循环变量初始化可以在for语句之前初始化,也可以在循环体中进行循环变量变化
      3、可以同时对两个变量进行初始化和变化
    • 循环跳转语句
      1、break语句,结束循环
      2、continue语句,跳过循环体中剩余的语句,执行下一次循环
    • 数组
      1、数组的声明(两种方法)
    int[] scores; //数据类型[] 数组名
    String scores[]; //数据类型 数组名[]
    

    2、分配空间

    scores = new int[5]; //数组名 = 数据类型[数组长度]
    

    3、赋值

    scores[0] = 89;
    scores[1] = 98;
    ...
    

    4、使用数组
    5、直接创建数组(两种方法)

    int[] scores = {78, 89, 97, 88};
    int[] scores = new int[]{78, 89, 97, 88};
    

    6、使用Arrays类来操作数组
    Arrays类是Java中提供的一个工具类,在java.util包中,该类中包含了一些方法来直接操作数组。

    import java.util.Arrays;//导入包
    public class Example {
        public static void main(String[] args) {
            int[] scores = {78, 89, 97, 88};
            Arrays.sort(scores);
            System.out.println(scores);//{78,88,89,97}
        }
    }
    

    7、使用foreach来遍历数组

    int[] scores = {78, 89, 97, 88};
    for (int score : scores) {
    System.out.println(score); //遍历输出数组中的元素
    }
    
    • 二维数组
      1、声明数组并分配空间:
      数据类型[][] 数组名 = new 数据类型[行数][列数](列数可以省略);
    • 方法
      方法是用来解决一类问题的代码的有序组合,是一个功能模块。
      1、定义方法的语句:
    访问修饰符  返回值类型  方法名(参数列表){
        方法体
    }
    

    2、访问修饰符:方法允许被访问的权限范围,可以是publicprotectedprivate甚至可以省略,public表示方法可以被其他任何代码调用
    3、返回值类型:没有返回值则指定类型为void,有返回值则指定返回值的类型
    4、参数列表:多个参数要用逗号隔开,每个参数由参数类型和参数名组成,用空格隔开

    • 生成随机数
    //(数据类型)(最小值+Math.random()*(最大值-最小值+1))
    int ran = (int)(1+Math.random()*(10-1+1));
    
    • 命名规范

    1、 项目名全部小写
    2、 包名全部小写
    3、 类名首字母大写,如果类名由多个单词组成,每个单词的首字母都要大写,大驼峰法
    如:public class MyFirstClass{}
    4、 变量名、方法名首字母小写,如果名称由多个单词组成,每个单词的首字母都要大写。
    如:int index=0;
    public void toString(){}
    5、 常量名全部大写
    如:public static final String GAME_COLOR=”RED”;
    6、所有命名规则必须遵循以下规则:
    1)、名称只能由字母、数字、下划线、$符号组成
    2)、不能以数字开头
    3)、名称不能使用JAVA中的关键字。
    4)、坚决不允许出现中文及拼音命名。

    • 异常与错误
      • 定义
        异常就是在执行整个应用程序中出现的错误事件,会阻挡整个程序流程的正常执行。
        异常: 是应用程序中可能的可预测、可恢复问题。一般大多数异常表示中度到轻度的问题。异常一般是在特定环境下产生的,通常出现在代码的特定方法和操作中。比如,在除法计算中,除数为0就是一种可以预测和可以恢复的异常,同样,数据库连接异常也是如此等。
        错误: 表示运行应用程序中较严重问题。大多数错误与代码编写者执行的操作无关,而表示代码运行时 JVM(Java 虚拟机)出现的问题。例如,当 JVM 不再有继续执行操作所需的内存资源时,将出现内存溢出错误(OutOfMemoryError).

      • 分类
        RuntimeException(运行时异常):包括除数为0, 数组下标超界等。运行时异常的派生类有很多, 其产生频率较高. 它的派生类可以由程序处理或者抛给(throw) 给jvm处理. 例如上面的例子就是抛给了jvm处理, jvm把程序中断执行, 并把错误信息输出到终端上。(可以通过编译)
        非运行时异常:这种异常必须由程序员手动处理,否则不通过编译。
        自定义异常:为了表示应用程序的一些特定错误类型,为代码可能发生的一个或多个问题提供新的确切的含义。由软件开发者自己根据系统的需求而定义。

      • 处理方式
        处理异常:表示这个异常就地可以解决,一般通过try...catch...语句块来解决。
        声明异常:表示这个异常在异常发生的地方无法解决,将其抛出去(用throw将锅甩给他人),并在方法定义中予以声明。
        try...catch...finally...
        语法:

    try {
        //code
    } catch (ExceptionType typeName) {
        // handle exception code
    } finally {
        // handle exception code
    }
    

    说明:

    • try块:将一个或者多个语句放入try时,则表示这些语句可能抛出异常。编译器知道可能要发生异常,于是用一个特殊结构评估块内所有语句.
    • catch块:当问题出现时,一种选择是定义代码块来处理问题,catch块的目的便在于此。catch块是try 块所产生异常的接收者。
    • finally块:还可以定义finally块,无论运行try块代码的结果如何,该块里面的代码一定运行。在常见的所有环境中,finally块都将运行。无论try块是否运行完,无论是否产生异常,也无论是否在catch块中得到处理,finally 块都将执行。
      规则:
    • 必须在try之后添加catch或finally块。try块后可同时接catch和finally块,但至少有一个块。
    • 必须遵循块顺序:若代码同时使用catch和finally块,则必须将catch块放在try块之后。
    • 一个try块可能有多个catch块。若如此,则执行第一个匹配块。
    • 一个try块只能有一个finally块。
      举个例子
    public int getNumberFromArray(int[] array, int index) {
        try {
            return array[index];
        } catch (ArrayIndexOutOfBoundsException e) {
           System.out.println("数组越界异常:" + e);
        }
    }
    

    运行结果: 当index超过array的长度时,捕获数组越界异常。
    throws/throw 异常
    声明异常表示调用某个方法会抛出异常,对这个方法来说,将这个异常抛给它的调用者。而且,也通知了编译器:该方法的任何调用者必须遵守处理或声明规则。
    语法:

    public returnType methodName(paramType param) throws ExceptionName {
        // other code
        throw new Exception...
    }
    

    规则如下:

    • throws 关键字放在方法签名的尾部;
    • 可以使用 throw 关键字抛出一个异常,无论它是新实例化的还是刚捕获到的。
    • 一个方法可以声明抛出多个异常,多个异常之间用逗号隔开。
      举个例子:
    public int getNumberFromArray(int[] array, int index) throws ArrayIndexOutOfBoundsException {
        if (index > array.length) {
            throw new ArrayIndexOutOfBoundsException("数组越界异常");
        }
        return array[index];
    }
    

    相关文章

      网友评论

          本文标题:Java基础语法

          本文链接:https://www.haomeiwen.com/subject/kxaudqtx.html