Java面试题总汇(自用)-创新互联

1.JVM、JRE、JDK的区别 :
  • 1) JVM: java虚拟机,是java实现跨平台的最核心部分,能够运行java语言所开发的程序
  • 2) JRE: java运行环境,是运行java程序所必须的环境的集合,包括JVM+java系统类库
  • 3) JDK: java开发工具包,是java的核心,包括JRE+编译、运行等命令工具

2.java 的 8种基本数据类型是什么 ? ( 简述 java 的 8种基本数据类型 )
  • 1) byte:       字节型,用于存储整数的,            占用1个字节,范围-128到127
  • 2) short:     短整型,用于存储整数的,            占用2个字节,范围-32768到32767
  • 3) int:          最常用的整型,用于存储整数的, 占用4个字节,范围-2^31到2^31-1
  • 4) long:       长整型,用于存储较大的整数,    占用8个字节,范围-2^63到2^63-1
  • 5) float:       单精度浮点数,用于存储小数的, 占用4个字节,不能表示精确的值
  • 6) double:   双精度浮点数,最常用的存储小数的类型,占用8个字节,不能表示精确的值
  • 7) boolean: 布尔型,存储true或false,           占用1个字节
  • 8) char:       字符型, 采用Unicode字符编码格式,存储单个字符,占用2个字节

3.switch可以作用于哪些数据类型上 ?
  • 答: byte,short,int,char,String,枚举,其余类型都不允许

4.重写 ( override )与重载 ( overload )的区别 :
  • 1 ) 重写:发生在父子类中,方法名相同,参数列表相同
  •   ----用于在子类中修改父类中的方法
  • 2 ) 重载:发生在同一类中,方法名相同,参数列表不同
  •   ----方法名相同的完全不同的方法
5.实例变量 与 静态变量 的区别 :
  • ------------------------实例变量 和 静态变量 都属于 成员变量
  • 1 ) 实例变量:是属于对象的,在创建对象时存储在内存堆中,
  •  创建多少个对象,则实例变量就会在内存堆中存在多少份,
  •  需要通过引用变量来访问
  • 2 ) 静态变量:是属于类的,在类被加载时存储在内存方法区中,
  •  无论创建多少个对象,静态变量在内存中都只有一份,
  •  常常通过类名点来访问。
6.java 是 值传递 还是 引用传递 ?
  •   答 : 在java中,无论是基本类型还是引用类型,都是值传递
  • 1 ) 对于基本类型而言,传递的是具体的值的副本--------------身份证复印件
  • 2 ) 对于引用类型而言,传递的是具体的地址的副本-----------房子+钥匙
7.String s = new String("hello");
 问:如上语句创建了几个对象?
  • 答:2个

    站在用户的角度思考问题,与客户深入沟通,找到新华网站设计与新华网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:网站制作、成都网站设计、企业官网、英文网站、手机端网站、网站推广、域名申请、网页空间、企业邮箱。业务覆盖新华地区。
  • 第一个:字面量"hello"

  • ----java会创建一个String对象表示字面量"hello",并将其存入常量池中

  • 第二个:new String( )

  • ----new String()时会再创建一个字符串对象,并引用hello字符串内容

8、==和equals()的区别:
  • ==可以作用于基本类型,也可以作用于引用类型:

    • 若为基本类型,则是在比较值是否相等

    • 若为引用类型,则是在比较地址值是否相等

  • equals()只能作用于引用类型:

    • Object类的equals()默认比较的还是==(即比较地址),但是没有参考意义,所以常常需要重写equals()来比较对象的属性值是否相同

             注意:String类重写了equals()来比较字符串内容是否相同

 包装类也重写了equals()来比较值是否相同

9、String常用的方法有哪些?
  • length():获取字符串的长度(字符个数)

  • trim()  :去掉两边的空白字符

  • toUpperCase()/toLowerCase():将英文部分给转换为全大写/全小写字母

  • startsWith()/endsWith():判断是否是以???开始/结束的

  • charAt():根据下标找字符

  • indexOf()/lastIndexOf():查找字符串第一次出现/最后一次出现的下标

  • substring():截取字符串

  • 静态方法valueOf():将其它类型的数据转换为字符串

  • matches():验证匹配   (正则表达式)

  • replaceAll():替换       (正则表达式)

  • split():拆分                 (正则表达式)

10、String、StringBuilder、StringBuffer的区别:
  • String:

    • 由final修饰,所以不能被继承。底层封装的是final的字符数组,所以为不变对象。每次修改String引用变量的值,都是在创建新的对象。适合查看,但不适合频繁修改。在实际应用中对于字符串大部分情况下都是在查看,所以String的应用率最高。

  • StringBuilder:

    • 底层封装的是字符数组,所做操作就是在该数组之上的,修改效率高。

    • 非线程安全的,并发处理的,性能稍快-------------一般都是用StringBuilder

  • StringBuffer:

    • 底层封装的是字符数组,所做操作就是在该数组之上的,修改效率高。

    • 线程安全的,同步处理的,性能稍慢-----------------应用率不高

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


分享文章:Java面试题总汇(自用)-创新互联
当前路径:http://cdiso.cn/article/dphcjd.html

其他资讯