java面试题第二波

1) 什么是线程?
线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位。程序员可以通过它进行多处理器编程。比如,如果一个线程完成一个任务要100毫秒,那么用十个线程完成改任务只需10毫秒。

2) 线程和进程有什么区别?
线程是进程的子集,一个进程可以有很多线程,每条线程并行执行不同的任务。不同的进程使用不同的内存空间,而所有的线程共享一片相同的内存空间。每个线程都拥有单独的栈内存用来存储本地数据。

3) 如何在Java中实现多线程?
1、继承Thread类
2、实现Runnable接口
3、实现Callable接口
4、线程池

4) 用Runnable还是Thread?
Java不支持类的多重继承,但允许你调用多个接口。所以如果你要继承其他类,当然是调用Runnable接口好 了。

6) Thread 类中的start() 和 run() 方法有什么区别?
start()方法被用来启动新创建的线程,而且start()内部 调用了run()方法,这和直接调用run()方法的效果不一样。当你调用run()方法的时候,只会是在原来的线程中调用,没有新的线程启 动,start()方法才会启动新线程。

7) Java中Runnable和Callable有什么不同?
主要区别是Callable的 call() 方法可以返回值和抛出异常,而Runnable的run()方法没有这些功能。Callable可以返回装载有计算结果的Future对象。

8)数组的特点
在内存中,数组是一块连续的区域
数组的长度是确定的。
而集合是在空间不足时自动扩增容量
(1)数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型)
数组与集合转换:使用相应的toArray()和Arrays.asList()方法可以回想转换。
在这里插入图片描述
常用集合的分类:
Collection 接口的接口 对象的集合(单列集合)
├—-List 接口:有序的,可重复的
│—————-├ LinkedList 接口实现类, 链表, 插入删除, 没有同步, 线程不安全
│—————-├ ArrayList 接口实现类, 数组, 随机访问, 没有同步, 线程不安全
│—————-└ Vector 接口实现类 数组, 同步, 线程安全
│ ———————-└ Stack 是Vector类的实现类
└—-Set 接口: 仅接收一次,不可重复,并做内部排序
├—————-└HashSet 使用hash表(数组)存储元素
│————————└ LinkedHashSet 链表维护元素的插入次序
└ —————-TreeSet 底层实现为二叉树,元素排好序

Map 接口 键值对的集合 (双列集合)
├———Hashtable 接口实现类, 同步, 线程安全
├———HashMap 接口实现类 ,没有同步, 线程不安全-
│—————–├ LinkedHashMap 双向链表和哈希表实现
│—————–└ WeakHashMap
├ ——–TreeMap 红黑树对所有的key进行排序
└———IdentifyHashMap

9)你说一下你对spring 的理解
spring是一个开源框架
spring的优点就是让java开发模块化,贯穿了表现层,业务层,持久层。让每一个功能模块可以独立分开,降低耦合,提高代码复用率,并且支持与许多优秀的第三方框架整合。
**AOP:**面向切面编程,将程序中独立于其他功能的方法抽取出来,比如事务,日志,利用动态代理的方式,在不修改源代码的情况下,对方法进行功能的增强。

**IOC:**控制反转,将创建对象的方式由spring来管理,由spring的IOC容器来创建对象,降低组件之间直接依赖的高耦合性,通过被注入的方式实现对象实例化。

9)你说一下你对springboot 的理解
springboot是整合spring整个生态圈的一站式框架
springboot是简化技术栈 快速开发的一个脚手架
主要特点:1.化繁为简,简化配置使用 Spring 项目引导页面可以在几秒构建一个项目。
2.微服务的入门级微框架
Spring Boot 的优点快速开发,特别适合构建微服务系统,另外给我们封装了各种经常使用的套件,比如mybatis、redis等

10)动态代理的两种
JDK动态代理:利用反射机制生成一个实现代理接口的匿名类,在调用具体方法前调用InvokeHandler来处理。
CGlib动态代理:利用ASM(开源的Java字节码编辑库,操作字节码)开源包,将代理对象类的class文件加载进来,通过修改其字节码生成子类来处理。

Aspectj你有没有了解过?
spring框架一般都是基于AspectJ实现AOP操作
什么是AspectJ?
AspevcJ是独立的框架,它不是spring的组成部分,一般把AspevcJ一起使用,进行AOP操作
AOP和动态代理文章详情https://editor.csdn.net/md/?articleId=117394248

我们把创建对象的权力交给spring管理 那它的作用域有哪些?
1.spring中创建对象的三种方式

<!-- 使用无参数构造器 -->
<bean id="person" class="com.boe.Person"><
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值