1、面向对象的特征有哪些方面?

答:面向对象的特征主要有以下几个方面:

1)抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面。抽象只关注对象有哪些属性和行为,并不关注这些行为的细节是什么。

2)继承:继承是从已有类得到继承信息创建新类的过程。提供继承信息的类被称为父类(超类、基类);得到继承信息的类被称为子类(派生类)。继承让变化中的软件系统有了一定的延续性,同时继承也是封装程序中可变因素的重要手段(如果不能理解请阅读阎宏博士的《Java与模式》或《设计模式精解》中关于桥梁模式的部分)。

3)封装:通常认为封装是把数据和操作数据的方法绑定起来,对数据的访问只能通过已定义的接口。面向对象的本质就是将现实世界描绘成一系列完全自治、封闭的对象。我们在类中编写的方法就是对实现细节的一种封装;我们编写一个类就是对数据和数据操作的封装。可以说,封装就是隐藏一切可隐藏的东西,只向外界提供最简单的编程接口(可以想想普通洗衣机和全自动洗衣机的差别,明显全自动洗衣机封装更好因此操作起来更简单;我们现在使用的智能手机也是封装得足够好的,因为几个按键就搞定了所有的事情)。

4)多态性:多态性是指允许不同子类型的对象对同一消息作出不同的响应。简单的说就是用同样的对象引用调用同样的方法但是做了不同的事情。多态性分为编译时的多态性和运行时的多态性。如果将对象的方法视为对象向外界提供的服务,那么运行时的多态性可以解释为:当A系统访问B系统提供的服务时,B系统有多种提供服务的方式,但一切对A系统来说都是透明的(就像电动剃须刀是A系统,它的供电系统是B系统,B系统可以使用电池供电或者用交流电,甚至还有可能是太阳能,A系统只会通过B类对象调用供电的方法,但并不知道供电系统的底层实现是什么,究竟通过何种方式获得了动力)。方法重载(overload)实现的是编译时的多态性(也称为前绑定),而方法重写(override)实现的是运行时的多态性(也称为后绑定)。运行时的多态是面向对象最精髓的东西,要实现多态需要做两件事:1. 方法重写(子类继承父类并重写父类中已有的或抽象的方法);2. 对象造型(用父类型引用引用子类型对象,这样同样的引用调用同样的方法就会根据子类对象的不同而表现出不同的行为)。

2、访问修饰符public,private,protected,以及不写(默认)时的区别?

答:区别如下:

作用域 当前类 同包 子类 其他

public √ √ √ √

protected √ √ √ ×

default √ √ × ×

private √ × × ×

类的成员不写访问修饰时默认为default。默认对于同一个包中的其他类相当于公开(public),对于不是同一个包中的其他类相当于私有(private)。受保护(protected)对子类相当于公开,对不是同一包中的没有父子关系的类相当于私有。

3、String 是最基本的数据类型吗?

答:不是。Java中的基本数据类型只有8个:byte、short、int、long、float、double、char、boolean;除了基本类型(primitive type)和枚举类型(enumeration type),剩下的都是引用类型(reference type)。

4、float f=3.4;是否正确?

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

5、short s1 = 1; s1 = s1 + 1;有错吗?short s1 = 1; s1 += 1;有错吗?

答:对于short s1 = 1; s1 = s1 + 1;由于1是int类型,因此s1+1运算结果也是int 型,需要强制转换类型才能赋值给short型。而short s1 = 1; s1 += 1;可以正确编译,因为s1+= 1;相当于s1 = (short)(s1 + 1);其中有隐含的强制类型转换。

6、Java 有没有goto?

答:goto 是Java中的保留字,在目前版本的Java中没有使用。(根据James Gosling(Java之父)编写的《The Java Programming Language》一书的附录中给出了一个Java关键字列表,其中有goto和const,但是这两个是目前无法使用的关键字,因此有些地方将其称之为保留字,其实保留字这个词应该有更广泛的意义,因为熟悉C语言的程序员都知道,在系统类库中使用过的有特殊意义的单词或单词的组合都被视为保留字)。

7、swtich 是否能作用在byte上,是否能作用在long 上,是否能作用在String上?

答:早期的JDK中,switch(expr)中,expr可以是byte、short、char、int。从1.5版开始,Java中引入了枚举类型(enum),expr也可以是枚举,从JDK 1.7版开始,还可以是字符串(String)。长整型(long)是不可以的。

8、&和&&的区别?

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

补充:如果你熟悉JavaScript,那你可能更能感受到短路运算的强大,想成为JavaScript的高手就先从玩转短路运算开始吧。

9、解释内存中的栈(stack)、堆(heap)和静态存储区的用法。

答:通常我们定义一个基本数据类型的变量,一个对象的引用,还有就是函数调用的现场保存都使用内存中的栈空间;而通过new关键字和构造器创建的对象放在堆空间;程序中的字面量(literal)如直接书写的100、“hello”和常量都是放在静态存储区中。栈空间操作最快但是也很小,通常大量的对象都是放在堆空间,整个内存包括硬盘上的虚拟内存都可以被当成堆空间来使用。

String str = new String(“hello”);

