1.不要将class文件名设置成与系统类相同,否则导包容易出现错误
2.如果集合中存储的是类的话,那么使用contains方法的话需要对位
使用,不能直接对整个集合使用,否则将没效果(需要拆进去)
(day09:LessionCode)
3.extend继承父类,用super调用父类方法,
protected可以调用父类中的方法,private不行(private是仅能在
本类中调用,protected比他高一级
重写,重构
创建对象,然后在栈中生成相应的地址,并把其中的方法存到方法区
中,需要的时候调用其方法。
因为方法中的变量是局部变量,所以存在堆中。
所以当创建完对象以后,new出来的东西,其中的局部变量有自己的
默认值
然后需要引用方法的时候就从方法区拉出来需要的方法使用。
修饰符,返回值类型,方法名(){}
4.因为Scanner类里没有输出char的方法,所以如果想让输出结果为
一个字符的话就输入字符串然后取第一个值- -アホ
5.StringBuilder的reserve()方法,是直接将缓存的缓冲字符串直接
反转然后返回到该字符串上,而不是只返回方法调用后的本身不改变
6.equals的使用对象:如果是基本数据类型之间的比较的话就是比较
值,如果是引用类型比较的话就是比较地址,果是类之间的比较的话
最好是重写方法,使之可以比较类里的成员(不重写的话就是只比较
地址)
7.垃圾回收机制,栈中的垃圾会被立即回收,但是堆中的垃圾是有空
闲的话再回收
=======================================
1.不知道有什么格式不对的就翻API里面有格式。
2.Calendar是抽象类所以不能创建对象,要使用getInstance()方法
(此方法返回了Calendar的子类,然后以多态的形式返回给父类
(Calendar))
3.FileReader和FileWriter,InputStreamReader和
OutputStreamWriter,BufferedWriter和BufferedReader都是字
符流,FileInputStream和FileOutputStream是字节流
4.迭代器相当于集合的一个副本,如果迭代器在迭代过程中发现于集
合不同则会抛出并发修改异常
(ConcurrentModificationException),如果想要在迭代过程中添加
元素就要使用ListIterator
5.链表进行添加操作的时候可以移动下标地址也可以移动上标地址。
6.异常的注意事项
如果接口在定义方法的时候如果没有抛出异常
那么子类在处理父类的重写方法的时候要等于或者小于父类方法抛出
的异常
因为父类没有抛出异常所以子类也不能抛出异常,只能用try catch
7.线程能乱抢
8.西历是以12月作为起始月,星期天作为每个星期第一天,
Calendar输入的日期月份和星期都减一才是国历
9.写代码从右往左写,先写具体实现类(子类)然后在写左边的父类或
者本类,学习使用ctrl+1,但是不是硬性规定,看使用的时间和方式
10.因为子类继承了父类,所以子类会继承父类所有的方法(除了私有)
,注意学习方法是学习顶层父类的所有方法和子类特有的或者重写之
后的方法
11.多态之后可进行向下转型,如果没有进行多态的话,父类不能直
接向下转成子类
=======================================
1.修改的路径名不能是已经存在的,因为不能有重名的文件,可以加
个判断然后改名
2.字节流读写文件的时候不需要flush,因为是直接写到文件中(实时
传输)而不是输入到缓冲区中
3.自己写的复制文件夹的操作中,注意路径的写法,否则无法将子文
件夹中文件复制到父文件夹中
4.写方法的步骤:1.注意方法需要的条件,2.方法的返回值参数类型
,最重要的是方法的使用场景与条件(审题)
5.一个问题,15分钟写不出来就跳,把注意事项或者小思路写出来,
之后有时间或者想起来了再写,浪费时间还低效
7.文件复制的步骤:
>确定目标文件夹是否存在
>确定路径
>如果是文件就调用IO流方法读写
>如果是文件夹,就调用自己递归,注意路径
8.递归可以使用void作为返回值,并且递归过程中不需要return,比
较方便
9.如果Eclipse处理的文件在占用中(在运行)中,那么就会找不到这个
文件
10.同一时间同一个文件只能关联一个流,如果有两个以上的流的话
后面的流会把前面的流覆盖
11.对象创建的步骤:
1.先加载对象的方法(class文件)
2.创建对象的静态区域的方法和变量
3.创建对象的非静态区域的方法和变量
=======================================
1.PrintWriter底层是转换流
2.操作最好在服务器里进行操作,客户端只需要进行简单的交互就行
3.根标签只能有一个,根标签里括号里不写东西
4.浏览器也是一种XML解析工具
5.传递XML路径名的时候,/和\\不一样,只能用/
6.因为List允许重复,所以用List存储elements的值,并且List没有
精准获取某个元素的位置的方法,但是有获取元素首次出现和最后出
现的方法
7.删除某个字节点的话,删除节点的方法的位置是在它的父节点上,
仅仅是父节点 getParent()
8.XML解析后重新写入的时候,写入方法里默认调用了能传List的方
法,所以直接改变List里的值会直接影响XML文件
9.Declared方法和普通方法的区别:
普通的方法只能返回被public修饰的方法,但是可以返回所有继承来
的父类的方法
Declared方法可以返回所有类型的方法,但是不能返回继承来的方
法
10.反射中,如果是单个声明或者声明特定值就需要写参数,如果返
回的是数组就不需要写参数(废话)
=======================================
HTML章节
1.先创建大的框架然后再设置内部内容
2.仔细审图
3.如果是要填充满表格的话就将宽和高设置满填充
4.style中,如果只有一个属性可以不写分号
5.js是种弱类型语言,所以可以乱赋值
6.外部引用引入方式都是用src
7.外部引用的时候,script标签内禁止写js代码,因为写了还是不会
执行
8.JavaScript没有访问系统文件的权限
9.JavaScript无需编译,所以如果有重复性的多行分解性动作,就会
依次执行,进而运行效率就降低了。因为是一行一行的执行,所以允
许链式编程,建议写在body体里
10.JavaScript和Java没有任何直接联系!
11.放置位置随意,开发规范规定写在body体中
优点:优先加载HTML信息,然后再加载脚本,增强用户的体验
性
12.(float样式)如果是多个一起浮动的话,浮动拼接不是上下,是左
右。浮动会影响原有的布局,浮动之后的布局会脱离原来的板式(模
块),所以浮动之后要重新布局
13.选择器的组合:只要满足了组合条件,不管中间挂了多少层都能
使用
14.如果id选择器被二次使用,那么只是在html中是不会报错,也会
产生效果,但是如果在后期操作的时候会出错,所以这里要人工的进
行保证id唯一
15.在js中,null:空,一个占位符,typeof返回的是object
这是ECMAScript的一个bug,null是基本数据类型,但是
typeof(null)返回的是object(引用数据类型)
16.因为js是弱类型语言,所以 /或% 可能和Java不同
17.对div进行大小设置和对图片进行大小设置的区别:
div设置大小是对框架的设置,图片设置大小是直接设置传入的图片
的大小
18.如果只是给框架设置大小的话就相当于限制最大值,这个最大值
只能用百分比能看出来,限制大小之后,比如给里面的img标签设置
大小,那么设置的就是img图片的大小
=======================================
web章节:
1.where后面不能跟聚合函数,如果想要使用带有聚合函数的条件语
句,那么就要用关键字having而不是where(使用方式同where)
2.值的数据类型要与列名的一致,值的顺序要与插入列的顺序一致,
值的最大长度不能超过列设置的最大长度(类型中的长度),值的类型是
字符串或者日期类型,要用单引号引起来
3.Select语句的写法规则:
S(select)...F(from)...W(where)...G(group)...H
(having)...O(order)
=======================================
JDBC
1.单元测试需要在前面写@Test,可以当做主方法运行
2.配置文件扩展名是properties,里面存的内容都是key=value的键
值对,并且值不要添加双引号,不要随意加空格,不要加分号
3.预编译,用?代表将要传入的参数,将要传入的参数作为一个普通
的字符串,其中的关键字也是作为字符串传入
{ 不要轻易的使用字符串拼接,使用的话最好把可能出现的关键字解
决掉 }
4.and的优先级大于or
5.JDBC的注入漏洞:当输入的第一个值为xxx‘ or ‘1=1 或者 xxx‘
-- 的时候,第二个值可以随便输,这个时候还是能够登陆成功,因为
用Statement实现SQL语句的时候使用的是字符串的拼接,输入以上
的字符串的时候,里面的关键字不会被当成字符串处理,而是作为关
键字参与到运算中
6.DbUtils查询一条数据(Bean方式)注意事项:
1.Bean中的属性名和数据库中字段名一样
2.要有空参构造,因为要使用反射(.class),需要使用到空参构造
7.ScalerHandler封装单个数据(一行或者一列),如果封装的是个数
,那么只能将结果强转成long类型
8.开发的项目放在服务器中
9.web-inf,如果没有动态页面的话可以不需要
10.实际开发中不会实现Servlet接口,而是使用它的实现类然后重写
方法
11.如果代码一致的话可以相互调用来讲简化代码
12.Servlet:响应从浏览器接收的数据
13.C3P0配置文件底层是XML而不是properties
14.对数据的操作方式:
☆BeanHandler:将数据库与JavaBean联动,查询一条信息
☆BeanListHandler:查询多条信息,并用List存储JavaBean
ArrayHandler:将一条数据存储到一个Object数组中
ArrayListHandler:将多条数据存储到一个List中,List中存储的是
多个Object数组
MapHandle:将一条数据存储到Map中,以键值对的方式
MapListhandler:将多条数据存储到List集合中,集合中存储的是
Map
15.location.href BOM中的location对象,跳转到某个界面
16.println使用的时候自己调用了write并加上了toString方法
17.Tomcat7以上都是以ISO-8859-1编码
Tomcat8以下都是以UTF-8编码\
项目根目录下的单个文件是部署不到服务器上的
18.跳转页面的开头要加/
19.跳转的页面要在本项目下(其他的项目怎么同时加载不知道)
20.项目文件名不要乱改,因为xml文件不会自己修改成修改后的名字
将类中的成员设置私有的好处:
线程池