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. Python数据类型-dic,set常见操作

    字典常见方法   语法:字典名[新key]=value 功能:给字典增加键值 语法:字典名[字典里存在的key]=新的value 功能:修改字典里的值   功能:删除字典的元素,通过key来进行删除, ...

  2. 工作小记[csv文件、admin中filed与list_display区别、ModuleNotFoundError: No module named'xxx'、django创建admin用户]

    CSV-Comma Separated Values,CSV文件可以直接用Excel表格打开,如果用文本打开属性之间用逗号隔开,Python有直接操作CSV文件的函数. fileds字段控制“修改添加 ...

  3. C#经典算法实践,回顾往生,更是致敬《算法导论》

    该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/666 访问. 概述 本系列博文将会向大家介绍本人在钻研<算法导论 ...

  4. C#算法设计排序篇之02-快速排序(附带动画演示程序)

    快速排序(Quick Sort) 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/677 访问. 快速排序由C. A. R ...

  5. LeetCode 392. Is Subsequence 详解

    题目详情 给定字符串 s 和 t ,判断 s 是否为 t 的子序列. 你可以认为 s 和 t 中仅包含英文小写字母.字符串 t 可能会很长(长度 ~= 500,000),而 s 是个短字符串(长度 & ...

  6. 为创建Golang GUI程序选择合适的库

    我认为在Go语言中创建GUI只有两种相对较好的方式,一是Qt,二则是Electron. 如何选择? 这要看你的需求.如果你会HTML+CSS+JavaScript,只想使用Go开发对性能没有多高的程序 ...

  7. 导出Excel文件(项目中会遇到很多将一些数据导出Excel或者et)

    最近在项目中,遇到一些需求,就是将数据导出来,以Excel文件为主:就自己简单的做一些demo:供初学者来学习: // 定义一个保存文件的路径位置 SaveFileDialog dlgPath = n ...

  8. 学长小清新题表之UOJ 180.实验室外的攻防战

    学长小清新题表之UOJ 180.实验室外的攻防战 题目描述 时针指向午夜十二点,约定的日子--\(2\)月\(28\)日终于到来了.随着一声枪响,伏特跳蚤国王率领着他的跳蚤大军们包围了 \(picks ...

  9. python的一些使用体会

    python刚开始接触,因为刚好有点需求,所以写了点小程序,一点点体会. 优点: 1. os.rename()方法不错,c#就没有这个方法 2.字符串的slice操作不错,取substring有时比较 ...

  10. 笔记:HTTP协议基础

    一.HTTP协议特点: 简单快速,请求方式有get.post.head 等8种 无连接无状态 支持模式有 B/S(浏览器) C/S(通过websocket去通信) URL,统一资源定位符,在网络中用来 ...