目录

  • 每日十题
  • 广而告之

每日十题

提示:好多小伙伴反映,直接看到答案不太好,那我把答案的颜色设置为透明,答案位置还是在题目后面,需要鼠标选中才能看见(操作如下图),同时为了手机端的小伙伴(手机端也可以长按选中查看),我还会把所有答案放到文章最下面,希望给每天进步一点点的小伙伴更好的体验。

补充:小伙伴又提建议了,说把样例图放成其它期的,这样就不会暴露第一题的答案了,绝对的细节!

每天进步一点点!

1、在JAVA中, 下列标识符合法的是()
正确答案:C
A 3kyou
B @163
C name
D while

题解:
合法标识符:三不能
1.不能以数字开头
2.不能是关键字
3.不能包含除了$和_以外的其他字符

2、Web客户端的编程语言JavaScript源自Java,其功能是Java SE的子集。
正确答案:B
A 对
B 错

题解:
1、雷锋(java)和雷锋塔(javascript)。雷锋塔(javascript)不是雷锋(java)的。
2、 几和几把的关系,有个几把关系

3、关于类的叙述正确的是()。
正确答案:B
A 在类中定义的变量称为类的成员变量,在别的类中可以直接使用
B 局部变量的作用范围仅仅在定义它的方法内,或者是在定义它的控制流块中
C 使用别的类的方法仅仅需要引用方法的名字即可
D 只要没有定义不带参数的构造函数,JVM都会为类生成一个默认构造函数

题解:
1、 答案:B A,类是一个封装,类的成员只能在类内部使用,外部需要 “对象名.变量名” 来引用。 B,正确,局部变量只在定义它的代码块或者函数内部可见 C,跟类的成员变量一样,需要指定对象才能引用 D,如果类没有构造方法,JVM会生成一个默认构造方法,如果定义了任意类型的构造方法,编译器都不会自动生成构造方法。
2、 d感觉是个文字游戏。反过来想,类只定义了无参构造方法,jvm当然不会为它生成默认的构造方法。

4、设int x=1,float y=2,则表达式x/y的值是:()
正确答案:D
A 0
B 1
C 2
D 以上都不是

题解:
1、本题的意义在于两点,明白这两点之后题会不会本身就不重要了:①float x = 1;与float x = 1.0f,这两种对于float类型的变量来说定义的方式都是正确的,也是比较常见的笔试题里面考察类型转换的例子,当第一种情况时,是将低精度int向上转型到float,是由于java的特性导致而不需要进行强制转换,而第二种情况则是比较正式的对于float变量的定义,由于这种类型本身在工作项目中并不常见,常用的带小数的数字我们一般都直接使用double类型,而double类型直接定义是没有问题的:double x = 1.0。而由于float的精度没有double类型高,因此必须对其进行显示的格式书写,如果没有这个f,就默认是double类型了。当然double x = 1.0d也是正确的命名,不信你可以尝试,虽然这是一个令人窒息的操作。②当多个精度的数字同时进行运算时,最终结果以最高精度为准。在多数情况下,整数和小数的各级混合运算中,一般结果都是double类型的。但就本题而言,结果是float类型的,因为x,y两个数字精度最高的就是float,所以最终结果是0.5,并且这个0.5是float类型的。为什么说不是double类型呢,当然如果你这样处理:double m = x/y,当然m是double类型的,也不会报错,而如果你写成int m = x/y,编译器报错提示的时候就会让你转换成float或者进行强制转换成int,他是不会提示你转换成double的,尽管这么写并没有报错,原因就是① 中所说的向上强转。float转换成double不需要任何提示。
2、 正解:0.5 x/y= (float)1.0/(float)2.0=0.5 (float类型的)
3、 不同基本数据类型转化与运算byte-short-int-long-float-double,float=1转化为float=1.0
4、int/float相比先转化为同一类型即float(1.0)/float(2.0)=0.5

5、执行下面的程序段,语句3的执行次数为() for (i=0; i<=n-1; i++) (1) for (j=n; j>i; j–) (2) state; (3)
正确答案:C
A n(n+2)/2
B (n-1)(n+2)/2
C n(n+1)/2
D (n-1)(n+2)

题解:
1、 选c,外循环有n次,当i=0
2、内循环为n次
3、当i=1
4、内循环为n-1次
5、当i=2时,内循环为n-2次,以此类推,总次数为n+(n-1)+(n-2)+…+2+1
6、就是个等差数列,等于n(n+1)/2。

