上一页 1 ··· 8 9 10 11 12 13 14 15 下一页
摘要: /** * 银行有一个账户。 有两个储户分别向同一个账户存3000元,每次存1000,存3次。每次存完打印账户余额。 分析: 1.是否是多线程问题? 是,两个储户线程 2.是否有共享数据? 有,账户(或账户余额) 3.是否有线程安全问题?有 4.需要考虑如何解决线程安全问题?同步机制:有三种方式。 阅读全文
posted @ 2021-04-12 10:38 小白冲 阅读(209) 评论(0) 推荐(0) 编辑
摘要: Lock( 锁) 从JDK 5.0开始,Java提供了更强大的线程同步机制——通过显式定义同步锁对象来实现同步。同步锁使用Lock对象充当。 java.util.concurrent.locks.Lock接口是控制多个线程对共享资源进行访问的工具。锁提供了对共享资源的独占访问,每次只能有一个线程 阅读全文
posted @ 2021-04-12 10:20 小白冲 阅读(75) 评论(0) 推荐(0) 编辑
摘要: /** * 演示线程的死锁问题 * * 1.死锁的理解:不同的线程分别占用对方需要的同步资源不放弃, * 都在等待对方放弃自己需要的同步资源,就形成了线程的死锁 * * 2.说明: * 1)出现死锁后,不会出现异常,不会出现提示,只是所有的线程都处于阻塞状态,无法继续 * 2)我们使用同步时,要避免 阅读全文
posted @ 2021-04-12 09:46 小白冲 阅读(70) 评论(0) 推荐(0) 编辑
摘要:  同步锁机制:在《Thinking in Java》中,是这么说的:对于并发工作,你需要某种方式来防止两个任务访问相同的资源(其实就是共享资源竞争)。 防止这种冲突的方法就是当资源被一个任务使用时,在其上加锁。第一个访问某项资源的任务必须锁定这项资源,使其他任务在其被解锁之前,就无法访问它了,而在 阅读全文
posted @ 2021-04-12 01:11 小白冲 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 基础知识点:  JDK 中用Thread.State 类定义了线程的几种状态要想实现多线程,必须在主线程中创建新的线程对象。Java语言使用Thread类及其子类的对象来表示线程,在它的一个完整的生命周期中通常要经历如下的 五种状态: 新建: 当一个Thread类或其子类的对象被声明并创建时,新生 阅读全文
posted @ 2021-04-11 19:49 小白冲 阅读(232) 评论(2) 推荐(1) 编辑
摘要: 继承方式和实现方式的联系与区别public class Thread extends Object implements Runnable 区别 继承Thread:线程代码存放Thread子类run方法中。 实现Runnable:线程代码存在接口的子类的run方法。 实现方式的好处 避免了单继 阅读全文
posted @ 2021-04-11 07:47 小白冲 阅读(352) 评论(0) 推荐(0) 编辑
摘要: /** * 创建多线程的方式二:实现Runnable接口 * 1. 创建一个实现了Runnable接口的类 * 2. 实现类去实现Runnable中的抽象方法:run() * 3. 创建实现类的对象 * 4. 将此对象作为参数传递到Thread类的构造器中,创建Thread类的对象 * 5. 通过T 阅读全文
posted @ 2021-04-11 07:40 小白冲 阅读(142) 评论(0) 推荐(0) 编辑
摘要: /** * 测试Thread中的常用方法: * 1. start():启动当前线程;调用当前线程的run() * 2. run(): 通常需要重写Thread类中的此方法,将创建的线程要执行的操作声明在此方法中 * 3. currentThread():静态方法,返回执行当前代码的线程 * 4. g 阅读全文
posted @ 2021-04-11 01:53 小白冲 阅读(166) 评论(0) 推荐(0) 编辑
摘要: * 多线程的创建,方式一:继承于Thread类* 1. 创建一个继承于Thread类的子类* 2. 重写Thread类的run() --> 将此线程执行的操作声明在run()中* 3. 创建Thread类的子类的对象* 4. 通过此对象调用start()* <p>* 例子:遍历100以内的所有的偶数 阅读全文
posted @ 2021-04-10 17:15 小白冲 阅读(85) 评论(0) 推荐(0) 编辑
摘要: 01. 程序(programm)概念:是为完成特定任务、用某种语言编写的一组指令的集合。即指一段静态的代码。 02. 进程(process)概念:程序的一次执行过程,或是正在运行的一个程序。说明:进程作为资源分配的单位,系统在运行时会为每个进程分配不同的内存区域 03. 线程(thread)概念:进 阅读全文
posted @ 2021-04-07 01:35 小白冲 阅读(322) 评论(0) 推荐(0) 编辑
摘要: /* * 如何自定义异常类? * 1. 继承于现有的异常结构:RuntimeException 、Exception * 2. 提供全局常量:serialVersionUID//对类的标识 * 3. 提供重载的构造器 */ package com.ch.java2; /* * 如何自定义异常类? * 阅读全文
posted @ 2021-04-05 00:40 小白冲 阅读(735) 评论(0) 推荐(0) 编辑
摘要: /* * 异常处理的方式二:throws + 异常类型 * * 1. "throws + 异常类型"写在方法的声明处。指明此方法执行时,可能会抛出的异常类型。 * 一旦当方法体执行时,出现异常,仍会在异常代码处生成一个异常类的对象,此对象满足throws后异常 * 类型时,就会被抛出。异常代码后续的 阅读全文
posted @ 2021-04-04 10:23 小白冲 阅读(163) 评论(0) 推荐(0) 编辑
摘要: /* * 一、异常的处理:抓抛模型 * * 过程一:"抛":程序在正常执行的过程中,一旦出现异常,就会在异常代码处生成一个对应异常类的对象。 * 并将此对象抛出。 * 一旦抛出对象以后,其后的代码就不再执行。 * * 关于异常对象的产生:① 系统自动生成的异常对象 * ② 手动的生成一个异常对象,并 阅读全文
posted @ 2021-04-04 00:41 小白冲 阅读(319) 评论(0) 推荐(0) 编辑
摘要: /* * 一、异常体系结构 * * java.lang.Throwable * | java.lang.Error:一般不编写针对性的代码进行处理。 * | java.lang.Exception:可以进行异常的处理 * | 编译时异常(checked) * | IOException * | Fi 阅读全文
posted @ 2021-04-03 19:05 小白冲 阅读(74) 评论(0) 推荐(0) 编辑
摘要: 关键字:abstract abstract: 抽象的1.可以用来修饰:类、方法2.具体的:abstract修饰类:抽象类 * > 此类不能实例化 * > 抽象类中一定有构造器,便于子类实例化时调用(涉及:子类对象实例化的全过程) * > 开发中,都会提供抽象类的子类,让子类对象实例化,完成相关的操作 阅读全文
posted @ 2021-04-03 10:37 小白冲 阅读(63) 评论(0) 推荐(0) 编辑
摘要: /* * 类的内部成员之五:内部类 * 1. Java中允许将一个类A声明在另一个类B中,则类A就是内部类,类B称为外部类 * * 2.内部类的分类:成员内部类(静态、非静态) vs 局部内部类(方法内、代码块内、构造器内) * * 3.成员内部类: * 一方面,作为外部类的成员: * >调用外部类 阅读全文
posted @ 2021-04-03 00:42 小白冲 阅读(96) 评论(0) 推荐(0) 编辑
摘要: package com.ch.java1; interface A { int x = 0; } class B { int x = 1; } class C extends B implements A { public void pX() { // System.out.println(x);/ 阅读全文
posted @ 2021-04-01 10:52 小白冲 阅读(78) 评论(0) 推荐(0) 编辑
摘要: 在开发中,常看到一个类不是去继承一个已经实现好的类,而是要么继承抽象类,要么实现接口。 阅读全文
posted @ 2021-04-01 10:48 小白冲 阅读(47) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2021-04-01 10:36 小白冲 阅读(49) 评论(0) 推荐(0) 编辑
摘要: 应用场景: 安全代理:屏蔽对真实角色的直接访问。 远程代理:通过代理类处理远程方法调用(RMI) 延迟加载:先加载轻量级的代理对象,真正需要再加载真实对象比如你要开发一个大文档查看软件,大文档中有大的图片,有可能一个图片有100MB,在打开文件时,不可能将所有的图片都显示出来,这样就可以使用代 阅读全文
posted @ 2021-04-01 10:20 小白冲 阅读(362) 评论(0) 推荐(0) 编辑
上一页 1 ··· 8 9 10 11 12 13 14 15 下一页