上面的语句中str放在栈上,用new创建出来的字符串对象放在堆上,而“hello”这个字面量放在静态存储区。

补充:较新版本的Java中使用了一项叫“逃逸分析“的技术,可以将一些局部对象放在栈上以提升对象的操作性能。

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

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

2023年java初级面试题10道基础试水题相关推荐

  1. 2023年java初级面试题(5道)

    一.两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对? 答:不对,如果两个对象x和y满足x.equals(y) == true,它们的哈希码(h ...

  2. 华大计算机面试题,华大基因java初级笔试题.docx

    华大基因java初级笔试题 姓名: 电话: PAGE4 / NUMPAGES4 华大基因-Java工程师笔试题基础题目java的基本数据类型有哪些?String是最基本的数据类型吗?Byte shor ...

  3. java初级面试题总结

    博主是今年毕业的,找了一份工作,公司因为经济不景气,技术部裁了一半的人,很不幸的博主就在里面,所以有了这篇博主的面试总结经验.希望能给和博主一样正在找工作的童鞋一点点帮助.周一和同事吃了散伙饭,周二到 ...

  4. 初级java试题_java初级面试题有哪些?java初级面试题分享

    对于学习java专业的人来说,刚毕业或者工作1-2年是很适合做java初级程序员的,但是做程序员要想通过面试,就一定要在平时积累面试题,这样在面试的时候就可以提高胜算,那么今天我们就分享一些java初 ...

  5. 130道基础OJ编程题之: 47 ~ 57 道

    130道基础OJ编程题之: 47 ~ 57 道 文章目录 130道基础OJ编程题之: 47 ~ 57 道 0. 昔日OJ编程题: 47. BC50 计算单位阶跃函数 48. BC51 三角形判断 49 ...

  6. java builder pool_每周10道Java面试题:String, String Pool, StringBuilder

    每周10道 Java 面试题由 ImportNew 整理编译自网络. 1. 写出下面代码的运行结果. int src = 65536; Integer dst = new Integer(65536) ...

  7. (Java实习生)每日10道面试题打卡——Java基础知识篇2

    临近秋招,备战暑期实习,祝大家每天进步亿点点! 本篇总结的是Java基础知识相关的面试题,后续会每日更新~ 1.请你说一下Java中的IO流?以及他们的分类和作用? IO 流的分类: 按照数据流的方向 ...

  8. 在Java中调用Python,java面试题,java初级笔试题

    写在最前面,我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家.扫码加微信好友进[程序员面试学习交流群],免费领取.也欢迎各位一起在群里探讨技术. 写在 ...

  9. JAVA初级面试题300+

    面试题集 基础及语法部分:(共61 题:基础60 道.中等难度1 道) 1.面向对象的特征有哪些方面? [基础] 答:面向对象的特征主要有以下几个方面: 1)抽象:抽象就是忽略一个主题中与当前目标无关 ...

最新文章

  1. 理解VMware Team中的虚拟网络
  2. 手机之家在线签名_选择苹果企业签名的原因有哪些?
  3. 安装Ubuntu 出现 SQUASFS error / sd 8:0:0:0 :[sdb] assuming drive cache:write through
  4. mysql回滚与错误提示_对mysql事务提交、回滚的错误理解 – jae – 博客园
  5. WC2019 自闭记
  6. python爬虫下载模块_python爬虫系列(4.5-使用urllib模块方式下载图片)
  7. java 回收器_Java虚拟机-经典垃圾回收器
  8. 计算机注册表管理,如何打开计算机注册表编辑器
  9. matplotlib 可视化 —— 移动坐标轴(中心位置)
  10. linux 命令:chmod详解
  11. java实现单例模式线程安全
  12. android zlib 和zip,gzip zip 和zlib
  13. office设置保护色
  14. 三边定位算法 matlab,三边测量法的MATLAB定位程序说明.doc
  15. mysql 索引间隙锁_mysql innodb间隙锁示例
  16. big mac sur 免驱显卡_macOS Big Sur 系统原生显卡驱动信息表
  17. matlab kmeans 质心,KMeans_SPD_Matrices
  18. 第一台计算机英语怎么说,世界第一台计算机英文缩写名为
  19. IE8——focus函数不好用
  20. STM32之贪吃蛇游戏

热门文章

  1. ios-bug.html黑屏重启,iPhone大规模爆发黑屏无限重启bug!附解决方法
  2. Hello, Mule!
  3. 【一文学会文件上传】SpringBoot+form表单实现文件上传
  4. 计算机说唱卖苹果是谁,苹果音乐第一张播放量过 10 亿的专辑,来自说唱歌手 Drake...
  5. 闺蜜网社交电商模式解读,闺蜜经济生态创新发展引领时尚潮流
  6. 如何关闭微信运动步数和腾讯新闻
  7. 引导区坏 计算机无法启动,Win7系统磁盘引导区被破坏导致无法正常运行怎么办...
  8. 第一讲——mininet的安装和使用
  9. 再见,我的万元配音设备;你好,耳朵经济先行者“声咖”
  10. 深度学习原理学习小结 - Self-Attention/Transformer