java学习合集
文章平均质量分 70
以java学习笔记为主,欢迎各位指正
喜欢写代码的小唐
这个作者很懒,什么都没留下…
展开
-
java学习——IO流
FileInputStream:文件输入流BufferedInputStream:缓冲字节输入流ObjectInputStream:对象字节输入流(类的继承关系)通过打开一个到实际文件的连接来创建一个FileInputStream,该文件通过文件系统中的File对象file指定通过使用文件描述符fdObj创建一个FileInputStream,该文件描述符表示到文件系统中的某个实际文件的现有连接。原创 2024-04-26 16:26:34 · 897 阅读 · 2 评论 -
java学习——线程死锁+释放锁
多个线程占用了对方放入锁资源,但不肯相让,导致了死锁,在编程里面是一定要避免死锁的发生。原创 2024-04-16 22:00:24 · 524 阅读 · 1 评论 -
java学习——守护线程
我们在这里调用setDaemon()方法,把一个线程设置为守护线程。守护线程是在进程中所有线程都结束的时候的结束。这里我们开启了一个子线程,并把这个子线程设置为守护线程。守护线程是在所有线程结束后自动结束。所以我们使用场景一般在垃圾回收机制。2.守护线程:一般是为工作线程服务的,当所有的用户线程结束,守护线程自动结束。1.用户线程:也叫工作线程,当线程的任务执行完成通知方式结束。我们可以看到,在主线程结束的时候,接下来,守护线程就结束了。3.常见的守护线程:垃圾回收机制。原创 2024-04-15 23:53:09 · 344 阅读 · 1 评论 -
java学习——线程的生命周期
我们new一个线程,那么线程就处于一个new被创建的状态,然后我们调用start()方法后,就是进入了可运行状态(Runnable 状态),Runnable状态细分为两个状态Ready状态和Running状态。下面就是我们的用户态。这里如果将Runnable状态细分为两个状态那么就是7个状态,不然就是上面写的六个。然后在运行过程中我们调用了不同的方法,我们会进入不同的状态。开始,我们从New状态,通过start方法 进入了RUNNABLE状态,然后我们可以看到在sleep的作用下,我们线程进入了超时等待。原创 2024-04-16 00:04:12 · 503 阅读 · 1 评论 -
java学习——线程基本使用
他们都实现了同一个接口,我们在实现被代理类的时候,我们不直接调用,而是转到代理类里面,去实现,当然我们最后调用的还是被代理类的方法,但是我们可以用代理类对方法进行处理。我们用T1,T2两个类去分别实现两个线程的创建,子线程的创建我们用的是实现Runnable接口来创建,然后我们在main主线程里面启动两个子线程。上面的代码我们有三个步骤,第一重写了run方法,第二在run方法里面我们使用了Thread.sleep方法做延迟,第三在我们调用这个线程的时候,我们底层使用的是start0()方法。原创 2024-04-09 21:13:47 · 1031 阅读 · 0 评论 -
java学习——互斥锁
1.java语言里,引入了对象互斥锁的概念,来保证共享数据操作的完整性。2.每个对象都对应于一个可称为互斥锁的标记,这个标记用来保证在任一时刻,只能有一个线程访问该对象。3.关键字synchronized来与对象的互斥锁联系,当某个对象用synchronized修饰时,表明该对象在任一时刻只能由一个线程访问。4.同步的局限性:导致程序的执行效率要降低。5.同步方法(非静态的)的锁可以是this,也可以是其他对象(要求是同一个对象)。6.同步方法(静态的)的锁是当前类本身。原创 2024-04-17 17:42:30 · 273 阅读 · 0 评论 -
java学习——线程同步机制
2.也可以理解成:线程同步,即有一个线程在对内存进行操作时,其他线程都不能对这个内存地址进行操作,直到该线程完成操作,其他线程才能对该内存地址进行操作。1.在多线程编程里面,一些敏感数据不允许被多个线程同时访问,此时就使用同步访问技术,保证数据在任何时刻,最多有一个线程访问,以保证数据的完整性。然后,在num已经为0的情况下再执行--,所以这个时候我们实现同步机制,同步机制分为同步代码块和同步方法两种。同步机制解决的问题就是复用性的问题,也就是说,同一时间,同一份资源只能一个对象访问。原创 2024-04-11 20:26:25 · 374 阅读 · 1 评论 -
java学习——线程的退出,中断,插队以及常用方法
1.setname()//设置线程的名字2.getname()//获得线程的名字3.start()//启动线程4.run()//重写线程执行的代码5.setPriority()//设置优先级6.getPriority()//获得优先级7.sleep()//休眠8.interrupt()//中断,不结束线程,只是中断某一次线程的执行9.join()//插队,暂时停止正在执行的线程,执行新的线程。原创 2024-04-15 20:46:37 · 433 阅读 · 1 评论