Java基础

1 变量

1.1 变量初始化

  1. 声明一个变量后,必须对变量进行显示初始化
        int vactionDays;
        System.out.println(vactionDays);//Error:(4, 28) java: 可能尚未初始化变量vactionDays
  1. 变量初始化原则
    a. 先声明,后赋值
        int vactionDays;
        vactionDays = 1;
        System.out.println(vactionDays);

b. 声明和赋值同时进行

        int vactionDays = 1;
        System.out.println(vactionDays);

c. 尽可能将变量声明在第一次使用变量的附近

1.2 常量

Java中用关键字final指示常量。

        final double CM_PER_INCH = 2.54;
        double paperWidth = 8.5;
        double paperHight = 11;
        System.out.println("Paper size in centimeters: "
                + paperWidth * CM_PER_INCH + " by " + paperHight * CM_PER_INCH);

关键字表示这个变量只能被赋值一次。一旦被赋值后就不能被更改了,习惯上,常量使用全大写。
与Scala比较,被val修饰的变量不能被再次更改了。

在Java中,经常希望某个常量可以在一个类中被多个方法使用,这样的常量被称为类常量,可以使用关键字static final设置一个类常量。

public class Demo01 {
    public static final double CM_PER_INCH = 2.54;

    public static void main(String[] args) {
        final double CM_PER_INCH = 2.54;
        double paperWidth = 8.5;
        double paperHight = 11;
        System.out.println("Paper size in centimeters: "
                + paperWidth * CM_PER_INCH + " by " + paperHight * CM_PER_INCH);
    }
}

类常量被定义在main方法的外部,因此在该类中的其他方法都能使用该类常量,而且一个常量被public修饰,那么其他类也能使用该常量。

2 运算符

在Java中,使用算数运算符+,-,*,/表示加、减、乘、除运算。当两个操作数都是整数时,运算结果是整数,否则表示浮点出发。求余使用%符号。
整数被0除会产生异常,当浮点数被0除式,会得到无穷大或者NaN结果。

2.1 数学函数与常量

在Math类中,包含了许多数学函数。
计算一个数值的平方根用sqrt方法:

        double x = 4;
        double y = Math.sqrt(x);
        System.out.println(y);

Java中没有幂运算,因此要借助pow方法,语句:

        double x = 4;
        double y = Math.pow(x,2);
        System.out.println(y);

pow有两个double类型的参数,其返回值也是double类型的。

floorMod用于求余的,当除数和被除数都是正数时,和%操作符求余是一样的,但当被除数是负数时,为了得到正的模,该方法会调整被除数,通过被除数加除数,直至为正数时,在求模:

        int y = Math.floorMod(-7,12);
        System.out.println(y);//5

当为负数时,还是负数,在这里就不展开说明了。
Math类还提供了一些常用的三角函数:sin,cos,tan,atan,atan2
还有指数函数及其反函数:exp,log,log10
同时,还提供了用于表示Π和e常量的近似值:PI,E。

2.2数值类型之间的转换

参考文章

2.3 强制类型转换

强制类型转换的语法格式是在圆括号中给出想要转换的目标类型,后面紧跟带转换的变量名:

        double x = 9.997;
        int y = (int)x;//9 通过截断小数部分将浮点值转换为整型
        int z = (int)Math.round(x);//舍入运算 10

2.4 结合赋值和运算符

可以在赋值中使用二元运算符:
x += 4;
等价于
x = x + 4
一般地,要把运算符放在=号的左边,如 *=或者 %=。
如果运算符得到一个值,其类型与左边操作数的类型不同,就会发生强制类型转换。如果x是一个int,则
x +=3.5;
是合法的,将把x设置为(int)(x+3.5).

2.5 自增与自减运算符

n ++:使变量n当前值加1
n --:使变量当前值减1

        int m = 7;
        int n = 7;
        int a = 2 * ++m;//16
        int b = 2 * n++;//14

用在表达式中时,前缀会先完成计算;而后缀会使用变量原来的值。

2.6 关系和boolean运算符

Java中包含丰富的关系运算符。
检测相等性:==
检测不相等:!=
还有:<,>,<=,>=运算符。
使用&&表示逻辑“与”,使用||表示逻辑“或”,!是逻辑“非”。&&和||是按照“短路”的方式设计的:如果第一个操作数能够确定表达式的值,第二个操作数就不必计算了。
例如,在下面的表达式中:x != 0 && 1 > x+y
如果x等于0,那么第二布冯就不会计算。因此,如果x为0,也就不会计算1/x,除以0的错误就不会出现。
类似地,如果第一个表达式为true,expression1 || expression2的值就会为true,而无需计算第二个表达式。
Java支持三元操作符?:,这个操作符有时候很有用。如果条件为true,下面的表达式
condition ? expression1 : expression2
就为第一个表达式的值,否则计算为第二各表达式的值。例如,
下x < y ? x : y
会返回x和y中较小的一个。

2.7 位运算

2.8 括号与运算的级别

在这里插入图片描述
如果不使用圆括号,就按照给出的运算符优先级次序进行计算。同一个级别的运算符按照从左至右的次序进行计算(除了表中给出的右结合运算符外。)例如,由于&&的优先级比||高,所以表达式

    a && b || c

等价于

    (a && b) || c

又因为+=是右结合运算符,所以表达式

    a += b += c

等价于

    a +=(b += c)

也就是将b+=c的结果(加上c之后的b)加到a上。

2.9 枚举类型

有时候变量的取值只在一个有限的集合中。例如:销售的服装或比萨饼只有小、中、大和超大这四种类型。当这样存在一定的隐患。在变量中很可能保存的是一个错误的值(如0或则m).
针对这种情况,可以自定义枚举类型。枚举类型包含有限个命名的值,例如,

enum Size {SMALL, MEDIUM, LAGRE, EXTAR_LARGE}

参考文章

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值