
Java面试
诗9趁年华
这个作者很懒,什么都没留下…
展开
-
程序员面试经典系列(三):URL化
题目描述: 编写一种方法,将字符串中的空格全部替换为%20。假定该字符串尾部有足够的空间存放新增字符,并且知道字符串的“真实”长度。(注:用Java实现的话,请使用字符数组实现,以便直接在数组上操作。) 示例: 输入:"Mr John Smith ", 13 输出:"Mr%20John%20Smith" 输入:" ", 5 输出:"%20%20%20%20%20" 提示: 字符串长度在 [0, 500000] 范围内。 更多详细描述,可见官网 解题思路 方法一:直接调原创 2021-10-09 00:00:00 · 142 阅读 · 0 评论 -
程序员面试经典系列(二):判定是否互为字符重排
题目描述: 实现一个算法,确定一个字符串 s 的所有字符是否全都不同。 示例: 输入: s = "leetcode" 输出: false 输入: s = "abc" 输出: true 限制: 0 <= len(s) <= 100 如果你不使用额外的数据结构,会很加分。 更多详细描述,可见官网 解题思路 尽管该题是希望在不使用额外数据结构的情况下,但是可以先解决问题,再优化算法。 方法一:借助Set集合,将字符串s所包含的元素全部放到Set集合中,如果最后Set集合的大小和字符串s的长度相原创 2021-10-08 00:00:00 · 319 阅读 · 0 评论 -
程序员面试经典系列(一):判定字符是否唯一
题目描述: 实现一个算法,确定一个字符串s 的所有字符是否全都不同。 示例: 输入: s = "leetcode" 输出: false 输入: s = "abc" 输出: true 限制: 0 <= len(s) <= 100 如果你不使用额外的数据结构,会很加分 更多详细描述,可见官网 解题思路 方法一:将字符串s转成字符数组,对当前的字符数组存入set集合中,最后比较set集合与字符数组的长度是否相等即可。 public boolean isUnique(String astr) {原创 2021-10-07 00:00:00 · 174 阅读 · 0 评论 -
面试题59-I:滑动窗口的最大值
题目: 给定一个数组 nums 和滑动窗口的大小 k,请找出所有滑动窗口里的最大值。 (本题出现于快手2020校园招聘秋招笔试算法C试卷) 示例: 输入: nums = [1,3,-1,-3,5,3,6,7], 和 k = 3 输出: [3,3,5,5,6,7] 解释: 滑动窗口的位置 最大值 [1 3 -1] -3 5 3 ...原创 2021-10-06 13:52:49 · 190 阅读 · 0 评论 -
2021完美世界春招java游戏开发笔试题(一)--最大小栈
自己实现一个栈,其中包含出栈函数pop();入栈函数push(int data);计算栈中当前最大值int max();计算当前栈中最小值int min() 输入描述: 输入为一行,M(32位整数)、N(2 ≤ N ≤ 16),以空格隔开。 输出描述: 为每个测试实例输出转换后的数,每个输出占一行。如果N大于9,则对应的数字规则参考16进制(比如,10用A表示,等等) 示例1 输入 7 2 输出 111 算法思想:思路比较简单,直接上代码吧。 java代码 import java.util.Scan原创 2021-04-09 14:11:58 · 516 阅读 · 0 评论 -
手撸代码系列(十八)--进制转换
给定一个十进制数M,以及需要转换的进制数N。将十进制数M转化为N进制数 输入描述: 输入为一行,M(32位整数)、N(2 ≤ N ≤ 16),以空格隔开。 输出描述: 为每个测试实例输出转换后的数,每个输出占一行。如果N大于9,则对应的数字规则参考16进制(比如,10用A表示,等等) 示例1 输入 7 2 输出 111 算法思想:思路比较简单,直接上代码吧。 java代码 import java.util.Scanner; public class Main{ /** * 给定一个原创 2021-03-31 15:20:04 · 221 阅读 · 1 评论 -
谈谈你对OOM的理解
结论先行:常见的OOM (一)栈内存溢出:java.lang.StackOverflowError (二)堆内存溢出:java.lang.OutOfMemoryError: Java heap space (三)直接内存溢出:java.lang.OutOfMemoryError: Direct buffer memory (四)“垃圾回收上头”:java.lang.OutOfMemoryError: GC overhead limit exceeded (五)元空间溢出:java.lang.OutOfMem原创 2021-03-26 10:11:23 · 456 阅读 · 0 评论 -
手撸代码系列(十七)--利用栈检查括号是否匹配
设计一个算法判定括号是否正确配对(包括三种括号并且需要考虑大中小三种括号的嵌套顺序)。 算法思想: 出现左括弧,进栈 出现右括弧,先判断栈是否为空 (1)如果不为空,看是否匹配栈顶括号。 (a)如果匹配,栈顶元素出栈。 最后检查栈是否空,如果为空,匹配成功,否则不匹配 import java.util.Scanner; import java.util.Stack; public class Main{ public static void input(){ Scanne原创 2020-10-27 08:58:22 · 238 阅读 · 0 评论 -
计算机网络常见面试题
计算机网络常见面试题 一、请简述TCP/UDP的区别 TCP和UDP是OSI模型中的运输层中的协议。TCP提供可靠的通信传输,而UDP则常被用于让广播和细节 制交给应用的通信传输。两者的区别大致如下: (1)TCP面向连接,UDP面向非连接即发送数据前不需要建立链接; (2)TCP提供可靠的服务(数据传输),UDP无法保证; (3)TCP面向字节流,UDP面向报文; (4)TCP数据传输慢,UDP数据传输快 (5)在一个TCP连接中,仅有两方进行彼此通信,因此广播和多播不能用于TCP原创 2020-10-26 10:59:03 · 902 阅读 · 2 评论 -
JVM调优
根据自己工程实践中的经验,总结了一些基础的jvm参数相关的使用。 一. 请问如何盘点查看JVM系统默认值? 参数的类型 (1)标配参数 java -version java -help java -showversion (2)X参数(了解) -Xint 解释执行 -Xcomp 第一次使用就编译成本地代码 -Xmixed 混合模式 **(3)XX参数 (重点!!!)** XX参数,又分两种,一种是Boolean类型,一种是设置值类型(key-value)。原创 2020-09-29 10:22:51 · 193 阅读 · 0 评论 -
集合类线程不安全问题
new ArrayList(); 底层new的是什么? 数组 凡是数组,一定有类型,请问new出来的数组是什么类型? // 超过10怎么扩容? Objiect类型 既然是数组,必然在内存中占据连续的内存空间,请问初始值为多少?(java8为例) 10(懒加载的方式) 源码中的构造方法: /** * Constructs an empty list with an initial capacity of ten. */ public ArrayList() { ..原创 2020-09-12 16:19:02 · 244 阅读 · 0 评论 -
常见java基础面试笔试题
要想有机会面试,还得先进行笔试,也是考核专业基本功是否扎实。 考点一:自增运算符 public static void main(String[] args){ int a = 1; // for(int i = 0; i < 10; i++){ for(int i = 0; i < 10; ++i){ a = a++; } System.out.println(a); // 1 } 分析: ...原创 2020-09-09 11:18:21 · 317 阅读 · 0 评论 -
JVM底层原理、四大垃圾回收算法详解(长文警告)
JVM教程笔记转载 2020-07-22 18:33:25 · 200 阅读 · 0 评论