java编程笔记

java编程笔记

ID:41032749

大小:162.28 KB

页数:29页

时间:2019-08-14

java编程笔记_第1页
java编程笔记_第2页
java编程笔记_第3页
java编程笔记_第4页
java编程笔记_第5页
资源描述:

《java编程笔记》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、一、多线程1二、集合6三、其它类16四、IO流17五、图形界面编程(GUI)26六、网络编程27Java学习笔记一、多线程a)创建线程:第一种方法:通过继承Thread类,覆盖父类的run方法;在调用线程时,只需要调用线程的start方法即可,调用后自动调用run方法。ClassThreadDemoextendsThread{Publicvoidrun(){System.out.println(“Threadrun”);}}ClassThreadDemoTest{Publicstaticvoidmain(String[]args){ThreadDemot1=newThreadDemo();

2、//创建线程T1.start();//运行线程System.out.println(“helloworld”);}}在运行线程时通过调用start方法与调用run方法的区别:调用run方法:程序会先执行run方法里面的内容,只有执行完后才继续下面的内容。调用start方法:这样就与主函数构成一个多线程,会交替执行。线程里的几种方法:1、getName();-----得到该线程的名字(每个线程都有一个默认的名字:thread-n,n从0开始)2、staticThreadcurrentThread();-------获取当前线程对象3、可以通过setName()或者构造函数传递名字ClassT

3、estextendsThread{Test(Stringname){Super(name);//调用父类Thread的带一个参数构造函数为线程命名}Publicvoidrun(){System.out.println(Thread.currentThread().getName()+”-----threadrun----”);}}ClassThreadTest{Publicstaticvoidmain(Stringargs[]){Testt=newTest(“one----”);t.start();//也可以通过t.setName(“one---”);给线程命名,这样就不需要构造函数Sys

4、tem.out.println(“helloworld”);}}第二种方法:编辑类,实现Runnable接口,实现其run方法,通过Thread类创建线程对象,将Runnable接口的实现类作为参数传递给Thread的构造方法,然后调用Thread的start方法开启线程,并调用Runnable实现类的run方法。ClassRunnableDemoimplementsRunnable{Publicvoidrun(){System.out.println(“我是通过接口实现的线程”);}}ClassRunnableDemoTest{Publicstaticvoidmain(String[]a

5、rgs){RunnableDemor=newRunnableDemo();Threadt=newThread(r);t.Start();}System.out.println(“helloworld”);}这两种方法的区别:通过实现Runnable接口方法可以避免单继承的局限性,这是比较推荐的方法。关于线程安全问题:当有多个线程时,一定要注意安全问题。问题原因所在:当多条语句在操作同一线程共享数据时,一个线程对多条语句只执行了一部分,还没有执行完,另一个线程就参与进来。导致共享数据的错误。解决办法:对多条操作共享数据的语句,只能让一个线程执行完,在执行过程中,其他线程不能参与。Java中解

6、决办法:同步代码块Synchronized(对象){需要被同步的代码}对象如同一把锁,持有锁的线程才能执行同步语句块。没有持有锁的线程即使获得CPU的执行权,也进不去。弊端:每个线程都需要判断锁,消耗了资源。使用该方法的两个前提:1、必须是多线程的;2、必须是使用的一把锁。在一个多线程中如何找安全问题:1、明确哪些代码是多线程运行代码;2、明确共享数据;3、明确多线程运行代码中,哪些语句是操作共享数据的。同步函数:可以将需要同步的代码块取出来,封装在一个函数里面。这样的函数就叫做同步函数。例如Publicsynchronizedvoid函数名(){需要封装的同步语句块}然后只需要调用该函数

7、就可以了。同步函数使用的锁是this.静态同步函数使用的锁是该方法对应类的字节码文件——类名.class.设计模式:单例设计模式(保证一个类在内存中的唯一性)饿汉式:(single类一进内存就完成类的创建)ClassSingle{Privatestaticsingle(){}//将构造函数私有化PrivatestaticSingles=newSingle();//创建一个本类对象PublicstaticSingleget

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。