![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JavaSE
hongguihuang
这个作者很懒,什么都没留下…
展开
-
java 线程通信
本篇聊聊java中的线程通信文章目录线程通信1.1通信的方法1.2 sleep()和wait()的异同线程通信多个线程同时操作共享数据要求交流,就要用到通信。1.1通信的方法wait():调用次方法,阻塞线程,并释放锁notify():唤醒被wait阻塞的线程。如果有多个阻塞的线程,唤醒优先级高的那个。notifyAll();唤醒被wait阻塞的全部线程例如:打印1到100的数,让两个线程交替打印。class Window5 implements Runnable{ pri.原创 2020-11-01 23:47:00 · 62 阅读 · 0 评论 -
java 多线程安全问题(同步机制)
本篇聊聊java中线程安全问题文章目录解决线程安全问题——同步机制1. 同步方式1:synchronized1.1. synchronized代码块1.2 synchronized方法2. Lock3. synchronized和Lock的区别解决线程安全问题——同步机制当有多个线程同时操作共同数据时会出现线程安全的问题。为什么会出现线程安全问题 例如有一个买票系统,如果不加同步系统,当票只有一张时,有两个客户同时要来买票,此时就会有2个线程出现。两个线程同时执行相同的代码去判断票是否为零时.原创 2020-11-01 23:45:05 · 254 阅读 · 0 评论 -
java 创建线程(多线程)
本篇博客聊聊创建线程的四种方法文章目录1.创建多线程1.1 创建线程方式一:继承于Thread类1.2创建线程方法二:实现Runnable接口1.3 比较两种创建线程的方式1.4 创建线程方式三:Callable接口1.4.1 创建Callable接口的步骤1.5 创建线程方式四:线程池2.线程的同步周期1.创建多线程1.1 创建线程方式一:继承于Thread类创建一个继承于Thread的子类重写Thread中的run()方法 ( 线程对象调用start()方法后将调用run().原创 2020-11-01 23:42:34 · 108 阅读 · 0 评论 -
java Object类和类中equals()、toString()方法
本文聊聊java中的Object类和类中equals()、**toString()**两个方法文章目录1.Object类1.1. java.lang.Object类1.2. equals()1.2.1. == 运算符1.2.2. equals()1.3. Object类中toString()1.Object类1.1. java.lang.Object类Object类是所有Java类的根父类如果在类的声明中未使用extends关键字指明其父类,则默认父类为java.lang.Objec.原创 2020-10-23 20:20:01 · 214 阅读 · 0 评论 -
java 代码块
本文讲讲java中的代码块文章目录1. 代码块1.1. 代码块的声明1.2. 代码块的作用:用来初始化类、对象1.2.1. 静态代码块1.2.3. 非静态代码块1. 代码块1.1. 代码块的声明java中代码块用一对大括号定义。class BlockTest{ static{ System.out.println("我是静态代码块"); } { System.out.println("我是非静态代码块"); }}1.2. 代码块的作用:用来初始化类、对象代码块如果.原创 2020-10-23 19:48:12 · 93 阅读 · 0 评论 -
java中的多态、instanceof
本文讲讲java中的多态目录1. 多态1.1. 理解多态性1.2. 何为多态性:1.3. 多态的使用:虚拟方法调用1.4.多态性的使用前提1.5. 多态的小案例代码1. 多态1.1. 理解多态性可以理解为一个事物的多种形态。1.2. 何为多态性:对象的多态性:父类的引用指向子类的对象(或子类的对象赋给父类的引用)1.3. 多态的使用:虚拟方法调用有了对象的多态性以后,我们在编译期,只能调用父类中声明的方法,但在运行期,我们实际执行的是子类重写父类的方法。总结:编译,看左边;运行,看右.原创 2020-10-19 19:13:36 · 165 阅读 · 0 评论 -
java中super关键字
本文聊聊java中的super关键字目录1. super1.1. super的理解1.2. super的使用1.3. super的使用:调用属性和方法1.4. super调用构造器1.5谈谈个人对实例化的理解1. super1.1. super的理解可以理解为:父类的1.2. super的使用可以用来调用:属性、方法、构造器1.3. super的使用:调用属性和方法我们可以在子类的方法或构造器中。通过使用"super.属性"或"super.方法"的方式,显式的调用父类中声明的属性或方.原创 2020-10-19 17:33:09 · 125 阅读 · 0 评论 -
java方法重写
本文聊聊java中的方法重写目录1. 方法重写1.1. 方法重写概念1.2方法重写的注意点1. 方法重写1.1. 方法重写概念方法重写:子类继承父类后,对父类中相同的方法名称和相同形参类型的方法重新编写。约定俗称:子类中的叫重写的方法,父类中的叫被重写的方法1.2方法重写的注意点① 子类重写的方法的方法名和形参列表与父类被重写的方法的方法名和形参列表相同② 子类重写的方法的权限修饰符不小于父类被重写的方法的权限修饰符特殊情况:子类不能重写父类中声明为private权限的方法③.原创 2020-10-19 17:19:31 · 175 阅读 · 0 评论 -
java中this关键字
本文介绍java中this关键字目录1. this1.1 this可以用来修饰、调用:属性、方法、构造器1.2. this修饰属性和方法1.3. this调用构造器1. this1.1 this可以用来修饰、调用:属性、方法、构造器1.2. this修饰属性和方法this理解为:当前对象 或 当前正在创建的对象在类的方法中,我们可以使用"this.属性"或"this.方法"的方式,调用当前对象属性或方法。但是,通常情况下,我们都选择省略"this."。特殊情况下,如果方法的形参和类的属性.原创 2020-10-19 17:05:45 · 239 阅读 · 0 评论 -
java 属性赋值顺序
属性赋值顺序1.1属性赋值的方式① 默认初始化② 显式初始化③ 构造器中初始化④ 通过"对象.方法" 或 "对象.属性"的方式,赋值1.2 各种赋值方式的代码① 默认初始化(声明变量时系统默认的值)class Person{ int age; //系统默认把age赋值为0}② 显式初始化class Person{ int age = 10; //显示初始化把age赋值为10}③ 构造器中初始化 class Person{ int age = 10; //显示初始化把原创 2020-10-18 22:22:55 · 925 阅读 · 1 评论 -
java构造器
本文讲讲构造器1 构造器1.1 构造器的作用1.创建对象2.初始化对象的信息1.2构造器的说明1.如果没有显式的定义类的构造器的话,则系统默认提供一个空参的构造器2.定义构造器的格式:权限修饰符 类名(形参列表){} (构造器与类同名)3.一个类中定义的多个构造器,彼此构成重载4.一旦我们显式的定义了类的构造器之后,系统就不再提供默认的空参构造器,我们自己可以在定义一个空参构造器。5.一个类中,至少会有一个构造器。默认构造器权限与的权限类相同1.3 小小案例在类中.原创 2020-10-18 22:06:46 · 119 阅读 · 0 评论 -
java 封装性
本文介绍一下封装1.封装的概念面向对象程式设计方法中,封装(英语:Encapsulation)是指一种将抽象性函式接口的实现细节部分包装、隐藏起来的方法。1.1这里说说自己对于封装的理解当我们创建一个类的对象以后,我们可以通过"对象.属性"的方式,对对象的属性进行赋值。这里,赋值操作只受到属性的数据类型和存储范围的制约。除此之外,没有其他制约条件。但是,在实际问题中,我们往往需要给属性赋值加入额外的限制条件。这个条件就不能在属性声明时体现,我们只能通过方法进行限制条件(例如:一个属性表示年龄,.原创 2020-10-18 21:40:20 · 137 阅读 · 0 评论 -
JAVA属性与局部变量
2123原创 2020-10-13 00:46:44 · 55 阅读 · 0 评论 -
Java面向对象编程
1 面向对象编程面向对象简称 OO(Object Oriented),20 世纪 80 年代以后,有了面向对象分析(OOA)、 面向对象设计(OOD)、面向对象程序设计(OOP)等新的系统开发方式模型的研究。1.1 面向对象和面向过程的区别面向对象是相对于面向过程而言的。面向过程:强调的是功能行为,以函数为最小单位,考虑怎么做。面向对象:将功能封装进对象,强调具备了功能的对象,以类/对象为最小单位,考虑谁来做。1.2 面向对象内容的三条主线1.Java类及类的成员:属性、方法、构造器:代码块、原创 2020-10-12 01:42:04 · 96 阅读 · 0 评论