随笔分类 - java
java知识点
摘要:适用于同一操作的不同行为,策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们可以相互替换,让算法独立于使用它的客户而独立变化,具体应用场景如第三方支付对接不同银行的算法。 要点:1)抽象策略角色 2)具体策略角色:包装相关算法和行为 3)环境角色:持有一个策略类的引用,最终给客户端调用
阅读全文
摘要:很多对象有每个对象对其下家的引用而连接起来形成一条链,请求在这条链上传递,直到链上某个对象决定处理此请求,应用场景如单位审批流程等。 要点:1)抽象处理者角色:定义处理请求接口及设定下家引用 2)具体处理着角色:具体处理请求或选择将请求传给下家 1、抽象处理者角色类,定义处理请求接口及下家引用 2、
阅读全文
摘要:适用于为不同操作添加共同的额外行为。通过代理对象访问目标对象,这样可以增加对目标对象的额外操作,达到扩展目标对象功能的目的,如spring事务、AOP等。 要点:1)抽象角色:通过接口或抽象类声明真实角色实现的业务方法。(例子中的Move) 2)代理角色:实现抽象角色,是真实角色的代理(例子中的*P
阅读全文
摘要:抽象类中公开定义了执行它的方法的方式,子类可以按需求重写方法实现,但调用将以抽象类中定义的方式进行,典型应用如银行办理业务流程、冲泡饮料流程。下面给出简单例子,用沸水冲泡饮料,分为四步:将水煮沸、泡制饮料、将饮料倒入杯中、加入调味料。 1、模板抽象类 要点:1)抽象类 2)final修饰的模板方法
阅读全文
摘要:工厂模式是最常见的实例化对象的模式,用来替代new操作。采用这种模式创建对象会有一些额外的操作,但他会带给系统更大的扩展性和更少的修改量。典型的应用spring bean容器。下面简单实现工厂的例子。 1、动物接口,提供公用方法体 2、猫类,继承动物接口,实现猫的eat方法 3、狗类,继承动物接口,
阅读全文
摘要:一、停止线程(interrupt) 停止线程意味着在线程处理玩任务之前停掉正在做的操作,Java之前的版本提供Thread.stop()方法,但这个方法是不安全的,已被废弃。 1、目前停止线程主要有两种方式: 1)使用退出标志 2)使用interrupt方法中断线程。此方式需要使用interrupt
阅读全文
摘要:单例模式保证系统中的类只有一个实例。单例模式的要点有三个;一是某个类只能有一个实例;二是它必须自行创建这个实例;三是它必须自行向整个系统提供这个实例。单例模式可以分为两种模式:饿汉模式、懒汉模式。 1、饿汉模式 测试 2、懒汉模式 测试 3、饿汉模式、懒汉模式区别 1)饿汉模式在类加载时实例就被创建
阅读全文
摘要:首先介绍可见性、原子性、有序性、重排序这几个概念 原子性:即一个操作或多个操作要么全部执行并且执行的过程不会被任何因素打断,要么都不执行。 可见性:一个线程对共享变量值的修改,能够及时地被其它线程看到 共享变量:如果一个变量在多个线程的工作内存中都存在副本,那么这个变量就是这几个线程的共享变量 每个
阅读全文
摘要:java.lang.Class类详解 java Class类详解 一、class类 Class类是java语言定义的特定类的实现,在java中每个类都有一个相应的Class对象,以便java程序运行时系统(JVM)对所有对象进行运行时类型标识,即Class对象,JVM可以通过该对象操作相应的类(如选
阅读全文
摘要:1、什么是反射机制? java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法,对于任意一个对象都能够调用他的属性和方法,这种动态获取属性和方法的功能称为java的反射机制。 也就是说,java程序可以加载一个运行时才得知名称的class,获悉该类的完整构造(但不包括meth
阅读全文
摘要:线程,有时被称为轻量级进程(Lightweight Process,LWP),是程序执行流的最小单元。另外,线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点儿在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。一个线程可以创建和
阅读全文
摘要:java中的流可以从不同的角度进行分类 按流的方向:输入流、输出流(注意这里的输入(read)、输出是相对于程序而言的(writer),个人认为从读、写角度理解更为直观) 按处理数据单位:字节流、字符流(字节流为继承自InputStream和OutputStream的流,以字节(8位)为单位读写;字
阅读全文
摘要:1、什么是泛型? 泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。 Java语言引入泛型的好处是安全简单。 在Java SE 1.5之前,没有泛型的情况的下,通过对
阅读全文
摘要:一、集合类介绍 1、List(元素有放入顺序,可重复) 1.1、List的实现 1.1.1、ArrayList ArrayList就是动态数组(需要连续的存储空间),用MSDN中的说法,就是Array的复杂版本,它提供了动态的增加和减少元素,实现了Collection和List接口,灵活的设置数组的
阅读全文
摘要:一、日期处理类 在 JDK 1.1 之前,类 Date 有两个其他的函数。它允许把日期解释为年、月、日、小时、分钟和秒值。它也允许格式化和解析日期字符串。不过,这些函数的 API 不易于实现国际化。从 JDK 1.1 开始,应该使用 Calendar 类实现日期和时间字段之间转换,使用 DateFo
阅读全文
摘要:类是java的核心和本质,是java语言的基础。 一、java中的类 1、类class 一个类可以包含局部变量、实例变量、类变量(静态变量) 一个类至少有一个构造方法,如果没有,系统会默认给出一个无参构造方法 一个类可以通过关键字new来创建一个新的对象 2、接口interface 接口无法被实例化
阅读全文
摘要:因为业务需求,系统需要设计会员体系,其中一环是有关系统豆的获取与消费。 一、设计场景 1)系统豆的获得:用户可通过购买产品、签到、发表动态、评论、分享等途径获得系统豆,用户可查看系统豆获得明细及总数 2)系统豆的消费:系统豆可以用于消费(按一定比例折算成人民币),消费途径包括 过期,要求每年6月30
阅读全文
摘要:Java内存管理:深入Java内存区域 上面的文章对于java的内存管理机制讲的非常细致,在这里我们只是为了便于后面内容的理解,对java内存机制做一个简单的梳理。 程序计数器:当前线程所执行的字节码的行号指示器,虚拟机下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等基础功能都需要
阅读全文
摘要:关键字是电脑语言事先定义的,是特别意义的标识符,又叫保留字。用来表示一种数据类型或程序的结构等,关键字不能用作变量名、类名、方法名或参数。java目前共有50个关键字,其中"const"和"goto"这两个关键字在Java语言中并没有具体含义(未被使用)。 1、关键字总览 基本数据类型(9):boo
阅读全文
摘要:字符串是程序开发中使用最为频繁,因此为了工作的高效和作为一名想进阶的程序员,了解并掌握字符串的处理显得尤为重要。java为我们提供了String、StringBuffer、StringBuilde三个处理字符串的类,下面我们对其做一个总结和介绍。 1、分别介绍 1)String 解答1: 我们在查看
阅读全文