Java基础
merbng
迷茫,本就是青春该有的样子 ,但不要让未来的你,讨厌现在的自己
展开
-
Java基础-单例模式
概述 使用一个私有构造函数、一个私有静态变量以及一个公有静态函数来实现。 私有构造函数保证了不能通过构造函数来创建对象实例,只能通过公有静态函数返回唯一的私有静态变量。 实现 #####懒汉式-线程不安全 以下实现中,私有静态变量uniqueInstance被延迟实例化,这样做的好处是,如果没有用到该类,那么就不会实例化uniqueInstance,从而节约资源。 pu...原创 2018-05-09 23:25:41 · 172 阅读 · 0 评论 -
Java基础-工厂方法模式
概念 定义了一个创建对象的接口,但由子类决定要实例化哪个类,工厂方法把实例化推迟到子类。 类图 在简单工厂中,创建对象的是另一个类,而在工厂方法中,是由子类来创建对象。 下图中,Factory有一个doSomething()方法,这个方法需要用到一组产品对象,这组产品对象由factoryMethod()方法创建,该方法是抽象的,需要由子类去实现。 实现 public ...原创 2018-05-10 23:46:45 · 124 阅读 · 0 评论 -
Java基础-抽象类和接口
抽象类:对一类事物的抽象 定义: 如果一个类中没有包含足够多的信息来描述一个具体的对象,这样的类就是抽象类。 接口:对某一行为的抽象 定义: 接口在java中是一个抽象类型,是抽象方法的集合。一个类通过实现接口的方式,从而继承接口中的抽象方法。 抽象类的意义: 为子类提供一个公告的类型; 封装子类中的重复内容(成员变量和方法) 定义有抽象的方法,子类虽然有不同的实...原创 2018-05-17 18:34:42 · 144 阅读 · 0 评论 -
Java基础-抽象工厂模式
概念 提供一个接口,用于创建相关的对象家族。 类图 设计模式-抽象工厂模式.png 抽象工厂模式创建的是对象家族,也就是很多对象而不是一个对象,并且这些对象是相关的,也就是说必须一起创建出来。而工厂模式只是用于创建一个对象,这和抽象工厂模式有很大不同。 抽象工厂模式用到了工厂模式来创建单一对象,AbstractFactory中的createPruductA和createPro...原创 2018-05-12 00:10:49 · 132 阅读 · 0 评论 -
Java基础-面向对象基础
面向对象三要素:继承、封装、多态。 继承: 继承基类的方法,并作出自己的扩展。 声明某个子类兼容于某基类(或者说,接口上完全兼容于基类),外部调用者可无需关注其差别(内部机制会自动请求派发dispatch到合适的逻辑)。 封装: 封装的意义,在于明确标识出允许外部使用的所有成员函数和数据项,或者叫接口。 多态: 基于对象所属类的不同,外部对同一个方法的调用,实际执行...原创 2018-05-12 23:44:13 · 252 阅读 · 0 评论 -
Java基础- ==和equals和hashCode的区别
java中==和equals和hashCode的区别 1. == 在用关系操作符 == 比较的是值本身, int n=3; int m=3; System.out.println(n==m); String str = new String("hello"); String str1 = new Stri...原创 2018-05-19 23:37:03 · 239 阅读 · 0 评论 -
Java基础-集合框架
概念 Java集合框架提供了数据持有对象的方式,提供了对数据集合的操作,Java集合框架位于java.util包下,主要有三个大类:Collect、Map接口以及对集合操作的工具类。 Collection + ArrayList: 线程不同步,默认初始容量为10,当数组大小不足时增长为当前长度的50% + Vector: 线程同步,默认初始容量为10,当数组大小不足时增长率为当...原创 2018-05-14 00:42:55 · 255 阅读 · 0 评论 -
Java基础-Synchronized原理
在多线程并发编程中Synchronized一直是元老级角色,很多人都会称呼它为重量级锁,但是随着Java SE1.6中为了减少获得锁和释放锁带来的性能消耗而引入的偏向锁和轻量级锁,以及锁的存储结构和升级过程。 CAS(Compare and Swap),用于在硬件层面上提供原子性操作,在Intel处理器中,比较并交换通过指令cmpxchg实现。比较是否和给定的数值一致,如果一致则修改,不一致则不...原创 2018-05-16 00:07:15 · 133 阅读 · 0 评论 -
Java基础-建造者模式
定义 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以构建不同的表示。 场景 比如最常见的AlertDialog,比如Camera开发过程中,可能需要设置一个初始化的相机配置,设置摄像头方向,闪光灯开关闭,成像质量等等,这种场景下就可以使用建造者模式。 优缺点 优点 1).易于解耦,将产品本身与产品创建过程进行解耦,可以使用相同的创建过程来得道不同的产品,也就是说细节依赖...原创 2019-03-12 00:14:22 · 95 阅读 · 0 评论