
Java
文章平均质量分 86
丙子先生
这个作者很懒,什么都没留下…
展开
-
基础 | Java的四大基本特性
秋招面试时经常被问到 「Java有哪些基本特性?面向对象的特征有哪些?谈谈对Java中多态的理解?在项目中哪些地方用到过多态?」,这个问题还是比较基础的,但基础问题不见得每个人都能回答的很好,最重要的还是要足够理解并准确表达。建议重点关注Java中「多态性」的相关问题。Java有哪些基本特性?等价于,面向对象的特征有哪些?抽象:将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行...原创 2018-10-31 18:35:21 · 1421 阅读 · 0 评论 -
基础 | Java的反射与动态代理
关于「反射」请参看Class类详解(反射)部分。动态代理作为Java反射的主要应用之一,其在多种JavaEE框架中均有使用,如Spring框架中AOP的实现原理就是动态代理,面试中提到AOP也必定会问 「谈谈对动态代理的理解?」 相关问题,在此做一个梳理与总结。谈谈对动态代理的理解?动态代理作为设计模式中动态代理模式的一部分,其和静态代理构成鲜明对比。下面分别对代理模式、静态代理和动态代...原创 2018-11-01 10:43:18 · 1376 阅读 · 0 评论 -
基础 | String、StringBuffer与StringBuilder
String类作为Java中的常用类,是各大公司面试时非常喜欢问到的地方,主要是String类够基础,但基础中又会延伸出很多相关技术点,比如final关键字、Java内存分配、Java虚拟机、线程安全等。今天就主要分析一下 「String、StringBuffer和StringBuilder类以及三者之间的联系与区别」,需要重点关注,如有问题也可留言交流。你了解String类吗?问题分析...原创 2018-11-01 10:45:00 · 183 阅读 · 0 评论 -
基础 | Exception与Error
关于Java中异常处理部分,面试时经常会被问到 「Exception与Error有什么区别?」,建议重点关注。Exception与Error有什么区别?问题分析:既然问到两者的区别,说明两者是有必然联系的,故简单从两者的联系说起,重点突出两者的区别,最后可选择性的介绍Exception的体系结构。参考答案:联系:Exception和Error都继承于Throwable类,在Java中只...原创 2018-11-01 10:46:39 · 247 阅读 · 0 评论 -
基础 | final、finally与finalize
Java中的final关键字、异常处理中的finally代码块和Object类中的finalize()方法都是比较基础且重要的部分,面试时也经常被问到「final、finally与finalize的区别」,务必重点关注。谈谈final、finally与finalize的区别?参考答案:关键字final表示「最终的」,可用来修饰类、属性和方法.修饰类:表示该类不能被继承,以提高程序的安...原创 2018-11-01 10:49:22 · 183 阅读 · 0 评论 -
基础 | Java序列化与反序列化的底层实现
在深拷贝与浅拷贝中,提到可以采用「序列化与反序列化」的方式来实现深拷贝,今天主要来填一下序列化的坑。其中,序列化是一种对象持久化的手段,普遍应用于网络传输和远程方法调用(RMI)等场景中,建议关注。什么是Java序列化和反序列化?参考答案:在Java中,序列化是指将Java对象转换为字节序列的过程,而反序列化是指将字节序列转换为Java对象的过程。其中,字节序列即是二进制数据,可以方便...原创 2018-11-01 10:57:08 · 2587 阅读 · 0 评论 -
基础 | Java中四种引用的区别
在JDK 1.2之前,Java中的引用定义为:如果引用类型的数据中存储的数值代表的是另一块内存的起始地址,则这块内存即代表着一个引用。故在该定义下,一个Java对象仅有被应用和未被引用两种状态。在JDK 1.2之后,Java对引用的概念进行了扩充,将引用分为强引用、软引用、弱引用和虚引用。这四种引用与Java虚拟机的垃圾回收机制紧密关联,建议重点关注。Java中四种引用有什么区别?参考答...原创 2018-11-02 08:57:20 · 941 阅读 · 0 评论 -
基础 | BIO、NIO与AIO
Java中的IO部分比较复杂,具体可参看书籍《Java NIO》和《Netty权威指南》。在此,仅对BIO、NIO和AIO进行概述性梳理,未涉及到具体实现细节,后续有空将深入展开。同步IO和异步IO参考答案:IO操作主要分为两个步骤,即发起IO请求和实际IO操作,同步IO与异步IO的区别就在于第二个步骤是否阻塞。若实际IO操作阻塞请求进程,即请求进程需要等待或者轮询查看IO操作是否就绪...原创 2018-11-02 08:57:37 · 7025 阅读 · 0 评论 -
基础 | Java8新特性之Lambda表达式
Lambda表达式是Java8所引入的新特性之一,其基于函数式接口,以极大地减少代码冗余,并提高代码的可读性。Lambda表达式的基本语法参考答案:Java8中引入箭头操作符(也叫Lambda操作符)将Lambda表达式拆分成左右两部分:左侧:指定Lambda表达式的参数列表;右侧:指定Lambda表达式所要执行的功能,即Lambda体。// 1).无参数,无返回值Runna...原创 2018-11-03 10:00:10 · 2137 阅读 · 0 评论 -
基础 | 36个经典面试题,来测一测您的Java基础
到此为止,「Java基础」系列的面试点已更新完毕,但关于Java IO和Java8新特性部分的内容还停留在概述阶段,不够系统和深入,后续有机会再深入学习和更新。在此,主要将Java基础系列以面试题的形式进行汇总,用做面试前的准备与自测提纲。公众号后台回复关键字:Java基础,获取完整版Java基础系列文章,可用作面试前的系统准备和复习。Java基础面试自测提纲面向对象的特征有哪些?...原创 2018-11-05 09:59:48 · 1122 阅读 · 1 评论 -
基础 | Java的深拷贝与浅拷贝
Object类中的clone()方法定义如下: /** * 仅对本包下的所有类和当前类的子类可见。 * 只有实现Cloneable接口的类的对象才能调用该方法,否则会抛出异常 */protected native Object clone() throws CloneNotSupportedException;该方法本质上是一种对对象的「浅拷贝」,那么 「浅拷贝与深拷贝分别是...原创 2018-11-01 10:09:34 · 632 阅读 · 0 评论 -
基础 | Class类详解
Object类中的getClass()方法即返回一个Class类型的实例,那么 「Class类到底是什么?从何而来?又有什么作用呢?」参考答案Class类是什么?先来简单了解一下Java虚拟机中类的加载过程:「加载」阶段是「类加载」过程的第一个阶段,虚拟机需要完成以下三件事情:通过一个类的全限定名来获取定义此类的二进制字节流(.class文件即保存着类的二进制数据)。将该字节流所...原创 2018-11-01 10:07:11 · 803 阅读 · 0 评论 -
基础 | 重写hashCode方法
参加美团秋招面试时,被问到 「如何重写hashCode方法?重写hashCode()方法需要注意什么?」,在此做一个系统的总结与梳理,同时也填一下之前埋下的坑,哈哈。参考答案为什么要重写hashCode()方法?Object类中hashCode()方法默认是将对象的存储地址进行映射,并返回一个整形值作为哈希码。若重写equals()方法,使其比较两个对象的内容,并保留hashCode(...原创 2018-11-01 09:25:17 · 896 阅读 · 2 评论 -
基础 | Java的四大访问修饰符
「Java中四大访问修饰符」 的相关问题在面试的时候很少被问到,但还是需要足够理解。相信大家对public、private和默认的修饰符都比较了解,用的也比较多,但你真的了解protected修饰符吗?建议重点关注Java中 「protected权限修饰符」 的相关问题。Java中四大访问修饰符Java中的访问控制主要分四种级别,如下表:修饰符当前类同包子类其他包...原创 2018-10-31 18:37:05 · 816 阅读 · 0 评论 -
基础 | 基本数据类型与引用数据类型
Java数据类型应该算是最基础的了,面试时问到的也不是特别多,在此也仅做一个简单的梳理,大家简单浏览即可。建议重点关注Java中 「基本数据类型转换」 的相关问题。Java有哪些基本数据类型?Java中的基本数据类型只有8个:byte(1字节)、short(2字节)、int(4字节)、long(8字节)、float(4字节)、double(8字节)、char(1字节)、boolean。对...原创 2018-10-31 18:38:41 · 253 阅读 · 0 评论 -
基础 | Java的重写与重载
Java四大基本特性中在介绍「多态性」时,提到过编译时多态和运行时多态。编译时多态是由方法重载来实现的,而运行时多态是由方法重写来实现的。建议重点关注Java中 「重写与重载构成的基本条件」 相关问题。什么是重载和重写?重载发生在一个类中,同名的方法如果有不同的参数列表(参数类型不同、参数个数不同或者二者都不同)则视为重载。重写发生在子类与父类之间,重写要求子类被重写方法与父类被重写方法...原创 2018-10-31 18:40:09 · 250 阅读 · 0 评论 -
基础 | 关键字static
考虑篇幅问题,Java基础系列的「关键字static与final」部分将分两次进行梳理,本次主要总结「static关键字」。面试时也经常被问到「static关键字」的相关问题,如 「谈谈对static关键字的理解?static有哪几种用法?静态内部类与普通内部类有什么区别?Java中变量的初始化顺序是怎样的?」,建议重点关注。谈谈对关键字static的理解?关键字static表示「静态的」...原创 2018-10-31 18:41:55 · 202 阅读 · 0 评论 -
基础 | 关键字final
考虑篇幅问题,Java基础系列的「关键字static与final」部分将分两次进行梳理,本次主要总结「final关键字」。面试时也经常被问到「final关键字」的相关问题,如 「谈谈对final关键字的理解?final修饰的基本类型变量和引用类型变量有什么区别?如何初始化final所修饰的成员变量?」,建议重点关注。谈谈对关键字final的理解?关键字final表示「最终的」,可用来修饰类...原创 2018-10-31 18:44:35 · 230 阅读 · 0 评论 -
基础 | Java的接口与抽象类
在Java中,四大基本特性的「抽象性」是通过两种方式来体现的,包括接口和抽象类。两者看似相同,实则有很多不同之处,面试中也经常会被问到 「谈谈对接口与抽象类的理解?接口与抽象类有什么区别?两者分别在什么场景中使用?」 等问题,在此做一个系统的梳理与总结,建议重点关注。谈谈对接口与抽象类的理解?接口是对行为的抽象,其可以含有属性和方法。属性被隐式指定为public static final...原创 2018-10-31 18:46:51 · 165 阅读 · 0 评论 -
基础 | Java的内部类
「内部类」 在面试时问的并不是很多,但是本人在面试Synopsys时就被问到过,建议还是要重点关注一下。相信大家对于内部类都不陌生,但肯定也会感觉不太熟悉,因为在开发中的应用场景并不是很多,在此主要梳理一下 「谈谈对内部类的理解?在什么场景中使用过内部类?」 相关问题。谈谈对内部类的理解?在Java中,可以将一个类定义在另一个类里面或一个方法内,这样的类即被称为内部类,其框架体系如下:...原创 2018-10-31 18:48:47 · 142 阅读 · 0 评论 -
基础 | Object类详解
「Object类有哪些方法?每个方法分别有什么作用?」 是面试「Java开发工程师」过程中的高频问题,我在参加海康威视和VIVO的秋招面试中均被问到过,在此进行一个系统的总结与梳理。参考答案Object类位于java.lang包下,是Java中所有类的始祖,其包含的方法列表如下:各方法的具体说明如下:Object(): Object类中并没有显式声明该构造方法,其是由编译器自动为其创建...原创 2018-11-01 09:17:45 · 374 阅读 · 0 评论 -
基础 | 重写equals方法
参加VIVO秋招面试中,在回答「Object类有哪些方法?每个方法分别有什么作用?」问题时,提到equals()方法,就又被问到 「在重写equals()方法需要注意什么?」,顿时就一脸懵逼,这也是面试「Java开发工程师」过程中的高频问题,在此进行一个系统的总结与梳理。参考答案为什么要重写equals()方法?Object类中equals()方法的默认实现主要是用于判断两个对象的引用是否...原创 2018-11-01 09:22:13 · 576 阅读 · 0 评论 -
非好学校科班出身的程序员,该如何快速提升自己
作者:hsm_computer 链接:https://www.cnblogs.com/JavaArchitect/p/9854238.html目前一般的大点的公司,往往会在招聘时(尤其在招聘3年以下工作经验的程序员时)会设置学校的门槛,比如需要211或985相关专业毕业。这里我无意贬低不在这个范围的程序员,相反在本文里还将根据我所见和我所闻,为这些同学给出发展的建议。首先我用我的切身体会给...转载 2018-12-02 09:03:23 · 729 阅读 · 0 评论