2021年Java基础面试题总结
1、事务管理(ACID)
原子性(Atomicity)
原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。
一致性(Consistency)
事务前后数据的完整性必须保持一致。
隔离性(Isolation)
事务的隔离性是多个用户并发访问数据库时,数据库为每一个用户开启的事务,不能被其他事务的操作数据所干扰,多个并发事务之间要相互隔离。
持久性(Durability)
持久性是指一个事务一旦被提交,它对数据库的改变就是永久性的,接下来即时数据库发生故障也不应该对其有任何影响。
2、线程的生命周期包括哪几个阶段?
线程的生命周期包含5个阶段,包括:新建、就绪、运行、阻塞、销毁。
新建:就是刚使用new方法,new出来的线程;
就绪:就是调用的线程的start()方法后,这时候线程处于等待CPU分配资源阶段,谁先抢的CPU资源,谁开始执行;
运行:当就绪的线程被调度并获得CPU资源时,便进入运行状态,run方法定义了线程的操作和功能;
阻塞:在运行状态的时候,可能因为某些原因导致运行状态的线程变成了阻塞状态,比如sleep()、wait()之后线程就处于了阻塞状态,这个时候需要其他机制将处于阻塞状态的线程唤醒,比如调用notify或者notifyAll()方法。唤醒的线程不会立刻执行run方法,它们要再次等待CPU分配资源进入运行状态;
销毁:如果线程正常执行完毕后或线程被提前强制性的终止或出现异常导致结束,那么线程就要被销毁,释放资源;
3、使线程阻塞的方法有哪些?
sleep() 方法、suspend()方法、yield() 方法、wait() 方法、join()方法
suspend e()使线程进入阻塞状态,只有对应的resume e()被调用的时候,线程才会进入可执行状态。(不建议用,容易发生死锁)
yield()的效果等价于调度程序认为该线程已执行了足够的时间从而转到另一个线程。(暂停当前正在执行的线程,并执行其他线程,且让出的时间不可知)
join()也叫线程加入。是当前线程A调用另一个线程B的join()方法,当前线程转A入阻塞状态,直到线程B运行结束,线程A才由阻塞状态转为可执行状态。
4、Java中的有哪些线程池?
1.newCachedThreadPool创建一个可缓存线程池程
2.newFixedThreadPool 创建一个定长线程池
3.newScheduledThreadPool 创建一个周期性执行任务的线程池
4.newSingleThreadExecutor 创建一个单线程化的线程池
newCachedThreadPool:一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。
newFixedThreadPool :创建一个指定工作线程数量的线程池,每当提交一个任务就创建一个工作线程,当线程 处于空闲状态时,它们并不会被回收,除非线程池被关闭了,如果工作线程数量达到线程池初始的最大数,则将提交的任务存入到池队列(没有大小限制)中。
newScheduledThreadPool:它的核心线程数量是固定的,而非核心线程数是没有限制的,并且当非核心线程闲置时会被立即回收,它可安排给定延迟后运行命令或者定期地执行。这类线程池主要用于执行定时任务和具有固定周期的重复任务。
newSingleThreadExecutor :这类线程池内部只有一个核心线程,以无界队列方式来执行该线程,这使得这些任务之间不需要处理线程同步的问题,它确保所有的任务都在同一个线程中按顺序中执行,并且可以在任意给定的时间不会有多个线程是活动的。
5、Java基本数据类型
数值型-整数类型:byte、short、int、long
数值型-浮点类型:float、double
字符型:char
布尔类型:boolean
6、Java包装类
Integer Long Short Byte Character Double Float Boolean BigInterger BigDecmail
7、Java中Object类都有哪些方法?
registerNatives()、getClass()、hashCode()、equals()、clone()、toString()、notify()、notifyAll()、wait(long)、wait(long,int)、wait()、finalize()共十二个方法
8、Java集合ArrayList和LinkedList区别
ArrayList:内存地址连续,所以查询大于增删
LinkedLIst 内存地址不联系 插入时只需要将节点掰开即可,所以增删大于查询
9、Java中JDK1.7和1.8的区别
JDK1.8增加了三大重要特性:
①HashMap结构由:散列表(数组+链表)转换为红黑树
②增加了Lambda表达式
③接口中可以写方法体
10、Linux下常用命令
cd /home 进入home目录
ls 列出当前目录下所有目录
ll 列出当前目录下所有目录
.. 上级目录
cat filename 查看文件的内容
tail -f catalina.out 这个命令用来监控我们后台的日志
tar -cvf 20170630.tar ROOT 备份
tar -xvf 20170630.tar ROOT 解压
unzip test.zip 解压zip包
zip -r test.zip test 压缩test目录
tar -zxvf java.tar.gz 解压gz包
ps -ef| grep java 查看当前的Java进程
kill -9 [端口号] 强制杀掉
11、Linux中看日志带颜色和具体查找
输出文件的后100行中包含关键字的行和该行的前后10行 关键字加上颜色 (其中 前10行是B 后10行是A)
tail -n 100 file.log | grep "关键字" -B10 -A10 --color=auto
2021年Java基础面试题总结相关推荐
- Java基础知识面试题(2021最新版)
转载自:https://thinkwon.blog.csdn.net/article/details/104390612 文章目录 Java概述 何为编程 什么是Java jdk1.5之后的三大版本 ...
- Java基础-面试题精华(2021最新)
Java基础-面试题精华 提示:本人已经成功帮助20多位面试者斩获BAT大厂offer,现在把自己的笔记分享出来,提炼出高频java面试题目,都是干货,觉得有用的话,记得点赞收藏哦,后期会上sprin ...
- Java基础面试题(建议收藏)
个人博客欢迎访问 总结不易,如果对你有帮助,请点赞关注支持一下 微信搜索程序dunk,关注公众号,获取博客源码.数据结构与算法笔记.面试笔试题 序号 内容 1 Java基础面试题 2 JVM面试题 3 ...
- 100道Java基础面试题收集整理(附答案)
不积跬步无以至千里,这里会不断收集和更新Java基础相关的面试题,目前已收集100题. 1.什么是B/S架构?什么是C/S架构 B/S(Browser/Server),浏览器/服务器程序 C/S(Cl ...
- 判断一个java对象中的属性是否都未赋值_100道Java基础面试题(一)
100道Java基础面试题(一)未来大家将步入职场,面试的时候面试官还会问大家一些Java相关的问题.小编整理出100道非常实用的面试题目,可以帮助双体的小伙伴应对面试,我们一起来看看都有哪些吧! 1 ...
- Java继承_30道最常问的Java基础面试题
30道最常问的Java基础面试题 1. 面向对象和面向过程的区别面向过程优点: 性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源;比如单片机.嵌入式开发.Linux/Unix等一般采 ...
- Java 基础面试题,java基础面试笔试题
我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家. 扫描二维码或搜索下图红色VX号,加VX好友,拉你进[程序员面试学习交流群]免费领取.也欢迎各位一起 ...
- Java进阶篇(六)——Swing程序设计(上),java面试题,java基础笔试题,BAT
写在最前面,我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家.扫码加微信好友进[程序员面试学习交流群],免费领取.也欢迎各位一起在群里探讨技术. Sw ...
- 人类高质量Java基础面试题大全,又是一篇三万字的总结!
点击主页访问更多精彩文章:https://blog.csdn.net/weixin_45692705?spm=1001.2101.3001.5343 Java基础面试题目录 共勉 ! Java概述 1 ...
- java基础面试题(九)
java基础面试题(九) SpringBoot/SpringCloud 什么是SpringBoot? 在Spring框架这个大家族中,产生了很多衍生框架,比如Spring.Springmvc框架等,S ...
最新文章
- String.format System.out.printf的用法-简单
- 李开复对谈张亚勤:科学家创业需要企业家伙伴,开放心态看待元宇宙 | MEET2022...
- Java 7在整数中出现的次数
- python switch_从邮箱验证小项目说python字符串判断与if判断那些事儿
- 加法器的verilog实现(串行进位、并联、超前进位、流水线)
- UIControl-IOS开发
- 监控和剖析数据库操作P6Spy,SQL Profiler,SQL 使用简介
- 1971旗舰cpu intel_CPU的历史
- C++结构体作为函数参数传参
- C++/C--字符串分割函数 --strtok()
- 学习pytorch: 数据加载和处理
- Atitit 前端 dom 的艺术 attilax著 目录 1. 概念	1 2. 发展历程	1 2.1. 厂商各自为政	2 2.2. 1.4 制定标准 标准化 w3cdom	2 2.3. 1.4.
- 浅析总结 Java 内部类的一些使用与梳理
- docker安装禅道
- echart添加文本_ECharts自定义富文本
- 今年-计划写一本java方面的书籍
- 2.GSAP(TweenMax手册/TweenLite手册)之一
- 腾讯云带宽价格表(包年包月/按量计费/流量价格)
- linux状态栏显示命令,Ubuntu状态栏显示网速CPU
- stm32+k210视觉小车——来拒去留+多位串口通信