1、自定义注解

@target

说明了Annotation所修饰的对象范围: constructor、method、field、package、type等等。

@retention

定义了该Annotation被保留的时间长短, source(源文件保留)、class( class保留)、runtime(运行时有效)。

@inherited

某个被标记的类型是被继承的。一个类标记了带有@inherited的注解,那么他的子类也拥有这个注解。

@document

被修饰的注解会生成到javadoc中。

2、内部类

  • 内部类分为:成员内部类,匿名内部类,静态内部类,局部内部类。
  • 除了静态内部类,其他的内部类不能拥有静态变量或静态方法,因为内部类属于外部类的一个成员变量,先加载外部类在加载内部类。

    原因:

    1. 静态变量在类加载的时候需要将符号引用替换为直接引用而此时还没有内部类的对象。
    2. 内部类无法在没有外部类的实例下直接使用。
2.1、为什么静态内部类可以拥有静态常量

因为静态常量是在编译时期就确定的值,会存入类的常量池,而访问常量池中的常量是不需要加载类的。

2.2、内部类的使用场景
  1. 达到一个多重继承的效果
  2. 访问控制,只能通过外部类调用

3、自动拆箱装箱

  1. 基本类型和引用类型之间的转换。
  2. 集合类只接受对象。
  3. 注意包装类的缓存值,Float和Double值没有缓存值,Integer和Long缓存值为-128~127超过之后会自动转换成对象。两个包装类型进行比较时需要用equals。

4、String为什么是final,StringBuilder与StringBuffer的区别

  1. String定义成final类型表示不能被继承,确保不会在子类中改变语义。

    每次对string对象的改变相当于重新生成了一个新的string对象。经常改变的字符串不建议使用String。
  2. StringBuffer是线程安全的, StringBuilder是非线程安全的。

5、transient

  1. 被标记的成员变量不参与序列化过程。
  2. 只能修饰成员变量,不能修饰类和方法。

6、如何进行序列化

  1. 实现Serializable接口。
  2. 序列化使用输出流进行writeObject。
  3. 反序列化使用输入流进行readObject。

7、如何实现对象克隆

  1. 实现Cloneable接口,并重写clone方法。
  2. 也可通过序列化方式进行深拷贝
  3. 一般实际使用过程中我们只需要拷贝对象的属性,通常使用BeanUtils.copy()

    这种拷贝都是浅拷贝
  4. 几种拷贝对象的性能

    cglib>Spring>apache, 一般不建议使用apache的因为对象转换会出错,Spring的date类型转换也可能会出错。

8、异常

8.1、Error

系统级别的错误,程序不必处理。出了错误之后只能退出运行。

8.2、Exception
  1. 需要进行捕捉或者程序处理的异常。
  2. Exception分为运行时异常和受检异常

    RuntimeException包括:空指针异常,数组下标越界,classNotFound,类型转换异常等等。

    受检异常指:编译器要求方法必须声明抛出可能发生的受检异常。

9、Object中的finalize方法

如果类中重写了finalize方法,当该类对象被回收时,finalize方法有可能会被触发。

