初级Java开发工程师!绝密文档,面试手册全面突击!!!秋招已经到来

本文是针对初级Java开发工程师的面试指南,涵盖了数据类型、String、运算、关键字以及继承等核心知识点。详细讲解了String的不可变性、String Pool、参数传递、final和static的作用,还探讨了抽象类与接口、重写与重载的区别,以及反射的优缺点。旨在帮助求职者全面突击Java基础,顺利通过面试。
摘要由CSDN通过智能技术生成

这里我要明说一下,不是Java初级和学习Java的千万不要乱看,否则~~~~

你会怀疑人生,因为会浪费你时间啊!!!

本次考点是Java初级开发工程师面试必备的一些东西!!!

1、数据类型

基本类型

byte/8short/16int/32long/64、boolean/char/16float/32double/64

boolean只有两个值,truefalse,可以使用1bit来存储,但是具体大小没有明确规定,JVM会在编译时期将boolean类型转为int,使用1来表示true,0表示falseJVM支持boolean数组,但是是通过读写byte数组来实现的。

包装类型

基本类型都有对应的包装类型,基本类型与其对应的包装类型之间的赋值使用自动装箱与拆箱完成。

Integer x=2   //装箱,调用了Integer.valueOf(2)
int y=x     //拆箱 调用了 X.intValue()

缓存池

new Integer(123)与Integer.valueOf(123)的区别在于:

new Integer(123)每次都会新建一个对象
Integer.valueOf(123)会使用缓存池中的对象,多次调用会取得同一对象的引用。
Integer x = new Integer(123);
Integer y = new Integer(123);
System.out.println(x == y);    // false
Integer z = Integer.valueOf(123);
Integer k = Integer.valueOf(123);
System.out.println(z == k);   // true

valueOf()方法的实现比较简单,就是先判断值是否在缓存池中,如果在的话就直接返回缓存池的内容。

2、String

概览

String被声明为final,因此它不可被继承。(Integer等包装类也不能被继承)

在java8中,String 内部使用char数组存储数据。

public final class String
    implements java.io.Serializable, Comparable<String>, CharSequence {
   
    /** The value is used for character storage. */
    private final char value[];
}

在java9之后,String类的实现改用byte数组存储字符串,同时使用coder来标识使用了那种编码。

public final class String
    implements java.io.Serializable, Comparable<String>, CharSequence {
   
    /** The value is used for character storage. */
    private final byte[] value;

    /** The identifier of the encoding used to encode the bytes in {@code value}. */
    private final byte coder;
}

value 数组被声明为final,这意味着value数组初始化之后就不能再引用其它数组。并且 String 内部没有改变 value 数组的方法,因此可以保证 String不可变。

不可变的好处

1、可以缓存hash值

因为String的hash值经常被使用,例如String用作HashMap的key。不可变的特性可以使得hash值也不可变,因此只需要进行一次计算。

2、String Pool的需要

字符串常量池,如果一

  • 21
    点赞
  • 65
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 13
    评论
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Java架构没有996

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值