1. short s1 = 1; s1 = s1 + 1;有错吗?short s1 = 1; s1 += 1;有错吗?
对于short s1 = 1; s1 = s1 + 1;由于1是int类型,因此s1+1运算结果也是int 型,需要强制转换类型
而short s1 = 1; s1 += 1;可以正确编译,因为s1+= 1;相当于s1 = (short)(s1 + 1);其中有隐含的强制类型转换
2. &和&&的区别?
&运算符有两种用法:(1)按位与;(2)逻辑与。&&运算符是短路与运算。
逻辑与跟短路与的差别是非常巨大的,虽然二者都要求运算符左右两端的布尔值都是true整个表达式的值才是true。
&&之所以称为短路运算是因为,如果&&左边的表达式的值是false,右边的表达式会被直接短路掉,不会进行运算。
3. swtich 是否能作用在byte上,是否能作用在long上,是否能作用在String上?
switch(expr)中,expr支持byte、short、char、int、enum、string(1.7)
4. 两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对?
答:不对,如果两个对象x和y满足x.equals(y) == true,它们的哈希码(hash code)应当相同。Java对于eqauls方法和hashCode方法是这样规定的:(1)如果两个对象相同(equals方法返回true),那么它们的hashCode值一定要相同;(2)如果两个对象的hashCode相同,它们并不一定相同。
5. 关于equals和hashCode方法,
equals方法必须满足
自反性(x.equals(x)必须返回true)、
对称性(x.equals(y)返回true时,y.equals(x)也必须返回true)、
传递性(x.equals(y)和y.equals(z)都返回true时,x.equals(z)也必须返回true)
一致性(当x和y引用的对象信息没有被修改时,多次调用x.equals(y)应该得到同样的返回值)
6. 重载(Overload)和重写(Override)的区别。重载的方法能否根据返回类型进行区分?
重载:一个类中同一方法参数数量或者类型不同,对返回值无要求
重写:要求子类被重写方法有相同的返回类型、比父类重写的方法更好访问,不能比父类重写方法有更多的异常。
7. 如何实现对象克隆?
1). 实现Cloneable接口并重写Object类中的clone()方法;
2). 实现Serializable接口,通过对象的序列化和反序列化实现克隆,可以实现真正的深度克隆
public static <T> T clone(T obj) throws Exception {
ByteArrayOutputStream bout = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(bout);
oos.writeObject(obj);
ByteArrayInputStream bin = new ByteArrayInputStream(bout.toByteArray());
ObjectInputStream ois = new ObjectInputStream(bin);
return (T) ois.readObject();
}
基于序列化和反序列化实现的克隆不仅仅是深度克隆,更重要的是通过泛型限定,可以检查出要克隆的对象是否支持序列化,这项检查是编译器完成的,不是在运行时抛出异常,这种是方案明显优于使用Object类的clone方法克隆对象。让问题在编译的时候暴露出来总是优于把问题留到运行时。
8. 创建对象时构造器的调用顺序
为对象分配存储空间
开始构造对象
从超类到子类对static成员进行初始化
超类成员变量按顺序初始化,递归调用超类的构造方法
子类成员变量按顺序初始化,子类构造方法调用
9. ArrayList和linkedList
ArrayList基于动态数组实现,查询快、插入删除慢
LinkedList基于链表实现,插入删除快,查询慢
10. hashSet、、LinkedHashSet、TreeSet
hashSet:基于hashMap实现的,无序,不能包含重复元素,非线程安全的
LinkedHashSet:HashSet的子类,使用链表维护元素的次序。有序,非线程安全
TreeSet:使用红黑树结构实现,是sortedSet接口的唯一实现类,可以确保集合内元素处于有序状态
11. HashMap、LinkedHashMap、TreeMap
HashMap:在底层将key-value封装成一个Entry【】进行处理,根据键值的hashcode值存储数据
LinkedHashMap:继承自HashMap,其内部增加了一个链表,用以存放元素的顺序,基于元素的进入顺序排序
TreeMap:实现SortMap接口,能够把它保存的记录根据键排序
12. concurrentHashMap
ConcurrentHashMap在线程安全的基础上提供了更好的写并发能力,但同时大量的利用了volatile,final,CAS等lock-free技术来减少锁竞争对于性能的影响,降低了对读一致性的要求;
Jdk1.7中,concurrenthashMap的核心是分段锁技术,减少锁竞争同时牺牲了对一致性的要求
Jdk1.8中,concurrentHashMap的核心是volatile变量+CAS,比较并交换,乐观锁的实现机制。
分享到:
相关推荐
java面试题整理java面试题整理java面试题整理java面试题整理java面试题整理java面试题整理java面试题整理java面试题整理
在给定文件的内容中,我们可以提取出关于Java面试的多个重要知识点,以下是针对提供的部分内容的详细知识点: 1. Java的“无关性”特性: - Java的宣传口号“Write once, run anywhere”体现了Java的平台无关性,...
为了在Java面试中脱颖而出,了解和掌握常见的面试题及答案至关重要。以下是一些关键知识点的详细解析: 1. **super()与 this()的区别** `super()`用于调用父类的构造器,确保子类实例化时父类的初始化;`this()`则...
Java 面试基础知识整理 本节课主要讲解了 Java 面试基础知识,包括面向对象的特征、访问修饰符的区别、基本数据类型、类型转换等。 一、面向对象的特征 面向对象的特征主要有以下几个方面: * 抽象:抽象是将一...
JAVA面试核心知识点整理 本文档旨在为Java开发者提供一个 hệ thống的面试知识点整理,涵盖了Java的核心概念、JVM的工作原理、Java编程语言的基本语法和高级特性等多方面的知识点。下面是对该文档的详细解读。 ...
Java核心面试知识整理包括了对JVM内存区域、垃圾回收机制、GC算法、JVM类加载机制、Java集合框架以及Java IO/NIO等多个方面的深入讲解。以下是对这些知识点的详细介绍: JVM内存区域:JVM内存区域包括了程序计数器...
Java是目前企业开发中最常用的编程语言之一,Java面试知识点涵盖了Java语言的方方面面,包括Java基础知识、Java高级知识、Java设计模式、Java框架等等。以下是Java核心面试知识点的整理。 一、JVM JVM(Java ...
JAVA面试题整理 JAVA面试时,面试官常问的题目JAVA面试题整理 JAVA面试时,面试官常问的题目
JAVA面试题整理 JAVA面试题整理
Java面试整理(二).ppt
mind整理的Java面试资料,里面包括java基础、OOP、Web基础、数据库、常用的SQL语句、java的开发框架:Struts、Hibernate、Spring和Mybatis等
Dubbo服务框架面试专题及答案整理文档 java筑基面试专题系列(二):并发+Netty+JVM+Linux java筑基面试专题系列(一):Tomcat+Mysql+设计模式 分布式数据库面试专题系列:Redis+MongoDB 分布式通讯面试专题系列:...
发现网上很多Java面试题都没有答案,所以花了很长时间搜集整理出来了这套Java面试题大全,希望对大家有帮助哈~博主已将这些面试题整理到一个网站上,每天更新 Java 面试题,目前有 1万多道 Java 高频面试题。...
这套面试题主要目的是帮助那些还没有java软件开发实际工作经验,而正在努力寻找java软件开发工作的朋友在笔试时更好地赢得笔试和面试。由于这套面试题涉及的范围很泛,很广,很杂,至少需要一个月的时间才能消化和...
总的来说,准备Java面试时,你需要深入理解这些技术的原理、应用场景和最佳实践,结合实际项目经验进行回答,才能在面试中展现出专业水平。通过这份1000+面试题的资源,你可以系统地复习并测试自己的知识深度,提升...
Java经典高级2023面试题大全带答案.pdf 发现网上很多Java面试题都没有答案,所以花了很长时间搜集整理出来了这套Java面试题,0积分直接下载
2020年多家大型互联网公司整理的Java面试题 性能优化面试专栏 1.1、tomcat性能优化整理 1.2、JVM性能优化整理 1.3、Mysq|性能优化整理 二、微服务架构面试专栏 2.1、SpringCloud面试整理 2.2、SpringBoot面试整理 ...
以下是一些关于Java面试题的详细知识点: 1. 异常处理机制:Java的异常处理机制是通过`try-catch-finally`语句块实现的。当程序中发生异常时,JVM会创建一个异常对象并将其抛出。异常分为两种类型:编译时异常(如`...
Java面试题整理集合 在Java领域,面试是评估求职者技术实力的重要环节。这份整理集合涵盖了Java编程语言的基础、进阶、并发、内存管理、框架等多个方面,旨在帮助准备面试的开发者全面了解并掌握Java的核心知识。...
这份"2024 Java面试宝典合集"无疑是准备Java求职面试者的宝贵资源。它涵盖了多个关键领域,包括Spring框架、并发编程、Java核心知识以及面试策略等。下面我们将详细探讨这些知识点。 1. **Spring Boot面试题**:...