• Java语言基础


    Java变量——

    数据类型默认值存储格式数据范围
    short 0 2个字节 -32,768到32767
    int 0 4个字节 -2,147,483,648到2,147,483,647
    byte 0 1个字节 -128到127
    char 2个字节 Unicode的字符范围:’u0000’(即为0)到’uffff’(即为65,535)
    long 0L或0l 8个字节 -9,223,372,036,854,775,808到9,223,372,036, 854,775,807
    float 0.0F或0.0f 4个字节 32位IEEEE 754单精度范围
    double 0.0或0.0D(d) 8个字节 64位IEEE 754双精度范围
    boolean false 1位 true(1)或false(0)

        在 Java 中,变量需要先声明(declare)才能使用。

    局部变量——必须初始化

    • 局部变量声明在方法、构造方法或者语句块中;
    • 局部变量在方法、构造方法、或者语句块被执行的时候创建,当它们执行完成后,变量将会被销毁;
    • 访问修饰符不能用于局部变量;
    • 局部变量只在声明它的方法、构造方法或者语句块中可见;
    • 局部变量是在栈上分配的。
    • 局部变量没有默认值,所以局部变量被声明后,必须经过初始化,才可以使用。

    实例变量(实例化-new)

    • 实例变量声明在一个类中,但在方法、构造方法和语句块之外;
    • 当一个对象被实例化之后,每个实例变量的值就跟着确定;
    • 实例变量在对象创建的时候创建,在对象被销毁的时候销毁;
    • 实例变量的值应该至少被一个方法、构造方法或者语句块引用,使得外部能够通过这些方式获取实例变量信息;
    • 实例变量可以声明在使用前或者使用后;
    • 访问修饰符可以修饰实例变量;
    • 实例变量对于类中的方法、构造方法或者语句块是可见的。一般情况下应该把实例变量设为私有。通过使用访问修饰符可以使实例变量对子类可见;
    • 实例变量具有默认值。数值型变量的默认值是0,布尔型变量的默认值是false,引用类型变量的默认值是null。变量的值可以在声明时指定,也可以在构造方法中指定;
    • 实例变量可以直接通过变量名访问。但在静态方法以及其他类中,就应该使用完全限定名:ObejectReference.VariableName。

    类变量(静态变量)

    • 类变量也称为静态变量,在类中以static关键字声明,但必须在方法、构造方法和语句块之外。
    • 无论一个类创建了多少个对象,类只拥有类变量的一份拷贝。
    • 静态变量除了被声明为常量外很少使用。常量是指声明为public/private,final和static类型的变量。常量初始化后不可改变。
    • 静态变量储存在静态存储区。经常被声明为常量,很少单独使用static声明变量。
    • 静态变量在程序开始时创建,在程序结束时销毁。
    • 与实例变量具有相似的可见性。但为了对类的使用者可见,大多数静态变量声明为public类型。
    • 默认值和实例变量相似。数值型变量默认值是0,布尔型默认值是false,引用类型默认值是null。变量的值可以在声明的时候指定,也可以在构造方法中指定。此外,静态变量还可以在静态语句块中初始化。
    • 静态变量可以通过:ClassName.VariableName的方式访问。
    • 类变量被声明为public static final类型时,类变量名称必须使用大写字母。如果静态变量不是public和final类型,其命名方式与实例变量以及局部变量的命名方式一致。

    Java常量——

        常量代表程序运行过程中不能改变的值。在Java编码规范中,要求常量名必须大写。

    常量的语法格式如下:

    • final 数据类型 常量名称 = 值;

    • final 数据类型 常量名称1 = 值1, 常量名称2 = 值2,……常量名称n = 值n;

    例如:

    final double PI = 3.14final char MALE=‘M’,FEMALE=‘F’;

    Java注释——

        一般在 Java 里有三种注释:

    • 行注释//:只注释一行

    • 段注释/*...*/:注释若干行

    • 文档注释/**...*/:注释若干行,并写入 javadoc文档

    Java自动类型转换和强制类型转换——

        在Java程序中,不同的数据类型有些时候需要进行相互转换。数据类型转换就分为了自动类型转换强制类型转换:自动类型转换是在程序执行过程中,不需要我们去特殊声明或者操作,变量由于需要而自动转换成了合适的数据类型。

        自动类型转换需要满足下面的两个条件:

    • 目标类型与原类型兼容

    • 目标类型的字节数大于或等于原类型字节数

    基本数据类型中,布尔类型boolean占有一个字节,由于其本身所代表的特殊含义,boolean类型与其他基本类型不能进行类型的转换(既不能进行自动类型的提升,也不能强制类型转换), 否则,将编译出错。

    Java位运算符——【a=60;b=13】

    位运算符名称描述举例
    & 按位与 如果相对应位都是1,则结果为1,否则为0 (a&b),得到12,即0000 1100
    按位或 如果相对应位都是0,则结果为0,否则为1 (a丨b)得到61,即 0011 1101
    ^ 按位异或 如果相对应位值相同,则结果为0,否则为1 (a^b)得到49,即 0011 0001
    ~ 按位补 翻转操作数的每一位,即0变成1,1变成0 (〜a)得到-61,即1100 0011
    << 按位左移 左操作数按位左移右操作数指定的位数 a<<2得到240,即 1111 0000
    >> 按位右移 左操作数按位右移右操作数指定的位数 a>>2得到15即 1111
    >>> 按位右移补零 左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充 a>>>2得到15即0000 1111


    Java逻辑运算符——【布尔变量a为真,变量b为假】

    逻辑运算符名称描述类型举例
    && 当且仅当两个操作数都为真,条件才为真 双目运算符 (a && b)为假
    || 两个操作数任何一个为真,条件为真 双目运算符 (a || b)为真
    用来反转操作数的逻辑状态。如果条件为真,则逻辑非运算符将得到假 单目运算符 (!a)为假
    ^ 异或 如果两个操作数逻辑相同,则结果为假,否则为真 双目运算符 (a ^ b)为真

    Java引用——

        引用:Java 中一切都是对象,但操作的标识符实际是对象的一个引用。

            例:

    String s;

        在这里,创建的是引用,不是对象。创建引用后,一种安全的做法是对其进行初始化。

    String s = "abc";
    String s =  new String("abc");

        通常采用new操作符生成一个新对象,然后将引用与该对象相关联。

        想要比较对象的内容是否相同时,Java 提供了一个特殊的方法equals(),它不适用于基本类型,基本类型使用==和!=进行比较。

    Java条件运算符——

        条件运算符?:便是唯一的一个三目运算符了。

        语法形式:布尔表达式?表达式1 : 表达式2

        运算过程:如果布尔表达式的值为true ,则返回 表达式1 的值,否则返回 表达式2 的值。

    Java条件控制语句——【if;if...else if...else;switch...case...break...default】

                          if 语句 

    if(条件){
    条件成立时执行的代码
    }

                          if...else 语句当条件成立时,则执行 if 部分的代码块; 条件不成立时,则进入 else 部分。

    if(条件){
        代码块1
    }
    else{
        代码块2
    }

                          多重 if 语句,在条件 1 不满足的情况下,才会进行条件 2 的判断,以此向下;当前面的条件均不成立时,最终执行 else 块内的代码。

    if(条件1){
        代码块1
    }
    else if(条件2){
        代码块2
    }
    ...
    else {
        代码块n
    }

                          if 语句是可以在内层进行嵌套的。嵌套 if 语句,只有当外层 if 的条件成立时,才会判断内层 if 的条件。

    if(条件1){
        if(条件2){
            代码块1
        }
        else{
            代码块2
        }
    }
    else{
        代码块3
    }

                          switch语句——当 switch 后表达式的值和 case 语句后的值相同时,从该位置开始向下执行,直到遇到 break 语句或者 switch 语句块结束;如果没有匹配的 case 语句则执行 default 块的代码。

    switch(表达式){
        case 值1:
            代码块1
            break;
        case 值2:
            代码块2
            break;
        ...
        default:
            默认执行的代码块
    }

    Java循环控制语句——【while;do...while;for】

                          while语句——while 的执行过程是先判断,再执行。

                                              1. 判断 while 后面的条件是否成立( true or false )

                                              2. 当条件成立时,执行循环内的代码,然后重复执行1.、2., 直到循环条件不成立为止

    while(条件){
        代码块
    }

                          do...while语句——执行过程是先执行,再判断(所以循环内的代码至少会执行一次)。

                                              1. 先执行一遍循环操作,然后判断循环条件是否成立

                                              2. 如果条件成立,继续执行1.、2.,直到循环条件不成立为止

    do{
    代码块
    }while(条件);

                          for语句 ——相比 while 和 do-while 语句结构更加简洁易读,它的执行顺序:

                                    1.执行循环变量初始化部分,设置循环的初始状态,此部分在整个循环中只执行一次

                                    2. 进行循环条件的判断,如果条件为 true,则执行循环体内代码;如果为 false ,则直接退出循环

                                    3.执行循环变量变化部分,改变循环变量的值,以便进行下一次条件判断

                                    4.依次重新执行2.、3.、4.,直到退出循环

    for(循环变量初始化; 循环条件; 循环变量变化){
    循环操作
    } 

    Java跳转语句——【break;continue】

                 break语句——跳出,经常用在条件和循环语句中,用来跳出循环语句的。

                 continue语句——作用是跳过循环体中剩余的语句执行下一次循环。

  • 相关阅读:
    关于分析web.xml的一篇博客,写的很详细
    (转)Java编译后产生class文件的命名规则
    Standard 1.1.x VM与Standard VM的区别
    throws和throw的用法例子以及检测和非检查异常
    终端IO(上)
    [APUE]进程关系(下)
    [APUE]进程关系(上)
    [APUE]进程控制(下)
    [APUE]进程控制(中)
    深究标准IO的缓存
  • 原文地址:https://www.cnblogs.com/llw1121/p/8980737.html
Copyright © 2020-2023  润新知