
Java 基础
Java 基础
Wayfreem
记录学习笔记
展开
-
通过注解自己实现 DI容器
Spring 容器中最经典的概念就有 控制反转 IOC 与 依赖注入 DI,其实这个两个概念呢,又是相辅相成的。太多的道理就不说了,相信大家都懂,下面呢,我们通过注解实现一个低配版的 DI 容器。源码部分首先,我们引入两个注解:一个是 @SimpleInject (普通注入);另外一个是 @SimpleSingleton (单列注入)。普通注入注解 SimpleInject 来表达出依赖关系,类似于 @Autowired@Retention(RUNTIME)@Target(FIELD)publ原创 2020-07-29 10:28:10 · 408 阅读 · 0 评论 -
Java线程同步之synchronized关键字
线程安全问题关于线程安全问题,就是指在高并发的情况下多个线程操作同一个资源的时候,就会出现该资源被多次修改导致出现与预期不一致的结果。为了处理这种问题,就必须使用同步,所谓同步就是指多个操作在同一个时间段内只能又一个线程线程进行,其他线程要等待此线程完成之后才可以继续执行。需要使用到 synchronized 关键字。synchronized关键字关键字 synchronized 有两种用...原创 2020-04-01 23:20:28 · 497 阅读 · 0 评论 -
Java基础知识回顾之常用数据类型
简介在 Java 语言中,可以将数据类型分为 简单数据类型 和 复合数据类型两种。简单数据类型是 Java 的基础类型,包括整数、浮点数和布尔类型。复合数据类型是由简单数据类型组成,是用户根据自己的需要定义并实现其运算的类型,包括类、接口、数组。关系图基本类型浮点数类型整数类型字符类型布尔类型floatdoublebyteintshortlongcharboolean引用类型类类型接口类型...原创 2018-10-13 15:20:59 · 242 阅读 · 0 评论 -
Java基础知识回顾之内部类
简介内部类是指在一个外部类的内部再定义一个类。内部类作为外部类的一个成员,并且依附于外部类而存在。内部类可以是静态的,可以使用 protected 和 private 来修饰,而外部类只能使用 public 和 默认的包访问权限。Java 中内部类分为:成员内部类、局部内部类、静态内部类和匿名内部类。成员内部类作为外部类的一个成员存在,与外部类的属性、方法并列。内部类的表现形式// 定...原创 2018-11-17 10:44:27 · 158 阅读 · 0 评论 -
Java基础知识回顾之final关键字
简介在 Java 中我们把 final 称为终结器,在 Java 中可以使用 final 定义类、方法、属性。通过 final 修饰以后,可以表示其修饰的类、方法和变量不可改变。使用 final 定义类使用 final定义的类不能够有子类,并且该类中的成员方法都默认为final方法。final class A{ //使用 final 定义一个类 } // 这里在 eclipse 上...原创 2018-11-20 21:12:26 · 226 阅读 · 0 评论 -
Java基础知识回顾之static修饰属性
static 关键字,我们在开发用的还是比较多的。在《Java编程思想》有下面一段话static 方法就是没有 this 的方法。在 static 方法内部不能调用非静态方法,反过来是可以的。而且可以在没有创建任何对象的前提下,仅仅通过类本身来调用 static 方法。这实际上正是 static 方法的主要用途。static 的用法比较广泛:静态变量、静态成员、静态函数等。我们在使用单列模...原创 2018-11-24 16:00:39 · 246 阅读 · 0 评论 -
Java基础知识回顾之static修饰方法
前面一篇已经介绍了部分关于 static 的用法,主要是介绍的是 static 修饰变量的一些知识。现在的这篇介绍下 static 修饰方法。static 修饰方法没有实例化类时,调用 static 方法Test.javaclass Book{ // 设置一个默认的值 private static String pub = "清华大学出版社"; // Book 类正常的属性...原创 2018-11-24 16:04:18 · 308 阅读 · 0 评论 -
Java基础知识回顾之static应用与总结
前面两篇分别介绍了static的属性以及方法。本篇就做一个收尾,介绍下剩下的。在之前的总结:不管多少个对象,都使用同一个 static 属性使用 static 方法可以避免掉用实例化方法之后才能调用的限制。导入 static 类的包静态导入包静态导包用法,将类的方法直接导入到当前类中,从而直接使用“方法名”即可调用类方法,更加方便。但是看上面的就不是特别直观,不便于阅读代码。Ut...原创 2018-11-24 16:06:57 · 176 阅读 · 0 评论 -
Java基础知识回顾之对象比较
说明如果是需要判断两个数字是否相等,可以使用" == ",如果是判断字符串是否相等,是使用 “equals()”。如果是现在判断一个自定义的类,要想判断两个对象是否相等,那么应该是需要比较在类对象之中所有属性内容的比较,只有所有属性内容相等,才算相等。直接比较属性如果我们使用最原始的方式来对对象进行比较,那么就需要按照下面的代码所写,对每一个属性进行判断class Book{ priva...原创 2018-12-04 22:09:34 · 149 阅读 · 0 评论 -
Java基础知识回顾之接口与抽象类的区别
抽象类与接口的区别: No. 区别 抽象类 接口 1 关键字 abstract class interface 2 组成 构造方法、普通方法、抽象方法、static方法、常量...原创 2018-12-07 22:32:30 · 131 阅读 · 0 评论 -
Java基础知识回顾之抽象类
简介如果是需要了解抽象类,就需要知道什么普通类。对于普通类,可以直接产生实例化对象,并且在普通类之中可以包含有构造方法、普通方法、static 方法、常量、变量等内容。而所谓的抽象类就是指在普通类的结构中增加抽象方法的组成部分。在所有的普通方法上都会有一个“{}”,这个表示方法体,有方法体的方法一定可以被对象直接使用。而抽象方式是没有方法体的方法,同时抽象方法还必须使用 abstract 关键...原创 2018-12-05 18:57:27 · 158 阅读 · 0 评论 -
Java基础知识回顾之接口
简介如果一个类之中只是由抽象方法和全局常量所组成的,那么在这种情况下会将其定义为一个抽象类(因为抽象类中含有构造方法),而只会定义为接口,所以所谓的接口严格来讲就属于一个特殊的类,而且这个类中只有抽象方法与全局常量(是没有构造方法的)。要定义一个接口使用 interface 关键字完成。接口的重要性Java 接口体现的是一种规范和分离的程序设计原则,充分利用接口可以降低程序各个模块之间的耦...原创 2018-12-05 19:05:33 · 182 阅读 · 0 评论 -
Java基础知识回顾之枚举简介
简述从 2005 年之后,Java 增加了枚举的概念,同时增加了一个 enum 的关键字。在大多数情况下,Java 类 的对象是优先而且固定的,例如季节(只有春、夏、秋、冬)四个对象。像这种有限而且固定的类,就被称为枚举类。详解在我们没有接触到 枚举类的时候,如果是需要做的类似枚举的功能,就会用到 多例模式。多例设计模式:构造方法私有化,而后在类的内部提供若干个实例化对象,并且 通过 s...原创 2018-12-12 22:38:31 · 159 阅读 · 0 评论 -
Java基础知识回顾之枚举定义其他结构
说明虽然发现枚举的定义比较简单,可是对于之前介绍的多例模式中还可以定义属性和方法。实际上枚举也可以。但是有以下几点要求:枚举中定义的构造方法不能使用 public 声明。(多例模式需要将构造方法私有化。)枚举对象必须要放在首行,随后才可以定义属性、构造、普通方法。扩充枚举功能使用下面的代码,与之前的多例设计模式操作的方式相同,但是代码要相对简洁。enum Color { /...原创 2018-12-12 22:40:54 · 290 阅读 · 0 评论 -
Java基础知识回顾之异常
摘要异常是指程序不正常,有错误的代码或者潜在的风险。在编写 Java 应用程序的过程中,发生异常是再所难免的。异常对程序员来说是一件非常头疼的事情。但是 Java 可以自动检测异常,并能够捕获异常,可以编写专门的程序来处理异常。认识异常在编程时应该尽可能避免错误和异常的发生,对于不可避免或不可预测的情况,Java 使用异常对象来表示。Java 异常的来源有两种:Java 在运行时,环境自...原创 2018-12-19 20:35:03 · 177 阅读 · 0 评论 -
Java基础知识回顾之异常throws 与 throw 关键字
简介throws 关键字throws 声明抛出异常的思路是,当前方法不知道如何处理这种类型的异常,该异常应该由上一级调用。 throws 关键字主要用于方法声明上,指的是当方法之中出现异常后交给被调用出处理。 JVM 对异常处理方法是:打印异常的跟踪栈信息,并终止程序运行。throws 语句的语法格式:throws ExceptionClass1,ExceptionClass2,Excep...原创 2018-12-19 20:36:35 · 446 阅读 · 0 评论 -
Java基础知识回顾之自定义异常
简介Java 中提供了大量的异常,但是在实际开发工作中,可能根据实际的业务,需要自己定义异常。自定义异常需要继承 Throwable 或者它的子类 Exception。通常情况下,我们选择继承 Exception 或者 RuntimeException。例如: 当要执行增加操作的时候,有可能出现一些错误的数据,错误的数据一旦出现就应该抛出异常,例如:AddException(这个是需要自己定义...原创 2018-12-19 20:39:24 · 256 阅读 · 0 评论 -
Java基础知识回顾之Assert关键字
简介assert 关键字是在 JDK 1.4 的时候引入的,其主要的功能是进行断言。Java 中的断言指的是在程序执行到某行代码中时,一定是预期的结果。代码声明方式1、assert <boolean表达式>如果<boolean表达式>为true,则程序继续执行。如果为false,则程序抛出AssertionError,并终止执行。2、assert <boo...原创 2018-12-19 20:43:30 · 322 阅读 · 0 评论 -
Java基础知识回顾之this关键字
具体内容在 Java 程序中,当局部变量和全局变量数据类型和名称都相同的时,此时全局变量会被隐藏而变得不能使用。即:局部变量会覆盖掉全局变量。在 Java 程序中,利用 this 关键字可以显示类属性的调用、类方法的调用、表示当前对象。使用 this 的语法格式如下:this.成员变量名this.成员方法名()this 具体使用调用成员变量Demo.java// 定义一个内部类...原创 2018-11-18 20:22:37 · 183 阅读 · 0 评论 -
Java基础知识回顾之方法重载
定义方法重载(Overloading)的定义:如果有两个方法的方法名相同,但参数不一致,哪么可以说一个方法是另一个方法的重载。 具体说明如下:方法名相同方法的参数类型,参数个不一样方法的返回类型可以不相同方法的修饰符可以不相同main 方法也可以被重载但是都是有一个前提:必须是在同一个类中。MyClass.javaclass BookInfo{ String title; ...原创 2018-11-08 21:49:25 · 214 阅读 · 0 评论 -
Java基础知识回顾之Stirng类
从String的基础概念,以及如何初始化,再加上字符串的比较、字符串的不可改变性、常量池等几个方面来介绍String类。原创 2018-10-12 22:31:12 · 166 阅读 · 0 评论 -
Java基础知识回顾之Stirng类常用方法(一)
说明String 类在所有开发中用到的次数特别多,String类中也提供了大量的对字符串操作的方法。下面就一个个的看下常用的那部分方法。先给出官网地址:传送门字符串与字符在很多语言中都是利用了字符数组的概念描述字符串的信息,这点在 Java String 类的方法也有所体现。No.方法名称类型描述1public String(char[] value)构造方法...原创 2018-10-12 22:42:55 · 175 阅读 · 0 评论 -
Java基础知识回顾之Stirng类常用方法(二)
说明String 类在所有开发中用到的次数特别多,String类中也提供了大量的对字符串操作的方法。下面就一个个的看下常用的那部分方法。个人整理相关连接:Java基础知识回顾之Stirng类常用方法(一)Java基础知识回顾之Stirng类常用方法(二)Java基础知识回顾之Stirng类常用方法(三)字符串替换No.方法名称类型描述1public Stri...原创 2018-10-12 22:48:12 · 204 阅读 · 0 评论 -
Java基础知识回顾之常用数据类型的包装类
Java 虽然是一门面向对象的编程语言,但是其包括的8种基本数据类型并不支持面向对象的编程机制。也就说基本数据类型不具备“对象”的特性。例如:没有属性、没有方法可以调用。原创 2018-10-17 23:35:19 · 166 阅读 · 0 评论 -
Java基础知识回顾之数组简介
本文介绍数组的声明,包括一位数组,二维数组,三维数组的声明,以及如果实例化数组,以及循环遍历数组取到数组的值。原创 2018-10-14 22:14:32 · 198 阅读 · 0 评论 -
Java基础知识回顾之数组与方法参数的传递
前面介绍了数组的定义,这里就通过不同的代码实例来介绍数组与方法参数的传递内容。通过对象数组、冒泡等操作来进一步了解数组的操作原创 2018-10-14 23:07:55 · 362 阅读 · 0 评论 -
Java基础知识回顾之自定义数组
了解大致数组的相关操作之后,我们可以尝试自己实现一个数组类,能够具有常用的数组功能。通过一些常用的数组功能,具体实现出一个数组类。原创 2018-10-14 23:11:16 · 216 阅读 · 0 评论 -
Java基础知识回顾之面对对象基础理解
Java 对象的引用说明类的描述是公共特征,类必须通过对象才可以使用声明对象指的是未开辟堆的内存对象,如果直接是使用此对象,会出现"NullPointerException",对象可以通过关键字 new 来进行堆内存空间的开辟,有了堆内存引用的对象才称为实例化对象堆内存保存的是对象中所有属性的内容,而栈内存保存的是堆内存的地址数值(为了简单理解,才称栈内存保存的是对象名称)垃圾空间指的...原创 2018-11-04 21:35:21 · 134 阅读 · 0 评论 -
Java基础知识回顾之代码块
代码块我们主要观察普通代码块、构造块、静态块的主要作用。在程序编写之中可以直接使用 {} 定义一段语句,那么根据此部分定义的位置以及关键字的不同可以分为以下几种:普通代码块构造块静态块不过,我们在写程序的时候,尽量不去使用代码块。普通代码块如果说一个代码块写在了方法里,那么就称它了普通代码块。代码实例下面说的变量,只是相对关系。public class TestDemo...原创 2018-11-04 21:29:27 · 207 阅读 · 0 评论 -
Java基础知识回顾之可变参数
简介从 JDK 1.5 中,引入了可变参数的新特性。如果说要设计一个方法,这个方法可以接收任意多个整型数据。可以直接用(数据类型 ...属性名)来解决。使用可变参数时要注意,一个方法只能有一个可变参数,当方法含有多个参数时,可变参数要放在最后面。public int add(int... data) { // 逻辑处理}代码示例使用可变参数时,我们需要使用数组来解析。pub...原创 2018-11-11 23:07:10 · 144 阅读 · 0 评论 -
Java基础知识回顾之封装性
理解封装性封装(Encapsulation)是面向对象的三大特征之一(另外两个是继承性和多态性),它是指的是将对象的状态信息隐藏在对象内部,不允许外部程序直接访问对象内部信息,而是通过该类所提供的方法来实现对内部信息操作与访问。封装是面向对象编程语言对客观世界的模拟,在客观世界里,对象的状态信息都被隐藏在对象内部,外界无法直接操作和修改。封装性的好处:隐藏类的实现细节让使用者只能通...原创 2018-11-08 21:31:35 · 291 阅读 · 0 评论 -
Java基础知识回顾之继承性
Java基础知识回顾之封装性简介继承的最大特征是解决代码的重用问题。特征是,一个父类可以拥有多个子类。子类继承父类的特性,并且子类可以有自己的"扩展特性"。实现的方式通过 class A extends B 类实现类的继承。子类也配称为 派生类, 父类也配称为 基类(超类、Super Class)class 父类 {} class 子类 extends 父类 {}特性说明...原创 2018-11-08 21:36:39 · 322 阅读 · 0 评论 -
Java基础知识回顾之多态性
Java基础知识回顾之封装性Java基础知识回顾之继承性简介多态的核心就是类型的一致性。对象上的每一个引用和静态的类型检查器都要确认这样的依附(多个子类继承一个父类)。多态性严格来讲有两种描述形式方法的多态性方法的重载:同一个方法名称,会根据传入参数的类型以及个数不同执行不同的方法体。方法的覆写:同一个方法,会根据子类的不同实现,实现不同的功能。对象的多态性:指的是发生...原创 2018-11-08 21:39:17 · 191 阅读 · 0 评论 -
Java基础知识回顾之泛型
简介Java 是一门面对对象的语言,而泛型是为了 Java 面向对象这一特性而推出的,实现了对 Java 语言的类型系统的扩展,支持创建可以按类型进行参数化的类。使用了泛型之后,可以把类型参数看作是使用参数化类型时一个占位符,就像方法的形式参数是运行时传递的值的占位符一样。从 Java 1.5 之后就开始新增泛型技术,而泛型技术的核心意义在于:类定义的时候,可以使用一个标记,此标记就表示类中属...原创 2018-12-17 23:21:21 · 184 阅读 · 0 评论