1.上转型对象:父类声明,子类实例化的对象称为上转型对象。
使用规则: 上转对象不能操作子类新增的成员变量,失掉了这部分属性,不能使用子类新增的方法,失掉了一些功能。 上转型对象可以操作子类继承的成员变量,也可以使用子类继承的或重写的方法。 如果子类重写了父类的某个方法后,当对象的上转型对象调用这个方法时一定是调用了子类重写的方法。 因为程序在运行时知道,这个上转对象的实例是子类创建的,只不过损失了一些功能而已。
2.接口回调:接口回调是指可以把实现某一接口的类创建的对象赋给该接口声明的接口变量中。 那么该接口变量就可以调用被类实现的接口中的方法。实际上,当接口变量调用被类实现的接口中的方法时, 就是通知相应的对象调用接口的方法。 接口声明,类实例化
3.异或运算规则:相同为0,不同为1;与&:全1则1,否则为0;或|:全0则0,否则为1;
4.ArrayList:允许其存储的数据元素重复,并且可以向索引指定的位置添加数据元素
HashSet:不允许存储的元素重复,也不可以向指定的位置添加数据元素。
5.Collection的子接口只有List(ArrayList,LinkedList)和Set(TreeSet,HashSet)Map(HashMap和TreeMap) 区别collection中存储了一组对象,Map中存储的是关键字
6.当子类重写了父类的某个方法后,可以调用父类内受保护的方法,但不能调用被重写的父类的方法。 上转型对象可以调用子类继承的成员变量,也可以用子类继承的或重写的方法,但不能调用子类新增的方法, 因为损失了一部分功能。
7.方法重载:指一个类内可以有多个方法有相同的名字,但这些方法的参数必须不同,即参数个数或类型不同。 方法重写:若子类的方法名和父类相同,参数个数和类型也完全相同。
重写规则:(1)方法的参数个数必须相同(2)方法的参数对象的数据类型必须相同(3)方法重写时部分修改返回值类型(4)子类不得降低父类同名方法的访问级别(5)子类重写方法的访问权限大于等于父类同名方法的访问权限。
8.ArrayList:为按顺序存储元素,更有利于遍历元素。本质是数组,线性的
LinkedList:为按数据元素的地址进行存储,更方便与添加删除某一元素。本质是链式
9. JDK:Java Development Kit Java开发工具包
JRE: Java Runtime Environment Java运行环境
SQL: Structured Query Language 结构化查询语言
HTML:Hypertext Markup Language 超文本表示语言
10.方法的访问级别共有四种;
当前类的内部 同一个包的其他类 不同包子类 不同包非子类
public1111 protected111 friendly11 privite1
11.左链接的from t1,left join t2,on t1.XX=t2.XX
12. Map_Set-迭代器-while
13.加载驱动:Class.forName("com.mysql.jdbc.Driver"/);
获取连接:String url = "jdbc:mysql://localhost:3306/text"; username = "root" String password = "root";Connection con = DriverManager.getConnection(url,username,password);
生成语句对象:stmt = con.createStatement();
用语句对象执行sql语句
关闭连接
14.Java的特点:1Java是纯面向对象的编程语言 2Java具有跨平台型 3既是解释性语言又是编译执行语言 4Java具有自动垃圾回收极致(GC)
15.Java标示符的命名规则:1由英文字母,数字,下划线,$组成,长度不限,其中英文字母有大小写区分 2 标示符第一个字符不能是数字 3 区分大小写 4 不能包括空格
16.Java基本数据类型:字节型8 短整型16 整形32 长整形64 单精度32 双精度64 字符型16 布尔型8
17.正数:原码,反码,补码均相同 负数:反码 = 符号位保持不变,其它位取反 补码 = 反码末位 + 1
18.Java基本数据类型由低到高 byte->short/char->int->long->float->double 可以用隐式类型转换:当把级别低的变量赋值给级别高的变量时,自动完成数据类型转换。 也可以显示类型转换:把级别高的转为级别低的。
19.二进制与十进制之间的转换
方法一:整数部分:除2取余
方法二:幂加和法 小数部分:乘2取整18.移位运算符和三目条件运算符>> 右移>>> 无符号位右移:无论正负,都在高位插入0<< 左移19.continue: 用于循环体内,跳过continue之后的代码,回到循环体首,执行下一次循环break:用于跳出当前的循环体,结束循环
20.成员变量命名规则:1.成员变量名必须遵循标示符命名规则,同时首字母小写,如果多个单词,则第二个单词开始的首字母须大写2.成员变量定义无先后,但最好集中在类顶部
21.static:可修饰成员变量和方法。由static修饰的叫类成员变量,类成员变量的值在对象之间共享。 并且用类名直接调用
22.构造方法:名称必须与它所在类名称完全相同,并且不包含返回值类型描述部分; 在对象实例化时被调用,如果类的创建者没有提供构造方法,则由系统自动分配一个无参构造方法
23.直接在类中声明的变量叫成员变量(整个类内有效),在方法内定义的变量和方法的参数叫局部变量注:如果局部变量与成员变量的名相同,则成员变量被隐藏,即在方法内无效如果需要在局部变量作用域使用成员变量,则需使用this指针
24.继承extends 利用继承,我们可以创建一个具有共性的一般类,由一般类再派生出有特殊属性的新类, 新类继承一般类的状态和行为,并可以增加。由继承得到的成为子类(派生类),被继承的 称为父类(超类)
25.this关键字可以访问所有级别的成员变量和方法原则 1:为类的内部对象,所以和类外部对象访问成员变量和方法的规则一致,语法:this<变量名>和this<方法名> 2:只能在当前类的内部使用,但是,不能在static修饰的方法 3:通常被省略,除非实例方法中包含与成员变量同名的局部变量时,访问成员变量需要this
26.super调用父类构造方法 1.如果父类提供了构造方法,并且父类不拥有无参构造方法,则要求子类拥有相结构的构造方法 2.如果父类拥有默认的构造方法,子类又设有明确指定调用父类的哪个构造方法, 则子类的构造方法隐式的有super()操作 super使用规则: 1.super可以访问被子类重写的父类同名方法和被子类隐藏的父类的成员变量。 2.可以使用super关键字调用父类的构造方法。
27.上转型和子类区别:上转型不能调用子类新增的方法 和父类区别:使用子类重写的方法 由于上转型是父类声明的故上转型只知道父类的定义方法(功能),上转型是子类实例化是子类实例化, 故具体执行父类功能是,要看是否重写. 如果子类重写了父类的某个方法后,当对象的上转型对象调用这个方法时一定是调用了子类重写的方法。 因为程序在运行时知道,这个上转对象的实例是子类创建的,只不过损失了一些功能而已。
28.final 可以修饰类,方法和变量final修饰类不能被继承 方法不能被重写 修饰的是常量,不能修改其值
29.多态:当一个父类存在多个派生类的时候,并且每个派生类都重写了父类中的某个方法, 那么父类的该方法在不同的子类中就出现了不同的行为,这就是多态的一种形式
30.abstract 修饰的类叫抽象类,该类不能被实例化,也就是不能使用new来创建 修饰方法叫抽象方法,抽象方法只用声明,而没有具体的方法体
31.抽象重要规则 1.如果一个非抽象类是一个abstract类的子类,它必须具体实现父类的所有abstract方法 2.如果一个类中含有abstract方法,那么这个类必须用abstract来修饰 3.一个abstract类只关心它的子类是否具有某种功能, 并不关心功能的具体行为,功能的具体行为由子类负责实现
32.加强for循环 for(<几种元素数据类型>)<元素>:<存储元素的集合>
33.冒泡排序法:最基本的排序法之一 运行机制:通过循环遍历元素,并调整相邻元素顺序的一种简单排序方法
34.位运算与逻辑运算二者的区别: 1.逻辑运算只能对Boolean型进行运算,而位运算还可对数值进行逻辑运算 2.逻辑运算符有时会出现短路的情况,即前面表达式得到最终结果时后面不用执行,而位运算不可
35.程序语句按结构可以划分为三种形式:顺序结构,分支结构,循环结构
36. 类是Java中最基本的组成单元,Java将描述一类事物的属性(状态)和功能(行为)封装在一起。 属性用成员变量来刻画;功能通过方法来体现。
37.方法的使用规则: 1. 如果一个方法包含多个参数,各个参数之间用逗号(,)隔开。 2. 如果方法没有返回值,应使用void关键字 3. 方法名必须遵循标识符命名规则,同时首字母必须小写,如果由多个单词组成,从第二个单词开始首字母必须大写。 4. 方法的参数在整个方法内有效,方法内定义的局部变量从它定义的位置之后开始有效,直到方法的末尾。
38.实例变量与类变量: 1.当Java程序执行时,类的字节码文件被加载到内存,如果该类没有创建对象,类的实例成员变量不会被分配内存。 但是,类中的类变量,在该类被加载到内存时,就分配了相应的内存空间。 2.如果该类创建对象,那么不同对象的实例变量互不相同,即分配不同的内存空间,而类变量不再重新分配内存, 所有的对象共享类变量,即所有的对象的类变量是相同的一处内存空间,类变量的内存空间直到程序退出运行, 才释放所占有的内存。
39.实例方法和类方法: 1.当类的字节码文件被加载到内存时。类的实例方法不会被分配入口地址, 当该类创建对象后,类中的实例方法才分配入口地址,从而实例方法可以被类创建的任何对象调用执行。 需要注意的是,当我们创建第一个对象时,类中的实例方法就分配了入口地址,当再创建对象时,不再分配入口地址。 也就是说,方法的入口地址被所有的对象共享,当所有的对象都不存在时,方法的入口地址才被取消。 2.对于类中的类方法,在该类被加载到内存时,就分配了相应的入口地址。 从而类方法不仅可以被类创建的任何对象调用执行,也可以直接通过类名调用。 类方法的入口地址直到程序退出才被取消。
40.包的命名规则: 1.使用英文字母作为包的名称。 2.包名要.如果包名包含多个层次,每个层次应该用“.”分割。 3.如果包名包含多个层次,每个层次应该用“.”分割。
41.字符串的使用详见课件第一阶段13
42.数据结构按逻辑关系主要划分为以下四类:集合,线性表,树,图
43.数组线性表和数组的区别:数组是有定长的有序的线性结合 数组线性表是任意长度的线性集合
44.Set中的元素是唯一的不允许有重复 TreeSet插入和删除数据元素时效率较低 Set对应迭代器
45.1.映射Map是一个独立的接口,描述的是键key-值value的对应关系,Map不允许主键重复,并且每个键只能对应一个值2.HashMap不能直接装入迭代器,必须将HashMap的所有键key装入迭代器,再进行遍历,或者是使用Entry类,将所有数据元素转化为Entry的集合进行处理。
46.异常的两种处理机制:捕获和抛出
47.ArrayList和Vector的区别: 二者都是有序集合 区别:ArrayList是线程不安全的,而Vector是线程同步,所以是安全的 即Vector增长原来的一倍,ArrayList增加原来的0.5倍。
48.声明接口的关键字:interface49.List和Set的区别:1.List为有序可重复,类似于Java的数组 Set是不能重复的。2.List适合经常追加数据,插入,删除数据。但随即取数效率比较低。 Set适合经常地随即储存,插入,删除。但是在遍历时效率比较低。
数据库:数据库包含三类文件:数据文件,控制文件,日志文件
1.SQL:结构化查询语言 DBMC:数据化管理系统
2.创建数据表:create table 表名 (字段名 字段类型, column_name2 column_type2[, …]] )
3.添加记录:insert into (id,name,sex,age,address) values (98,'小明','男',18,'长春')
4.删除记录:delete from employee where sex = '女' and age > 24
5.修改记录:update employee set address = '南京' where name = '张四' and表示与,or表示或
6.基本查询:select ID,Name,Sex,Age,Address from enployee where Sex = '女' and age < 查有重名现象:SELECT name,count(*) from enployee group by name having count(*) > 1 Group by 的分组字段根据字段前后顺序分组
Order by 排序字段根据字段前后顺序排序(后一个在前一个基础上排序)
ASC表示正序,DESC表示逆序
having <条件表达式>(结果集约束)
distinct(去掉重复记录) ] <目标列表达式> (多个表包含重复列名需要指明所属表)
WHERE :从硬盘到内存上的过滤。
HAVING:对已经计算好的结果再进行过滤。
7.between … and 若 between 后面的值小于 and 后面的值,则查询出的结果集为空 In&&Like LIKE是在模糊查询时使用的关键字,使用%作为通配符 In是指定查询条件包含的字段是否为空值时使用的关键字
8.常用函数 count:select count(*) from animal where address = ‘中国’ sum:select sum(*) from animal where kind = ‘熊科’ avg:select avg(*) from animal where type = ‘象科’(求平均值) max:select max (number) from animal min:select min (number) from animal
9.MySQL使用limit关键字能够获取表中一部分相邻行的记录信息。 pl:查询animal表中第3条~第7条记录的值 select * from t1 limit 3, 5
10.主键约束:好处:当某个字段被设计为主键时,就不可以重复。避免重复发生 坏处:当表中的数据量达到一定量时,因为每一条都要与之前的记录比较,插入时会比较慢。 作用:确保记录与记录之间的差异性
11.唯一性约束:唯一性约束是指数据表中的某一个字段值不能有重复的现象。 当一个字段(列)被设置了唯一性约束unique时,插入数据将检查该字段的数据合理性。
12.非空约束:非空约束是指数据表中的某一个字段必须为非NULL的值,即向表中插入数据时, 必须提供非NULL字段的值,以确保数据能正确添加到表中。
13.默认值约束:默认值约束是指向数据表中添加数据时,具有默认值约束的字段,如果insert语句未对该字段赋值,则该字段自动以默认值填充。
14.简单连接:外连接:左外连接:left join … on 以左侧表为主表右外连接:right join … on 以右侧表为主表全外连接:full join … on 两个表同时全部显示。select t1.ID,t1.Name,t2.PRICE from t1,t2 where t1.ID=t2.codeselect t1.ID,t1.Name,t2.PRICE FROM T1,LEFT JOIN T2 ON T1.ID = t2.CODEJDBC1.加载驱动,获取连接,生成语句对象,用语句对象执行SQL语句,关闭连接加载驱动:Class.forName("com.mysql.jdbc.Driver");获取连接:coon = DriverManager.getConnection("jdbc:mysql://localhost:3306/shxt","root","root") ;1.如果连接的不是本地数据库(当前计算机),请将localhost修改为目标主机的名称。2.请正确描述数据库名称部分,用户名及密码。3.获取的连接对象conn请及时关闭。生成语句对象:stmt = coon.createStatement();用语句对象执行SQL语句:
HTML:
1.Hyper Text Markup Language:超文本标示语言
2.HTML常用于编写Web静态页面
3.HTML页面的基本结构//HTML起始标签//页面头部结尾标签//页面正文起始标签
4.font标签用于控制页面文字的字体(face),字号(size 表示字号,数值从1~7依次变大。)颜色(color)
5.表格标签可用于页面布局,Table标签为表格标签,TR标签为行标签,TD标签为列标签,规定TD要包含在TR中
6.表格标签的常用属性border属性表示边框的宽度rowspan属性表示TD跨越的行colspan属性表示TD跨越的列width属性指定宽度height属性指定高度align的属性值及含义如下:align是对齐属性。它的值可以是left(左对齐)、center(中间对齐)、right(右对齐)valign的属性值及含义如下:属性规定单元格中内容的垂直排列方式。left内容居左显示right内容居右显示center内容水平居中显示valign的属性值及含义如下top内容居顶显示bottom内容居底显示center内容垂直居中显示
7.HTML框架标签;框架集标签用于替换HTML的body标签,将整个页面划分为几个部分,可以垂直和水平划分框架集划分的每部分都是一个框架frame,每个frame可以引用一个页面框架集划分出的部分也可以是框架集,即框架集可以嵌套
8.iframe标签用于在整个页面的某个部分创建一个独立的窗体,这个窗体可以显示一个独立的html页面
9.超链接标签:超链接标签包含两个重要属性
href属性:指定超链接的目标页面名称
target属性:指定在某个框架页面中显示
10.控件标签:
select标签:下拉菜单北京上海广州
textarea标签:用于指定大文本域,包含cols和rows两个重要属性,分别表示文本域包含的列和行。
password:密码文本域password与普通文本域text、大文本域textarea都使用name属性获取传递的值在被请求页面使用request对象接收String pw = request.getParameter(“pw”);单选框radio的传值:
radio通过name属性分组,相同name的radio为一组String result = request.getParameter(“sex”);
复选框checkbox的传值:checkbox通过name属性分组,相同name的checkbox为一组String[] results = request.getParameterValues(“ck”);
下拉select的传值:下列菜单通过name属性获取选中的option选项1选项2String result = request.getParameter(“sel”);
11.图片标签:包含src和alt两个重要属性,src属性用于指定图片的路径,alt属性用于设置图片的默认信息
12.session的作用域当使用浏览器访问Web服务器时、会创建一次会话(即session)、我们可以向session中存储信息,而这些信息在我们断开服务器之前都是有效的向session中存储数据session.setAttribute(“key”, “value”);从session中获取数据Object obj = session.getAttribute(“key”)
13.application是应用级别的对象,在整个应用程序拥有唯一作用域,如果存在多个session,则各个session之间公用一个application向application中存储数据application.setAttribute(“key”, “value”); 从application中获取数据Object obj = application.getAttribute(“key”);
14.http://localhost:8888/sh/NewFile.jspurl:统一资源定位符http:超文本传输协议https:安全的传输方式localhost:web服务器所在的IP(数字不好记)因此有了dns域名解析系统8888:web服务器的端口号sh:工程名NexFile:文件名
15.1.WEB服务器作用:接收客户端请求,做出相应的反应。
2.request为JSP内置对象,可以直接使用不用实例化。
3.报黄线可能是没有引包,如果要多个包,每个包之间用“,”相隔。
4.<% %>中间的写的是Java代码
5.代表HTML中的表头
6.超链接
7.出http 500时:用内部输出语句进行定位,哪一行输不出则哪一行有错误
8.http404表示没有这个页面,找不到。
9.在文本框中赋值用value
10.hidden页面上不存在,但有这个值,只是藏起来了
16.1.处理请求:
request 处理响应:
response.浏览器访问的是地址,web服务器接收请求
session是在会话级别做出响应而
application是应用层面上。会话级别是建立一次链接后,结束链接关闭而应用层面则不会,会一直存在直到服务器关闭。