第二天学习Java基础

Java基础语法

数据类型

//强类型语言:要求变量的使用严格要求规范,所有变量必须先定义后使用
//整数
int num1 = 10;
byte num2 = 20;
short num3 = 30;
long num4 = 40L;  //long在数值后加L表示为long类型
//小数
float num5 = 50.1F; //float类型在数值后加F来区别和double区别
double num6 = 50.1;
//字符(不是字符串)
char name = 'a';  //字符类型char只能声明一个字符,可以实字母或汉字,但只能一个
//布尔
boolean flag = true;  //布尔值只有true和flase

//类型转换,从小到大
byte short char int long float double

数据类型面试题

  • 关于进制:二进制0b开头、八进制0开头,十六进制0x开头。
  • 关于float:float是舍入误差的,最好完全不要使用float进行比较。金钱定义使用java工具类BigDecimal。
  • 关于转换:不能对布尔值进行转换,不能把对象类型转换为不相干的类型,高容量转换为低容量时需强制转换,可能存在内存溢出或精度(去掉小数点后的数)问题。
  • 数值类型可以过长的话可以每四位用_分隔(jdk7新特性)。
  • 数值运算过大的话会内存溢出,结果强转也没用,须在运算之前强转。

引用类型

//类
//接口
//数组

变量

  • 类变量:在class中static修饰的变量,方法中可以直接使用。
  • 实例变量:在class中没有static修饰的变量,方法调用需要new。
  • 局部变量:方法中的变量,只能在本方法内使用。

常量

  • 使用final修饰,常量名一般使用大写字母命名。

命名规范

  • 变量:首字母小写的驼峰原则
  • 常量:大写字母加_
  • 类名:大写字母的驼峰原则
  • 方法名:小写字母的驼峰原则

Java运算符

  • 算数运算符:+、-、*、/(注意变量类型)、%、++、--

  • 赋值运算符:=

  • 关系运算符:>、<、>=、<=、==、!=、instanceof

  • 逻辑运算符:&&(与)、||(或)、!(非)

    //&&运算如果第一个就为flase,后面的判断全部不执行(短路运算)
    
  • 位运算符:&、|、^、~、>>、<<、>>>(计算机操作相关)

    /*
    A = 000110
    B = 100010
    A&B = 000010  //全部为1才是1
    A|B = 100110  //有1就是1
    A^B = 011011  //同样的就是1
    ~B = 011101   //取反
    */
    //重点左移<<  *2、右移>>  /2
    /*
    0000 0000   0
    0000 0001   1
    0000 0010   2
    0000 0011   3
    0000 0100   4
    0000 1000   8
    0001 0000   16
    */
    //左移右移就是让二进制1的位置左右移动
    面试题:让计算机最快的速度算出2*8
    答 案:2<<3        (2右移三位=16)
    
  • 条件运算符:? :

  • 扩展赋值运算符:+=、-=、*=、/=

    int a = 10;
    int b = 20;
    a += b;   //a+=b;   ==   a = a+b;
    System.out.println(a += b);
    //输出30
    
  • 幂运算

    //java中不提供2^3这种写法,需用到Math类
    double pow = Math.pow(2,3);
    pow中存储2^3的结果8.0
    

运算符注意点

  • 算数运算中,算数有一个long,其结果也为long类型;有一个int,结果也为int;short+byte结果也为int。

  • a%b == a除b=?.....c 的c为a%b的结果。

  • 自增/自减

    int a = 3;
    int b = a++;  //先将a(值为3)赋值给b,再执行a=a+1;
    System.out.println(b);   //输出3
    System.out.println(a);   //输出4
    int c = ++a;  //先执行a=a+1;再将运算后的结果赋值给c
    System.out.println(c);   //输出5
    

Java DOC文档

/**
*@author    作者名
*@verson    版本号
*@since     最早使用的jdk版本
*@param     参数名
*@return    返回值
*@throws    抛出的异常
*/
posted @ 2020-05-10 21:21  yukinon  阅读(131)  评论(0编辑  收藏  举报