zoukankan      html  css  js  c++  java
  • 基本类型、String类面试题

    • int 和 Integer 有什么区别
    1. int是java提供的8种原始数据类型之一,意思整型,占用4字节。
    2. Integer是java为int提供的封装类,是引用数据类型。
    3. int的默认值为0,而Integer的默认值为null,即Integer可以区分出未赋值和值为0的区别,int则无法表达出未赋值的情况。例如,要想表达出没有参加考试和考试成绩为0的区别,则只能使用Integer
    4. 在JSP开发中,Integer的默认为null,所以用el表达式在文本框中显示时,值为空白字符串,而int默认的默认值为0,所以用el表达式在文本框中显示时,结果为0,所以,int不适合作为web层的表单数据的类型。
    5. 在Hibernate中,如果将OID定义为Integer类型,那么Hibernate就可以根据其值是否为null而判断一个对象是否是临时的,如果将OID定义为了int类型,还需要在hbm映射文件中设置其unsaved-value属性为0。
    6. 另外,Integer提供了多个与整数相关的操作方法,例如,将一个字符串转换成整数,Integer中还定义了表示整数的最大值和最小值的常量。
    • String 是最基本的数据类型吗?

       不是,其是一个对象

    • String类为什么不能被继承?

       因为String是这样定义的:public final class String extends Object,里面有final关键字,所以不能被继承!

    • String 和 StringBuffer 的区别
    1. 这两个类都实现了CharSequence接口。
    2. String 的长度是不可变的,StringBuffer 的长度是可变的。如果你对字符串中的内容经常进行操 作, 特 别 是内 容 要 修改 时 , 那么 使 用 StringBuffer , 如果 最 后 需要 String, 那么 使 用StringBuffer 的 toString()方法

       逻辑清晰回答法:

    1. 类型不同,因为不是一个类,也没有继承关系,做参数时不能共用
    2. String对象是不可变对象,不能修改值。而StringBuffer是可变对象,能修改值。
    3. 拼接字符串时,String会产生新对象,而StringBuffer只是增加新字符,不产生新对象,因此效率高。
    4. String覆盖了equals方法和hashCode方法,而StringBuffer没有覆盖equals方法和hashCode方法,所以,将StringBuffer对象存储进Java集合类中时会出现问题。
  • 相关阅读:
    IDS与IPS功能分析
    CentOS 命令大全
    仿京东放大镜
    CSS垂直水平居中方法总结
    Java学习之计算机基础(一)
    Java 代码学习之理解数据类型中的坑
    Java 代码学习之数组的初始化
    Java中的比较总结
    Java Random介绍
    手机网站开发必修课[2]:浏览器兼容性测试
  • 原文地址:https://www.cnblogs.com/677-code/p/9450856.html
Copyright © 2011-2022 走看看