发表于: 2017-10-28 21:26:15
1 701
1;先说基础知识吧,不再详细叙述了,挑概念以及结论性的知识记录一下a:tostring方法:Object类提供一个toString方法,所以所有的类都有toString方法,意思是返回当前对象的字符串表达,通过Sout打印对象就是打印该对象的toString()返回值
b:数组越界局限性,如果要存放多个对象,可以使用数组,但是数组有局限性,声明长度是10的数组,不用的数组就浪费了,超过10的个数又放不下。
C;为了解决数组的局限性,引入容器类的概念,ArrayList就是最常见的容器类容量"capacity"会随着对象的增加自动增长,只需要不断往容器里增加对象即可,不用担心会出现数组的边界问题。还涉及到@SuppressWarnings Suppress英文的意思是抑制的意思,这个注解的用处是忽略警告信息,具体取决于()内的关键字。
@SuppressWarnings("unchecked")
public static void main(String[] args)
{
//容器类ArrayList,用于存放对象
ArrayList students = new ArrayList();
students.add(new Student("娃娃"));
System.out.println(students.size());//1
//容器的容量"capacity"会随着对象的增加,自动增长
//只需要不断往容器里增加,不用担心会出现数组的边界问题。
students.add(new Student("哇哇"));
System.out.println(students.size());//2
}
D;集合框架和java框架;集合框架指的是java官方自带的集合类的一个体系,是Java标准库自带的东西;而java框架指的是一系列用来方便开发、降低耦合度、提高开发速度、解决实际开发中存在的一系列问题等用途的第三方java类库
E:构造方法&重载;通过一个类创建一个对象,这个过程叫做实例化,实例化是通过调用构造方法(又叫做构造器)实现的;无参的构造方法,如果不写,就会默认提供一个 ,同时构造方法的作用就是:创建对象的时候,对对象中的属性值做初始化;此外构造方法也可以重载,方法重载的定义: 在同一个类中,如果同时出现了几个方法名相同,但参数列表不同的方法,那么他们就可以说是方法重载;方法重载与返回值类型无关;上面的参数列表不同包括 参数个数 或者是参数类型不同,两者也可以同时满足
F;关于list和泛型;ArrayList实现了接口List,常见的写法会把引用声明为接口List类型;接口引用指向子类对象(多态);而泛型就是一种限制,对于不使用泛型的容器,可以往里面放不同的类,但是取出来要转型,放的多了就乱了,引入泛型Generic,声明容器的时候,就指定了这种容器,只能放某一个类,放其他的就会出错,子类也可以。
G:引用和指向;这个写到注释里了,也简单说一下,引用的意义所在,引用的目的之一就是允许开发人员操作对象。 如果没有引用,对象就无法被访问。如果一个对象没有任何引用指向它,那么它也就满足了被垃圾回收的条件,在适当的时候,就会被回收掉,因为谁也不能用到它
H:四种修饰符private私有的,package/friendly/default 不写,protected 受保护的;public公共的;从作用域来看,public能够适用所有的情况;但是,又不会真正全部都适用public规律就是:属性通常使用private封装起来;方法一般使用public用于被调用;会被子类继承的方法,通常使用protected;package用的不多(一般新手会用package,因为还不知道有修饰符这个东西)再就是作用范围最小原则;简单说,能用private就用private,不行就放大一级,用package,再不行就用protected,最后用public。 这样就能把数据尽量的封装起来,没有必要露出来的,就不用露出来了
I:类属性;当一个属性被static修饰的时候,就叫做类属性,又叫做静态属性;当一个属性被声明成类属性,那么所有的对象,都共享一个值;与对象属性对比:不同对象的对象属性的值都可能不一样。比如student1的id和 student2的id是不一样的。但是所有对象的类属性的值,都是一样的;
G:属性初始化的顺序,这里想到上次小课堂问到的问题,属性初始化的顺序为: 1、声明变量的时候的初始化 2、初始化块 3、构造函数初始化;所以建立一个新的对象的时候,其属性最终应该是构造函数中的赋给的值。给放的位置无关,代码是在初始化结束之后,才把属性的值打印出来,并不是按照先后顺序打印属性的初始化过程。最后打印出来的值,是构造方法里的值,恰恰证明构造方法就是最后一个被赋值的
K:单例模式;顾名思义,就是只有一个实例,当希望一个对象重复使用,这样通过单例模式,就总是使用这么同一个对象,免去了每次都生成新的对象的开销,还有就是有的类,就应该只有一个实例,比如地球Earth这个类,从语义上讲,就应该只有一个实例,多个实例与事实不符。最关键的是三元素:1. 构造方法私有化,2. 静态属性指向实例,3. public static的 getInstance方法,返回第二步的静态属性
饿汉模式
懒汉模式
检测
2;然后昨天遗留的crud,这个也不再细说了,贴几张图
添加
删除
更新
明日计划的事情:
1;没忍住恶补了一波基础,感觉很有用,大段的代码看起来清爽了不少,明天继续补
2;JDBC结合,通过servlet操作数据库,基本上完成了,明天完成mvc部分
3;任务二要延期了,2-3天吧,多看看基础
遇到的问题及解决方法:
1;第一次报了格式转换异常,是int为0的时候不能从字符串转换为整数,有点怪
加上try。。catch捕捉就可以了
try {
student.setStudy_id(Integer.parseInt(request.getParameter("study_id")));
student.setQq(Integer.parseInt(request.getParameter("qq")));
} catch (NumberFormatException e) {
e.printStackTrace();
2,是增加的时候学号和qq没数据
检查发现是,写成大写了,给提交的html类型不一致
修改之后就好了
3;删除的时候报语法错误。。。
检查发现。。。sql语句少些了from。。。小问题,小细节要注意,尤其是没办法自动检测语法的时候
4;更新还是报空值
收获:
1;上述的java简单语法基础
2;用servlet操作数据库
评论