JAVA基础知识点

1.   说说&与&&的区别

&和&&都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false。

(1)&&有短路功能,第一个表达式为false,不会再去执行第二个表达式,即if(str!=null&&str.equals(“”)),不会报出空指针异常(NullPointerException)

(2)&可用作位运算符,当操作符两边的表达式不是boolean类型时,&表示按位与操作,我们通常使用0x0f来与一个整数进行&运算,来获取该整数的最低4个bit位,例如,0x31 & 0x0f的结果为0x01。


2.“==”与equals方法的区别


3. 静态变量与实例变量的区别

(1)语法定义:静态变量前要加static,而实例变量前则不加

(2)程序运行(空间分配时间):实例变量是属于某个对象的属性,必须创建了实例对象,其中的实例变量才会被分配空间;静态变量不属于某个实例对象,而是属于类,所以也被称为类变量,在程序加载了类的字节码(*.class),不用创建任何实例对象,静态变量就会被分配空间;

(3)编码时:实例变量必须创建对象后才可以通过这个对象来使用(person.name),而静态变量则可以直接使用类名来引用(Person.count)。


4. 是否可以从一个static方法内部发出对非static方法的调用?

不可以。因为非static方法是必须创建一个对象后才可以对该方法进行调用,而static方法调用时不需要创建任何实例对象,可以直接调用。也就是说,当调用一个static方法时,那个非static方法要关联到哪一个对象上呢?这逻辑无法成立。


5. Integer与int的区别

(1)数据类型:int是java的基本数据类型;而Integer是java为int原始数据类型提供的封装类。

(2)默认值:int 的默认值为0;而Integer的默认值为null;

(3)是否赋值:Integer可以区分出未赋值和0的区别;int不能表达出未赋值的情况。

(4)web使用:用el表达式在文本框中显示Integer时,值为空白字符串;而int为0,所以web层的表单数据类型通常选择Integer

(5)Hibernate使用:若将OID定义为Integer类型,那么Hibernate就可以根据其值是否为null判断一个对象是否是临时的;若将OID定义为int类型,则需要在hbm映射文件中设置unsaved-value属性为0。

(6)其他:Integer提供了多个与整数相关的操作方法


6. Overload和Override的区别

重载Overload表示同一个类中可以有多个方法名相同,参数列表不同的方法;

重写Override表示子类中的方法可以与父类中的某个方法方法名和参数列表完全相同,通过子类创建的实例对象调用这个方法时,将调用子类中定义的同名方法,这相当于把父类中定义的那个完全相同的方法给覆盖了,这也是面向对象编程的多态性的一种表现。

但子类覆盖父类方法是只能抛出比父类更少的异常,或者是抛出父类异常的子异常,因为子类可以解决父类的一些问题,不能比父类有更多的问题。子类的访问权限只能比父类的更大,不能更小。若父类的方法是private权限,则子类不存在覆盖,而是增加了一个全新的方法。


7.OverLoaded的方法是否可以改变返回值的类型?Override和Overload的注意事项?

Overload不可通过改变返回值类型来实现overload。map.remove(key),虽有返回值,但我们通常都不会定义接受返回结果的变量,因为两个方法名和参数列表完全相同的方法,java无法确定要调用那个方法,因为它无法通过返回结果类型来判断。







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值