6、指出下列程序运行的结果: public class Example{
String str=new String(“tarena”);
charch={‘a’,‘b’,‘c’};
public static void main(String args){
Example ex=new Example();
ex.change(ex.str,ex.ch);
System.out.print(ex.str+" and ");
System.out.print(ex.ch);
}
public void change(String str,char ch){
//引用类型变量,传递的是地址,属于引用传递。
str=“test ok”;
ch0=‘g’;
}
}
正确答案:B
A tarena and abc
B tarena and gbc
C test ok and abc
D test ok and gbc

题解:
1、string和char数组都是引用类型,引用类型是传地址的,会影响原变量的值,但是string是特殊引用类型,为什么呢?因为string类型的值是不可变的,为了考虑一些内存,安全等综合原因,把它设置成不可变的; 不可变是怎么实现的?Java在内存中专门为string开辟了一个字符串常量池,用来锁定数据不被篡改,所以题目中函数中的str变量和原来的str已经不是一个东西了,它是一个局部引用,指向一个testok的字符串,随着函数结束,它也就什么都没了,但是char数组是会改变原值的
2、 其实前面有几个答案说的已经很清楚了,足够我们理解这一道题。有一些东西可能还不是很清楚,导致这种题容易发生混乱。记住几点就可以了:1.为什么string字符串的值是不可变的?当我们new一个字符串,给它赋值之后,那么当前对象的值就固定了,永远不会改变。比如String str=new String(“test”),那么str的值就是test,这是因为在String源码当中是用char数组来按顺序存储字符串中的每一个字符的,并且这个char数组是用final修饰的,这意味着一旦我们给字符串赋值之后,这个对象的值就永远不会改变。2.可是当我们在一个类当中的某个方法里面,给这个对象str赋值了一个新的字符串,它这时候的值是多少呢?比如这时str=“good”,str的值就是good,(你可以在这个方法里面写输出语句,输出这个引用,就知道怎么回事了)可不是说引用的值不可以改变么?这里改变的不是引用的值,而是引用str指向的常量不一样了而已,而这个引用的生命周期和当前方法的一样的,也就是方法结束,引用被杀死,也结束了,那么它刚才指向good的这个引用,就结束了,所以在这个方法结束之后,再输出引用str的值,自然就是引用str之前指向的值了,也就是test。
3、 以下几点如有误请大家指正: 1.java中只有值传递。 2.方法exchange接收的参数是引用的副本。即都是地址的复制值。

7、关于final说法正确的是? ( )
正确答案:B
A final类的方法肯定不能被同一个包的类访问
B final类的方法能否被同一个包的类访问不是由final决定
C final方法等同于private方法
D final对象本身的引用和值都不能改变

题解:
1、final变量,如果是基本数据类型,则其数值一旦初始化后就不能被改变。如果是引用类型的变量,则对其初始化后,便不能再指向另一个对象,但是其里面的值是可以改变的。引用变量所指向的对象中的内容是可以改变的。
2、 final 修饰符 final 变量: final 变量能被显式地初始化并且只能初始化一次。被声明为 final 的对象的引用不能指向不同的对象。但是 final 对象里的数据可以被改变。也就是说 final 对象的引用不能改变,但是里面的值可以改变。 final 修饰符通常和 static 修饰符一起使用来创建类常量。 final 方法 类中的 final 方法可以被子类继承,但是不能被子类修改。 声明 final 方法的主要目的是防止该方法的内容被修改。 如下所示,使用 final 修饰符声明方法。 final 类 final 类不能被继承,没有类能够继承 final 类的任何特性。
3、 能不能被一个包访问是和访问控制符有关系

8、下列哪种异常是检查型异常,需要在编写程序时声明?
正确答案:C
A NullPointerException
B ClassCastException
C FileNotFoundException
D IndexOutOfBoundsException

题解:
1、 1. 粉红色的是受检查的异常(checked exceptions)
2、其必须被 try{}catch语句块所捕获
3、或者在方法签名里通过throws子句声明.受检查的异常必须在编译时被捕捉处理
4、命名为 Checked Exception 是因为Java编译器要进行检查
5、Java虚拟机也要进行检查
6、以确保这个规则得到遵守. 2. 绿色的异常是运行时异常(runtime exceptions)
7、需要程序员自己分析代码决定是否捕获和处理
8、比如 空指针
9、被0除… 3. 而声明为Error的,则属于严重错误,如系统崩溃、虚拟机错误、动态链接失败等,这些错误无法恢复或者不可能捕捉,将导致应用程序中断,Error不需要捕捉。
:、 Java异常类层次结构图: 通常,Java的异常(包括Exception和Error)分为 可查的异常(checked exceptions)和不可查的异常(unchecked exceptions) 。 可查异常(编译器要求必须处置的异常): 正确的程序在运行中,很容易出现的、情理可容的异常状况 。 可查异常虽然是异常状况,但在一定程度上它的发生是可以预计的,而且一旦发生这种异常 状况,就必须采取某种方式进行处理。 除了RuntimeException及其子类以外,其他的Exception类及其子类都属于可查异常。这种异常的特点是Java编译器会检查它,也就是说,当程序中可能出现这类异常,要么用try-catch语句捕获它,要么用throws子句声明抛出它,否则编译不会通过。 不可查异常(编译器不要求强制处置的异常):包括运行时异常(RuntimeException与其子类)和错误(Error)。

