Java基础02

Java基础02

(由于作者之前学过c和c++很多语法内容直接省略,直接记最重要的和容易忘记的)

类型的拓展

整数拓展: 进制 二进制0b 十进制 八进制0 十六进制0x

int i=0b101;
int i2=101;
int i3=0101;
int i4=0x101;
int i5=10_0000_0000//较大的数可以用下划线隔开

浮点数拓展:浮点数溢出问题

float f=0.1f;
float d=1.0/10;
f!=d;//两者不相等
folat d1=12133564651231321f;
float d2=d1+1;
di==d2;//两者相等

float 浮点数是有限且离散的,根据舍入误差,其数应该是大约值

最好完全避免使用浮点数进行比较

字符拓展,转义字符,布尔值拓展

比较简单不多说

类型转换

强制类型转换:高位到低位

自动类型转换;低位到高位

byte,short,char,->int->long->float->double

注意

  1. 不能将布尔值进行转化,
  2. 不能把对象类型转化为不相干的类型,
  3. 转换的时候可能存在内存溢出,或者精度问题

变量常量作用域

(修饰符不存在先后顺序)

static final double PO=3.2;
final static double PO=3.2;//常量的定义

实例变量:

  1. 布尔值:默认是false
  2. 从属于对象;如果不自行初始化,这个类型的默认值为0或0.0
  3. 除了基本类型,其余的默认值都是NULL
  4. 实例变量的使用有点像c的结构体数据调用

静态变量 static double i=222;

运算符

byte和short等类型进行运算结果应该是int类型

byte a=5;
short b=3;
byte  c=a+a;//错误
short d=b+b;//这两种情况a+a,a*a,b+b,b*b都是int型
//为啥咱还不清楚	

关系运算符返回的结果是布尔值

幂运算以及其他很多运算会使用类工具来做

位运算符

&&,||,!

&,|,~

<<相当于*2,>>相当于/2(效率极高)

  int A=0b0010_1100;
  int B=0b0000_1111;
        /*
        A&B=0b0000_1100
        A|B=0b0010_1111;
        A^B=0b0010_0011;异或
        ~B=0b1111_0000;
         */

思考题

怎么计算2*8=16最快?


补充

条件运算符?:

字符串连接符+其他类型,后面的其他类型会转化成string型

int a=20;
int b=30;
        System.out.println(""+a+b);
        System.out.println(a+b+"");
posted @ 2025-02-21 23:37  helloword改变世界  阅读(27)  评论(0)    收藏  举报