Java基础知识2

1.装包拆包问题:
java中每一个基本数据都有一个包装类型与其对应
原始类型:boolean,char,byte,short,int,long,float,double
包装类型:Boolean,Character,Byte,Short,Integer,Long,Float,Double

class TestDemo1{
   public static void main(String[] args) {
        Integer i = 100;
        Integer i2 = 100;
        System.out.println(i == i2);//输出结果true
        Integer i3 = 200;
        Integer i4 = 200;
        System.out.println(i3 == i4);//输出结果false
   }
}        

用Integer赋值会进行装包拆包,每种数据类型有特定的方法,java源代码中Integer所用的方法为valueOf()方法,,具体如下:

public static Integer valueOf(int i) {
        if (i >= IntegerCache.low && i <= IntegerCache.high)
            return IntegerCache.cache[i + (-IntegerCache.low)];
        return new Integer(i);
    }

即当i取值在-128~127时,i的值会放在缓存区,当两数进行比较时,会从缓存区直接读取出值,所以输出为true;
当i取值超出该范围时,则会新建一个对象,在比较时比较的是两者的内存地址,所以输出结果为false。
2.变量常量:
根据java程序运行过程中值是否会发生改变,将数据分为常量和变量:
变量:在运行时才能知道值
        变量分为三种:实例变量,静态变量,局部变量
              局部变量:初始值为0
              静态变量:不属于对象,只属于类本身,初始值为0
              局部变量:使用时必须初始化
       变量命名可以使用字母,数字,下划线和美元符号,但不能用数字和美元符号开头
常量:在进行命名时必须大写,且在第一次赋值后不能改变其值,在编译时统一进行处理
具体可看以下实例:

class Demo{
	int a;//实例变量
	static int b;//静态变量
	void fun(){
		int c=10;//局部变量
	}
	final int A;//常量,必须大写;第一次赋值后不能改变其值
	//常量:在编译时统一进行处理
	//变量:在运行时才能知道值           
}	
   

3.常用运算符
“[]”"()" "."这三种运算符为方法调用,属性获取,运算时优先级最高

class Demo{
int[] array={1,2,3,4,5};
int len=array.length;//获取数组array的长度

一元运算符:!, ~ , ++ , –

class Demo{
	int a=11;
	boolean m=true;
	System.out.println(~a);//用二进制计算,按位取反,结果为-12
	System.out.println(!m);//结果为flase
	a++;//将a的值+1
	System.out.println(~a);
	a--;//将a的值-1
	System.out.println(~a);
}

加减乘除:+,-,*,/
取模(求余数):%
求余数及除法运算时容易犯计算错误,如下,需要注意:

System.out.println(-10%3);//-1
System.out.println(-10%-3);//-1
System.out.println(10%-3);//1
System.out.println(10%3);//1
float f1 = 5/2;//2.0
float f2 = (float)(5.0/2);//2.5
float f3 = (float)5/2;//2.5
float f4 = 5/(float)2;//2.5

左位移:<<
如22的2进制表示为0000 1011,左移一位后为0001 0110 ,即44,可以将左位移看做乘法
右位移:>>
和左位移计算方法相似,可以看做除法
无符号右移:>>>
在进行右移操作后,在该数二进制表示的符号位上补0
按位与:&
如11&13
11: 0000 1011
13: 0000 1101
结果:0000 1001
按位或:| 按位异或:^
与按位与计算方法相似,异或运算在计算时同为0,不同为1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值