9、在类Tester中定义方法如下, public double max(int x, int y) { // 省略 } 则在该类中定义如下哪个方法头是对上述方法的重载(Overload)?
正确答案:B
A public int max(int a
B int b) {}
C public int max(double a
D double b) {}
E public double max(int x
F int y) {}
G private double max(int a
H int b) {}

题解:
1、重载就是一句话:同名不同参,返回值无关。 覆盖/重写:同名同参
2、 Java 重载的规则: 1、必须具有不同的参数列表; 2、可以有不同的返回类型,只要参数列表不同就可以; 3、可以有不同的访问修饰符; 4、可以抛出不同的异常; 5、方法能够在一个类中或者在一个子类中被重载。 方法的重写: 1、在子类中可以根据需要对从基类中继承来的方法进行重写。 2、重写的方法和被重写的方法必须具有相同方法名称、参数列表和返回类型。 3、重写方法不能使用比被重写的方法更严格的访问权限。
3、 重载:OverLoad 1 同一个类中,方法名相同,参数列表不同的2个或多个方法构成方法的重载 2 参数列表不同指参数的类型,参数的个数,参数的顺序至少一项不同 3 方法的返回值类型,方法的修饰符可以不同。 重写:Override 1.父类中被final修饰的方法不能被重写 2.子类的重写方法不能比父类的被重写方法有更严格的访问级别,但可以更广泛。也就是 子类覆盖方法的访问权限必须大于等于 父类被重写方法的访问权限 3.方法名必须一样 4.参数列表必须一样。 5.返回值类型必须一样 6.重写方法不能抛出新的异常或者比被重写方法声明的检查异常更广的检查异常。但是可以抛出更少,更有限或者不抛出异常。 7.如果一个方法不能被继承,则不能重写它。最典型的例子为,被覆盖的方法不能为private,否则在其子类中只是新定义了一个方法,并没有对其进行覆盖。 8.如果想调用父类被覆盖的方法,用super关键字调用

10、运行代码,结果正确的是: Boolean flag = false;
if(flag = true){
System.out.println(“true”);
}else{
System.out.println(“false”);
}
正确答案:B
A 编译错误
B true
C false
D 什么也没有输出

题解:
1、输出的明明是true,而不是TRUE啊
2、 Java里只有boolean类型可以作为判断条件,其他类型必须通过操作反回boolean值
3、这里本来就是boolean类型,可以充当判断条件。 个人理解,有误的请指出。
4、 if(flag = true)的时候flag已经是true了,所以输出true; 要是为if(flag == true)输出才为false

答案汇总:
1、正确答案:C
2、正确答案:B
3、正确答案:B
4、正确答案:D
5、正确答案:C
6、正确答案:B
7、正确答案:B
8、正确答案:C
9、正确答案:B
10、正确答案:B

以上部分题解来自牛客评论区,感谢评论区大佬的解释。

每天进步一点点!
不进则退!

版权声明:
原创博主:牛哄哄的柯南
博主原文链接:https://keafmd.blog.csdn.net/

广而告之

我收集了一些技术大牛整理出来的干货,覆盖面非常广泛,点击文章最下方的微信公众号或柯南主页左下角关注,发送【干货】获取!!!

看完如果对你有帮助,感谢点击下面的一键三连支持!
[哈哈][抱拳]


加油!

共同努力!

Keafmd

日常Java练习题(每天进步一点点系列)【含资料】相关推荐

  1. 日常Java练习题(每天进步一点点系列)【含通知】

    提示:好多小伙伴反映,直接看到答案不太好,那我把答案的颜色设置为透明,答案位置还是在题目后面,需要鼠标选中才能看见(操作如下图),同时为了手机端的小伙伴(手机端也可以长按选中查看),我还会把所有答案放 ...

  2. 日常JAVA基础面试题集8(含答案)

    第8章:日常JAVA基础面试题集(含答案) 往期文章  第一章:日常_JAVA_面试题集1(含答案)  第二章:日常_JAVA_面试题集2(含答案)  第三章:日常_JAVA_面试题集3(含答案)   ...

  3. 日常计算机网络基础练习题(每天进步一点点系列)

    提示:好多小伙伴反映,直接看到答案不太好,那我把答案的颜色设置为透明,答案位置还是在题目后面,需要鼠标选中才能看见(操作如下图),同时为了手机端的小伙伴(手机端也可以长按选中查看),我还会把所有答案放 ...

  4. 【每日进步一点点系列】十道精选Java习题

    ⭐️引言⭐️ 大家好,我是执梗.Java的学习非一朝一夕可以成功,需要我们水滴穿石般的坚持.每日进步一点点系列,旨在可以每天只花几分钟就能学到Java中我们可能忽略的知识,同时也可以检验自己的Java ...

  5. java transferto_小六六学Netty系列之Java 零拷贝

    前言 文本已收录至我的GitHub仓库,欢迎Star:https://github.com/bin392328206/six-finger种一棵树最好的时间是十年前,其次是现在 我知道很多人不玩qq了 ...

  6. Java并发包源码学习系列:同步组件CountDownLatch源码解析

    文章目录 CountDownLatch概述 使用案例与基本思路 类图与基本结构 void await() boolean await(long timeout, TimeUnit unit) void ...

  7. 2016计算机二级java_2016计算机二级JAVA练习题及答案

    2016计算机二级JAVA练习题及答案 21.下列选项中,不能输出100个整数的.是( ). A.for(int i=0;i<100;i++) System.out.println(i); B. ...

  8. 程序猿的日常——Java基础之equals与hashCode

    equals和hashCode是我们日常开发最常使用的方法,但是因为一般都使用默认的规则,因此也很少会引起关注.不过了解他们的用途和设计的原则,还是会帮助我们更好的设计代码. equals equal ...

  9. 20199计算机二级java答案_计算机二级Java练习题-2019.9

    是不是急于做大量的计算机等级考试题库,却因测试结果不尽人意而心慌不安?不要急!考无忧小编为大家准备了一些二级Java练习题,希望能帮助大家高效复习,轻松通关! 1.下列叙述中正确的是(). A.栈是& ...

最新文章

  1. trie树上值域化建主席树 查询异或平移最小值 ---- P3293 [SCOI2016]美味
  2. python自动修图_程序员不会用PS给女朋友修图?没关系,用Python十行代码轻松搞定-站长资讯中心...
  3. Oracle 统计信息(1)
  4. 字符串加括号问题(矩阵乘法组合问题)C++
  5. HDU 4288 Coder [线段树]
  6. jvm性能调优实战 -50修复Metaspace区域内存溢出问题
  7. AOM Summit:拥抱开源,引领新技术创新
  8. 理解快速生成树协议(RSTP)(二)
  9. python 公众号菜单_Python脚本--微信公众号自定义菜单的创建及获取
  10. 吴恩达机器学习:逻辑回归
  11. 一组飒气十足的商务海报PSD分层海报
  12. DeepID1 分析
  13. 计算机存储器的容量单位有哪些,存储器容量单位有哪些,它们之间的关系是什么?...
  14. 推荐几款非常好用且免费的在线绘图工具
  15. 周期信号波形识别及参数测量装置(J 题) 【高职高专组】--2021 年全国大学生电子设计竞赛
  16. Python中对于Json空对象的处理
  17. QT 软键盘实现
  18. 浅谈虚拟机的垃圾回收
  19. 惠普linux系统改装win7,惠普EliteDesk800 G3台式机预装win10改win7教程
  20. 【c++/c】C语言“小小计算器”基本功能实现(包含12个实验一篇足以)【期末大作业】

热门文章

  1. mysql中建立一对多映射_Mybatis中的高级映射一对一、一对多、多对多
  2. Spring Boot SOAP Client – WebServiceTemplate 案例
  3. 《GNU_Make 中文手册》笔记之一
  4. Autosar诊断-DSD(Diagnostic Service Dispatcher)
  5. 从Robotaxi到智慧公交,长沙给智慧交通打了一个样
  6. 战国策--秦兴师临周而求九鼎
  7. 记录自己给自己的代码挖坑
  8. c语言程序设计成绩管理应用书,C语言程序设计学生成绩管理系统实验报告
  9. 菜鸟看的Android应用开发全流程
  10. 面试中 项目遇见的难点答案_盘点产品经理求职面试中“可能”会遇到的十大项目管理问题...