java 基础

来源:互联网 发布:淘宝客推广qq空间 编辑:程序博客网 时间:2024/05/21 05:36

1、八种基本类型

    整形:byte(1个字节),short(2个字节),int(24个字节),long(8个字节)

    浮点型:float(4个字节),double(8个字节)

    布尔型:boolean(1个字节)

    字符型:char(1个字节)

    boolean Boolean 
    char Character 
    byte Byte 
    short Short 
    int Integer 
    long Long 
    float Float 
    double Double

2、描述

    基本类型又叫内置类型,八种基本类型都有对应的包装类。

    基本类型是存储在栈中,因此他们的存取速度要快于存储在堆中的对应包装类的实例对象。

    类型转换

        自动类型转换:也称隐式类型转换,是指不需要书写代码,由系统自动完成的类型转换,由于实际开发中这样的类型转换很多,所以java语言在设计时,没有为该操作设计语法,而是由JVM自动完成的, 规则:从存储范围小的类型到存储范围大的类型:byte-short(char)-int-long-float-double

        强制类型转换:也称显示类型转换,是指需要写代码才能完成的类型转换, 该类型转换很可能存在精度的损失, 所以必须书写相应的代码,并且能够忍受该种损失时才进行该类型转换。 规则:从存储范围大的类型到存储范围小的类型:double-float-long-int-short(char)-byte

  

3、面试可能会问的问题

      1、short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 +=1;有什么错?

答:对于short s1=1;s1=s1+1来说,在s1+1运算时会自动提升表达式的类型为int,那么将int赋予给short类型的变量s1会出现类型转换错误。

对于short s1=1;s1+=1来说 +=是java语言规定的运算符,java编译器会对它进行特殊处理,因此可以正确编译。

  2、char类型变量能不能储存一个中文的汉子,为什么?

char类型变量是用来储存Unicode编码的字符的,unicode字符集包含了汉字,所以char类型当然可以存储汉字的,还有一种特殊情况就是某个生僻字没有包含在

unicode编码字符集中,那么就char类型就不能存储该生僻字。

  3、Integer和int的区别

int是java的8种内置的原始数据类型。Java为每个原始类型都提供了一个封装类,Integer就是int的封装类。

int变量的默认值为0,Integer变量的默认值为null,这一点说明Integer可以区分出未赋值和值为0的区别,比如说一名学生没来参加考试,另一名学生参加考

试全答错了,那么第一名考生的成绩应该是null,第二名考生的成绩应该是0分。关于这一点Integer应用很大的。

Integer类内提供了一些关于整数操作的一些方法,例如上文用到的表示整数的最大值和最小值。

  4、switch语句能否作用在byte上,能否作用在long上,能否作用在string上?

byte的存储范围小于int,可以向int类型进行隐式转换,所以switch可以作用在byte上

long的存储范围大于int,不能向int进行隐式转换,只能强制转换,所以switch不可以作用在long上

string在1.7版本之前不可以,1.7版本之后switch就可以作用在string上了。

  5、基本类型和非基本类型有什么区别?

int 是基本类型,直接存数值 
Integer是类,产生对象时用一个引用指向这个对象
Java把内存划分成两种:一种是栈内存,另一种是堆内存 
在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配 
而实际的对象是在存储堆内存中,在堆中分配的内存,由java虚拟机的自动垃圾回收器来管理.

1 0