java
文章平均质量分 94
cottonrose_1121
这个作者很懒,什么都没留下…
展开
-
详解Condition的await和signal等待/通知机制
Object的wait、notify与Condition的区别?从整体上看,Object的wait、notify是与对象监视器配合完成线程间的等待/通知机制,是java底层级别的;而Condition是与Lock配合完成等待通知机制,是语言级别的,具有更高的可控制性和扩展性。(1)Condition能够支持不响应中断,而Object提供的wait方法不支持;(2)Condition支持多...原创 2020-02-26 17:12:29 · 1603 阅读 · 0 评论 -
深入理解Java多线程AQS及其底层实现
首先,为什么要理解AQS???因为同步组件(这里不仅仅指锁,还包括CountDownLatch等)的实现依赖于同步器AQS,即AQS是同步组件实现的核心部分。那么,AQS到底是什么呢???AQS(AbstractQueuedSynchronizer),简称同步器,是用来构建锁和其它同步组件的基础框架。AQS的组成可以理解如下图:要想掌握AQS的底层实现,我们就要学习这些模板方法,首先我们就...原创 2020-02-19 19:43:42 · 499 阅读 · 0 评论 -
【java】面向对象编程——类与对象的封装
Java比C更方便的地方在于Java是面向对象的。面向对象的特征:1、封装 ; 2、继承 ; 3、多态;以下对面向对象的封装特征进行简述:一、类与对象的定义与使用类是指共性的概念,对象是一个具体的、可以使用的事物。首先产生类,而后才可以产生对象。类的组成: 1. 方法(操作的行为) 2. 属性(变量,描述每个对象的具体特点)类的定义:class 类名称 { 属性1;...原创 2018-12-24 17:30:24 · 297 阅读 · 0 评论 -
【java】String类及其练习
一、String类字符串实例化直接赋值String str = "Hello Bit";传统方法(构造法)String str = new String("Hello Bit");这两种方法存在差异:直接赋值:只会开辟一块堆内存空间,并且该字符串对象可以自动保存在对象池中以供下次使用。构造方法:会开辟两块堆内存空间,其中一块成为垃圾空间,不会自动保存在对象池中,可以使用 i...原创 2018-12-27 17:17:44 · 333 阅读 · 0 评论 -
【java】面试题:请解释String类中两种对象实例化的区别
在叙述String类知识点的博客中提到了String实例化有如下两种方式:直接赋值String str = "Hello Bit";传统方法(构造法)String str = new String("Hello Bit");接下来将对这两种方法进行分析:1.直接赋值法请写出下述代码的输出: String str1 = "Hello"; String str2 = "Hell...原创 2018-12-27 16:45:33 · 443 阅读 · 0 评论 -
【java】数组及相关练习
一、一维数组1、动态初始化声明并初始化数组:数据类型[ ] 数组名称 = new 数据类型 [长度] ; 如:int [ ] intArray = new int [ 3 ]; 分步进行数据初始化:int[ ] intArray = null; intArray = new int [ 3 ];数组开辟空间后,可进行如下操作:数组的访问通过索引来完成。同C数组...原创 2018-12-21 21:37:50 · 158 阅读 · 0 评论 -
【java】字符串比较分析
在叙述String类知识点的博客中提到了字符串比较有如下两种方式:== 和 .equals()前者是比较变量所指向的值在堆空间上的内存地址值。后者是比较字符串的值。接下来将对上述两种方式进行分析:使用“==”比较字符串:有如下代码: String str1 = "Hello" ; String str = new String("Hello") ; System.out.pri...原创 2018-12-27 15:49:44 · 151 阅读 · 0 评论 -
【java】抽象类与接口小结
一、抽象类抽象类的定义与使用定义:抽象类只是在普通类的基础上扩充了一些抽象方法而已,所谓的抽象方法指的是只声明而未实现的方法(即没有方 法体)。所有抽象方法要求使用abstract关键字来定义,并且抽象方法所在的类也一定要使用abstract关键字来 定义,表示抽象类。定义一个抽象类:abstract class Person{ private String name ; // ...原创 2018-12-27 11:31:42 · 147 阅读 · 0 评论 -
阿里java校招笔试题——代码块中语句的执行顺序
下面是阿里java校招的一道笔试题,代码如下:public class HelloA { //构造方法 public HelloA(){ System.out.println("Hello A!父类构造方法"); } //非静态代码块 { System.out.println("i'm A class...原创 2018-12-26 18:09:56 · 864 阅读 · 0 评论 -
【java】面向对象编程——类与对象的继承和多态
一、代码块代码块定义:使用 {} 定义的一段代码。根据代码块定义的位置以及关键字,又可分为以下四种:普通代码块(定义在方法中,调试)构造块(定义在类中的(不加修饰符))静态块同步代码块构造块构造块在每次产生一个新的对象就调用一次构造块。构造块在构造方法前执行。静态块静态块优先于构造块执行。无论产生多少实例化对象,静态块都只执行一次。静态块的主要作用是对static...原创 2018-12-26 17:18:31 · 205 阅读 · 0 评论 -
用java实现基于字符的简易收银台系统
从整体上来说,这个简易系统分为以下四个部分:店主、顾客、关于、退出。各部分应该实现的功能如下图:整体框架代码public static Scanner reader = new Scanner(System.in);public static void main(String[] args) { Boolean condi = true; GoodsCenter.ini...原创 2018-12-04 21:26:03 · 1749 阅读 · 0 评论