专栏首页技术从心java经典题解?

java经典题解?

1.不可变对象

指对象一旦被创建状态不能再改变。任何修改都会创建一个新的对象,如 String、Integer及其它包装类。

2.能否创建一个包含可变对象的不可变对象?

可以。不要共享可变对象的引用就可以了,如果需要变化就返回原对象的一个拷贝。最常见的例子是对象中包含一个日期对象的引用.

3.java 创建对象的方式

采用new 通过反射 采用clone 通过序列化机制

前2者都需要显式地调用构造方法. 造成耦合性最高的恰好是第一种,因此你发现无论什么框架,只要涉及到解耦必先减少new的使用.

4.switch中能否使用string做参数

在idk 1.7之前,switch只能支持byte,short,char,int或者其对应的封装类以及Enum类型。从idk 1.7之后switch开始支持String.

5.Object中有哪些公共方法?

equals() clone() getClass() notify(),notifyAll(),wait()

6. object中定义了哪些方法?

clone(), equals(), hashCode(), toString(), notify(), notifyAll(), wait(), finalize(), getClass()

7. HashMap和HashTable的区别

HashTable是线程安全的HashMap不是

HashMap中允许存在null键和null值,HashTable中不允许

8. HashMap的实现原理

HashMap的底层实现是“基于拉链法的散列表”。

9.String 是最基本的数据类型吗?

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

10.float f=3.4;是否正确?

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

11.Java有没有goto?

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

12.http1.0,http1.1,http2.0区别

1.0相比1.1可以一次传输多个文件,各类浏览器大概都支持3~5个请求同时发送。

http2.0主要是二进制的格式替代了原来的文本,增加了多路复用和首部压缩解决了head of line blocking,另外还有server pushing等新特性。

协议的东西还是建议看一看官网的说明。

13.Get/Post对缓存的影响

此题其实是问浏览器缓存对于HTTP Method中Get和Post的请求是否支持,答案是不支持Post Method。Get可以被浏览器缓存。

14.多态的好处

允许不同类对象对同一消息做出响应,主要优点:

可替换性:多态对已存在代码具有可替换性; 可扩充性:增加新的子类不影响已经存在的类结构; 接口性:多态是超累通过方法签名,想子类提供一个公共接口,由子类来完善或者重写它来实现的; 灵活性; 简化性。

15.代码中如何实现多态

接口实现 继承父类重写方法 同一类中进行方法重载

16.虚拟机是如何实现多态的

动态绑定技术(dynamic binding),执行期间判断所引用对象的实际类型,根据实际类型调用对应的方法.

17.接口的意义

接口的意义用三个词就可以概括:规范,扩展,回调.

18.抽象类的意义

为其他子类提供一个公共的类型

封装子类中重复定义的内容

定义抽象方法,子类虽然有不同的实现,但是定义时一致的

19.父类的静态方法能否被子类重写

不能。子类继承父类后,有相同的静态方法和非静态,这是非静态方法覆盖父类中的方法,父类的该静态方法被隐藏,另外子类可集成父类的静态与非静态方法,至于方法重载我觉得它其中一要素就是在同一类中,不能说父类中的什么方法与子类里的什么方法是方法重载的体现。

好看、转发和辣条会提升颜值哦~

关注我

每天进步一点点

万水千山总是情,点个 “在看” 行不行

本文分享自微信公众号 - 技术从心(gh_d845efe513db)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-04-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Delphi xe10对json的解析应用

    {"code":100,"state":"true","data":["hero","npc","pet"]}

    战神伽罗
  • Web安全学习笔记(六):JavaScript基础

    这两天都没整理笔记,原因多半在于我不知道该怎么整理关于编程语言的笔记,这方面薄弱。所以想了想,决定就将一些基本的整理进来,这其中不包括语法的使用...

    7089bAt@PowerLi
  • Spring入门这一篇就够了

    前面我们在写程序的时候,都是面向接口编程,通过DaoFactroy等方法来实现松耦合

    乔戈里
  • 如何排查Java内存泄漏?看完我给跪了!

    没有经验的程序员经常认为Java的自动垃圾回收完全使他们免于担心内存管理。这是一个常见的误解:虽然垃圾收集器做得很好,但即使是最好的程序员也完全有可能成为严重...

    乱敲代码
  • 精心整理了15道面试官喜欢问的MyBatis面试题

    答:MyBatis 的缓存分为一级缓存和二级缓存,一级缓存放在 session 里面,默认就有,二级缓

    程序员追风
  • Java开发最常犯的10个错误,打死都不要犯!

    原文:http://www.programcreek.com/2014/05/top-10-mistakes-java-developers-make/

    zhisheng
  • 聊聊consul的NewService

    consul-api-1.4.1-sources.jar!/com/ecwid/consul/v1/agent/model/NewService.java

    codecraft
  • 觉得Java性能调优很复杂吗,那是你不了解这11个实用技巧

    大多数开发人员理所当然地以为性能优化很复杂,需要大量的经验和知识。好吧,不能说这是完全错误的。优化应用程序以获得最佳性能不是一件容易的事情。但是,这并不意味着如...

    Java周某人
  • 2019年Java架构师必读书籍

    动力节点Java培训最新上线Java实验班,等你来测试自己适不适合学习Java编程哦!

    动力节点Java学院
  • Handler:Android 消息机制,我有必要再讲一次!

    我们在日常开发中,总是不可避免的会用到 Handler,虽说 Handler 机制并不等同于 Android 的消息机制,但 Handler 的消息机制在 An...

    Android架构

扫码关注云+社区

领取腾讯云代金券