书到用时方恨少啊
编写了一个注册和登陆,简单的功能却又出来了好多bug,bug使人进步。
一 jdbc中,preparstatement
在Web环境中,有恶意的用户会利用那些设计不完善的、不能正确处理字符串的应用程序。preparstatement.setString()和setInt(解决了恶意字符的问题。
无论多少次地使用同一个SQL命令,PreparedStatement都只对它解析和编译一次。当使用Statement对象时,每次执行一个SQL命令时,都会对它进行解析和编译。
二 euqals 于==
在基本数据类型中的比较用==,比较是否为同一对象地址,比较的是堆内的地址
在复杂的数据类型中的比较,euqals 是object 的方法在后来,被String int 继承之后,自己有有修改了,
在String 中,euqals 比较的是值是否相同,而==则比较的是内存地址是否相同。
同样的,关于 变量和对象
String a=ss;
String a=new String(ss); //new 一个新对象
a 相当于遥控器,而new String() 相当于电视机的关系
对象有自己的属性,和方法。要使用对象必须将对象的内存地址赋予一个变量。变量的值通过赋值表达式改变,而对象的内容通过方法属性的改变。用引用来操作对象。
对象引用,存在栈中,对象存在堆中,局部变量存储在栈中,且它们的类型为基础类型,它们的数据也存储在栈中。
基本类型中,在一个方法中如果被改变赋值结果就被改变,非基本类型数据,在方法中赋值只是在方法中改变而不是。
代码 解释
int a=2;
String b=new String("abc");
method1(a);//
a被永久改变
method(b);
b只是在方法中改变。 方法外仍是原值