前言

不论你是职场新人还是步入职场N年的职场新人大哥大当然这个N<3,我能担保你答不对这十个题不要问我为什么这么自信,这些个题还是“有水平”的javase的基础题,传闻小白指定鸭蛋分,一测一个准,哈哈。

作为将来要成为架构师的男人,对,你没看错,就是在说你 皮一下很开森 ,what?你是小白?我顶你个肺,我叫声杠精,你敢应吗,那个代号9527的杠精,说你呢快快来答题,看你能答对几道题。

题一

下面的程序有问题吗?如果有问题说明一下, 如果没有问题猜测一下运行结果

public static void main(String[] args){ short s = 1;s=s+1; System.out.println(s);
}

ps : 各位兄嘚都是大孩子了,各位都把自己的结果记在个小本本上再看下面的分析答案~

分析: s = s + 1 计算结果被提升为int类型,再向short类型赋值时发生错误,因为不能将取值范围 大的类型赋值到取值范围小的类型,所以这个程序会报错编译失败。

题二

下面的程序有问题吗?如果有问题说明一下, 如果没有问题猜测一下运行结果

public static void main(String[] args){ short s = 1;s+=1; System.out.println(s);
}

ps : 各位兄嘚都是大孩子了,各位都把自己的结果记在个小本本上再看下面的分析答案~

分析: s += 1 逻辑上看作是 s = s + 1 计算结果被提升为int类型,再向short类型赋值时发生错误,因为不能将取值范围 大的类型赋值到取值范围小的类型。但是, s=s+1进行两次运算 , += 是一个运算符,只运算一次,并带有强制转换的特点, 也就是说 s += 1 就是 s = (short)(s + 1) ,因此程序没有问题编译通过,运行结果是2.

到这里,两个都错了的自觉点给楼主文章右上角点个赞,鸭!恭喜获得第N+1个准确无疑的天真小白荣誉勋章,千万别嫌弃,就像侠岚风语咒里说的:只要心怀正义,侠岚无处不在!所以我只想表达的是,天真小白荣誉勋章也是勋章。hhhhhh, 哎哎哎,别打…别打…别打脸.

题三

下面的程序有问题吗?如果有问题说明一下, 如果没有问题猜测一下运行结果

public static void main(String[] args){ byte b1=1; byte b2=2; byte b3=1 + 2; byte b4=b2 + b3; System.out.println(b3); System.out.println(b4);
}

ps : 各位兄嘚都是大孩子了,各位都把自己的结果记在个小本本上再看下面的分析答案~

分析: b3 = 1 + 2 , 1 和 2 是常量,为固定不变的数据,在编译的时候(编译器javac),已经确定了 1+2 的结果并没 有超过byte类型的取值范围,可以赋值给变量 b3 ,因此 b3=1 + 2 是正确的。 反之, b4 = b2 + b3 , b2 和 b3 是变量,变量的值是可能变化的,在编译的时候,编译器javac不确定b2+b3的结果是什 么,因此会将结果以int类型进行处理,所以int类型不能赋值给byte类型,因此编译失败。

题四

下面的程序有问题吗?如果有问题说明一下, 如果没有问题猜测一下运行结果

public static void main(String[] args){ short s = 32767;s = (short)(s + 10);System.out.println(s);
}

ps : 各位兄嘚都是大孩子了,各位都把自己的结果记在个小本本上再看下面的分析答案~

分析:定义s为short范围内最大值 (2^15) - 1 = 32767,运算后,强制转换(int换为short),砍掉2个字节后会出现不确定的结果,因为这个值以及超出了short类型数据的范围,从而变成负数结果-32759

到这里,四个题都错了的自觉点给楼主文章右上角点个赞,还有小白同学千万别灰心,想当年楼主刚学java的时候,在腾讯课堂听课直播的是时候,那个老师出的就是这些类型题,我一直答错,那个老师提了楼主我好几次:这位小白同学又是你,你又答错了…不提了,往事不堪回首。所以,小白同学千万别灰心哦~

题五

下面的程序有问题吗?如果有问题说明一下, 如果没有问题猜测一下运行结果

 public static void main(String[] args) {int a=0;for (int i = 0; i >= a && i<100 ; i++){a+=i;}System.out.println(a);}

ps : 各位兄嘚都是大孩子了,各位都把自己的结果记在个小本本上再看下面的分析答案~

分析:这个稍微没有任何细节以及“套路”,只是单纯的掺杂着些逻辑,所以段个点debug吧,感受一下吧,结果是6

题六

下面的程序有问题吗?如果有问题说明一下, 如果没有问题猜测一下运行结果

 public static void main(String[] args) {int  x=4;System.out.println("value  is  " + ((x>4) ? 99.9 : 9));}

