hashcode的作用,方法的作用

Java后台开发面试应该如何准备?

hashcode的作用,方法的作用


Java开发基本上都是进行后端(服务端)开发,根据方向不同开发的侧重点还是有所区别,所以准备面试之前需要对工作方向有一个大致的了解,这样才能有针对性的进行准备 。Java开发很大一部分是从事Web后端开发,做Web后端开发需要准备的内容比较多,大致分为以下几个部分:Java Web开发的基本组件,包括Servlet、JSP、JavaBean,同时要了解Web容器(服务器)的功能细节:清楚Web应用程序的生命周期管理以及请求处理流程:MVC框架的功能划分,包括每个部分的实现技术描述:清楚每个组成部分的具体代码流程,比如控制端的操作流程细节:接收用户请求——验证用户数据——功能判断——创建业务对象——功能调用——封装对象——跳转到视图端:Java操作数据库,了解JDBC的基础类:了解基本的JDBC开发流程(驱动加载、数据源定义、连接创建、容器创建、执行Sql、关闭资源):了解DAO的应用(对象定义、接口定义、实现类定义、工厂类定义)、数据库连接池的应用等 。
Java常见开发模式,包括工厂模式、观察设计模式、单例模式等等,掌握Java开发的常见模式对初级程序员来说是很重要的,Java中定义了23个模式,这些经典模式能让初级程序员构建出稳定的应用 。消息中间件的概念及使用,比如JMS的使用 。JMS是Java中一个重要的概念,通过JMS能够创建Java的消息中间件:分布式开发的概念及使用,比如RMI的使用:RMI包含三个大的组成部分:接口的定义、服务类的定义以及客户类的定义,每一个部分都有固定的细节需要掌握(细节可以参考我之前在头条上写的关于RMI的文章) 。
开源框架的使用,比如SpringMVC 。目前在服务端使用SpringMVC进行开发是很多程序员的选择,所以掌握SpringMVC是很有必要的 。EJB的概念,比如会话Bean、实体Bean、消息驱动Bean的概念及应用(选看):这部分内容能了解更好,不了解也没有太大影响 。Java除了做Web后端开发还可以做大数据以及android app的开发,如果从事大数据开发需要对算法有深入细致的了解,比如常见的KNN算法、决策树、朴素贝叶斯、回归等 。
不同时重写equals和hashCode又会怎样?
hashcode的作用,方法的作用


如果问到 == 和 equals 的区别,相信很多程序员同学都能脱口而出:一个是判断地址,一个是判断内容 。但是如果继续追问:“你重写过 equals 么?”,“重写 equals 方法的时候,必须重写 hashCode 方法么?”,“不同时重写equals和hashCode又会怎样?”你还能信心满满地回答上来么?== 与 equals1. ==如果比较的是两个基本数据类型,那么 == 比较的是值;如果是两个非基本数据类型的对象,那就是判断它们的内存地址是不是相同;2. equals如果类没有覆盖 equals 方法,那么 equals 等价于 == ;如果覆盖了 equals 方法,那么就需要根据 equals 方法的逻辑来判断两个对象是否相等 。
让我们看看 String 中的 equals 方法是什么样的:我们可以看到 String 的比较,是先比较内存地址,如果两个字符串指向的地址不一样,那么再比较两个字符串的值 。正确使用 equals 方法我们在使用 equals 方法的时候,容易发生空指针异常,所以在使用前需要判断对象是否为 null,或者用常量来调用 equals:另外大家也可以使用 java.util.Objects 中的 equals 方法:从这个方法的源码中可以看出,方法已经帮我们考虑到控制值的问题了,所以可以放心使用 。

推荐阅读