java面试

本文深入探讨Java面试中常见的核心知识点,包括RuntimeException与一般Exception的区别、Integer与int的差异、String,StringBuffer与StringBuilder的特性,以及Java8的新特性如默认方法和静态方法,最后解析反射机制和cookie与session的工作原理。

runtimeException与一般exception的区别

RuntimeException是JVM虚拟机或语法逻辑发生问题,会导致程序,线程的终止。
可以当做一般异常处理,也可以不处理。尽量从逻辑设计的方面来避免。
一般Exception必须由try,catch进行处理,否则编译不通过

Integer与int的区别

Integer是针对于int的引用类型。
1.Integer类型如果使用new创建,则会创建新的对象,在JVM内存分配新的内存地址。如果使用Integer i = 100方式创建,则在 -128-127 范围之内,不会分配新的内存。因为此方式使用Integer.valueOf() ,javaAPI为Integer缓存了 -128-127 之间的值,

2 由于Integer变量实际上是对一个Integer对象的引用,所以两个通过new生成的Integer变量永远是不相等的(因为new生成的是两个对象,其内存地址不同)。

Integer i = new Integer(100);
Integer j = new Integer(100);
System.out.print(i == j); //false

3 Integer变量和int变量比较时,只要两个变量的值是向等的,则结果为true(因为包装类Integer和基本数据类型int比较时,java会自动拆包装为int,然后进行比较,实际上就变为两个int变量的比较)

Integer i = new Integer(100);
int j = 100;
System.out.print(i == j); //true

4 非new生成的Integer变量和new Integer()生成的变量比较时,结果为false。(因为非new生成的Integer变量指向的是java常量池中的对象,而new Integer()生成的变量指向堆中新建的对象,两者在内存中的地址不同)

Integer i = new Integer(100);
Integer j = 100;
System.out.print(i == j); //false

5 对于两个非new生成的Integer对象,进行比较时,如果两个变量的值在区间-128到127之间,则比较结果为true,如果两个变量的值不在此区间,则比较结果为false

Integer i = 100;
Integer j = 100;
System.out.print(i == j); //true
Integer i = 128;
Integer j = 128;
System.out.print(i == j); //false

String,StringBuffer,StringBuilder区别

String,StringBuffer和StringBuilder内部均维护char[]数组。
1 String内部的char[]使用final修饰,不可变。StringBuffer和StringBuilder内部char[]可变。
2 StringBuffer是线程安全的StringBuilder.

java 8之中的默认方法和静态方法

Java 8 对接口做了进一步的增强。

  1. 在接口中可以添加使用 default 关键字修饰的非抽象方法。即:默认方法(或扩展方法)只需要使用 default 关键字即可,这个特征又叫做扩展方法(也称为默认方法或虚拟扩展方法或防护方法)。在实现该接口时,该默认扩展方法在子类上可以直接使用,它的使用方式类似于抽象类中非抽象成员方法。
  2. 接口里可以声明静态方法,并且可以实现。
  3. 6.java 8中抽象类与接口的异同
    相同点:
    1)都是抽象类型;
    2)都可以有实现方法(以前接口不行);
    3)都可以不需要实现类或者继承者去实现所有方法,(以前不行,现在接口中默认方法不需要实现者实现)
    不同点:
    1)抽象类不可以多重继承,接口可以(无论是多重类型继承还是多重行为继承);
    2)抽象类和接口所反映出的设计理念不同。其实抽象类表示的是"is-a"关系,接口表示的是"like-a"关系;

反射的意义

通过反射,可以获得程序或者程序集之中每一个类型成员和成员变量的信息

cookie与session的区别

cookie是一种存储在客户端的信息缓存机制。
session是一种针对每个用户,存储在服务端的信息存储机制。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值