一、对象类型转换
1、基本类型的转换
→自动类型转换:小的数据类型可以自动转换成大的数据类型
→强制类型转换:大的类型转换成小的数据类型需要强制转换(数据类型)
2、对java对象的强制类型转换称为造型
→从子类到父类的类型转换可以自动进行
→从父类到子类的转换必须通过造型(强制类型转换)
→无继承关系的引用类型间的转换是非法的
二、==操作符与equals方法
1、==:
→基本类型比较值:只要两个变量的值相等,即为true
→引用类型比较引用(是否指向同一个对象):只有指向同一个对象时,==才返回true
Person p1=new Person();
Person p2=new Person();
if(p1==p2){}
注:用"=="进行比较时,符号两边的数据类型必须兼容(可自动转换的基本数据类型除外),否则编译出错
2、equals():所有类都继承了Object,也就获得了equals()方法,还可以重写。
→只能比较引用类型,其作用与"=="相同,比较是否指向同一个对象
→格式:obj1.equals()
三、字符串与基本数据类型的转换
1、字符串转换成基本数据类型
→通过包装类的构造器实现:
int i=new Integer("12");
→通过包装类的parseXxx(String s)静态方法:
Float f=Float.parseFloat("12.1");
2、基本数据类型转换成字符串
→调用字符串重载的valueOf()方法:
String strf=String.valueOf(3.14f);
→更直接的方法:
String stri=5+"";
→装箱:包装类使得一个基本数据类型的数据变成了类,有了类的特点,可以调用类中的方法:
Integer i=new Integer(1); //进行封装
String str1=i.toString();
int i2=2;
Stiring str2=i2.toString(); //java中不被允许
四、关键字static:被static关键字修饰的不需要创建对象去调用,直接根据类名就可以去访问。
1、使用范围:
在java类中,可用static修饰属性、方法、代码块、内部类
2、被修饰后的成员具备以下特点:
→随着类的加载而加载
→优先于对象存在
→修饰的成员,被所有对象所共享
→访问权限允许时,可不创建对象,直接被类调用
3、类属性、类方法的设计思想:
→类属性作为该类各个对象之间共享的变量。在设计类时,分析哪些类属性不因对象的不同而改变,
将这些属性设置为类属性。相应的方法设置为类方法。
→如果方法与调用者无关,则这样的方法通常被声明为类方法,由于不需要创建对象就可以调用类方法,从而简化了方法的调用。
五、单例(Singleton)设计模式
1、饿汉式设计模式:在类加载之后,还没有人调用就new一个对象,之后调用都是返回之前的对象
2、懒汉式设计模式:最开始对象是null,直到第一次调用getInstance()方法时来new一个对象,之后所有调用都是用这个对象
六、理解main方法的语法:由于java虚拟机需要调用类的main()方法,所以该方法的访问权限必须是public,
又因为java虚拟机在执行main()方法时不必创建对象,所以该方法必须是static,
该方法接收一个String类型的数组参数,该数组中保存执行java命令时传递给所运行的类的参数。