分析:这个题我估计99%的会错 包括我自己 ,如果我没猜错的话你的结果是9,啥?你的结果是99.9,额这个,如果这位同学你不是杠精那我建议你回家种田吧,我和你一起,你锄地我耕田…呃呃呃那结果是什么呢,结果居然是9.0 。。。至于原因我还是不断定的哈哈没有仔细去专研过,如果必须要个结果我估计java把9这个整数默认当成浮点类型数据,我当然只是推论,那么知道的大佬就请评论出来吧。

题七

下面的程序有问题吗?如果有问题说明一下, 如果没有问题猜测一下运行结果

 public static void main(String[] args) {//对于下面两句代码是否编译出错,很基础的哦double d=3.10;float f=3.10;
//对于下面两句代码是否编译出错,以及打印结果是多少float a = 12345678.90123456789f;double b=0.12345678901234567890;float c=0.12345678901234567890f;System.out.println(a);System.out.println(b);System.out.println(c);}

ps : 各位兄嘚都是大孩子了,各位都把自己的结果记在个小本本上再看下面的分析答案~

分析:3.10是浮点型,浮点型字面值默认当做double类型来处理,直接编译通过;如果是float类型则必须加 F或者f,若没加,直接编译不通过,会报错“损失精度”,至于解决方法也很简单, 第一种方式:强制类型转换float f1=(float)3.10; 第二种方式:没有类型转换直接加F或者f如 folat f2=3.10f ;对于abc的打印结果a = 1.2345679E7b = 0.12345678901234568c = 0.12345679

如果还不懂java浮点类型float以及double,可以参考这篇文章

什么是浮点型?什么是单精度浮点数(float)以及双精度浮点数(double)?

题八

分析下列程序代码,猜想下输出结果。

 public static void main(String[] args) { int a = 1; int b = 2; System.out.println(a); System.out.println(b); change(a, b); System.out.println(a); System.out.println(b); }public static void change(int a, int b) { a = a + b; b = b + a; }

分析下列程序代码,猜想下输出结果。

public static void main(String[] args) { int[] arr = {1,3,5}; System.out.println(arr[0]); change(arr); System.out.println(arr[0]);
}public static void change(int[] arr) {arr[0] = 200; }

这个题就不分析了,主要是考察数组的,答错的童靴可能对数组了解的不是特别清析,可以参考这篇文章 java数组定义、使用、以及数组内存分析详解

题九

运行结果是怎样的呢?

  public static void main(String[] args) {int i = 1, j = ++i;System.out.println(i);System.out.println(j);}

分析:估计各位会觉得i=1,j=2,噗哈哈,你还太单纯了,啥?你的答案是i=1,j=1?回家种田吧兄嘚我陪你。那么结果是什么呢?i=2,j=2,原因也很简单,i其实是个变量,j也是个变量,之前i值是1,之后j经历了++i,就这个经历的同时,i已经自增++了,所以也是2.

到这里,九个题错了一半以上的同学自觉点给楼主文章右上角点个赞,千万别灰心,就像侠岚风语咒里说的:只要心怀正义,侠岚无处不在!所以还要继续加油哇!向架构师道路冲鸭!!!

题十

这个题主要考察多态知识,涉及到向上转型和向下转型的概念,所以是比较偏难的!

package Polymorphic;
//爷爷类
class Ye {public String show(Sun obj) {return ("Ye and Sun");}public String show(Ye obj) {return ("Ye and Ye");}}
//爸爸类
class Fu extends Ye {public String show(Fu obj) {return ("Fu and Fu");}public String show(Ye obj) {return ("Fu and Ye");}
}
//儿子类
class Zi extends Fu {}
//孙子类
class Sun extends Fu {}public class PolymorphicTest {public static void main(String[] args) {Ye y = new Ye();Ye y2 = new Fu(); //向上Fu f = new Fu();Zi z = new Zi();Sun s = new Sun();System.out.println("第一题 " + y.show(f));System.out.println("第二题 " + y.show(z));System.out.println("第三题 " + y.show(s));System.out.println("第四题 " + y2.show(f));  //到这里挂了???System.out.println("第五题 " + y2.show(z));System.out.println("第六题 " + y2.show(s));System.out.println("第七题 " + f.show(f));System.out.println("第八题 " + f.show(z));System.out.println("第九题 " + f.show(s));}
}

运行结果

第一题 Ye and Ye
第二题 Ye and Ye
第三题 Ye and Sun
第四题 Fu and Ye
第五题 Fu and Ye
第六题 Ye and Sun
第七题 Fu and Fu
第八题 Fu and Fu
第九题 Ye and Sun

分析的话就涉及到太多知识点了,比如多态的金典向上向下转型,这都是必备的重点基础的基础,建议参考这篇文章【蓝色字体,点击进入】

【java基础之多态】理解多态的向上向下转型从“妈妈我想吃烤山药”讲起

到这里有木有全部正确的大哥大捏,如果有,我代表全体鸭蛋分的小白膜拜下大佬~

最后,已每题一分计算,你得多少分?勇敢说出来,尽管笑死楼主

程序员你确定这十个题你都会吗?相关推荐

  1. 程序员非常实用的十个工具网站,值得收藏

    原文链接: 程序员非常实用的十个工具网站,值得收藏 一.regex101 网站地址: https://regex101.com/ 强大的正则表达式工具,你可以实时查看匹配信息,并且会用不同的颜色将 G ...

  2. 读《卓有成效的程序员》-----我的一些题内和题外的感想

    读<卓有成效的程序员>-----我的一些题内和题外的感想 本文出自:http://hi.baidu.com/xiaonan33309/blog/item/c708c901a50d940b7 ...

  3. 程序员面试题精选100题

    程序员面试题精选100题(01)-把二元查找树转变成排序的双向链表 题目:输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表.要求不能创建任何新的结点,只调整指针的指向. 比如将二元查找树   ...

  4. [程序员面试题精选100题]13.第一个只出现一次的字符

    [题目] 在一个字符串中找到第一个只出现一次的字符.如输入abaccdeff,则输出b. [分析] [代码] /********************************* * 日期:2013- ...

  5. 程序员面试题精选100题(51)-顺时针打印矩阵

    // 程序员面试题精选100题(51)-顺时针打印矩阵.cpp : 定义控制台应用程序的入口点. //#include "stdafx.h" #include <iostre ...

  6. 程序员面试题精选100题:求从1到n的正数中1出现的次数

    // 程序员面试题精选100题(25):求从1到n的正数中1出现的次数 // 如 f(253) = (2!=0) * 100 + 2 * f(99) + (5!=0) * 10 + 5 * f(9) ...

  7. 程序员面试题精选100题:41-50解题报告

    程序员面试题精选100题(41)-把数组排成最小的数[算法]   题目:输入一个正整数数组,将它们连接起来排成一个数,输出能排出的所有数字中最小的一个.例如输入数组{32,  321},则输出这两个能 ...

  8. 程序员面试题精选100题:11-40解题报告

    程序员面试题精选100题(11)-求二元查找树的镜像[数据结构]   题目:输入一颗二元查找树,将该树转换为它的镜像,即在转换后的二元查找树中,左子树的结点都大于右子树的结点.用递归和循环两种方法完成 ...

  9. 程序员面试题精选100题(51)-顺时针打印矩阵[算法]

    题目:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字. 例如:如果输入如下矩阵: 1              2              3              4 5     ...

最新文章

  1. 打开阿兹海默之门:华裔张复伦利用RNN成功解码脑电波,合成语音 | Nature
  2. 虫趣:BAD POOL CALLER (par1: 0x20)
  3. jenkins 下载插件 一直失败_Jenkins 配置国内插件更新源
  4. RHEAS 显示、输入中文
  5. 《噬血代码》:一款轻度的魂Like游戏
  6. 多个输出用java怎么写_请问用java写程序怎么输出这两个图形
  7. nRFgo Studio 和 Nrfjprog 无法找到JLinkARM.dll的解决方法
  8. 烽火戏诸侯于计算机相关联系,烽火戏诸侯的成语典故
  9. PMP 第十章 项目沟通管理
  10. 等比数列求和python_python计算等差数列
  11. [PHPCMS]精美大气自适应资源模板下载网站源码
  12. 基本遗传算法(GA)的算法原理、步骤、及Matlab实现
  13. 【OFDM通信】基于块状导频的信道估计算法仿真含Matlab源码
  14. photoshop多选文字_60多个Photoshop文字效果教程
  15. 罗技推出可蓝牙连接的5.1环绕立体声扬声器
  16. tkintertools 模块实战一:任务清单小工具
  17. OpenBMC环境搭建及测试
  18. 曲奇的ndnSIM API教程翻译 命名数据网络 NDN ndn simulator
  19. 【系统架构师】软件架构设计——2需求与质量属性
  20. 极客时间计算机组成原理学习笔记

热门文章

  1. :-1: error: dependent ‘..\camera3d\qss\main.qss‘ does not exist.
  2. 程序员如何保持学习成长?
  3. 王道考研计算机网络第五章——传输层
  4. iphone剪卡遭遇
  5. 妙赞大讲糖:糖尿病患者的手术时机如何选
  6. 阿里云安装nexus详细步骤
  7. Python---第6天:数据处理的瑞士军刀pandas下篇
  8. python多线程解决数据安全问题
  9. java找不到java.dll(两种情况)
  10. 对比语法错误、语义错误以及运行时错误