Java实训第十七天8/18

来源:互联网 发布:淘宝店铺如何转让 编辑:程序博客网 时间:2024/05/22 11:42
1.持久化:
IO 就是实现持久化的一种技术
2.文件:File
只能创建删除文件
只能获取文件的信息
isFile()
exsits()
createNewFile()
mkdirs()
如果通过输出流(向文件中写内容),如果文件不存在,会自动创建
必须保证 文件所在的目录必须存在
3.IO流对文件进行读写:
读取数据的格式
字节流:图片
InputStream
FileInputStream
OutputStream
FileOutputStream
字符流:读取文本文件
Reader
FileReader
Writer
FileWriter
处理流:就是给节点流进行外包装
Buffered

对象流:
a)要存储的对象对应Java类必须实现序列化接口
b)先把根据操作的文件构建节点流对象
 再把节点流对象包装为对象流
Map:没有实现序列化接口
字节流复制文件

public class Test{

//srcFile="d:\\test.txt";
//targetFile="c:\\test.txt";
public  void copy(String srcFile,String targetFile){
InputStream in=null;
OutputStream out=null;
try{
in=new FileInputStream(srcFile);
out=new FileOutputStream(targetFile);
byte[] b=new byte[1024];//不足1024 24 个字节
/*
int len=in.read(b);
while(len!=-1){
out.write(b,0,len);//24
len=in.read(b);
}
*/
while(true){
int len=in.read(b);
if(len==-1){
break;
}
out.write(b,0,len);
}
}catch(Exception ex){

}finally{
if(in!=null){
try{
in.close();
}catch(Exception e){

}finally{
in=null;
}
}
if(out!=null){
try{
out.close();
}catch(Exception e){

}finally{
out=null;
}
}
}
}
}
4.操作Excel文件90%有
第三方 jar 文件  poi
a)一定要分清楚 操作的excel 版本
.xls  低版本  HssfWorkbook
 HssfSheet
 HssfRow
 HssfCell
.xlsx  XssfWorkbook
 XssfSheet
 XssfRow
 XssfCell
b)建议尽量使用低版本
c)读取或新建步骤:sheet、row、cell 下标都是从0开始
    先获取其中 sheet页面
在获取sheet中行
在获取行中的列
在获取列中的值
5.如何使用第三方的jar文件
a)复制jar到项目中lib文件夹中(自己创建)
b)在要使用jar上面点击右键 ---build path-----add to build path

6.进程和线程:
a)进程:就是运行的一个程序
b)线程:是进程中的一个任务
c)关系:
一个进程,至少包含一个线程(主线程)
一个线程,属于一个进程,进程结束,所有进程中的线程结束
7.模拟一个人在听音乐,在吃苹果 在吃葡萄
8.简单的多线程程序
9.掌握使用多线程完成文件复制
10.生产者与消费者的关系


11.如何让一个对象失效
Student stu=new Student();
stu=null;
//可以调用,但是不一定执行
//java中垃圾回收是单独的一个子线程,在其中run方法中监视jvm的内存使用情况
System.gc();


12.如何创建一个线程
a)继承Thread类或实现Runnable接口
i)继承
public class My extends Thread{

public void run(){
//使用循环
}
}
或者
ii)接口
public class My implements Runnable{

public void run(){
//使用循环完成多次重复操作
}
}
b)创建线程对象
i) My my=new My();
ii) My my=new My();//一个任务
Thread t=new Thread(my);


c)启动:
i)my.start();//进入就绪状态
ii)t.start();


13.
a)线程的优先级:1-10表示 数字越大级别越高
但是我们只能设置级别,有CPU决定先执行谁
b)常用的方法
start();启动线程
static sleep();让当前线程休眠多少毫秒
join():加入其他线程,自己等待其他线程结束
run():执行任务的主体,有CPU调用
static yield() :暂停正在运行的方法 ,让cpu决定让谁执行

14.银行取钱:
15.使用多线程判断 1--1000之间的素数

a:for(int i=2;i<1000;i++){
for(int j=2;j<i;j++){
if(i%j==0){
continue a;
}
}
}
begin 1100

end 100200
15.统计 1--10000 相加和


long sum=0;
for(int i=1;i<100000000;i++){
sum+=i;
}


1---500000













原创粉丝点击