JavaSE基础语法(二)

一、运算符

        算数运算符:就是数学中常见的+, ,-, *, /,%和特殊一点的++,--。不同类型的运算会以最大类型作为输出类型。++,--则是自身进行+1和-1,注意一点的是i++是操作i结束后再+1,++i则是先将i进行+1在对i进行操作。

public static void main(String[] args) {
        long a = 121212121212L;
        int b = 123;
        short c = 10;
        byte d = 8;
        int i = 0;
        int j = 0;

        System.out.println(a+b+c+d);//long
        System.out.println(b+c+d);//int
        System.out.println(c+d);//int
        System.out.println(i++);//0
        System.out.println(++j);//1
    }

        赋值运算符:=。注意x=1是把1赋值给x,x==1是x与1相等,是将1和x进行比较。

int a=b=c=100;//连续赋值

        关系运算符:>,<,>=,<=,==,!=这些数学常见的运算符和特殊一点的instanceof,instanceof用来比较是否有父子关系。关系运算符返回的结果为boolean值。代码例子的前提是我先定义了父类Person和子类Student,Teacher。Object是Java自定义的大类。

 //   Object > Person > Student
//    Object > Person > Teacher
//    Object > String
        Object object = new Student();
        System.out.println(object instanceof Student);//true
        System.out.println(object instanceof Person);//true
        System.out.println(object instanceof Object);//true
        System.out.println(object instanceof Teacher);//false 另一条线 与Student无关
        System.out.println(object instanceof String);//false

        逻辑运算符:&&,||,!与或非。&&都真则true,一假则false;||一个为真则true;!运算是把输出的Boolean值转换,不是把&&和||转换。短路运算是当前面的已经可以得出结果了,就不会在往后走了,如例中的c输出的是5而不是6

public static void main(String[] args) {
        boolean a = true;
        boolean b = false;
    
        System.out.println("a && b:"+(a&&b));
        System.out.println("a || b:"+(a||b));
        System.out.println("! (a && b):"+!(a&&b));
//短路运算
        int c = 5;
        boolean d = (c<4)&&(++c<4);

        System.out.println(d);//false
        System.out.println(c);//5
        

    }

        位运算符:&,|,^,~,>>,<<。与,或,非,,取反,右移,左移

/*
     * A = 0011 1100
     * B = 0000 1101
     * A&B = 0000 1100 都1为1,其余全0
     * A|B = 0011 1101 都0为0,其余全1
     * A^B = 0011 0001 同0异1
     * ~B = 1111 0010 取反
     *
     * 2*8 = 16 2*2*2*2
     * << >>箭头指哪往哪移
     * <<   *2
     * >>   /2
     * */
    
    System.out.println(2<<3);//2*8

        条件运算符(三元运算符):x ? y:z        判断x,如果为true输出y,false输出z

        扩展运算符:+=,-=,*=,/=。a+=b可以近似看成a=a+b。使用扩展运算符时,变量在参与运算时会把结果强制转换为当前变量的类型,最终都不会改变运算的结果类型,假设前面的变量是byte类型,那么后面的表达式运算之后的结果还是byte类型。所以实际上i  *= 0.1等同于:i = (int)(i * 0.1);使用上要谨慎,不然容易造成精度损失。

int a = 10;
int b = 20;
int i = 1;

a+=b;
i *= 0.1;

System.out.println(a);//30
System.out.println(i);//0

二、包机制

        一般利用公司域名倒置作为包名,命名上同一个包内要防止命名冲突,如果要使用某个包内的成员则需使用import来导入。java.lang是JDK自带的包下的类,在使用的时候不用导入,非java.lang包下的类在不同包下使用的时候都需要进行导入,如果在同一个包下,就不用导入了。导入语句要写在package的下面不能反过来。

        导入的语法:import 包名.类名 ;

import java.io.IOException;

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值