- 浏览: 33854 次
- 性别:
- 来自: 哈尔滨
最新评论
IO总结
InputStream
|==节点流(流开始的地方,流的源头)
|-- FileInputStream
|--ByteArrayInputStream
|==过滤流()
|--BufferedInputStream
|--ObjectInputStream
|--ZipInputStream
|--InputStreamReader
OutputStream
|==节点流(流结束的地方,流的目的)
|-- FileOutputStream
|--ByteArrayOutputStream
|==过滤流()
|--BufferedOutputStream
|--ObjectOutputStream
|--ZipOutputStream
|--OutputStreamWriter
文本的处理(完成byte <------> char 编码转换 )
Reader
|--核心 处理 InputStreamReader byte--解码->char
GBK(byte)-->javaUnicode(char)
|--FileReader=InputStreamReader+FileInputStream
|--BufferedReader 提供了readline()
Writer
|-- OutputStreamWriter char--编码-->byte
javaUnicode(char) --> GBK(byte)
|--FileWriter=OutputStreamWriter+FileoutputStream
|--PrintWriter 提供了 println();
线程
1 new
2 Runnable
3 Running
4 Block
5 Dided
线程状态管理
Thread.yield()让出当前线程让出处理器(离开Running)进入Runnable状态
使当前线程进Runnable
Thread.sleep(times)使当前线程从Running放弃处理器进入Block状态,休眠times毫秒,再返回到Runnable
如果其他线程打断当前线程的Block(sleep),就会发生 InterruptedException
后台线程(守护线程,精灵线程)
t.setDaemon(true);
Java进程的结束:当所有前台线程都结束的时候,java进程结束
后台线程,不管是否结束,都被停掉
线程的优先级
默认有10优先级,优先级高的线程获得执行的机会多,机会的多少不能通过代码干预
默认的优先级是5
两种方式创建线程
1继承Thread类
a继承Thread类,覆盖run()方法,提供并发线程的过程
b创建这个类的实例
c使用start方法启动线程
2实现Runnable接口
a实现Runnable接口,实现run()方法,提供并发线程的过程
b创建这个类的实例,用这实例作为Thread构造器参数创建Thread
c使用start()方法启动线程
class Foo Implenents Runnable{
public void run(){
}
}
Thread t=new Thread(new Foo());
t.start();
3使用内部类创建线程
线程的同步
1多个线程并发读写同一个临界资源时候会发生线程安全问题
2可以使用同步代码块来解决同步读写临界资源,解决并发安全问题。
3 a同步代码块
synchroized(同步监视器){
}
b同步监视器是一个任意对象实例,是一个多线程之间的互斥的锁机制,多个线程要
使用同一个“监视器”实现同步互斥
c常见写法:synchronized(this){
}
d如果方法的全部过程需要同步,可以简单使用synchronized修饰
Java中同步API
1 StringBuffer是同步的 相当于 synchronized append();
StringBuilder不是同步的 相当于 append();
2 Vector 和 Hashtable 是同步的
Arraylist 和 HashMap 是非同步的
3 Collections
.synchronizedList(list<T>list);方法
ArrayList list=new Arraylist();
list synclist=Collections.synchronizedList(list);
这样就得到一个同步的集合list
异步线程之间,需要协作通信
异步写文件操作
方法可能会出现线程安全性问题
1 同步写文件:从控制台读取一行,立即写到文件中
wait是需要锁的
Timer 计时器
InputStream
|==节点流(流开始的地方,流的源头)
|-- FileInputStream
|--ByteArrayInputStream
|==过滤流()
|--BufferedInputStream
|--ObjectInputStream
|--ZipInputStream
|--InputStreamReader
OutputStream
|==节点流(流结束的地方,流的目的)
|-- FileOutputStream
|--ByteArrayOutputStream
|==过滤流()
|--BufferedOutputStream
|--ObjectOutputStream
|--ZipOutputStream
|--OutputStreamWriter
文本的处理(完成byte <------> char 编码转换 )
Reader
|--核心 处理 InputStreamReader byte--解码->char
GBK(byte)-->javaUnicode(char)
|--FileReader=InputStreamReader+FileInputStream
|--BufferedReader 提供了readline()
Writer
|-- OutputStreamWriter char--编码-->byte
javaUnicode(char) --> GBK(byte)
|--FileWriter=OutputStreamWriter+FileoutputStream
|--PrintWriter 提供了 println();
线程
1 new
2 Runnable
3 Running
4 Block
5 Dided
线程状态管理
Thread.yield()让出当前线程让出处理器(离开Running)进入Runnable状态
使当前线程进Runnable
Thread.sleep(times)使当前线程从Running放弃处理器进入Block状态,休眠times毫秒,再返回到Runnable
如果其他线程打断当前线程的Block(sleep),就会发生 InterruptedException
后台线程(守护线程,精灵线程)
t.setDaemon(true);
Java进程的结束:当所有前台线程都结束的时候,java进程结束
后台线程,不管是否结束,都被停掉
线程的优先级
默认有10优先级,优先级高的线程获得执行的机会多,机会的多少不能通过代码干预
默认的优先级是5
两种方式创建线程
1继承Thread类
a继承Thread类,覆盖run()方法,提供并发线程的过程
b创建这个类的实例
c使用start方法启动线程
2实现Runnable接口
a实现Runnable接口,实现run()方法,提供并发线程的过程
b创建这个类的实例,用这实例作为Thread构造器参数创建Thread
c使用start()方法启动线程
class Foo Implenents Runnable{
public void run(){
}
}
Thread t=new Thread(new Foo());
t.start();
3使用内部类创建线程
线程的同步
1多个线程并发读写同一个临界资源时候会发生线程安全问题
2可以使用同步代码块来解决同步读写临界资源,解决并发安全问题。
3 a同步代码块
synchroized(同步监视器){
}
b同步监视器是一个任意对象实例,是一个多线程之间的互斥的锁机制,多个线程要
使用同一个“监视器”实现同步互斥
c常见写法:synchronized(this){
}
d如果方法的全部过程需要同步,可以简单使用synchronized修饰
Java中同步API
1 StringBuffer是同步的 相当于 synchronized append();
StringBuilder不是同步的 相当于 append();
2 Vector 和 Hashtable 是同步的
Arraylist 和 HashMap 是非同步的
3 Collections
.synchronizedList(list<T>list);方法
ArrayList list=new Arraylist();
list synclist=Collections.synchronizedList(list);
这样就得到一个同步的集合list
异步线程之间,需要协作通信
异步写文件操作
方法可能会出现线程安全性问题
1 同步写文件:从控制台读取一行,立即写到文件中
wait是需要锁的
Timer 计时器
发表评论
-
android 转载Intent应用
2011-03-14 21:12 662From:http://www.cnblogs.com/stu ... -
xml 学习1
2011-03-03 18:57 723一.xml基础: 二.xml语法 三.DTD 四.java a ... -
jdbc 可滚动结果集合,分页技术
2011-03-02 20:24 927jdbc2.0 一.可滚动的结果 ... -
jdbc笔记心得
2011-03-02 08:24 690CallableStatement: 存储过程 建立一 ... -
jdbc心得笔记01
2011-03-02 07:59 661介绍JDBC 开发JDBC应用程序 1新建java proje ... -
oracle简单笔记学习4
2011-02-27 20:39 752create table student( --完整 ... -
oracle简单笔记学习3
2011-02-27 20:38 656外键 被参照的表是主表 ... -
oracle简单笔记学习2
2011-02-27 20:34 687select from where group by h ... -
oracle简单笔记学习
2011-02-27 20:33 641select...列名,表达式,函数 distinct,别名 ... -
笔记心得12
2011-02-23 21:41 653集合的迭代(遍历)(模仿了数鸡蛋的方式) 1 java ... -
笔记心得11
2011-02-23 21:39 592Java 时间 1 时间标准:long GMT UTC ... -
笔记新的09
2011-01-25 20:37 633... -
笔记心得08
2011-01-24 21:08 0... -
笔记心得07
2011-01-21 21:11 602接口 1 接口:全部的 ... -
笔记心得06
2011-01-21 12:47 610... -
笔记心得05
2011-01-20 08:53 664... -
笔记心得04
2011-01-18 19:07 649... -
笔记心得03
2011-01-18 08:35 852... -
笔记心得02
2011-01-16 19:00 6161) continue 就是结苏当前所执行的语句,继续执行下 ... -
笔记心得01
2011-01-16 13:43 472第一周个人知识汇总 ***心若冰清,天塌不惊*** 1 ...
相关推荐
### Java学习笔记及心得知识点详细解析 #### 标题:Java学习笔记及心得 #### 描述:Core Java 学习笔记及心得 pdf格式可打开。涵盖了java的基础入门知识,非常适合自学的及想深入学习理解的同学。 #### 标签:...
这篇学习心得主要涵盖了Java的基础知识、进阶概念以及实战应用,同时提及了与Oracle数据库的交互和JDBC(Java Database Connectivity)的使用。 首先,Java的学习从基础开始,包括语法结构、数据类型、控制流程(如...
【PB开发笔记心得】 PowerBuilder (PB) 是一种曾经广泛使用的可视化编程工具,主要用于构建企业级的客户端/服务器(C/S)应用。PB9.0 版本是该系列的一个重要版本,它提供了丰富的功能和易用性,使得开发者能够快速...
Java学习心得笔记主要涵盖了几大知识点,包括运算符、Integer类、引用类型、数组、多维数组、字符串类。下面将详细阐述这些内容。 1. **运算符**: 在Java中,运算符包括移位运算符。`是左移运算符,将二进制数向...
这份“java经典自学程序及学习笔记心得”压缩包是学习Java编程的宝贵资源,包含了实战程序和作者的学习经验,旨在帮助初学者和进阶者更好地理解和掌握Java技术。 一、Java经典程序 Java经典程序通常包括了基础语法...
2021读书笔记个人心得体会600字___5篇_最新的读书笔记心得体会总结.docx
### ANSYS笔记心得体会 #### 一、接触面与目标面定义 在ANSYS软件中进行结构分析时,正确地定义接触面与目标面是至关重要的。接触面通常指的是那些需要考虑接触行为的重要表面,比如两个零件之间的接触界面;而目标...
**CAN总线笔记心得** CAN(Controller Area Network)总线是一种广泛应用在汽车、工业自动化、医疗设备等领域的通信协议,其特点是数据传输可靠、抗干扰性强。本文将围绕CAN总线的核心知识点,包括iCAN协议、CAN...
IBatis学习笔记以及使用心得IBatis学习笔记以及使用心得IBatis学习笔记以及使用心得IBatis学习笔记以及使用心得IBatis学习笔记以及使用心得IBatis学习笔记以及使用心得
这篇程序员的开发心得和笔记探讨了一个特定的话题:如何从C#中访问DHTML DOM对象。DOM(文档对象模型)是HTML和XML文档的一种标准表示,它允许程序员以结构化的方式访问和修改网页内容。 首先,要实现这一功能,...
《战胜华尔街-彼得林奇》读书笔记心得doc.doc
同时,要善于总结和归纳,将学习心得转化为自己的知识体系,这对于深入理解和掌握C++大有裨益。注意不断更新知识,适应C++语言的发展,保持学习的热情和毅力,是成为一名优秀的C++程序员的关键。
嵌入式软考资料笔记心得主要涵盖了嵌入式系统设计这一领域的中级知识,结合了2005年至2016年的历年真题解析和学习经验。这些资料对于准备嵌入式软考的考生来说是一份宝贵的参考资料。下面将详细阐述其中涉及的主要...
jbpm是一款免费开源的工作流引擎,虽然现在还不完善,但是用起来还是不错的..... 我学习jbpm的一些笔记心得
个人心得笔记20220101
幼儿园中班训练笔记心得精选.docx
幼儿园中班训练笔记心得2021.docx
自己学习thinkphp笔记心得注意的和常用的地方,thinkphp 学习a标签url href src等路径,一些比较容易理解并且会忘记的注意点
【LoadRunner个人笔记心得】 LoadRunner是一款功能强大的性能测试工具,由Micro Focus公司开发,用于模拟大量用户并发访问系统,以此来评估应用系统的性能和稳定性。在我深入学习和使用LoadRunner的过程中,积累了...
RHCE60学习笔记心得 RHCE60学习笔记心得是RHCSA和RHCE考试的重要参考资料,涵盖了Linux系统管理、网络服务配置、虚拟化技术等方面的知识点。本文档对RHCE60考试的准备提供了详细的指导和建议,帮助考生更好地备考。...