1.23java学习

Component类提供了两个和绘图相关最重要的方法:

1、paint(Graphics g)绘制组件的外观

2、repaint()刷新组件的外观

当组件第一次在屏幕显示的时候,程序会自动调用paint()方法来绘制组件。

在以下情况paint()将会被调用:1、窗口最大最小化;2、窗口的大小发生变化;3、repaint函数被调用

Graphics类

线程基本使用

1、继承Thread类,重写run方法(若在main方法中调用类的run方法,则run只是一个普通方法,没有真正的启动一个线程,只有run执行结束后,才向下继续执行main。只有类对象.start()才是真正的启动线程)start()方法调用start0()方法后,该线程并不一定会立马执行,只是将线程变成了可运行状态,具体什么时候执行,取决于CPU,由CPU统一调度

2、实现Runnable接口,重写run方法:(Threa thread=new Thread(dog); thread.start();)更适合多个线程共享一个资源的情况,避免了单继承的限制。

当线程完成任务后,会自动退出。还可以通过使用变量来控制run方法退出的方式停止线程,即通知方式。

线程常用方法:

1、start底层会创建新的线程,调用run,run就是一个简单的方法调用,不会启动新县城。interrupt中断线程,但没有真正的结束线程,所以一般用于中断正在休眠线程。sleep线程的静态方法,使当前线程休眠。

yield:线程礼让。让出cpu,让其他线程执行,但礼让的时间不确定,所以也不一定礼让成功。join:线程的插队,插队的线程一旦插队成功,则肯定先执行完插入的线程所有的人物

用户线程:工作线程,当现成的任务执行完或通知方式结束

守护线程:一般为工作线程服务的,当所有的用户线程结束,守护线程自动结束

常见的守护线程:垃圾回收机制。

线程同步机制:

在多线程编程中,一些敏感数据不允许被多个线程同时访问,此时就使用同步访问技术,保证数据在任何时刻,最多有一个线程访问,以保证数据的完整性。(当有一个线程在对内存进行操作时,其他线程都不可以对这个内存地址进行操作,直到该线程完成操作,其他线程才能对该内存地址进行操作)

synchronized(对象){//代码块

}

synchronized还可以放在方法声明中,表示整个方法,为同步方法。

public synchronized void m(String name){}

同步方法(非静态的)的锁可以是this,也可以是其他对象(要求是同一个对象)

同步方法(静态的)的锁为当前类本身

文件操作:

1、创建文件对象相关构造器和方法

new File(String pathname); new File(File parent, String child); 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值