您的位置 首页 java

面试官:Java 中有几种基本数据类型是什么?

认识基本数据类型

在学习基本数据类型之前,我们先认识一下这两个单词:

基本数据类型:

int 32bit
short 16bit
long 64bit
byte 8bit
char 16bit
float 32bit
double 64bit
boolean 1bit
(boolean 的备注+翻译)
This data type represents one bit of information, but its “size” isn’t something that’s precisely defined.(ref)

这种数据类型代表一个比特的信息,但它的“大小”没有明确的定义

 public class App {
    public static void main(String[] args) {
        System.out.println("Byte: " + Byte.SIZE);
        System.out.println("Short: " + Short.SIZE);
        System.out.println("Character: " + Character.SIZE);
        System.out.println("Integer: " + Integer.SIZE);
        System.out.println("Float: " + Float.SIZE);
        System.out.println("Long: " + Long.SIZE);
        System.out.println("Double: " + Double.SIZE);
        System.out.println("Boolean: " + Boolean.toString(false));
    }
}
  

输出

 Byte: 8
Short: 16
Character: 16
Integer: 32
Float: 32
Long: 64
Double: 64
Boolean: false
  

Java 支持的数据类型包括

基本数据类型和引用类型

基本数据类型如下:

  • 整数值型:byte、short、int、long
  • 字符型:char
  • 浮点类型:float、double
  • 布尔型:boolean
  • 整数型:默认 int 型,小数默认是 double 型。Float 和 Long 类型的必须加后缀。比如:float f = 100f 。

基本数据类型注意事项:

  1. 未带有字符后缀标识的整数默认为int类型;未带有字符后缀标识的浮点数默认为double类型。
  2. 如果一个整数的值超出了int类型能够表示的范围,则必须增加后缀“L”(不区分大小写,建议用大写,因为小写的L与阿拉伯数字1很容易混淆),表示为long型。
  3. 带有“F”(不区分大小写)后缀的整数和浮点数都是float类型的;带有“D”(不区分大小写)后缀的整数和浮点数都是double类型的。
  4. 编译器会在编译期对byte、short、int、long、float、double、char型变量的值进行检查,如果超出了它们的取值范围就会报错。
  5. int型值可以赋给所有数值类型的变量;
  6. long型值可以赋给long、float、double类型的变量;
  7. float型值可以赋给float、double类型的变量;
  8. double型值只能赋给double类型变量

引用类型 声明的变量是指该变量在内存中实际存储的是一个引用地址,实体在堆中。

  • 引用类型包括类、接口、数组等。
  • 特别注意,String 是引用类型不是基本类型。

什么是值传递和引用传递?

  • 值传递,是对基本型变量而言的,传递的是该变量的一个副本,改变副本不影响原变量。
  • 引用传递,一般是对于对象型变量而言的,传递的是该对象地址的一个副本,并不是原对象本身。

一般认为,Java 内的传递都是值传递,Java 中实例对象的传递是引用传递。

是否可以在 static 环境中访问非 static 变量?

static 变量在 Java 中是属于类的,它在所有的实例中的值是一样的。当类被 Java 虚拟机载入的时候,会对 static 变量进行初始化。

如果你的代码尝试不用实例来访问非 static 的变量,编译器会报错,因为这些变量还没有被创建出来,还没有跟任何实例关联上。

char 型变量中能不能存贮一个中文汉字?为什么?

  • 在 C 语言中,char 类型占 1 个字节,而汉字占 2 个字节,所以不能存储。
  • 在 Java 语言中,char 类型占 2 个字节,而且 Java 默认采用 Unicode 编码,一个 Unicode 码是 16 位,所以一个 Unicode 码占两个字节,Java 中无论汉字还是英文字母,都是用 Unicode 编码来表示的。所以,在 Java 中,char 类型变量可以存储一个中文汉字。

推荐阅读

【原创】Spring Boot终极篇《上》

【原创】Spring Boot终极篇《下》

笔试题:了解穷举算法吗?如何用代码实现

文章来源:智云一二三科技

文章标题:面试官:Java 中有几种基本数据类型是什么?

文章地址:https://www.zhihuclub.com/171869.shtml

关于作者: 智云科技

热门文章

网站地图