面试【JAVA基础】其他

1、自定义注解
@target
说明了Annotation所修饰的对象范围: constructor、method、field、package、type等等。
@retention
定义了该Annotation被保留的时间长短, source(源文件保留)、class( class保留)、runtime(运行时有效)。
@inherited
某个被标记的类型是被继承的。一个类标记了带有@inherited的注解,那么他的子类也拥有这个注解。
@document
被修饰的注解会生成到javadoc中。
2、内部类
- 内部类分为:成员内部类,匿名内部类,静态内部类,局部内部类。
- 除了静态内部类,其他的内部类不能拥有静态变量或静态方法,因为内部类属于外部类的一个成员变量,先加载外部类在加载内部类。
原因:- 静态变量在类加载的时候需要将符号引用替换为直接引用而此时还没有内部类的对象。
- 内部类无法在没有外部类的实例下直接使用。
2.1、为什么静态内部类可以拥有静态常量
因为静态常量是在编译时期就确定的值,会存入类的常量池,而访问常量池中的常量是不需要加载类的。
2.2、内部类的使用场景
- 达到一个多重继承的效果
- 访问控制,只能通过外部类调用
3、自动拆箱装箱
- 基本类型和引用类型之间的转换。
- 集合类只接受对象。
- 注意包装类的缓存值,Float和Double值没有缓存值,Integer和Long缓存值为-128~127超过之后会自动转换成对象。两个包装类型进行比较时需要用equals。
4、String为什么是final,StringBuilder与StringBuffer的区别
- String定义成final类型表示不能被继承,确保不会在子类中改变语义。
每次对string对象的改变相当于重新生成了一个新的string对象。经常改变的字符串不建议使用String。 - StringBuffer是线程安全的, StringBuilder是非线程安全的。
5、transient
- 被标记的成员变量不参与序列化过程。
- 只能修饰成员变量,不能修饰类和方法。
6、如何进行序列化
- 实现Serializable接口。
- 序列化使用输出流进行writeObject。
- 反序列化使用输入流进行readObject。
7、如何实现对象克隆
- 实现Cloneable接口,并重写clone方法。
- 也可通过序列化方式进行深拷贝
- 一般实际使用过程中我们只需要拷贝对象的属性,通常使用BeanUtils.copy()
这种拷贝都是浅拷贝 - 几种拷贝对象的性能
cglib>Spring>apache, 一般不建议使用apache的因为对象转换会出错,Spring的date类型转换也可能会出错。
8、异常
8.1、Error
系统级别的错误,程序不必处理。出了错误之后只能退出运行。
8.2、Exception
- 需要进行捕捉或者程序处理的异常。
- Exception分为运行时异常和受检异常
RuntimeException包括:空指针异常,数组下标越界,classNotFound,类型转换异常等等。
受检异常指:编译器要求方法必须声明抛出可能发生的受检异常。
9、Object中的finalize方法
如果类中重写了finalize方法,当该类对象被回收时,finalize方法有可能会被触发。

