这里写自定义目录标题
基础篇(第一天)
1.面向对象的特征有哪些?
抽象、继承、封装、多态
2.访问修饰符及作用范围
public: 当前类、同包、子类、其他包
protected:当前类、同包、子类
default: 当前类、同包
private: 当前类
3.基础数据类型(8种)
int,short,long,char,double,float,boolean,byte
4.类型转换
转换从低级到高级
低 ------------------------------------> 高
byte,short,char—> int —> long—> float —> double
数据类型转换必须满足如下规则:
-
不能对boolean类型进行类型转换。
-
不能把对象类型转换成不相关类的对象。
-
在把容量大的类型转换为容量小的类型时必须使用强制类型转换。
-
转换过程中可能导致溢出或损失精度
(1)自动类型转换
必须满足转换前的数据类型的位数要低于转换后的数据类型
例如: short数据类型的位数为16位,就可以自动转换位数为32的int类型,同样float数据类型的位数为32,可以自动转换为64位的double类型。
public class ZiDongLeiZhuan{
public static void main(String[] args){
char c1=‘a’;//定义一个char类型
int i1 = c1;//char自动类型转换为int
System.out.println(“char自动类型转换为int后的值等于”+i1);
char c2 = ‘A’;//定义一个char类型
int i2 = c2+1;//char 类型和 int 类型计算
System.out.println(“char类型和int计算后的值等于”+i2);
}
}
(2)强制类型转换
条件是转换的数据类型必须是兼容的
格式:(type)value type是要强制类型转换后的数据类型
例如:
short s1=1;s1=s1+1 有错吗? 有错 s1+1是int类型
short s1=1;s1+=1 有错吗? 没错 原因是 s1+=1 相当于 s1=(short)(s1=1)
5.包装类
Boolean,Character,Byte,Short,Integer,Long,Float
装箱:
例如1:
Integer j=new Integer(3)
Integer i =3//自动装箱
int k=3;
ij? 不相等 原因两个引用没有引用同一对象
jk? 相等 j自动拆箱在和k比较
例子2
注意包装类的比较大小
Interger f1=100,f2=100,f3=150,f4=150;
f1f2? true
f3f4?false 比较的是对Integer的引用,Ingeter的范围大小是-128到127,超过这个范围需要重新创建引用
6.&和&&的区别
& 是(1)按位与 (2)逻辑与
&& 是短路与 只要左边不满足,右边就不用运算
7.最有效计算28
2<<3 相当于22^3 那么2>>3 相当于2除以2的3次方