logo资料库

Java最新面试手册.pdf

第1页 / 共481页
第2页 / 共481页
第3页 / 共481页
第4页 / 共481页
第5页 / 共481页
第6页 / 共481页
第7页 / 共481页
第8页 / 共481页
资料共481页,剩余部分请下载后查看
前言
Java相关
基础&进阶篇
1.什么是Java
2. Java的特点有哪些
3. JDK和JRE和JVM的区别
4. Oracle JDK 和 OpenJDK 的对比
5. Java有哪些数据类型
6. Java中引用数据类型有哪些,它们与基本数据类型有什么区别?
7. 从使用方面来说
8. Java中的自动装箱与拆箱
9. 为什么要有包装类型?
10. a=a+b与a+=b有什么区别吗?
11. 能将 int 强制转换为 byte 类型的变量吗?如果该值大于 byte 类型的范围,将会出现什么现象?
12. Java程序是如何执行的
13. final 在 Java 中有什么作用?
14. final有哪些用法?
15. static都有哪些用法?
16. static和final区别
17. 为什么有些java类要实现Serializable接口
18. 什么是java序列化,如何实现java序列化?或者请解释Serializable接口的作用。
19. 什么是内部类?内部类的作用
20. Excption与Error包结构
21. try {}里有一个return语句,那么紧跟在这个try后的finally{}里的code会不会被执行,什么时候被执行,在return前还是后?
22. 运行时异常与一般异常有何异同?
23. error和exception有什么区别?
24. 简单说说Java中的异常处理机制的简单原理和应用。
25. == 和 equals 的区别是什么?
26. Hashcode的作用
27. 两个对象的 hashCode() 相同, 那么 equals() 也一定为 true吗?
28. 泛型常用特点
29. 面向对象的特征
30. Java多态的理解
31. 重载和重写的区别
33. Java创建对象有几种方式?
34. ConcurrentModificationException异常出现的原因
35. HashMap和HashTable、ConcurrentHashMap区别?
36. 如何保证线程安全又效率高?
37. 我们能否让HashMap同步?
38. Java 中 IO 流分为几种?
39. BIO、NIO、AIO 有什么区别?
40. Files的常用方法都有哪些?
41. Java反射的作用于原理
42. 反射的实现方式
43. 实现Java反射的类:
44. 反射机制的优缺点:
45. Java 中 IO 流分为几种?
字符串&集合面试题汇总
1. Java 中操作字符串都有哪些类?它们之间有什么区别?
2. String、StringBuffer和StringBuilder区别(类似上一题)
4. String str="i"与 String str=new String("i")一样吗?
5. String 类的常用方法都有那些?
6. String s = new String("xyz");创建了几个StringObject?是否可以继承String类?
7. 下面这条语句一共创建了多少个对象:String s="a"+"b"+"c"+"d";
8. 简述Java中的集合
9. List、Map、Set三个接口,存取元素时,各有什么特点?
10. Set里的元素是不能重复的,那么用什么方法来区分重复与否呢?是用==还是equals()?它们有何区别?
11. ArrayList和LinkedList区别?
12. ArrayList和Vector的区别
13. ArrayList,Vector,LinkedList的存储性能和特性
14. HashMap和Hashtable的区别
15. Java中的同步集合与并发集合有什么区别?
16. Java中的集合及其继承关系
17. poll()方法和remove()方法区别?
18. LinkedHashMap和PriorityQueue的区别
19. WeakHashMap与HashMap的区别是什么?
20. ArrayList和LinkedList的区别?
21. ArrayList和Array有什么区别?
22. ArrayList和HashMap默认大小?
23. Comparator和Comparable的区别?
24. 如何实现集合排序?
25. 如何打印数组内容
26. LinkedList的是单向链表还是双向?
27. TreeMap是实现原理
28. 遍历ArrayList时如何正确移除一个元素
29. HashMap的实现原理
30. HashMap自动扩容
31. HashMap线程安全吗?
32. HashMap总结
33. Java集合框架是什么?说出一些集合框架的优点?
34. 集合框架中的泛型有什么优点?
35. Java集合框架的基础接口有哪些?
36. 为何Collection不从Cloneable和Serializable接口继承?
37. 为何Map接口不继承Collection接口?
38. Iterator是什么?
39. Iterator和ListIterator的区别是什么?
40. Enumeration和Iterator接口的区别?
41. 为何没有像Iterator.add()这样的方法,向集合中添加元素?
42. 为何迭代器没有一个方法可以直接获取下一个元素,而不需要移动游标?
43. Iterater和ListIterator之间有什么区别?
44. 遍历一个List有哪些不同的方式?
45. 通过迭代器fail-fast属性,你明白了什么?
46. fail-fast与fail-safe有什么区别?
47. 在迭代一个集合的时候,如何避免ConcurrentModificationException?
48. 为何Iterator接口没有具体的实现?
49. UnsupportedOperationException是什么?
50. 在Java中,HashMap是如何工作的?
51. hashCode()和equals()方法有何重要性?
52. 我们能否使用任何类作为Map的key?
53. Map接口提供了哪些不同的集合视图?
54. HashMap和HashTable有何不同?
55. 如何决定选用HashMap还是TreeMap?
56. ArrayList和Vector有何异同点?
57. Array和ArrayList有何区别?什么时候更适合用Array?
58. ArrayList和LinkedList有何区别?
59. 哪些集合类提供对元素的随机访问?
60. EnumSet是什么?
61. 哪些集合类是线程安全的?
62. 并发集合类是什么?
63. BlockingQueue是什么?
64. 队列和栈是什么,列出它们的区别?
65. Collections类是什么?
66. Comparable和Comparator接口是什么?
67. Comparable和Comparator接口有何区别?
68. 我们如何对一组对象进行排序?
69. 当一个集合被作为参数传递给一个函数时,如何才可以确保函数不能修改它?
70. 我们如何从给定集合那里创建一个synchronized的集合?
71. 集合框架里实现的通用算法有哪些?
72. 大写的O是什么?举几个例子?
73. 与Java集合框架相关的有哪些最好的实践?
74. TreeMap和TreeSet在排序时如何比较元素?Collections工具类中的sort()方法如何比较元素?
Java并发编程
1. 多线程有什么用?
2. 多线程和单线程的区别和联系?
3. 简述线程、程序、进程的基本概念。以及他们之间关系是什么?
4. 线程的创建方式
5. 线程有哪些基本状态?
6. 如何停止一个正在运行的线程
7. start()方法和run()方法的区别
8. 为什么我们调用start()方法时会执行run()方法,为什么我们不能直接调用run()方法?
9. Runnable接口和Callable接口的区别
10. 什么是线程安全?
11. 线程的状态转换?
12. 在多线程中,什么是上下文切换(context-switching)?
13. Java中堆和栈有什么不同?
14. 如何确保线程安全?
15. 什么是竞态条件?你怎样发现和解决竞争?
16. 用户线程和守护线程有什么区别?
17. 如何创建守护线程?以及在什么场合来使用它?
18. 线程安全的级别
19. 你对线程优先级的理解是什么?
20. 什么是线程调度器(Thread Scheduler)和时间分片(Time Slicing)?
21. volatile关键字的作用
22. volatile 变量和 atomic 变量有什么不同?
23. volatile 是什么?可以保证有序性吗?
24. 什么是Java内存模型
25. sleep方法和wait方法有什么区别
26. 线程的sleep()方法和yield()方法有什么区别?
27. Thread.sleep(0)的作用是什么
28. 线程类的构造方法、静态块是被哪个线程调用的
29. 在线程中你怎么处理不可控制异常?
30. 同步方法和同步块,哪个是更好的选择
31. 有三个线程T1,T2,T3,如何保证顺序执行?
32. 什么是CAS
33. CAS?CAS 有什么缺陷,如何解决?
34. 什么是AQS
35. 线程池作用
36. ThreadLocal是什么
37. ThreadLocal有什么用
38. ThreadLocal原理,使用注意点,应用场景有哪些?
39. notify()和notifyAll()有什么区别?
40. 为什么wait()方法和notify()/notifyAll()方法要在同步块中被调用
41. wait()方法和notify()/notifyAll()方法在放弃对象监视器时有什么区别
42. wait()方法和notify()/notifyAll()方法在放弃对象监视器时有什么区别
43. 线程中断是否能直接调用stop,为什么?
44. 什么是阻塞(Blocking)和非阻塞(Non-Blocking)?
45. 什么是自旋
46. 自旋锁的优缺点?
47. 什么是线程池? 为什么要使用它?
48. 常用的线程池模式以及不同线程池的使用场景?
49. 在Java中Executor、ExecutorService、Executors的区别?
50. 请说出与线程同步以及线程调度相关的方法。
51. 举例说明同步和异步。
52. 不使用stop停止线程?
53. 如何控制某个方法允许并发访问线程的大小?
54. 如何创建线程池
55. 高并发、任务执行时间短的业务怎样使用线程池?并发不高、任务执行时间长的业务怎样使用线程池?并发高、业务执行时间长的业务怎样使用线程池?
56. 什么是线程安全
57. Java中interrupted 和isInterruptedd方法的区别?
58. Java线程池中submit() 和 execute()方法有什么区别?
59. 说一说自己对于 synchronized 关键字的了解
60. 说说自己是怎么使用 synchronized 关键字,在项目中用到了吗synchronized关键字最主要的三种使用方式:
61. Java中如何获取到线程dump文件
62. 一个线程如果出现了运行时异常会怎么样
63. 如何在两个线程之间共享数据
64. 如何在两个线程间共享数据?
65. Java中活锁和死锁有什么区别?
66. Java中的死锁
67. 如何避免死锁和检测
68. 什么是可重入锁(ReentrantLock)?
69. 讲一下 synchronized 关键字的底层原理
70. synchronized和ReentrantLock的区别
71. ConcurrentHashMap的并发度是什么
72. ReadWriteLock是什么
73. FutureTask是什么
74. 如果你提交任务时,线程池队列已满,这时会发生什么
75. 生产者消费者模型的作用是什么
76. 什么是乐观锁和悲观锁
77. CyclicBarrier和CountDownLatch的区别
78. Hashtable的size()方法中明明只有一条语句"return count",为什么还要做同步?
79. Linux环境下如何查找哪个线程使用CPU最长
JVM面试题
1. 什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”?
2. Java内存结构?
3. Java内存分配
4. Java 堆的结构是什么样子的?什么是堆中的永久代(Perm Gen space)?
5. Java 中堆和栈有什么区别?
6. 解释内存中的栈(stack)、堆(heap)和方法区(method area)的用法
7. JVM内存分哪几个区,每个区的作用是什么?
8. 怎么获取 Java 程序使用的内存?堆使用的百分比?
9. JVM有哪些内存区域?(JVM的内存布局是什么?)
10. 类加载器
11. JVM加载class文件的原理机制?
12. Java类加载过程
13. JVM中对象的创建过程
14. Java对象结构
15. 类的生命周期
16. 如何判断对象可以被回收?
17. 如果对象的引用被置为 null,垃圾收集器是否会立即释放对象占用的内存?
18. Java的四种引用,强弱软虚
19. 什么情况下会发生栈溢出?
20. GC是什么?为什么要有GC
21. 简述 Java 垃圾回收机制。
22. JVM 的永久代中会发生垃圾回收么?
23. 什么是分布式垃圾回收(DGC)?它是如何工作的?
24. JVM垃圾处理方法
25. 你能说出来几个垃圾收集器
26. 简单描述一下(分代)垃圾回收的过程
27. 你都用过G1垃圾回收器的哪几个重要参数?
28. 有什么堆外内存的排查思路?
29. 串行(serial)收集器和吞吐量(throughput)收集器的区别
30. GC日志的real、user、sys是什么意思?
31. GC日志分析
32. MinorGC,MajorGC、FullGC都什么时候发生?
33. 新生代、老年代、持久代都存储哪些东西
34. 对象是怎么从年轻代进入老年代的?
35. 可达性算法中,哪些对象可作为GC Roots对象。
36. Java中会存在内存泄漏吗,请简单描述。
37. 什么时候进行MinGC和FullGC
38. System.gc() 和 Runtime.gc() 会做什么事情?
39. 垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?
40. 垃圾收集算法
41. 调优命令有哪些?
42. 你知道哪些JVM性能调优
43. 常用的调优工具有哪些
44. 跟JVM内存相关的几个核心参数图解
45. OOM你遇到过哪些情况,SOF你遇到过哪些情况
46. finalize() 方法什么时候被调用?析构函数 (finalization) 的目的是什么?
47. 你都有哪些手段用来排查内存溢出?
48. 生产上如何配置垃圾收集器的?
49. 假如生产环境CPU占用过高,请谈谈你的分析思路和定位。
50. 对于JDK自带的监控和性能分析工具用过哪些?
51. 栈帧都有哪些数据?
52. JIT是什么?
53. Java的双亲委托机制是什么?
54. 有哪些打破了双亲委托机制的案例?
55. invokedynamic指令是干什么的?
56. safepoint是什么?
数据结构与算法
1. 什么是数据结构?
2. 为什么我们需要数据结构?
3. 常见的数据结构
4. 冒泡排序
5. 插入排序
6. 选择排序
7. 归并排序
8. 快速排序
9. 二分查找
10. 二分查找 II
11. 删除排序数组中的重复项
12. 删除排序数组中的重复项 II
13. 移除元素
14. 移动零
15. 数组中重复的数字
16. 旋转数组
17. 螺旋矩阵
18. 两数之和
19. 三数之和
20. 四数之和
21. 较小的三数之和
22. 最接近的三数之和
23. 合并两个有序数组
24. 寻找旋转排序数组中的最小值
25. 寻找旋转排序数组中的最小值 II
26. 除自身以外数组的乘积
27. 无重复字符的最长子串
28. 反转字符串中的元音字母
29. 字符串转换整数
30. 赎金信
31. 两数相加
32. 两数相加 II
33. 从尾到头打印链表
34. 删除链表的节点
35. 删除排序链表中的重复元素
36. 删除排序链表中的重复元素 II
37. 移除链表元素
38. 两两交换链表中的节点
39. 排序链表
40. 反转链表
41. 二叉树的前序遍历
42. 二叉树的后序遍历
43. 二叉树的中序遍历
44. 最小栈
45. 队列的最大值
46. 冒泡排序
47. 选择排序
48. 插入排序
49. 快速排序
50. 堆排序
51. 希尔排序
52. 归并排序
53. 计数排序
54. 桶排序
55. 基数排序
56. 排序算法的各自的使用场景和适用场合。
网络协议面试题
1. 什么是网络编程
2. 网络编程中两个主要的问题
3. 网络协议是什么
4. 为什么要对网络协议分层
5. 计算机网络体系结构
6. 什么是TCP/IP和UDP
7. TCP与UDP区别:
8. TCP和UDP的应用场景:
9. 形容一下TCP和UDP
10. 运行在TCP 或UDP的应用层协议分析。
11. 什么是Http协议?
12. Http和Https的区别?
13. 什么是http的请求体?
14. HTTP的响应报文有哪些?
15. HTTPS工作原理
16. 三次握手与四次挥手
17. 为什么 TCP 链接需要三次握手,两次不可以么?
18. 用现实理解三次握手的具体细节
19. 建立连接可以两次握手吗?为什么?
20. 为什么要四次挥手?
21. TCP 协议如何来保证传输的可靠性
22. 客户端不断进行请求链接会怎样?DDos(Distributed Denial of Service)攻击?
23. GET 与 POST 的区别?
24. 为什么在GET请求中会对URL进行编码?
25. TCP与UDP的区别
26. TCP和UDP分别对应的常见应用层协议
27. TCP 的拥塞避免机制
28. 什么是Socket
29. socket属于网络的那个层面
30. Socket通讯的过程
31. Socket和http的区别和应用场景
32. 一次完整的HTTP请求所经历几个步骤?
33. 浏览器中输入:“www.xxx.com” 之后都发生了什么?请详细阐述。
34. 什么是 HTTP 协议无状态协议?怎么解决Http协议无状态协议?
35. Session、Cookie 与 Application
36. 滑动窗口机制
37. 常用的HTTP方法有哪些?
38. 常见HTTP状态码
39. SQL 注入
40. XSS 攻击
41. OSI 网络体系结构与 TCP/IP 协议模型
42. 网络层的 ARP 协议工作原理?
43. IP地址的分类
44. IP地址与物理地址
45. 影响网络传输的因素有哪些?
46. 什么是对称加密与非对称加密
47. 什么是Cookie
48. 什么是Session
49. Cookie和Session对于HTTP有什么用?
50. Cookie与Session区别
数据库
MySQL面试题
1. MySQL中的varchar和char有什么区别.
2. varchar(10)和int(10)代表什么含义?
3. MySQL中varchar与char的区别以及varchar(50)中的50代表的涵义
4. innodb的事务与日志的实现方式
5. MySQL的binlog有有几种录入格式?分别有什么区别?**
6. 超大分页怎么处理?**
7. 关心过业务系统里面的sql耗时吗?统计过慢查询吗?对慢查询都怎么优化过?**
8. 上面提到横向分表和纵向分表,可以分别举一个适合他们的例子吗?
9. 什么是存储过程?有哪些优缺点?
10. 说一说三个范式
11. MySQL的复制原理以及流程
12. MySQL由哪些部分组成, 分别用来做什么
13. 如果一个表有一列定义为TIMESTAMP,将发生什么?
14. MySQL 里记录货币用什么字段类型好
15. MySQL 数据库作发布系统的存储,一天五万条以上的增量, 预计运维三年,怎么优化?
16. 优化数据库的方法
17. 简单描述 MySQL 中,索引,主键,唯一索引,联合索引的区别,对数据库的性能有什么影响(从读写两方面)
18. SQL 注入漏洞产生的原因?如何防止?
19. 存储时期
20. 解释 MySQL 外连接、内连接与自连接的区别
21. 存储引擎常用命令
22. MySQL支持哪些存储引擎?
23. InnoDB和MyISAM有什么区别?
24. myisamchk 是用来做什么的?
25. 为什么要尽量设定一个主键?**
26. 主键使用自增ID还是UUID?
27. 字段为什么要求定义为not null?
28. 如果要存储用户的密码散列,应该使用什么字段进行存储?
29. 什么是索引?
30. 索引是个什么样的数据结构呢?
31. 唯一索引比普通索引快吗, 为什么
32. 索引的优缺点
33. 做过哪些MySQL索引相关优化
34. 怎么看到为表格定义的所有索引?
35. 索引分类
36. 什么情况下设置了索引但无法使用
37. B-Tree 和 B+Tree
38. Hash索引和B+树所有有什么区别或者说优劣呢?**
39. 为什么用 B+ 树做索引而不用哈希表做索引?
40. 上面提到了B+树在满足聚簇索引和覆盖索引的时候不需要回表查询数据,什么是聚簇索引?
41. 非聚簇索引一定会回表查询吗?**
42. 在建立索引的时候,都有哪些需要考虑的因素呢?**
43. 联合索引是什么?为什么需要注意联合索引中的顺序?**
44. 创建的索引有没有被使用到?或者说怎么才可以知道这条语句运行很慢的原因?
45. 那么在哪些情况下会发生针对该列创建了索引但是在查询的时候并没有使用呢?
46. 什么是事务?**
47. ACID是什么?可以详细说一下吗?
48. 同时有多个事务在进行会怎么样呢?**
49. Myql 中的事务回滚机制概述
50. 并发事务带来哪些问题?
51. 怎么解决这些问题呢?MySQL的事务隔离级别了解吗?
52. Innodb使用的是哪种隔离级别呢?
53. MySQL 中有哪几种锁?
54. 对MySQL的锁了解吗?
55. 锁机制与InnoDB锁算法
56. MySQL都有哪些锁呢?像上面那样子进行锁定岂不是有点阻碍并发效率了?
57. 锁的优化策略
58. Explain 性能分析
59. 如何优化SQL
52条 SQL性能优化策略
一千行SQL命令
基本操作
数据库操作
表的操作
数据操作
字符集编码
数据类型(列类型)
列属性(列约束)
建表规范
SELECT
UNION
子查询
连接查询(join)
TRUNCATE
备份与还原
视图
事务
锁表
触发器
SQL编程
存储过程
用户和权限管理
表维护
杂项
Redis面试题
1. 什么是 Redis?简述它的优缺点?
2. 为什么要用 redis/为什么要用缓存
2. Redis 与 memcached 相比有哪些优势?
3. Redis 支持哪几种数据类型?
4. Redis 主要消耗什么物理资源?
5. Redis 有哪几种数据淘汰策略?
6. Redis 官方为什么不提供 Windows 版本?
7. 一个字符串类型的值能存储最大容量是多少?
8. 为什么 Redis 需要把所有数据放到内存中?
9. 如何保证缓存与数据库双写时的数据一致性?
10. Redis中数据库默认是多少个db即作用?
11. Redis 集群方案应该怎么做?都有哪些方案?
12. Redis 集群方案什么情况下会导致整个集群不可用?
13. MySQL 里有 2000w 数据,redis 中只存 20w 的数据,如何保证 redis 中的数据都是热点数据?
14. Redis 有哪些适合的场景?
15. 说说 Redis 哈希槽的概念?
16. Redis 集群的主从复制模型是怎样的?
17. Redis 集群会有写操作丢失吗?为什么?
18. Redis 集群之间是如何复制的?
19. Redis 集群最大节点个数是多少?
20. Redis 集群如何选择数据库?
21.Redis 中的管道有什么用?
22. 怎么理解 Redis 事务?
23. Redis 事务相关的命令有哪几个?
24. Redis key 的过期时间和永久有效分别怎么设置?
25. Redis 如何做内存优化?
26. Redis 回收进程如何工作的?
27. 加锁机制
28. 锁互斥机制
29. watch dog 自动延期机制
30. 使用过 Redis 做异步队列么,你是怎么用的?有什么缺点?**
31. 什么是缓存穿透?如何避免?什么是缓存雪崩?何如避免?
32. 缓存穿透、缓存击穿、缓存雪崩解决方案?
33. 缓存雪崩和缓存穿透问题解决方案
34. redis 和 memcached 什么区别?为什么高并发下有时单线程的 redis 比多线程的memcached 效率要高?**
35. 使用 redis 如何设计分布式锁?说一下实现思路?使用 zk 可以吗?如何实现?这两种有什么区别?
36. 知道 redis 的持久化吗?底层如何实现的?有什么优点缺点?
37. redis 持久化机制(怎么保证 redis 挂掉之后再重启数据可以进行恢复)
38. redis 过期策略都有哪些?LRU 算法知道吗?
39 在选择缓存时,什么时候选择 redis,什么时候选择 memcached?
40. 缓存与数据库不一致怎么办
41. Redis 常见的性能问题和解决方案
42. Redis 的数据淘汰策略有哪些
43. redis 常见数据结构以及使用场景分析
44. Redis 当中有哪些数据结构
45. 使用 Redis 做过异步队列吗,是如何实现的
46. Redis 如何实现延时队列
47. 请用Redis和任意语言实现一段恶意登录保护的代码,限制1小时内每用户Id最多只能登录5次。具体登录函数或功能用空函数即可,不用详细写出。
48. 为什么redis需要把所有数据放到内存中? 
MongoDB面试题
1. mongodb是什么?
2. mongodb有哪些特点?
3. mongodb的结构介绍
4. MongoDB的优势有哪些
5. 什么是集合
6. 什么是文档
7. 什么是NoSQL数据库?NoSQL与RDBMS直接有什么区别?为什么要使用和不使用NoSQL数据库?说一说NoSQL数据库的几个优点?
8. NoSQL数据库有哪些类型?
9. MySQL与MongoDB之间最基本的差别是什么?
10. 你怎么比较MongoDB、CouchDB及CouchBase?
11. MongoDB成为最好NoSQL数据库的原因是什么?
12. journal回放在条目(entry)不完整时(比如恰巧有一个中途故障了)会遇到问题吗?
13. 分析器在MongoDB中的作用是什么?
14. 如果用户移除对象的属性,该属性是否从存储层中删除?
15. 能否使用日志特征进行安全备份?
16. 允许空值null吗?
17. 更新操作立刻fsync到磁盘?
18. 如何执行事务/加锁?
19. 为什么我的数据文件如此庞大?
20. 启用备份故障恢复需要多久?
21. 什么是master或primary?
22. 什么是secondary或slave?
23. 必须调用getLastError来确保写操作生效了么?
24. 我应该启动一个集群分片(sharded)还是一个非集群分片的 MongoDB 环境?
25. 分片(sharding)和复制(replication)是怎样工作的?
26. 数据在什么时候才会扩展到多个分片(shard)里?
27. 当我试图更新一个正在被迁移的块(chunk)上的文档时会发生什么?
28. 如果在一个分片(shard)停止或者很慢的时候,我发起一个查询会怎样?
29. 我可以把moveChunk目录里的旧文件删除吗?
30. 怎么查看 Mongo 正在使用的链接?
31. 如果块移动操作(moveChunk)失败了,我需要手动清除部分转移的文档吗?
32. 如果我在使用复制技术(replication),可以一部分使用日志(journaling)而其他部分则不使用吗?
33. MongoDB在A:{B,C}上建立索引,查询A:{B,C}和A:{C,B}都会使用索引吗?
34. 如果一个分片(Shard)停止或很慢的时候,发起一个查询会怎样?
35. MongoDB支持存储过程吗?如果支持的话,怎么用?
36. 如何理解MongoDB中的GridFS机制,MongoDB为何使用GridFS来存储文件?
37. MongoDB支持存储过程吗?如果支持的话,怎么用?
38. 如何理解MongoDB中的GridFS机制,MongoDB为何使用GridFS来存储文件?
39. 为什么MongoDB的数据文件很大?
40. MongoDB在A:{B,C}上建立索引,查询A:{B,C}和A:{C,B}都会使用索引吗?
41.如果用户移除对象的属性,该属性是否从存储层中删除?
42. 能否使用日志特征进行安全备份?
43. 更新操作立刻fsync到磁盘?
44. 如何执行事务/加锁?
45. 什么是master或primary?
46. getLastError的作用
47. 分片(sharding)和复制(replication)是怎样工作的?
48. 数据在什么时候才会扩展到多个分片(shard)里?
49. 什么是”mongod“
50. "mongod"参数有什么
51. 什么是"mongo"
52. MongoDB哪个命令可以切换数据库
53. 什么是非关系型数据库
54. 非关系型数据库有哪些类型
55. 为什么用MOngoDB?
56. 在哪些场景使用MongoDB
57. MongoDB中的命名空间是什么意思?
58. 哪些语言支持MongoDB?
59. 在MongoDB中如何创建一个新的数据库
60. 在MongoDB中如何查看数据库列表
61. MongoDB中的分片是什么意思
62. 如何查看使用MongoDB的连接Sharding - MongoDB Manual21.如何查看使用MongoDB的连接
63. 什么是复制
64. 在MongoDB中如何在集合中插入一个文档
65. 在MongoDB中如何除去一个数据库Collection Methods24.在MongoDB中如何除去一个数据库
66.在MongoDB中如何查看一个已经创建的集合
67. 在MongoDB中如何删除一个集合
68. 为什么要在MongoDB中使用分析器
69. MongoDB支持主键外键关系吗
70. MongoDB支持哪些数据类型
71. 为什么要在MongoDB中用"Code"数据类型
72. 为什么要在MongoDB中用"Regular Expression"数据类型
73. 为什么在MongoDB中使用"Object ID"数据类型
74. "ObjectID"由哪些部分组成
75. 在MongoDb中什么是索引
76. 如何添加索引
77. 用什么方法可以格式化输出结果
78. 如何使用"AND"或"OR"条件循环查询集合中的文档
79. 在MongoDB中如何更新数据
80. 如何删除文档
81. 在MongoDB中如何排序
82. 什么是聚合
83. 在MongoDB中什么是副本集
框架相关面试题
Spring面试题
1. 什么是spring?
2. 说说你对Spring的理解
3. 使用Spring框架的好处是什么?
4. Spring由哪些模块组成?
5. Spring框架使用了哪些设计模式
6. Spring支持的ORM
7. Spring Framework 有哪些不同的功能?
8. 什么是Spring的MVC框架?
9. springmvc常用到的注解,作用是什么,原理。
10. 在 Spring 中,有几种配置 Bean 的方式?
11. 请解释一下 Spring Bean 的生命周期?
12. BeanFactory和ApplicationContext有什么区别?
13. Spring框架中的单例bean是线程安全的吗?
14. Spring如何处理线程并发问题?
15. 什么是Spring的内部bean?
16. Spring Bean 有哪些作用域,它们之间有什么区别?
17. Springmvc controller方法中为什么不能定义局部变量?
18. 在 Spring中如何注入一个java集合?
19. 什么是Spring MVC框架的控制器?
20. Spring DAO 有什么用?
21. Spring JDBC API 中存在哪些类?
22. Spring框架中有哪些不同类型的事件?
23. 请解释一下,Spring 框架有哪些自动装配模式,它们之间有何区别?
24. Springmvc 中DispatcherServlet初始化过程。
25. SpringMVC执行流程和原理 SpringMVC流程:
26. WebApplicationContext
27. 你用过哪些重要的 Spring 注解?
28. DispatcherServlet
29. @Component, @Controller, @Repository, @Service 有何区别?
30. @Autowired 注解解释
31. @Qualifier 注解解释
32. @Resource 注解解释
33. @Controller 注解
34. @RequestMapping 注解
35. @Required 注解有什么用?
36. @Autowire和@Resource区别
37. SpringMVC中的拦截器和Servlet中的filter有什么区别?
38. 讲讲Spring加载流程。
39. Spring的IOC理解:
40. 列举 IoC 的一些好处
41. Spring 中的 IoC 的实现原理就是工厂模式加反射机制。
42. Spring通知有哪些类型?
43. 解释一下Spring AOP里面的几个名词:
44. Spring AOP的实现原理。
45. 在Spring AOP 中,关注点和横切关注的区别是什么?
46. Spring中AOP的底层是怎么实现的?
47. Spring事务的实现方式和实现原理:
讲讲Spring事务的传播属性。
48. Spring如何管理事务的。
50. Spring框架的事务管理有哪些优点?
51. 怎样用注解的方式配置Spring?
52. Spring怎么配置事务(具体说出一些关键的xml 元素)。
53. Springbean的生命周期
54. spring容器的bean什么时候被实例化?
55. 说说 BeanFactory 和 ApplicationContext 的区别? 什么是延迟实例化,它的优缺点是什么?
56. BeanFactory – BeanFactory 实现举例
57. XMLBeanFactory
58. Spring中Bean的作用域有哪些?
MyBatis面试题
1. 什么是Mybatis?
2. Mybaits的优点:
3. MyBatis框架的缺点:
4、MyBatis框架适用场合:
5、MyBatis与Hibernate有哪些不同?
6. Mybatis 比 IBatis 比较大的几个改进是什么?
7. ORM是什么
8. 为什么说Mybatis是半自动ORM映射工具?它与全自动的区别在哪里?
9. 传统JDBC开发存在什么问题?
10. JDBC编程有哪些不足之处,MyBatis是如何解决的?
11. MyBatis编程步骤是什么样的?
12. 请说说MyBatis的工作原理
13. MyBatis的功能架构是怎样的
14. MyBatis的框架架构设计是怎么样的
15. 什么是DBMS
16. 为什么需要预编译
17. #{}和${}的区别是什么?
18. 当实体类中的属性名和表中的字段名不一样 ,怎么办 ?
19. 模糊查询like语句该怎么写?
20. Mybatis都有哪些Executor执行器?它们之间的区别是什么?
21. Mybatis中如何指定使用哪一种Executor执行器?
22. 通常一个Xml映射文件,都会写一个Dao接口与之对应,请问,这个Dao接口的工作原理是什么?Dao接口里的方法,参数不同时,方法能重载吗?
23. Mybatis是如何进行分页的?分页插件的原理是什么?
24. Mybatis是如何将sql执行结果封装为目标对象并返回的?都有哪些映射形式?
25. 如何获取自动生成的(主)键值?
26. 在mapper中如何传递多个参数?
27. Mybatis是否支持延迟加载?如果支持,它的实现原理是什么?
28. Mybatis动态sql有什么用?执行原理?有哪些动态sql?
29. Xml映射文件中,除了常见的select|insert|updae|delete标签之外,还有哪些标签?
30. Mybatis的Xml映射文件中,不同的Xml映射文件,id是否可以重复?
31. 为什么说Mybatis是半自动ORM映射工具?它与全自动的区别在哪里?
32. 一对一、一对多的关联查询 ?
33. MyBatis 里面的动态 Sql 是怎么设定的?用什么语法?
34. Mybatis 能执行一对一、一对多的关联查询吗?都有哪些实现方式,以及它们之间的区别?
35. MyBatis实现一对一有几种方式?具体怎么操作的?
36. MyBatis实现一对多有几种方式,怎么操作的?
37. Mybatis是否支持延迟加载?如果支持,它的实现原理是什么?
38. Mybatis的一级、二级缓存:
39. 什么是MyBatis的接口绑定?有哪些实现方式?
40. 接口绑定有几种实现方式,分别是怎么实现的?
41. 什么情况下用注解绑定,什么情况下用 xml 绑定?
42. 使用MyBatis的mapper接口调用时有哪些要求?
43. Mapper编写有哪几种方式?
44. Mybatis 映射文件中,如果 A 标签通过 include 引用了 B 标签的内容,请问,B 标签能**否定义在 A 标签的后面,还是说必须定义在 A 标签的前面?
45. 简述Mybatis的插件运行原理,以及如何编写一个插件。
46. Mybatis 动态 sql 是做什么的?都有哪些动态 sql?能简述一下动态 sql 的执行原理不?
47. 简述 Mybatis 的 Xml 映射文件和 Mybatis 内部数据结构之间的映射关系?
SpringBoot面试题
1. 什么是springboot ?
2. Springboot 有哪些优点?
3. Spring Boot 的目录结构是怎样的?
4. 怎么理解 Spring Boot 中 “约定优于配置“
5. 如何在自定义端口上运行 Spring Boot应用程序?
6. Spring Boot初始化环境变量流程?
7. Spring Boot扫描流程?
8. Spring Boot 配置加载顺序详解
9. Spring Boot 如何定义多套不同环境配置?
10. Spring Boot 有哪几种读取配置的方式?
11. SpringBoot 实现热部署有哪几种方式?
12. Spring Boot 支持哪些日志框架?推荐和默认的日志框架是哪个
13. 如何重新加载Spring Boot上的更改,而无需重新启动服务器?
14. 你如何理解 Spring Boot 中的 Starters?
15. spring-boot-starter-parent 有什么用 ?
16. 什么是 Spring Boot Stater ?
17. SpringBoot常用的starter有哪些?
18. Spring Boot 的核心配置文件有哪几个?它们的区别是什么?
19. Spring Boot 的核心注解是哪个?它主要由哪几个注解组成的?
20. 创建一个 Spring Boot Project 的最简单的方法是什么?
21. Spring Initializr 是创建 Spring Boot Projects 的唯一方法吗?
22. 如何集成 Spring Boot 和 ActiveMQ?
23. 什么是 Swagger?你用 Spring Boot 实现了它吗?
24. 运行 Spring Boot 有哪几种方式?
25. Spring Boot 打成的 jar 和普通的 jar 有什么区别 ?
26. 如何使用 Spring Boot 实现分页和排序?
27. Spring Boot 中如何实现定时任务 ?
28. Spring Boot 还提供了其它的哪些 Starter Project Options?
29. 为什么我们需要 spring-boot-maven-plugin?
30. 什么是YAML?
31. 什么是JavaConfig?
32. Spring Boot、Spring MVC 和 Spring 有什么区别?
33. Springboot自动配置的原理
34. 如何禁用一个特定自动配置类?
35. Spring Boot中的监视器是什么?
36. 什么是 Spring Batch?
37. Spring Boot 中如何解决跨域问题 ?
38. 什么是 CSRF 攻击?
39. 我们如何监视所有 Spring Boot 微服务?
40. 什么是嵌入式服务器?我们为什么要使用嵌入式服务器呢?
41. 当 Spring Boot 应用程序作为 Java 应用程序运行时,后台会发生什么?
42. RequestMapping 和 GetMapping 的不同之处在哪里?
43. 为什么我们不建议在实际的应用程序中使用 Spring Data Rest?
Spring & SpringBoot常用注解
1. @SpringBootApplication
2. Spring Bean 相关
2.1. @Autowired
2.2. @Component, @Repository, @Service, @Controller
2.3. @RestController
2.4. @Scope
2.5. @Configuration
3. 处理常见的 HTTP 请求类型
3.1. GET 请求
3.2. POST 请求
3.3. PUT 请求
3.4. DELETE 请求
3.5. PATCH 请求
4. 前后端传值
4.1. @PathVariable 和 @RequestParam
4.2. @RequestBody
5. 读取配置信息
5.1. @value(常用)
5.2. @ConfigurationProperties(常用)
5.3. PropertySource(不常用)
6. 参数校验
6.1. 一些常用的字段验证的注解
6.2. 验证请求体(RequestBody)
6.3. 验证请求参数(Path Variables 和 Request Parameters)
7. 全局处理 Controller 层异常
8. JPA 相关
8.1. 创建表
8.2. 创建主键
8.3. 设置字段类型
8.4. 指定不持久化特定字段
8.5. 声明大字段
8.6. 创建枚举类型的字段
8.7. 增加审计功能
8.8. 删除/修改数据
8.9. 关联关系
9. 事务 @Transactional
10. json 数据处理
10.1. 过滤 json 数据
10.2. 格式化 json 数据
10.3. 扁平化对象
11. 测试相关
微服务
SpringCloud面试题
1. 什么是微服务?
2. 什么是微服务架构?
3. 微服务的优缺点是什么?说下你在项目中碰到的坑。
4. 你所知道微服务的技术栈有哪些?列举一二。
5. 微服务之间如何独立通讯的?
6. Spring Cloud的版本关系
7. Spring Cloud的子项目(主要项目)
8. spring cloud 的核心组件有哪些?
9. springcloud如何实现服务的注册?
10. 什么是Eureka
11. Eureka和zookeeper都可以提供服务注册与发现的功能,请说说两个的区别?
12. 你所知道的微服务技术栈?
13. 使用Spring Cloud有什么优势?
14. SpringBoot 和 SpringCloud 之间关系?
15. SpringCloud 和 Dubbo 有哪些区别?
16. 什么是Spring Cloud Config?
17. 什么是Ribbon?
18. 什么是feigin?它的优点是什么?
19. Ribbon和Feign的区别?
20. 什么是Spring Cloud Gateway?
21. 什么是 Hystrix?它如何实现容错?
22. 什么是 Hystrix 断路器?我们需要它吗?
23. 什么是 Netflix Feign?它的优点是什么?
24. 什么是Spring Cloud Gateway?
25. 服务注册和发现是什么意思?Spring Cloud如何实现?
26. 负载平衡的意义什么?
27. 什么是熔断?什么是服务降级?
28. 什么是Netflix Feign?它的优点是什么?
29. 什么是 Spring Cloud Bus?我们需要它吗?
30. 微服务是如何对外提供统一接口的(zuul具体使用)
31. Zuul 的过滤功能
中间件相关
Dubbo面试题
1. Dubbo是什么?
2. 为什么要用Dubbo?
3. Dubbo 和 Spring Cloud 有什么区别?
4. Dubbo都支持什么协议,推荐用哪种?
5. Dubbo需要 Web 容器吗?
6. Dubbo内置了哪几种服务容器?
7. Dubbo里面有哪几种节点角色?
8. 画一画服务注册与发现的流程图
9. Dubbo默认使用什么注册中心,还有别的选择吗?
10. Dubbo有哪几种配置方式?
11. Dubbo 核心的配置有哪些?
12. 在 Provider 上可以配置的 Consumer 端的属性有哪些?
13. Dubbo启动时如果依赖的服务不可用会怎样?
14. Dubbo推荐使用什么序列化框架,你知道的还有哪些?
15. Dubbo默认使用的是什么通信框架,还有别的选择吗?
16. Dubbo有哪几种集群容错方案,默认是哪种?
17. Dubbo有哪几种负载均衡策略,默认是哪种?
18. 注册了多个同一样的服务,如果测试指定的某一个服务呢?
19. Dubbo支持服务多协议吗?
20. Dubbo 支持哪些协议,每种协议的应用场景,优缺点?
21. Dubbo 集群的负载均衡有哪些策略
22. 当一个服务接口有多种实现时怎么做?
23. 服务调用超时问题怎么解决
24. 服务上线怎么兼容旧版本?
25. Dubbo可以对结果进行缓存吗?
26. Dubbo服务之间的调用是阻塞的吗?
27. Dubbo支持分布式事务吗?
28. Dubbo telnet 命令能做什么?
29. Dubbo如何优雅停机?
30. 服务提供者能实现失效踢出是什么原理?
31. 如何解决服务调用链过长的问题?
32. 服务读写推荐的容错策略是怎样的?
33. Dubbo必须依赖的包有哪些?
34. Dubbo的管理控制台能做什么?
35. 说说 Dubbo 服务暴露的过程。
36. Dubbo 停止维护了吗?
37、Dubbo 和 Dubbox 有什么区别?
38. 在使用过程中都遇到了些什么问题?如何解决的?
Nginx面试题
1. 请解释一下什么是Nginx?
2. 什么是正向代理和反向代理?
3. 使用“反向代理服务器的优点是什么?
4. 请列举Nginx的一些特性。
5. Nginx的优缺点?
6. 为什么Nginx性能这么高?
7. Nginx应用场景?
8. 请解释Nginx服务器上的Master和Worker进程分别是什么?
9. 请解释你如何通过不同于80的端口开启Nginx?
10. Nginx负载均衡的算法怎么实现的?策略有哪些?
11. Nginx配置高可用性怎么配置?
12. Nginx怎么判断IP不可访问?
13. 怎么限制浏览器访问?
14. Nginx目录结构有哪些?
15. Nginx配置文件nginx.conf有哪些属性模块?
16. 为什么Nginx性能这么高?
17. Nginx静态资源?
18. 如何用Nginx解决前端跨域问题?
19. Nginx怎么处理请求的?
20. Nginx虚拟主机怎么配置?
21. location的作用是什么?
22. Location正则案例
23. Nginx常用变量
24. Nginx设置重定向
25. 限流怎么做的?
26. 为什么要做动静分离?
27. Nginx怎么做的动静分离?
28. Nginx条件判断
Zookeeper面试题
1. ZooKeeper 是什么?
2. ZooKeeper 提供了什么?
3. Zookeeper 都有哪些功能?
4. Zookeeper 文件系统
5. 有哪些著名的开源项目用到了 ZooKeeper?
6. 说一下 Zookeeper 的通知机制?
7. Zookeeper 机制的特点
8. Zookeeper 和 Dubbo 的关系?
9. Zookeeper的java客户端都有哪些?
10. Zookeeper 的典型应用场景
11. Zookeeper 怎么保证主从节点的状态同步?
12. 集群中有 3 台服务器,其中一个节点宕机,这个时候 Zookeeper 还可以使用吗?
13. ZAB 协议
14. 四种类型的数据节点 Znode
15. 说几个 zookeeper 常用的命令。
16. Zookeeper Watcher 机制 -- 数据变更通知
17. zookeeper 是如何保证事务的顺序一致性的?
18. 分布式集群中为什么会有 Master?
19. 集群支持动态添加机器吗?
20. zk 节点宕机如何处理?
21. zookeeper 负载均衡和 nginx 负载均衡区别
22. Zookeeper 有哪几种几种部署模式?
23. 客户端注册 Watcher 实现
24. 服务端处理 Watcher 实现
25. Zookeeper 对节点的 watch 监听通知是永久的吗?为什么不是永久的?
26. 服务器角色
27. Zookeeper 下 Server 工作状态
28. 数据同步
29. zookeeper是如何保证事务的顺序一致性的?
30. ZAB 和 Paxos 算法的联系与区别?
MQ面试题
1. RabbitMQ是什么?
2. 为什么要用RocketMq?
3. 使用 MQ 的缺陷有哪些?
4. 你了解哪些常用的 MQ?
5. MQ 有哪些使用场景?
6. RabbitMQ特点?
7. AMQP是什么?
8. AMQP协议3层?
9. Rocketmq的工作流程是怎样的?
10. Rocketmq如何保证高可用性?
11. RocketMq如何负载均衡?
12. RocketMq的存储机制了解吗?
13. RocketMq的存储结构是怎样的?
14. RocketMq性能比较高的原因?
15. AMQP模型的几大组件?
16. 生产者Producer?
17. 消费者Consumer?
18. Broker服务节点?
19. Queue队列?
20. Exchange交换器?
21. RoutingKey路由键?
22. Binding绑定?
23. 交换器4种类型?
24. 如何保证消息不被重复消费?
25. 如何保证消息不丢失?
26. 如何保证消息的顺序性?
27. 消息大量积压怎么解决?
28. 如何保证MQ的高可用?
29. 生产者消息运转?
30. 消费者接收消息过程?
31. 交换器无法根据自身类型和路由键找到符合条件队列时,有哪些处理?
32. 死信队列?
33. 导致的死信的几种原因?
34. 延迟队列?
35. 优先级队列?
36. 事务机制?
37. 发送确认机制?
38. 消费者获取消息的方式?
39. 消费者某些原因无法处理当前接受的消息如何来拒绝?
40. 消息传输保证层级?
41. vhost?
42. 集群中的节点类型?
43. 队列结构?
44. RabbitMQ中消息可能有的几种状态?
45. 它有哪几种部署类型?分别有什么特点?
KafKa面试题
1. 什么是kafka
2. 为什么要使用 kafka,为什么要使用消息队列
3. Kafka中的ISR、AR又代表什么?ISR的伸缩又指什么
4. Kafka中的broker 是干什么的
5. 什么是消费者组?
6. Kafka中的 zookeeper 起到什么作用,可以不用zookeeper么**
7. Kafka 为什么那么快
8. 如何设置Kafka能接收的最大消息的大小?
9. 监控Kafka的框架都有哪些?
10. 如何估算Kafka集群的机器数量?
11. Kafka能手动删除消息吗?
12. __consumer_offsets是做什么用的?
ElasticSearch面试题
1. 简要介绍一下Elasticsearch?
2. 安装 Elasticsearch 需要依赖什么组件吗?
3. 如何启动 Elasticsearch 服务器?
4. ElasticSearch中的集群、节点、索引、文档、类型是什么?
5. Elasticsearch 支持哪些类型的查询?
6. 精准匹配检索和全文检索匹配检索的不同?
7. ElasticSearch中的分片是什么?
8. 请解释一下 Elasticsearch 中聚合?
9. 解释一下Elasticsearch Cluster?
10. 解释一下 Elasticsearch Node?
11. 解释一下 Elasticsearch 集群中的 Type 的概念 ?
12. 解释一下 Elasticsearch 的 分片?
13. 定义副本、创建副本的好处是什么?
14. Elasticsearch Analyzer 中的字符过滤器如何利用?
15. REST API在 Elasticsearch 方面有哪些优势?
16. Elasticsearch 中常用的 cat命令有哪些?
17. 你能否列出与 Elasticsearch 有关的主要可用字段数据类型?
18. Elasticsearch了解多少,说说你们公司es的集群架构,索引数据大小,分片有多少,以及一些调优手段 。
19. 解释一下 Elasticsearch集群中的 索引的概念 ?
20. Elasticsearch 索引数据多了怎么办,如何调优,部署
21. 我们可以在 Elasticsearch 中执行搜索的各种可能方式有哪些?
22. 在 Elasticsearch 中删除索引的语法是什么?
23. 在 Elasticsearch 中列出集群的所有索引的语法是什么?
24. 在索引中更新 Mapping 的语法?
25. ES 写数据过程
26. ES 读数据过程
27. 底层 lucene
28. ES中的倒排索引是什么?
29. 请解释在 Elasticsearch 集群中添加或创建索引的过程?
30. 详细描述一下Elasticsearch索引文档的过程。
31. 详细描述一下Elasticsearch更新和删除文档的过程
32. 详细描述一下Elasticsearch搜索的过程
33. Elasticsearch对于大数据量(上亿量级)的聚合如何实现?
34. 你可以列出 Elasticsearch 各种类型的分析器吗?
35. ES是如何实现master选举的?
36. Master 节点和 候选 Master节点有什么区别?
37. Elasticsearch中的属性 enabled, index 和 store 的功能是什么?
38. Elasticsearch中的节点(比如共20个),其中的10个选了一个master,另外10个选了另一个master,怎么办?
39. 如何解决ES集群的脑裂问题
40. 详细描述一下ES索引文档的过程?
41. 详细描述一下ES更新和删除文档的过程?
42. 详细描述一下ES搜索的过程?
43. 在并发情况下,ES如果保证读写一致?
44. ES对于大数据量(上亿量级)的聚合如何实现?
45. 对于GC方面,在使用ES时要注意什么?
46. 说说你们公司ES的集群架构,索引数据大小,分片有多少,以及一些调优手段?
47. 在并发情况下,Elasticsearch如果保证读写一致?
Linux
Linux常用命令
启动网络命令
pwd命令
ls命令
cd命令
mkdir命令
rmdir命令
touch命令
rm命令
echo命令
>和>>命令
文件查看命令
文件编辑命令
cp命令
scp命令
mv命令
man命令
free命令
df命令
wc命令
ps命令
kill命令
用户和权限命令
chmod 赋权限命令
查找命令
压缩命令
source命令
export命令
cut命令
printf命令
awk命令
sed命令
service命令
chkconfig命令
sudo命令
ping命令
ifconfig命令
netstat命令
rpm命令
3. JDK和JRE和JVM的区别 1. JDK JDK(Java SE Development Kit),Java标准的开发包,提供了编译、运行Java程序所需要的各种工具 和资源,包括了Java编译器、Java运行时环境、以及常用的Java类库等。   2. JRE JRE(Java Runtime Environment),Java运行时环境,用于解释执行Java的字节码文件。普通用户只 需要安装JRE来运行Java程序即可,而作为一名程序员必须安装JDK,来编译、调试程序。   3. JVM JVM(Java Virtual Mechinal),Java虚拟机,是JRE的一部分。它是整个Java实现跨平台的核心,负责 解释执行字节码文件,是可运行Java字节码文件的虚拟计算机。所有平台上的JVM向编译器提供相同的 接口,而编译器只需要面向虚拟机,生成虚拟机能识别的代码,然后由虚拟机来解释执行。 当使用Java编译器编译Java程序时,生成的是与平台无关的字节码,这些字节码只面向JVM。也就是说 JVM是运行Java字节码的虚拟机。 不同平台的JVM是不同的,但是他们都提供了相同的接口。JVM是Java程序跨平台的关键部分,只要为不 同平台实现了相同的虚拟机,编译后的Java字节码就可以在该平台上运行。   为什么要采用字节码: 在 Java 中,JVM 可以理解的代码就叫做 字节码 (即Java源代码经过虚拟机编译器编译后扩展名为 .class 的文件),它不面向任何特定的处理器,只面向虚拟机。Java 语言通过字节码的方式, 在一定程度上解决了传统解释型语言执行效率低的问题,同时又保留了解释型语言可移植的特点。 所以 Java 程序运行时比较高效,而且,由于字节码并不针对一种特定的机器,因此,Java 程序无 须重新编译便可在多种不同操作系统的计算机上运行。   什么是跨平台: 所谓跨平台性,是指java语言编写的程序,一次编译后,可以在多个系统平台上运行。 实现原理:Java程序是通过java虚拟机在系统平台上运行的,只要该系统可以安装相应的java虚拟 机,该系统就可以运行java程序。   Java 程序从源代码到运行需要三步: 4. 总结 1. JDK 用于开发,JRE 用于运行java程序 ;如果只是运行Java程序,可以只安装JRE,无序安装JDK。 微信搜索公众号:Java专栏,获取最新面试手册
2. JDk包含JRE,JDK 和 JRE 中都包含 JVM。 3. JVM 是 Java 编程语言的核心并且具有平台独立性。     4. Oracle JDK 和 OpenJDK 的对比 Oracle JDK版本将每三年发布一次,而OpenJDK版本每三个月发布一次; OpenJDK 是一个参考模型并且是完全开源的,而Oracle JDK是OpenJDK的一个实现,并不是完全 开源的; Oracle JDK 比 OpenJDK 更稳定。OpenJDK和Oracle JDK的代码几乎相同,但Oracle JDK有更多的 类和一些错误修复。因此,如果您想开发企业/商业软件,我建议您选择Oracle JDK,因为它经过了 彻底的测试和稳定。某些情况下,有些人提到在使用OpenJDK 可能会遇到了许多应用程序崩溃的 问题,但是,只需切换到Oracle JDK就可以解决问题; 在响应性和JVM性能方面,Oracle JDK与OpenJDK相比提供了更好的性能; Oracle JDK不会为即将发布的版本提供长期支持,用户每次都必须通过更新到最新版本获得支持来 获取最新版本; Oracle JDK根据二进制代码许可协议获得许可,而OpenJDK根据GPL v2许可获得许可。   5. Java有哪些数据类型 Java中有 8 种基本数据类型,分别为: 6 种数字类型 (四个整数形,两个浮点型):byte、short、int、long、float、double 1 种字符类型:char 1 种布尔型:boolean。 byte: byte 数据类型是8位、有符号的,以二进制补码表示的整数; 最小值是 -128(-2^7); 最大值是 127(2^7-1); 默认值是 0; byte 类型用在大型数组中节约空间,主要代替整数,因为 byte 变量占用的空间只有 int 类型的四 分之一; 例子:byte a = 100,byte b = -50。 short: short 数据类型是 16 位、有符号的以二进制补码表示的整数 最小值是 -32768(-2^15); 最大值是 32767(2^15 - 1); Short 数据类型也可以像 byte 那样节省空间。一个short变量是int型变量所占空间的二分之一; 默认值是 0; 例子:short s = 1000,short r = -20000。 int: int 数据类型是32位、有符号的以二进制补码表示的整数; 最小值是 -2,147,483,648(-2^31); 最大值是 2,147,483,647(2^31 - 1); 一般地整型变量默认为 int 类型; 默认值是 0 ; 微信搜索公众号:Java专栏,获取最新面试手册
例子:int a = 100000, int b = -200000。 long: 注意:Java 里使用 long 类型的数据一定要在数值后面加上 L,否则将作为整型解析 long 数据类型是 64 位、有符号的以二进制补码表示的整数; 最小值是 -9,223,372,036,854,775,808(-2^63); 最大值是 9,223,372,036,854,775,807(2^63 -1); 这种类型主要使用在需要比较大整数的系统上; 默认值是 0L; 例子: long a = 100000L,Long b = -200000L。 "L"理论上不分大小写,但是若写成"l"容易与数字"1"混淆,不容易分辩。所以最好大写。 float: float 数据类型是单精度、32位、符合IEEE 754标准的浮点数; float 在储存大型浮点数组的时候可节省内存空间; 默认值是 0.0f; 浮点数不能用来表示精确的值,如货币; 例子:float f1 = 234.5f。 double: double 数据类型是双精度、64 位、符合IEEE 754标准的浮点数; 浮点数的默认类型为double类型; double类型同样不能表示精确的值,如货币; 默认值是 0.0d; 例子:double d1 = 123.4。 char: char类型是一个单一的 16 位 Unicode 字符; 最小值是 \u0000(即为 0); 最大值是 \uffff(即为 65535); char 数据类型可以储存任何字符; 例子:char letter = 'A';(单引号) boolean: boolean数据类型表示一位的信息; 只有两个取值:true 和 false; 这种类型只作为一种标志来记录 true/false 情况; 默认值是 false; 例子:boolean one = true。 这八种基本类型都有对应的包装类分别为:Byte、Short、Integer、Long、Float、Double、 Character、Boolean 微信搜索公众号:Java专栏,获取最新面试手册
类型名 称 byte字 节 short短 整型 字节、位数 最小值 最大值 默认 值 例子 1字节,8位 -128(-2^7) 127(2^7-1) 2字节,16位 -32768(-2^15) 32767(2^15 - 1) 0 0 0 byte a = 100,byte b = -50 short s = 1000, short r = -20000 int a = 100000, int b = -200000 long a = 100000L, Long b = -200000L double d1 = 123.4 float f1 = 234.5f char letter = 'A'; boolean one = true int整形 4字节,32位 -2,147,483,648(-2^31) 2,147,483,647(2^31 - 1) lang长 整型 double 双精度 float单 精度 char字 符 8字节,64位 -9,223,372,036,854,775,808(-2^63) 9,223,372,036,854,775,807(2^63 -1) 0L 8字节,64位   double类型同样不能表示精确的 值,如货币 4字节,32位 在储存大型浮点数组的时候可节省内存 空间 不同统计精准的货币值 2字节,16位 \u0000(即为0) \uffff(即为65,535) 0.0d 0.0f 可以 储存 任何 字符 boolean 布尔 返回true和 false两个值 这种类型只作为一种标志来记录 true/false 情况; 只有两个取值:true 和 false; false   6. Java中引用数据类型有哪些,它们与基本数据类型有什么区别? 引用数据类型分3种:类,接口,数组; 简单来说,只要不是基本数据类型.都是引用数据类型。 那他们有什么不同呢?   1、从概念方面来说 1,基本数据类型:变量名指向具体的数值 2,引用数据类型:变量名不是指向具体的数值,而是指向存数据的内存地址,.也及时hash值   2、从内存的构建方面来说(内存中,有堆内存和栈内存两者) 1,基本数据类型:被创建时,在栈内存中会被划分出一定的内存,并将数值存储在该内存中. 2,引用数据类型:被创建时,首先会在栈内存中分配一块空间,然后在堆内存中也会分配一块具体的空间用来 存储数据的具体信息,即hash值,然后由栈中引用指向堆中的对象地址.   举个例子 微信搜索公众号:Java专栏,获取最新面试手册
//基本数据类型作为方法参数被调用 public class Main{ public static void main(String[] args){ //基本数据类型 int i = 1; int j = 1; double d = 1.2; //引用数据类型 String str = "Hello"; String str1= "Hello"; } }   由上图可知,基本数据类型中会存在两个相同的1,而引用型类型就不会存在相同的数据。 假如"hello"的引用地址是xxxxx1,声明str变量并其赋值"hello"实际上就是让str变量引用了"hello"的内 存地址,这个内存地址就存储在堆内存中,是不会改变的,当再次声明变量str1也是赋值为"hello"时, 此时就会在堆内存中查询是否有"hello"这个地址,如果堆内存中已经存在这个地址了,就不会再次创建 了,而是让str1变量也指向xxxxx1这个地址,如果没有的话,就会重新创建一个地址给str1变量。   7. 从使用方面来说 1,基本数据类型:判断数据是否相等,用==和!=判断。 2,引用数据类型:判断数据是否相等,用equals()方法,==和!=是比较数值的。而equals()方法是比较内存 地址的。 补充:数据类型选择的原则 如果要表示整数就使用int,表示小数就使用double; 如果要描述日期时间数字或者表示文件(或内存)大小用long; 如果要实现内容传递或者编码转换使用byte; 如果要实现逻辑的控制,可以使用booleam; 如果要使用中文,使用char避免中文乱码; 如果按照保存范围:byte < int < long < double;   微信搜索公众号:Java专栏,获取最新面试手册
分享到:
收藏