SQL,While循环,递归存储过程或游标中哪个更快?我想在存储过程中的几个位置优化性能.我正在优化的代码格式化一些字符串以输出到文件.
鉴于以下代码:
public class Musician {
public void play() {
// do something
}
}
Run Code Online (Sandbox Code Playgroud)
.
public class Drummer extends Musician {
public void turnsDrumStick() {
// do something
}
}
Run Code Online (Sandbox Code Playgroud)
.
public class Guitarist extends Musician {
public void strummingStrings() {
// do something
}
}
Run Code Online (Sandbox Code Playgroud)
我可以使用多态来执行以下操作:
Musician m1 = new Guitarist();
Musician m2 = new Drummer();
m1 = m2;
Run Code Online (Sandbox Code Playgroud)
但是,我看不到子类的方法:
m1.strummingStrings(); //COMPILATION ERROR!
Run Code Online (Sandbox Code Playgroud)
如果我使用:
Guitarist m1 = new Guitarist();
Run Code Online (Sandbox Code Playgroud)
不是更好吗?使用Musico类型引用子类的对象有什么好处?m1 = m2;例如,我可以归因于一种可能性吗?还是有其他优势?
我看到这篇文章,但我仍然感到困惑:使用超类来初始化子类对象java
我有一个包含 3 列的表格:A(数字)、B(数字)和 C(布尔值)。
我需要创建一个规则,以防止使用列 A 和 B 以及 C 等于 true 创建记录。例如。
这将被允许:
A B C
1 2 true
1 2 false
1 2 false
Run Code Online (Sandbox Code Playgroud)
但是这个,不:
A B C
1 2 true
1 2 true
1 2 false
Run Code Online (Sandbox Code Playgroud) 给出以下代码:
public class NewClass {
public static void main(String[] args) {
List<String> fruits = Arrays.asList("Orange", "Pineapple", "Banana", "Banana");
Set<String> fruitsSet = new HashSet<>();
for (String fruit : fruits) {
fruitsSet.add(fruit);
}
for (String fruit : fruitsSet) {
System.out.println(fruit);
}
}
}
Run Code Online (Sandbox Code Playgroud)
每次运行代码时,元素的顺序都是相同的,消除了重复项Banana,这是典型的HashSet实现:
Banana
Pineapple
Orange
Run Code Online (Sandbox Code Playgroud)
我的问题是,为什么订单每次都相同,因为规范说"它不能保证集合的迭代顺序"(https://docs.oracle.com/javase/7/docs/api/ java/util/HashSet.html)
java ×2
constraints ×1
cursor ×1
hashset ×1
oop ×1
oracle ×1
performance ×1
polymorphism ×1
sql ×1
sql-server ×1
while-loop ×1