栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java 面试

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java 面试

static 关键字

静态变量:属于类,随类存储在方法区,而不随对象存储在堆区,在访问静态变量的时候,建议是通过类名来访问(所以又叫作类变量);
静态方法:属于类
静态块:类加载的时候调用;
静态内部类:不能访问外部类的实例成员,只能访问外部类的静态成员,外部类的所有都可以访问静态内部类。

泛型

泛型的本质是参数化类型,Java 中的泛型是一种伪泛型,基于类型擦除来实现的。比如 字符串数组和整数数组,在 JVM 中二者通过 getClass 的到的是相等的。
List 类型通配符
List 泛型必须是 T 的父类
List 泛型必须是 T 的子类

多线程的创建方法

创建多线程的方法:继承 Thread 类并重写 run 方法;实现 runnable 接口,并且通过该实现 runnable 接口的对象来构造 thread 的对象,然后启动 thread;实现 Callable 接口

多线程的常用方法 静态方法

sleep():休眠;currentThread():当前正在执行的线程;interrupted() 是否被中断;yield() 放弃处理器;

实例方法

getId, getName
interrupt: 使线程中断;join 等待线程终止;setPriority 设置优先级

线程同步

同步方法,synchronized 锁住整个方法;同步代码块,不必要同步住整个方法,仅仅把关键部分锁住即可;volatile 关键字:volatile 关键字并不能保证原子性,只能保证每次使用的值,都是最新的,但是在使用的过程中,仍然有可能被抢夺 CPU,所以说,volatile 关键字只能保证可见性,并不能保证操作的原子性;原子变量

多线程通信

wait(): 释放对象锁,并进入阻塞; notify():唤醒一个正在等待对象锁的线程; notifiall():唤醒所有正在等待对象锁的线程;阻塞队列 & 就绪队列

sleep 和 wait 的区别

sleep 静态方法,wait 成员方法;sleep 不会释放锁,wait 会释放锁;

线程按顺序执行

Join 方法,join方法是Thread类中的一个方法,该方法的定义是等待该线程执行直到终止。其实就说join方法将挂起调用线程的执行,直到被调用的对象完成它的执行

线程阻塞的方法

sleep 主动放弃处理器资源,进入阻塞状态;
获取锁失败,会进入阻塞状态;
等待 notify 时候,也会阻塞;
suspend 挂起的时候,也会阻塞

乐观锁与悲观锁

悲观锁:假设最坏的情况,每次都加锁,通过 synchronized 关键字或者 Lock 接口实现;
乐观锁:拿的时候不会上锁,但是在更新的时候会检查一下别人有没有修改,这种比较适用于多读的场景;

锁升级

无锁、偏向锁、重量级锁、轻量级锁

进程间通信的方式

共享内存、管道、socket、信号量

进程状态

创建、就绪、执行、阻塞、终止

死锁的产生条件

互斥、不剥夺、请求和保持、循环等待

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/999520.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号