本帖最后由 小石姐姐 于 2018-4-25 15:43 编辑
day09 IO流笔记 一. File类
File类 在io包下,文件和目录路径名的抽象表示形式;File类的实例是不可变的
三个构造方法:
File(String path):将指定的路径名转换成一个File对象,指向一个路径,其他的什么都没干;
File(String parent,String child):根据指定的父路径和文件路径创建的File对象;
File(String parent,String child)::根据指定的父路径对象和文件路径创
File类常用功能:
绝对路径:固定不可改变的路径,以盘符开头;
相对路径:相对某个参照物,不能以盘符开头;
在eclps中的相对路径对应当前强木的根目录;
创建:
createNewFile():创建文件,返回boolean类型,当指定文件不存在时,创建对接并返回true,否则返回false;
mkdir():返回boolean类型,当指定文件夹不存在时,创建对接并返回true,否则返回false;
mkdirs():创建指定文件夹当文件夹所谓的目录不存在,额顺道一块创建了;
删除:
delete():当指定的文件或者文件夹存在时,删除文件并返回true,否则返回false;
注意:删除一个文件夹,这个文件中不能有文件或者子文件夹
获取:
getxxx()
判断:
exists():判断文件或者文件夹是否存在;存在true,否则false;
isAbsolute():判断File对象指向的路径是否是绝对路径,如果ss则true;否则false;
isDirectory()判断File对象指向的路径是否是文件夹;
isFile():判断File对象是否是文件;
idHidden();判断File对象指向的路径是否有隐藏属性;
修改文件名:
renameTo(File dest);将当前File对象所指向的路径修改为指定File所指向的路径;
重要的获取功能:
1. String[] list():返回的是当前路径下所有的文件和文件夹名称数组;
*注意:只有指向文件夹的File对象才能调用该方法;
2. File[] listFiles():返回当前路径下所有的文件和文件夹File数组
3. listRoot();获取系统根目录
二. IO流分类:
流向:
输入流: 读取 FileReader--Reader
输出流: 写出数据; FileWriter--Writer;
数据类型:
字节流:
*输入流 读取数据,InputStream;
*输出流;写出数据 OutputStream
字符流;
字符输入
字符输出
二进制文件只能使用字节流进行复制,使用windows自带技术本打开读不懂的就是二进制文件;
文本文件的复制既可以使用字符流,也可以使用字节流;
day10 IO流笔记
一.IO流
|_ 标准流
|_ System.in(InputStream) 键盘录入
|_ System.out(PrintStream) 控制台输出
|_ 转换流
|_ OutputStreamWriter 以操作字符流的方式按字节流写出
|_ InputStreamReader 以操作字符流的方式按字节流读入
|_ 打印流
|_ PrintWriter 具有自动刷新, 自动换行的特点
|_ 对象流
|_ ObjectInputStream 从文件中读入一个对象到内存中
|_ ObjectOutputStream 将内存中的对象写入到文件中
集合
|_ Properties 用于与IO流结合读取配置文件, 键值对形式, 实现Map(key-value)
乱码
|_ 乱码的原因: 多种编码表查错了
|_ 字符串编码的转换
二. 对象操作流:
2.1 对象操作流程的概述;可以用于读写任意类型的对象;属于字节操作流程;
对象输出流;ObjectOutputStream
writeObject
对象输入流;ObjectInputStream
readObject
**主题使用对象输出流写出对象,只能使用对象输入流读取对象;
2.2使用对象操作流读写对象
;
2.3解决对象输入流去对象出现异常的问题;
2.4解决对实现
三. Properties类概述;配置文件;类似Map,
构造方法
Properties()
成员方法具体store(重要,其他的具体查API文档)
day11 多线程笔记
一. 多线程概述和多线程实现(两种实现方式必须学会);
线程和进程;一个进程里面可以有多个线程;
多线程:
进程:当前正在运行的程序,一个应用程序在内存中的执行区域;
线程:进程中的一个执行控制单元,执行路径;
进程>线程
一个进程可以有一个线程,也可以有多个线程;
单线程:安全性高,但是效率低;
多线程:安全性低,但是效率高;
多线程案例:迅雷可以同时下载多个片;360卫士等;
拓展:
并发:并行发生,同时发生,多个线程就可以实现并发;
同步:sync,同步是指一部接一步的执行,一个执行完毕再执行下一个;
异步:不是一步一步执行,而是同时执行多步,每个步骤合适结束不确定;
多线程就是异步;
一个线程内的代码是同步执行,不同线程的代码是异步执行;
阻塞:上一行的代码正在执行,还没有执行完毕,程序集流阻塞在这里了,上一行代码执行以后才能继续;
创建线程的方式:
方式一 继承Thread类;
Thread类已经实现Runable接口;
CPU执行线程的顺序的随机性;
主方法找那个的代码的执行是多线程还是单线程?
主方法是单线程;
方式二:实现Runable接口;
构造方法:
空参;
有参;
成员方法:
run();重写方法;
start();启动线程;
getName();返回线程名称;
void setName(Streing name);改变线程名称,使之与参数name想相同;
静态方法:
二. 多线程安全问题产生和解决方案
共享数据的时候记得加锁(同步代码块和同步方法)
synchronized (锁对象) {}
day13 反射笔记
获取字节码对象的3种方法
1. `对象.getClass()`
2. `类名.class`
3. `Class.forName(String fullClassName)`
反射能干的事
* 获取一个类的字节码对象, 通过该字节码对象:
* 获取一个类的构造方法(public或全部权限的)
* 创建一个类的对象
* 获取一个类的成员属性(public或全部权限的)
* 获取属性值
* 设置属性值
* 获取一个类的成员方法(public或全部权限的)
* 调用成员方法
BeanUtils
* Apache组织提供的第三方类库`Commons`中的一个组件
* 作用:
* 利用反射技术给一个类的对象的成员属性赋值或获取值, 用于快速封装数据到JavaBean
* BeanUtils类常用的3个方法
* `static void setProperty(Object bean, String name, Object value)`: 给JavaBean对象的成员属性赋值, 传入对象, 成员属性名, 属性值
* `static String getProperty(Object bean, String name)`: 获取JavaBean成员属性的属性值, 传入对象, 成员属性名, 返回属性值的字符串形式
* `static void populate(Object bean, Map properties)`: 给JavaBean对象的成员属性赋值, 传入对象, Map的key是属性名, value是属性值
.
JavaWebDay01 HTML笔记
HTML:超文本标记语言;
主要学习标签;
1.字体标签:
<font></font属性:
color字体颜色 可以用16位来表示,也可以用英文red green blue等等之类来表示;
size字体大小 1-7号字
face字体类型;用的好像不是太多
<b>加粗 </b>
<i>斜体</i>;
<u>下划线</u>;
2.图片标签:
<img></img> 属性:
src:路径,可以写相对路径也可以写连接;
width:宽度;
height:高度;
alt:图片打不开的时候要提示的汉字;
3.超级连接标签:
<a></a>属性:
href:链接路径;
target:三种打开方式,现在主要学两种:
_self:在自身窗口打开;
_blank:在新窗口打开;
_parent:听说在学习框架的时候会用,现在做了解,知道他;
4.排版标签:
<p>:段落标签:段落与段落之间会个较大的空行;
<hr>:分割线标签;
<h1></h1>
.....
<h6></h6> 6种标题标签 从大到小;
</br>换行;
<center>居中;
5.列表标签:
<ol></ol>有序标签;
属性:type:1 a A i I;
start:从哪开始
<ol></ol>有序标签;
属性:type:disc 实心点.
circle 空心圆
square 方块.
6.表格标签:
<table></table> 属性:
board 边框大小;单位px;
width:宽度 可以用像素表示也可以用百分比表示;
height:高度,可以用像素表示也可以用百分比表示;
bgcolor:背景颜色;
background:背景图;
align:对齐方式,居中,左对齐,右对齐;
<tr> row是行标签,所以是行标签:
<td> 是列标签(也可以理解成单元格)
***重点:
1.嵌套单元格;
2.合并单元格:
夸行合并是:rowspan;
跨列合并是:colspan;
两者后面的数值是合并单元格的个数,并且要降被吞并的单元格的标签去掉;
7.***表单标签***:(很重要):
<form>表单标签属性:
1.action:提交的地址,如果不添加则提交到当前页面;
2.method:GET和POST两种提交方式;
GET:提交的数据直接在地址栏显示,而且数据大小有限制,不太安全;
POST:提交的数据看不到,数据大小无限制,比较安全;
表单元素三个:
1.<input/>表单输入:
<input type="" name = "" value="" checked是默认选中的属性;/>
type="text":文本输入框;
type="password":密码输入框;
type="radio" ;单选要写默认值value;
type="checkbox";复选要写默认值;
type="reset";重置;
type="submit";'提交;
tyoe="button";按钮,无任何意义;
type="file":上传文件;
type="hidden":固定
2.<select>下拉框:
<select name="">
<option value="提交到后台的值"></option>
</select>
3.textarea文本域:
<textarea name="" rows="几行" cols="几列"></textarea>
|
|