JAVA小问题总结
2016-02-18 16:33
260 查看
Q1 ‘==’与equals()方法区别?
‘==’用法
case1:用于比较基本类型变量的值是否相等
case2:如果变量所指为对象类型,则比较的是否引用同一对象
例:Object obj=new Object();//变量obj存放在栈中,其值为所指对象内存首地址,new Object() 对象存放在堆内存中
equals()方法
比较两个独立对象的值是否相等
例:
备注:如果一个类没有equals方法则默认继承Object类的equals方法如下
所以如果比较两个对象值需要覆写equals方法,自己可以定义规则,决定什么时候判定两个对象相等。
Q2:static成员变量与实例变量区别?
1.静态成员变量也称类变量,只要程序加载了该类的字节码,即使没有生成对象,也可为该变量分配内存,也可使用(通过类名访问)
2.实例变量也称对象变量只能实例对象才可使用
备注:static 方法不可以调用内部非静态方法(非静态方法必须生成实例对象才可调用,而static方法不需要生成对象就可以调用)
Q3;基本类型封装类与基本类型的区别?
1.int 与Integer
1.默认int 为0 ,Integer为赋值为Null(因此Integer可以区分是否赋初值,在JSP开发时页面默认显示为空字符串,而int显示为0)、
2.Integer包含了操作整数相关的方法,如将一个字符串转换为整数,获取int类型值得范围
Q4:Math中三个取整方法区别?例10.5 与-10.5
ceil() 向上取整 11 -10
floor() 向下取整10 -11
round() 等效于floor(x+0.5) 11 -10
Q5:Overload () 与Override()方法的区别?
Overload 重载 :一个类中可以有多个同名的方法,参数列表不同。参数的个数,参数的类型不同与返回值的类型,抛出的异常多少无关。
1.jvm根据不同的参数类型,个数,或顺序(需要类型不同)
2.不可通过返回值类型、异常书面、权限重载方法
3.若继承时父类方法为private则子类不能重载只是定义一个新方法
Override 重写:子类可以重写父类的方法,或者接口实现。
1.子类的方法可以与父类的方法名及参数相同,通过子类实例对象调用此方法,是调用的子类方法。
2.子类方法 只能抛出比父类更少的异常或者异常的子类(原因:子类可以解决父类的问题,但不能比父类有更多的问题)
3.父类方法为private则此方法不成为Override方法,是一个新的方法
4.返回值必须相同
5.面向对象编程中多态的一种体现
‘==’用法
case1:用于比较基本类型变量的值是否相等
case2:如果变量所指为对象类型,则比较的是否引用同一对象
例:Object obj=new Object();//变量obj存放在栈中,其值为所指对象内存首地址,new Object() 对象存放在堆内存中
equals()方法
比较两个独立对象的值是否相等
例:
String str1=new String("hh"); String str2=new String("hh"); str1.equals(str2);//结果是true 因为两个字符串的值一样 str1==str2;//结果是false 引用不同
备注:如果一个类没有equals方法则默认继承Object类的equals方法如下
boolean equals(Object o){ return this==o;//可以看出默认还是'=='这就是为什么对两个对象equals一直为false }
所以如果比较两个对象值需要覆写equals方法,自己可以定义规则,决定什么时候判定两个对象相等。
Q2:static成员变量与实例变量区别?
1.静态成员变量也称类变量,只要程序加载了该类的字节码,即使没有生成对象,也可为该变量分配内存,也可使用(通过类名访问)
2.实例变量也称对象变量只能实例对象才可使用
public class Obj { public static int var1=0; public int var2=0; public Obj() { var1++;//没new 一个对象时 var1的值加1,且这个变量是所有该对象共享的,可以统计生成对象个数 var2++;//每次new 一个对象值都为1 }
备注:static 方法不可以调用内部非静态方法(非静态方法必须生成实例对象才可调用,而static方法不需要生成对象就可以调用)
Q3;基本类型封装类与基本类型的区别?
1.int 与Integer
1.默认int 为0 ,Integer为赋值为Null(因此Integer可以区分是否赋初值,在JSP开发时页面默认显示为空字符串,而int显示为0)、
2.Integer包含了操作整数相关的方法,如将一个字符串转换为整数,获取int类型值得范围
Q4:Math中三个取整方法区别?例10.5 与-10.5
ceil() 向上取整 11 -10
floor() 向下取整10 -11
round() 等效于floor(x+0.5) 11 -10
Q5:Overload () 与Override()方法的区别?
Overload 重载 :一个类中可以有多个同名的方法,参数列表不同。参数的个数,参数的类型不同与返回值的类型,抛出的异常多少无关。
1.jvm根据不同的参数类型,个数,或顺序(需要类型不同)
2.不可通过返回值类型、异常书面、权限重载方法
3.若继承时父类方法为private则子类不能重载只是定义一个新方法
Override 重写:子类可以重写父类的方法,或者接口实现。
1.子类的方法可以与父类的方法名及参数相同,通过子类实例对象调用此方法,是调用的子类方法。
2.子类方法 只能抛出比父类更少的异常或者异常的子类(原因:子类可以解决父类的问题,但不能比父类有更多的问题)
3.父类方法为private则此方法不成为Override方法,是一个新的方法
4.返回值必须相同
5.面向对象编程中多态的一种体现
相关文章推荐
- window Eclipse中运行cygwin Hadoop!
- RxJava 创建操作符 just
- Java中join的使用
- Java线程
- [置顶] 自学-spring-quartz 进行整合-02
- SpringMVC中使用Interceptor拦截器
- java中以类为参数将其哥属性值中的空格去除
- java 计算时间差,还剩下xx天xx小时xx分xx秒
- java String 直接 转 16进制
- Spring MVC org.springframework.web.bind.MissingServletRequestParameterException解决办法
- Chapter2 使用Web容器
- hdu 2560 java
- JSON字符串转换成Java实体类(POJO)
- java开发Webservice的几种方式
- 【转】类初始化中实例变量的执行顺序
- RxJava 创建操作符form
- java native关键字
- JAVA 3DES 加密/解密 32位密钥
- springMVC的容器初始化过程
- java基于P2P的聊天和文件传输实例