float修饰变量_干货 | 名企高频考点之Java 变量高频三问

5c35b1b2160f7ee0fee97848a77c31f5.png

点击蓝字关注我哦

2195e4a9bacc21761e19a7d99496ea05.png 以下是本期干货视频 视频后还附有文字版本哦44fd0df32ed5800fa79506a9b9063055.png 4a64a7626607bea0c9f54fcfe3323f79.png ▼《名企高频考点-Java 变量高频三问》▼ ps:请在WiFi环境下打开,如果有钱任性请随意

0. 概述

面试过程当中,基础问题必不可少。诸如我们今天讲到的变量问题。
  • 面试问题1:Java当中的基本类型都有哪些?可以列举一下吗?
  • 面试问题2:Java当中的变量大概是怎么分的?
  • 面试问题3:你知道他们对应的包装类吗以及包装类和基本类型的区别是什么?
下面我们依靠这几个面试问题来进行简单的讲解。

1. Java当中的基本数据类型

Java当中的基本数据类型共有8种,他们分别是byte, char,short, int, long, float,double。这8种类型完全可以足够我们去使用,当然除了这些基本数据类型,还有引用类型,如:接口,类,数组,枚举,String等等。大家要有足够的掌握。

2. Java当中的变量

在Java当中变量大概分为两种:成员变量局部变量
2.1 定义
  • 成员变量:定义在类内,方法外的变量。
  • 局部变量:定义在方法内的变量。
2.2 具体细分和内存位置
  • 成员变量:实例成员变量(不加static修饰)存储于对象中,在堆上。静态成员变量/类变量(被static修饰),存储于方法区中,只有一份。
  • 局部变量:存储于栈中。

3. 基本类型对应的包装类以及和基本类型的区别

基本数据类型包装类
byteByte
charCharacter
shortShort
intInteger
longLong
floatFloat
doubleDouble
booleanBoolean
那么包装类和基本类型有啥区别呢?为什么就要有包装类呢? 3.1 包装类型可用于泛型,而基本类型不可以
Listlist = new ArrayList<>(); // 编译错误Listlist = new ArrayList<>()
3.2 基本类型比包装类型更高效 基本类型在栈中直接存储的是具体数值,而包装类型只是在栈上存储的是堆中的引用。包装类型对象,每次都要通过 new 一个包装类型就显得非常笨重 。 3.3自动装箱和自动拆箱 JDK1.5之前,每次都要进行手动装箱和拆箱。如代码:
Integer integer = new Integer(10);  // 手动装箱int a = integer.intValue();  // 手动拆箱
JDK1.5 为了减少开发人员的工作,提供了自动装箱与自动拆箱的功能。
Integer integer = 10;  // 自动装箱int a = integer;      // 自动拆箱
这里会有一个考点,装箱和拆箱调用的底层方法是什么?我们通过javap -c 来查看: 73e396ae0cd045476943ee14beec7111.png 很明显装箱方法是:valueOf方法。拆箱的方法不固定,拆箱为整型就是intValue。 这里还有另外一个考点,请看代码:
Integer a = new Integer(200); Integer b = new Integer(200);System.out.println(a == b);
输出结果为false。原因很简单,在装箱的时候,调用装箱的方法时,会将-128到127的数字存储起来,如果不在这个范围内,每次都会新new一个对象。
public static Integer valueOf(int i) {    assert IntegerCache.high >= 127;    //这里low的值是-128    if (i >= IntegerCache.low && i <= IntegerCache.high)        return IntegerCache.cache[i + (-IntegerCache.low)];    return new Integer(i);}

4. 总结

02bfd9cb8b0699c616a5f98218c779ae.png 作者:高博 审核:王海斌 编辑:文艺  164a7ae1984037245e6fe6df3fdd55a4.png

好看,就要点个"在看"

8380040f24832bffd24bbfe4f28c5719.gif
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值