Java基本类型和运算符(面试题)

  发布时间:2019-12-23 16:21:12   作者:面试题整理账号   我要评论
这篇文章主要介绍了Java基本类型和运算符(面试题),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

1.Java中的基本类型有哪些?String 是最基本的数据类型吗?

基本数据类型:byte,short,char,int,long,float,double,boolean 一共8种。String不是基本数据类型,属于引用类型。

2.char型变量中能不能存储一个中文汉字,为什么?

java的char类型可以用来存储Unicode编码字符,而Unicode编码包含了中文,所以char类型可以用来存储一个中文汉字,但是某些特殊的生僻汉字可能没有包含在Unicode编码字符集中,这种情况下就不能用来存储一个汉字了。

3.short s1=1; s1=s1+1;有什么错?short s1=1;s1+=1; 有什么错?

1.对于s1定义是short类型,但是在进行s1+1运算时类型自动提升为了int类型,所以在将int赋值给short类型的s1时,就会发生类型转换错误,2. 由于+=是符合java标准的运算符,java编辑器在进行运算时会进行特殊处理,所以可以正确执行。

4.Java中的Integer和int有什么区别?

int 是Java的内置基本数据类型之一,Java为每一个基本数据类型都提供了封装类型(包装类型),Integer就是int的封装类,int的默认值为0,Integer的默认值为null,所以Integer可以区分出来赋值未赋值与0的区别。

5.能否在不进行强制转换的情况下将一个 double 值赋值给 long 类型的变量?

不行,我们不能在没有强制类型转换的前提下将一个 double 值赋值给 long 类型的变量,因为 double 类型的范围比 long 类型更广,所以必须要进行强制转换。(只能小转大,大转小要强转)

6.java 中 3*0.1 == 0.3 将会返回什么?true 还是 false?

false,因为浮点数不能完全精确的表示出来,一般都会损失精度。

7.java 中 float f = 3.4; 是否正确?

不正确,3.4 是双精度数,将双精度型(double)赋值给浮点型(float)属于向下转型(down-casting,也称为窄化)会造成精度损失,需要强制类型转换 float f = (float)3.4; 或者写成 float f = 3.4F才可以

8.下面Integer类型的数值比较输出的结果为?

public static void main(String[] args) {
    Integer n1 =100,n2 =100,n3 =150,n4 =150;
    System.out.println(n1 == n2);
    System.out.println(n3 == n4);
}

第一个是true,第二个是false,原因是-128~127之间不会new新的对象,参见源码:

    private static class IntegerCache {
        static final int low = -128;
        static final int high;
        static final Integer cache[];

        static {
            // high value may be configured by property
            int h = 127;
            String integerCacheHighPropValue =
                sun.misc.VM.getSavedProperty("java.lang.Integer.IntegerCache.high");
            if (integerCacheHighPropValue != null) {
                try {
                    int i = parseInt(integerCacheHighPropValue);
                    i = Math.max(i, 127);
                    // Maximum array size is Integer.MAX_VALUE
                    h = Math.min(i, Integer.MAX_VALUE - (-low) -1);
                } catch( NumberFormatException nfe) {
                    // If the property cannot be parsed into an int, ignore it.
                }
            }
            high = h;

            cache = new Integer[(high - low) + 1];
            int j = low;
            for(int k = 0; k < cache.length; k++)
                cache[k] = new Integer(j++);

            // range [-128, 127] must be interned (JLS7 5.1.7)
            assert IntegerCache.high >= 127;
        }

        private IntegerCache() {}
    }

9.Math.round(11.5) 等于多少?Math.round(-11.5)等于多少?

Math.round(11.5)的返回值是12,Math.round(-11.5)的返回值是-11。四舍五入的原理是在参数上加0.5然后进行下取整。

10.用最有效率的方法计算2乘以8?

2 << 3(左移3位相当于乘以2的3次方,右移3位相当于除以2的3次方)

11.&和&&的区别?

&按位与;&&逻辑与。&&运算符进行短路与运算。&和&&二者都要求运算符左右两端的布尔值都是true整个表达式的值才是true。&&之所以称为短路运算是因为如果&&左边的表达式的值是false,右边的表达式会被直接短路掉,不会进行运算。很多时候我们可能都需要用&&而不是&,例如在验证用户登录时判定用户名不是null而且不是空字符串,应当写为:password != null &&!password.equals(“”),二者的顺序不能交换,更不能用&运算符,因为第一个条件如果不成立,根本不能进行字符串的equals比较,否则会产生NullPointerException异常。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Java程序员面试经常问到的30道基础题

    这篇文章主要介绍了Java程序员面试经常问到的30道基础题,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-12-17
  • 我掏空了各大搜索引擎,给你整理了154道Java面试题

    这篇文章主要介绍了我掏空了各大搜索引擎,给你整理了154道Java面试题,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-12-12
  • 华为java社招面试题目、参考答案及全部流程详解

    这篇文章主要介绍了华为java社招面试题目、参考答案及全部流程,讲述了参加华为java社招面试的全部流程、遇到的面试题目、参考答案以及相关的注意事项,需要的朋友可以参考下
    2019-10-22
  • 百度java后台实习生招聘面试题集锦

    这篇文章主要介绍了百度java后台实习生招聘面试题,整理总结了百度java后台招聘过程中一面、二面与三面所遇到的各种问题,涉及Java相关概念、原理及算法等,需要的朋友可以参
    2019-09-27
  • Java多线程与并发面试题(小结)

    这篇文章主要介绍了Java多线程与并发面试题(小结),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-09-26
  • 9月最新184道阿里、百度、腾讯、头条Java面试题合集(小结)

    这篇文章主要介绍了9月最新184道阿里、百度、腾讯、头条Java面试题合集,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-09-09
  • 字节跳动java研发面试题整理(含答案)

    这篇文章主要介绍了字节跳动java研发面试题整理,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-08-29
  • 银行java开发笔试面试题13道(含答案)

    这篇文章主要介绍了银行java开发笔试面试题13道,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-08-27
  • 15个Java线程并发面试题和答案

    这篇文章主要介绍了15个Java线程并发面试题和答案,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-08-27
  • 10个最难回答的Java面试题(推荐)

    这篇文章主要介绍了10个最难回答的Java面试题,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-08-07

最新评论