面试【JAVA基础】其他的更多相关文章
- 细节!重点!易错点!--面试java基础篇(二)
今天来给大家分享一下java的重点易错点第二部分,也是各位同学面试需要准备的,欢迎大家交流指正. 1.字符串创建与存储机制:当创建一个字符串时,首先会在常量池中查找是否已经有相同的字符串被定义,其判断 ...
- 细节!重点!易错点!--面试java基础篇(一)
今天来给大家分享一下java的重点易错点部分,也是各位同学面试需要准备的,欢迎大家交流指正. 1.java中的main方法是静态方法,即方法中的代码是存储在静态存储区的. 2.任何静态代码块都会在ma ...
- 面试----java基础集合---------------------comparable和comparator 的区别
comparable接口 是主要是用来自定义类存储在主要是TreeSet,TreeMap(键)集合中存储时,自定通过实现这种接口得到自然排序的功能. comparator 接口 是主要是用来 ...
- JAVA面试精选【Java基础第一部分】
这个系列面试题主要目的是帮助你拿轻松到offer,同时还能开个好价钱.只要能够搞明白这个系列的绝大多数题目,在面试过程中,你就能轻轻松松的把面试官给忽悠了.对于那些正打算找工作JAVA软件开发工作的童 ...
- Android开发面试经——3.常见Java基础笔试题
Android开发(29) 版权声明:本文为寻梦-finddreams原创文章,请关注:http://blog.csdn.net/finddreams 关注finddreams博客:http:/ ...
- 【Java面试】基础知识篇
[Java面试]基础知识篇 Java基础知识总结,主要包括数据类型,string类,集合,线程,时间,正则,流,jdk5--8各个版本的新特性,等等.不足的地方,欢迎大家补充.源码分享见个人公告.Ja ...
- 金三银四跳槽季,BAT美团滴滴java面试大纲(带答案版)之一:Java基础篇
Java基础篇: 题记:本系列文章,会尽量模拟面试现场对话情景, 用口语而非书面语 ,采用问答形式来展现.另外每一个问题都附上“延伸”,这部分内容是帮助小伙伴们更深的理解一些底层细节的补充,在面试中可 ...
- java基础&&高薪面试
董鹏老师 ,多年经验总结出 [高薪就业必备]之java基础面试题[更新中]: 第01篇 学习Java基础的目的? 第02天 java语言中有没有gotoke ...
- 一份最贴近真实面试的Java基础面试题
这是一份Java基础知识的面试题.在网上的关于Java的面试题数不胜数,但认真看过感觉大多数都没有实用性,有很多是面试官根本就不会问到的,那些已经脱离了实际开发的技术问题.而这份资料来源自一份个人觉得 ...
- JAVA基础总结【面试】
前言 近间陆续面试了不少的求职的前(JAVA).后(WEB)端开发人员,包括实习生.应届毕业生.一两年工作经验的.也有三四年工作经验的,也算见过了比较多的开发人员,想在这里做个总结,本次主要讲一讲面试 ...
随机推荐
- 使用opencv在Qt控件上播放mp4文件
文章目录 简介 核心代码 运行结果 简介 opencv是一个开源计算机视觉库,功能非常多,这里简单介绍一下OpenCV解码播放Mp4文件,并将图像显示到Qt的QLabel上面. 核心代码 头文件 #i ...
- UI自动化填写问卷(selenium)+定时任务(懒人必备)
1.自动填报 UI自动化 selenium 开发程序动机:天天有人催着填写问卷,弄的头大.主要还是懒的每天一个个去填写内容. 开发总时长:2个小时:学习+开发+修改 遇到的小问题: 在自动化填写地图的 ...
- SpringBoot2.x集成Redis (StringTemplate与redisTemplate的用法)
1. Redis介绍Redis数据库是一个完全开源免费的高性能Key-Value数据库.它支持存储的value类型有五种,包括string(字符串).list(链表).set(集合).zset(sor ...
- Docker 快速搭建 MySQL8 开发环境
使用 Docker 快速搭建一个 MySQL8 开发环境 步骤 获取镜像 docker pull mysql:8 启动容器,密码 123456,映射 3306 端口 docker run --name ...
- NoisyStudent:
- Springboot常用的注解
1.@Controller主要用来修饰类,用来处理http请求 2.@ResponseBody主要用来修饰类和方法.返回字符串和json数据,不用来返回模板. 3.@RestController主要用 ...
- Java 字符流
字符编码表:其实就是生活中字符和计算机二进制的对应关系表. 1.ascii: 一个字节中的7位就可以表示.对应的字节都是正数.0-xxxxxxx 2.iso-8859-1:拉丁码表 latin,用了一 ...
- java数组与数组异常
一 数组的定义 1.第一种定义方法: 格式: 数据类型[] 数组名=new 数据类型[数组长度] 2.第二种定义方法: 格式: 类型[] 数组名 = new 类型[]{元素,元素,.....} 3.第 ...
- C#算法设计查找篇之04-斐波那契查找
斐波那契查找(Fibonacci Search) 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/704 访问. 斐波那契 ...
- 03 Arduino-模拟输出与PWM的操作方法
在arduino开发板上面,标注为PWM的管脚的可以被当作数模转换管脚使用 01 模拟输出 analogWrite(pin, value) pin: 选定的引脚号码 value:取值范围 0-25 ...