08 2019 档案
摘要:按照规划,从本篇开始我们开启『并发』系列内容的总结,从本篇的线程开始,到线程池,到几种并发集合源码的分析,我们一点点来,希望你也有耐心,因为并发这块知识是你职业生涯始终绕不过的坎,任何一个项目都或多或少的要涉及一些并发的处理。 这一系列文章只能算是对并发这块基本理论知识的一个总结与介绍,想要成为并发
阅读全文
摘要:断言:也就是所谓的assertion,是jdk1.4后加入的新功能。 它主要使用在代码开发和测试时期,用于对某些关键数据的判断,如果这个关键数据不是你程序所预期的数据,程序就提出警告或退出。 当软件正式发布后,可以取消断言部分的代码。java中使用assert作为断言的一个关键字,这就可以看出jav
阅读全文
摘要:1. Java 中的异常 前言:Java 中的异常处理是处理程序运行错误时的强大机制之一,它可以保证应用程序的正常流程。 首先我们将了解java异常、异常的类型以及受查和非受查异常之间的区别。 1.1 什么是异常? 字面意义:异常是一种不正常的情况。 在 java 中,异常是扰乱程序正常流程的事件,
阅读全文
摘要:抽象类 抽象类必须用 abstract 修饰,子类必须实现抽象类中的抽象方法,如果有未实现的,那么子类也必须用 abstract 修饰。抽象类默认的权限修饰符为 public,可以定义为 public 或 procted,如果定义为 private,那么子类则无法继承。抽象类不能创建对象 抽象类和普
阅读全文
摘要:1.抽象类 在自上而下的继承层次结构中,位于上层的类更具有通用性,甚至可能更加抽象。从某种角度看,祖先类更加通用,它只包含一些最基本的成员,人们只将它作为派生其他类的基类,而不会用来创建对象。甚至,你可以只给出方法的定义而不实现,由子类根据具体需求来具体实现。 这种只给出方法定义而不具体实现的方法被
阅读全文
摘要:内部类可以是静态(static)的,可以使用 public、protected 和 private 访问控制符,而外部类只能使用 public,或者默认。 成员式内部类 在外部类内部直接定义(不在方法内部或代码块内部)的类就是成员式内部类,它可以直接使用外部类的所有变量和方法,即使是 private
阅读全文
摘要:在 Java 中,允许在一个类(或方法、语句块)的内部定义另一个类,称为内部类(Inner Class),有时也称为嵌套类(Nested Class)。 内部类和外层封装它的类之间存在逻辑上的所属关系,一般只用在定义它的类或语句块之内,实现一些没有通用意义的功能逻辑,在外部引用它时必须给出完整的名称
阅读全文
摘要:类与类之间最常见的关系主要有三种:依赖(uses-a)、聚合(has-a)和继承(is-a)。 下面以在线书店订单系统为例,来详细的讲述这三种关系的概念。 在线书店订单系统的主要功能是:注册用户可以登录到网上书店选购图书,在线填写订单,并支付购书款。书店确认已经收到购书款时,按用户留下的地址邮寄图书
阅读全文
摘要:在 Java 中,声明类、变量和方法时,可使用关键字 final 来修饰。final 所修饰的数据具有“终态”的特征,表示“最终的”意思。具体规定如下: final 修饰的类不能被继承。 final 修饰的方法不能被子类重写。 final 修饰的变量(成员变量或局部变量)即成为常量,只能赋值一次。
阅读全文
摘要:static 修饰符能够与变量、方法一起使用,表示是“静态”的。 静态变量和静态方法能够通过类名来访问,不需要创建一个类的对象来访问该类的静态成员,所以static修饰的成员又称作类变量和类方法。静态变量与实例变量不同,实例变量总是通过对象来访问,因为它们的值在对象和对象之间有所不同。 请看下面的例
阅读全文
摘要:这里所说的对象类型转换,是指存在继承关系的对象,不是任意类型的对象。当对不存在继承关系的对象进行强制类型转换时,java 运行时将抛出 java.lang.ClassCastException 异常。 在继承链中,我们将子类向父类转换称为“向上转型”,将父类向子类转换称为“向下转型”。 很多时候,我
阅读全文
摘要:java多态性带来一个问题,就是如何判断一个变量所实际引用对象的类型。这里java帮我们引入了 instanceof 运算符。 instanceof运算符用来判断一个变量的所引用对象的实际类型,注意是它引用的对象类型,不是变了类型。 请看下面的代码: public class People { }
阅读全文
摘要:在Java中,父类的变量可以引用父类的实例,也可以引用子类的实例。 请读者先看一段代码: public class Demo { public static void main(String[] args){ Animal obj = new Animal(); obj.cry(); obj = n
阅读全文
摘要:super可以理解为是指向自己超(父)类对象的一个指针,而这个超类指的是离自己最近的一个父类。 super也有三种用法: 1.普通的直接引用 与this类似,super相当于是指向当前对象的父类,这样就可以用super.xxx来引用父类的成员。 2.子类中的成员变量或方法与父类中的成员变量或方法同名
阅读全文
摘要:继承时类和类之间的关系,是一个很简单很直观的概念,与显示生活中的继承(例如儿子继承了父亲财产)类似。 继承可以理解为一个类从另一个类中获取方法和属性的过程。如果类B继承于类A,那么类B就拥有类A的属性和方法。 继承使用extends关键字。 例如我们定义了一个People: public class
阅读全文
摘要:虽然 Java 语言是典型的面向对象编程语言,但其中的八种基本数据类型并不支持面向对象编程,基本类型的数据不具备“对象”的特性——不携带属性、没有方法可调用。 沿用它们只是为了迎合人类根深蒂固的习惯,并的确能简单、有效地进行常规数据处理。 Java为每种基本数据类型分别设计了对应的类,称之为包装类(
阅读全文
摘要:重写(Override) 重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变。即外壳不变,核心重写! 重写的好处在于子类可以根据需要,定义特定于自己的行为。 也就是说子类能够根据需要实现父类的方法。 重写方法不能抛出新的检查异常或者比被重写方法申明更加宽泛的异常。例如:
阅读全文
摘要:this 关键字用来表示当前对象本身,或当前类的一个实例,通过this可以调用对象的所有方法和属性。 例如: public class Demo { private int x = 10; private int y = 15; public void sum(){ //通过this获取成员变量,t
阅读全文
摘要:对于在作用域里定义的变量,作用域同时决定了它的“可见性”以及“存在时间”。在JAVA里,作用域是由花括号的位置决定的。JAVA用一对大括号作为语句块的范围,称为作用域,在作用域里定义的变量,只有在该作用域结束之前才可使用。 在JAVA中,变量的作用域分为四个级别:类级、对象实例级、方法级、块级。 *
阅读全文
摘要:我们以下面的类来说明一个基本的 Java 类的运行顺序: public class Demo { private String name; private int age; public Demo(){ name = "微学院"; age = 3; } public static void main
阅读全文
摘要:一 成员变量 成员变量是指类的一些属性定义,标志类的静态特征,它的基本格式如下: 【访问修饰符】【修饰符】【类型】【属性名称】= 【初始值】 访问修饰符:public(公共的);protected(受保护的);无修饰符和private(私有的)。 修饰符:对属性特征的描述:如static,final
阅读全文