本文最后更新于:2022年8月13日 晚上
单选
1、异或运算
2、栈的先入后出性质
3、引用类型和值类型创建对象和调用函数时分别会创建几个t对象?
| T t = new T(); func(t);
函数定义如下: public void func(T t){}
|
4、throw和throws的区别
- throws 关键字用于声明异常,它的作用和try-catch类似;而throw 关键字用于显示地抛出异常
- throws 关键字后面跟异常的名字;而 throw 关键字后面跟的是异常的对象
- throws 关键字出现在方法签名上;而 throw 关键字出现在方法体内部;
- throws 关键字在声明异常时可以跟多个异常,用逗号隔开;而 throw 关键字每次只能抛出一个异常;
5、TCP套接字函数哪个函数会发生阻塞?哪个不会产生阻塞?
accept(), bind(), write(), read()
6、子类A,父类B,父子类中均有:构造函数、静态代码块、非静态代码块;问 new 一个子类对象,这6个部分的调用顺序是怎么样的?
7、
问答
计算机中你了解的端口号和对应的服务有哪些?
昨天看图解TCP刚看了端口号相关的,结果就记住了22,80常用的,其他的都忘了。。
知名端口号: 0-1023分配
动态分配端口号的取值范围:49152-65535之间。
TCP知名端口号:
端口号-服务
21-FTP
22-SSH
23-telnet
25-SMTP
20-HTTP
443-HTTPS, http protocol over TLS/SSL
53-DNS
编程1:leetcode208 实现Trie前缀树
https://leetcode.cn/problems/implement-trie-prefix-tree/
好家伙,我在c++编译器里一直报错,一看结果是没有切换成Java语言
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
| class Trie { private Trie[] children; private boolean isWord = false;
public Trie() { children = new Trie[26]; isWord = false; }
public void insert(String word) { Trie node = this; for (Character ch : word.toCharArray()) { int idx = ch - 'a';
if (node.children[idx] == null) { node.children[idx] = new Trie(); node = node.children[idx]; } else { node = node.children[idx]; } } node.isWord = true; }
public boolean search(String word) { Trie node = this;
for (Character ch : word.toCharArray()) { int idx = ch - 'a';
if (node.children[idx] == null) { return false; } else { node = node.children[idx]; } } return node.isWord; }
public boolean startsWith(String word) { Trie node = this;
for (Character ch : word.toCharArray()) { int idx = ch - 'a'; if (node.children[idx] == null) { return false; } else { node = node.children[idx]; } } return true; } }
|
编程2:leetcode hard 25. K 个一组翻转链表
高频题,刷的时候跳过了
https://leetcode.cn/problems/reverse-nodes-in-k-group/