面试【JAVA基础】其他的更多相关文章

  1. 细节!重点!易错点!--面试java基础篇(二)

    今天来给大家分享一下java的重点易错点第二部分,也是各位同学面试需要准备的,欢迎大家交流指正. 1.字符串创建与存储机制:当创建一个字符串时,首先会在常量池中查找是否已经有相同的字符串被定义,其判断 ...

  2. 细节!重点!易错点!--面试java基础篇(一)

    今天来给大家分享一下java的重点易错点部分,也是各位同学面试需要准备的,欢迎大家交流指正. 1.java中的main方法是静态方法,即方法中的代码是存储在静态存储区的. 2.任何静态代码块都会在ma ...

  3. 面试----java基础集合---------------------comparable和comparator 的区别

    comparable接口     是主要是用来自定义类存储在主要是TreeSet,TreeMap(键)集合中存储时,自定通过实现这种接口得到自然排序的功能. comparator 接口  是主要是用来 ...

  4. JAVA面试精选【Java基础第一部分】

    这个系列面试题主要目的是帮助你拿轻松到offer,同时还能开个好价钱.只要能够搞明白这个系列的绝大多数题目,在面试过程中,你就能轻轻松松的把面试官给忽悠了.对于那些正打算找工作JAVA软件开发工作的童 ...

  5. Android开发面试经——3.常见Java基础笔试题

      Android开发(29)  版权声明:本文为寻梦-finddreams原创文章,请关注:http://blog.csdn.net/finddreams 关注finddreams博客:http:/ ...

  6. 【Java面试】基础知识篇

    [Java面试]基础知识篇 Java基础知识总结,主要包括数据类型,string类,集合,线程,时间,正则,流,jdk5--8各个版本的新特性,等等.不足的地方,欢迎大家补充.源码分享见个人公告.Ja ...

  7. 金三银四跳槽季,BAT美团滴滴java面试大纲(带答案版)之一:Java基础篇

    Java基础篇: 题记:本系列文章,会尽量模拟面试现场对话情景, 用口语而非书面语 ,采用问答形式来展现.另外每一个问题都附上“延伸”,这部分内容是帮助小伙伴们更深的理解一些底层细节的补充,在面试中可 ...

  8. java基础&&高薪面试

    董鹏老师 ,多年经验总结出 [高薪就业必备]之java基础面试题[更新中]:     第01篇       学习Java基础的目的?       第02天       java语言中有没有gotoke ...

  9. 一份最贴近真实面试的Java基础面试题

    这是一份Java基础知识的面试题.在网上的关于Java的面试题数不胜数,但认真看过感觉大多数都没有实用性,有很多是面试官根本就不会问到的,那些已经脱离了实际开发的技术问题.而这份资料来源自一份个人觉得 ...

  10. JAVA基础总结【面试】

    前言 近间陆续面试了不少的求职的前(JAVA).后(WEB)端开发人员,包括实习生.应届毕业生.一两年工作经验的.也有三四年工作经验的,也算见过了比较多的开发人员,想在这里做个总结,本次主要讲一讲面试 ...

随机推荐

  1. jQuery 多库共存

    多库共存 问题概述         jQuery使用$作为标识符,随着jQuery的流行,其他js的库也会用$作为标识符,这样就会引起冲突         需要一个解决方案 让jQuery和其他的JS ...

  2. java标识符、关键字、基本数据类型

    一 标识符与关键字 1.标识符 在程序中用于定义名称的都为标识符,如文件名称.类名称.方法名称或变量名称等, 在Java中标识符的定义格式由字母.数字._(下划线),$所组成,不能以数字开头, 不能是 ...

  3. 2020-07-10:sql如何调优?

    福哥答案2020-07-10:此答案来自群成员: SQL提高查询效率的几点建议 1.如果要用子查询,那就用EXISTS替代IN.用NOT EXISTS替代NOT IN.因为EXISTS引入的子查询只是 ...

  4. C#LeetCode刷题-字典树

    字典树篇 # 题名 刷题 通过率 难度 208 实现 Trie (前缀树)   48.6% 中等 211 添加与搜索单词 - 数据结构设计   39.9% 中等 212 单词搜索 II   27.9% ...

  5. C#设计模式之7-桥接模式

    桥接模式(Bridge Pattern) 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/401 访问. 桥接模式属于结构 ...

  6. Css 设置超过再两行显示省略号

    大部分场景都是超过一行就显示... <template> <div class="other-product-item item-name" :title=&qu ...

  7. 利用遗传算法求解TSP问题

    转载地址 https://blog.csdn.net/greedystar/article/details/80343841 目录 一.问题描述 二.算法描述 三.求解说明 四.参考资料 五.源代码 ...

  8. Django context must be a dict ranther than Context

    1.1 错误描述 TypeError at /time/ context must be a dict rather than Context. Request Method: GET Request ...

  9. Elasticsearch聚合语句

    聚合的范围是search query过滤出的数据 四种聚合类型: 一.Bucketing 桶聚合,常规的分类然后计算每个分类的文档数量 二.Metric 分类并对一组文档进行sum.avg等数学运算 ...

  10. Spring Boot系列(一):Spring Boot快速开始

    一.Spring Boot介绍 Spring Boot可以很容易的创建可直接运行的独立的基于Spring的应用程序. 功能特点: 创建独立的Spring应用程序: 直接嵌入Tomcat.Jetty等W ...