金山云java工程师线上面经
金山
java
- 线程同步与阻塞的关系?同步一定阻塞吗?阻塞一定同步吗?
- 为什么hashmap1.8后面用红黑树了?红黑树和别的树有什么不同
- redis 和 MongoDB 的区别。几个概念对比,还有底层实现。
- 并列的并发消费问题
- get 和post的区别
- redis如何处理分布式服务器并发造成的不一致
- Java怎么挖取回收器相关原理
- 如果现在有8G内存,一个程序很大,由于还要留下一部分内存供其他程序使用,那么如何控制这个程序使其占用的内存不能超过6G呢?
- 如何创建单例模式?说了双重检查,他说不是线程安全的。如何高效的创建一个线程安全的单例?
- 复合索引是如何实现的?
- 如何实现一个lru
- GC 用什么收集器?收集的过程如何?哪些部分可以作为 GC Root?
- 操作系统中虚拟存储器的作用,分页从逻辑地址到物理地址的映射过程
- 说一下Namenode中维护的元数据中都存储了哪些信息?
- 反爬虫的机制,有哪些方式
- 如何保存会话状态,有哪些方式、区别如何
- 高并发量大的话怎么处理热点,数据等
- 写出一种验证11位手机号码的正则表达式。
- 讲讲聚类索引和非聚类索引
- JDK1.8之后如何链地址法,链表长度是多少的时候会转换成红黑树。
- ThreadPoolExcutor的源码看过吗? 没有特别仔细的看,但是他的原理是巴拉巴拉
- maven熟吗,如果遇到版本不匹配的问题怎么解决
- innDB 和 MyISAM 的区别?
- linux的分段有了解吗?
- Myql中的事务回滚机制概述
- spring中用到哪些设计模式
编程题
给你一个整数数组 coins 表示不同面额的硬币,另给一个整数 amount 表示总金额。
请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额,返回 0 。
假设每一种面额的硬币有无限个。
题目数据保证结果符合 32 位带符号整数。
示例 1:
输入:amount = 5, coins = [1, 2, 5] 输出:4 解释:有四种方式可以凑成总金额: 5=5 5=2+2+1 5=2+1+1+1 5=1+1+1+1+1
示例 2:
输入:amount = 3, coins = [2] 输出:0 解释:只用面额 2 的硬币不能凑成总金额 3 。
示例 3:
输入:amount = 10, coins = [10] 输出:1