我有一个可能很简单的问题,但在搜索论坛后找不到明确的答案:
根据安全发现,我们需要禁用 IIS 上的端口 80(在 Windows 2008 Enterprise 上,IIS 7.5)以确保潜在的入侵者无法连接到端口 80,并被迫将端口 443 用于 SSL。
我们拥有的 Web 应用程序(用 .NET 编写的供应商应用程序)不使用端口 80,因此禁用它是安全的。
我是否只是从绑定设置中删除端口 80?如何轻松禁用 IIS 上的端口 80?
我在求职面试中被问到以下问题,但我无法弄清楚。您将获得以下 Node 元素的链表:
class Node {
int value;
Node next; // points to next element in list
Node random; // points to one random element of list
}
Run Code Online (Sandbox Code Playgroud)
假设您有这些节点的链表(比如 20 个节点),其中“next”指向下一个元素,“random”指向列表的另一个元素(意思是,可以指向列表中一个特定但随机选择的元素) )。即,第一个元素的“随机”可以指向节点#5,节点第二个元素的随机可以指向节点#9,等等。
问题:你如何创建一个全新的链表,它是这个节点列表的深层副本,但为“随机”和“下一个”保持相同的顺序和链接?
换句话说,如果使用这两个指针中的任何一个遍历这个新列表,遍历的顺序将是相同的。
一些人引用的另一个主题将通过默认克隆克隆相同的指针,这不会解决这个挑战。
我试图更好地理解方法引用是如何工作的。在这个例子中,我遵循了代码的逻辑,但我不明白这样做的价值。基本上,在 STEP 2 中的方法引用赋值之后,someMethod() 被用作 MyInterface 的 display() 抽象方法的实现。但为什么呢?这样做我们得到了什么?这在架构上什么时候有意义?好像我们把与类无关的Interface和这个赋值关联起来。
@FunctionalInterface
interface MyInterface {
void display();
}
class DerivClass {
public void someMethod(){
System.out.println("Derived class method");
}
}
public class RefTest {
public static void main(String[] args) {
DerivClass dc = new DerivClass(); // STEP1: class instance
MyInterface myInterf = dc::someMethod; // STEP 2: assign method ref to interface
myInterf.display(); // STEP 3: executes someMethod(), prints "Derived class method"
}
}
Run Code Online (Sandbox Code Playgroud)