1.索引缺點
但索引只对SELECT 语言起作用。对其它SQL基本上只能降低性能和速度。对于需要写入数据的操作,比如DELETE、UPDATE以及INSERT操作,索引会降低它们的速度。这是因为MySQL不仅要把改动数据写入数据文件,而且它还要把这些改动写入索引文件中,从而降底了性能。再而索引的使用会占用磁盘空间,但目前这好像是小问题。所以一个数据库对于更新和修改比较频繁数据库表,最好对列的索引进行全面的考虑,在采用索引时尽可能采用EXPLAIN(mysql自带)进行分析,以便获得最值和最有效率的解决方案。也可以考虑在提高数据性能方面在SQL语句的优化上下功能,也许能得到意想不到的结果。
2. PreparedStatement与Statement的区别在于它构造的SQL语句不是完整的语句,而需要在程序中进行动态设
置。这一方面增强了程序设计的灵活性;另一方面,由于PreparedStatement语句是经过预编译的,因此它构造的SQL语句的执行效率比较高。所以对于某些使用频繁的SQL语句,用PreparedStatement语句比用Statement具有明显的优势。
3. bean 中构造函数影响jsp中初始化值,但是重复刷新网页不会累加,因为bean会重新初始化
4. JDBC 中getInt() 可以初始化为零
5. 父子初始化
class StaticPSParent {
public int n = 0;
public StaticPSParent(){
System.out.println("父构造函数");
}
// static {
// System.out.println("父static块");
// }
private int a = getA() ;
private static int b = getB();
public int getA(){
System.out.println("父类普通函数"+n++);
return 0 ;
}
public static int getB(){
System.out.println("父类static函数");
return 1 ;
}
}
class StaticSub extends StaticPSParent{
public StaticSub() {
System.out.println("子构造函数");
}
// private int a = getA() ;
// private static int b = getB() ;
// static {
// System.out.println("子static块");
// }
//
public int getA(){
System.out.println("子类普通函数"+n++);
return 0 ;
}
public static int getB(){
System.out.println("子类static函数");
return 1 ;
}
}
public class StaticPSTest{
public static void main(String[] arg){
StaticPSParent sp = new StaticPSParent();
StaticSub sb = new StaticSub();
}
}
// 输出
父类static函数
父类普通函数0
父构造函数
子类普通函数0 ???
父构造函数
子构造函数
其中纳闷的是: 在子类中的成员赋值被mark 时,子类普通函数会被调用,子类的static函数确不被调用?
(如果子类会先初始化父类成员,这时如果子类实现了父类的方法,会用子类实现后的方法)
现在测试 static 成员,那子类 没有初始话父类的 static b?
(静态方法是class member,不存在多态。你用哪个类就会用哪个类的静态方法
)
另不mark任何时,输入结果是(先static(同static谁前谁先),普通函数,构造函数,子类如果继承父类,父类构造函数还会被再调用一次)
父static块
父类static函数
父类普通函数0
父构造函数
子类static函数
子static块
子类普通函数0 ???
父构造函数
子类普通函数1
子构造函数
但索引只对SELECT 语言起作用。对其它SQL基本上只能降低性能和速度。对于需要写入数据的操作,比如DELETE、UPDATE以及INSERT操作,索引会降低它们的速度。这是因为MySQL不仅要把改动数据写入数据文件,而且它还要把这些改动写入索引文件中,从而降底了性能。再而索引的使用会占用磁盘空间,但目前这好像是小问题。所以一个数据库对于更新和修改比较频繁数据库表,最好对列的索引进行全面的考虑,在采用索引时尽可能采用EXPLAIN(mysql自带)进行分析,以便获得最值和最有效率的解决方案。也可以考虑在提高数据性能方面在SQL语句的优化上下功能,也许能得到意想不到的结果。
2. PreparedStatement与Statement的区别在于它构造的SQL语句不是完整的语句,而需要在程序中进行动态设
置。这一方面增强了程序设计的灵活性;另一方面,由于PreparedStatement语句是经过预编译的,因此它构造的SQL语句的执行效率比较高。所以对于某些使用频繁的SQL语句,用PreparedStatement语句比用Statement具有明显的优势。
3. bean 中构造函数影响jsp中初始化值,但是重复刷新网页不会累加,因为bean会重新初始化
4. JDBC 中getInt() 可以初始化为零
5. 父子初始化
class StaticPSParent {
public int n = 0;
public StaticPSParent(){
System.out.println("父构造函数");
}
// static {
// System.out.println("父static块");
// }
private int a = getA() ;
private static int b = getB();
public int getA(){
System.out.println("父类普通函数"+n++);
return 0 ;
}
public static int getB(){
System.out.println("父类static函数");
return 1 ;
}
}
class StaticSub extends StaticPSParent{
public StaticSub() {
System.out.println("子构造函数");
}
// private int a = getA() ;
// private static int b = getB() ;
// static {
// System.out.println("子static块");
// }
//
public int getA(){
System.out.println("子类普通函数"+n++);
return 0 ;
}
public static int getB(){
System.out.println("子类static函数");
return 1 ;
}
}
public class StaticPSTest{
public static void main(String[] arg){
StaticPSParent sp = new StaticPSParent();
StaticSub sb = new StaticSub();
}
}
// 输出
父类static函数
父类普通函数0
父构造函数
子类普通函数0 ???
父构造函数
子构造函数
其中纳闷的是: 在子类中的成员赋值被mark 时,子类普通函数会被调用,子类的static函数确不被调用?
(如果子类会先初始化父类成员,这时如果子类实现了父类的方法,会用子类实现后的方法)
现在测试 static 成员,那子类 没有初始话父类的 static b?
(静态方法是class member,不存在多态。你用哪个类就会用哪个类的静态方法
)
另不mark任何时,输入结果是(先static(同static谁前谁先),普通函数,构造函数,子类如果继承父类,父类构造函数还会被再调用一次)
父static块
父类static函数
父类普通函数0
父构造函数
子类static函数
子static块
子类普通函数0 ???
父构造函数
子类普通函数1
子构造函数