自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 收藏
  • 关注

原创 JAVA之多态

一、 重写、重载与隐藏1、 重写:又被称为覆盖,子类与父类的方法具有相同的方法名和参数类型,并且子类中方法的返回值和异常比父类小或者相同、访问修饰符比父类大或者相同。注意:子类的静态方法不能覆盖父类中的实例方法,子类中的实例方法不能覆盖父类中的静态方法。2、 重载:同一个类中,方法名相同而参数个数、顺序或类型不同的方法称为重载。3、 隐藏:子类与父类具有相同的属性或静态方法。注意:子类中的静态变量可以隐藏父类中的实例变量,子类中的实例变量可以隐藏父类中的静态变量。二、 静态绑定与动

2022-02-20 16:42:34 246

原创 JAVA之带标签的break和continue

一、带标签的break1、说明执行循环时,跳转到标签处,并结束标签后面的循环,继续执行循环后面的语句。2、示例代码 label: for (int i = 0; i < 3; ++i) { for (int j = 0; j < 3; ++j) { if (j == 2) { break label; } System.out.println("i:" + i + ",

2022-02-12 21:50:02 1170

原创 安卓之生命周期

一、 Activity的生命周期1、 onCreate(): 当活动首次创建时调用,用于初始化操作。2、 onReStart(): 当活动停止后重新启动该活动时调用。3、 onStart(): 当活动被展示给用户时调用,调用之后活动处于可见状态。4、 onResume(): 当活动将开始与用户进行交互时调用,调用之后活动处于可交互状态。5、 onPause(): 当活动被部分覆盖时调用,调用之后活动处于不可交互状态。6、 onStop(): 当活动被完全覆盖时调用,调用之后活动处于不可见状态。

2021-12-23 23:54:53 2161

原创 设计模式汇总

一、设计模式六大原则1.开闭原则:类应该对修改封闭,对扩展开放。2.单一职责原则:一个类只负责一件事。3.里氏替换原则:子类可以替换父类,子类在继承父类时,只做功能的扩展,而不修改父类原有功能。4.依赖倒置原则:细节应该依赖抽象,而抽象不应该依赖细节,抽象位于程序的高层保持稳定不变,具体的实现由细节负责。5.迪米特法则:一个类不应知道自己操作的类的细节。6.接口隔离原则:当接口的部分方法被空实现时,应该将接口进行拆分,让类实现对应的接口。二、创建型设计模式设计模式之单例模式(S

2021-12-12 21:24:33 367

原创 设计模式之访问者模式(Visitor模式)

一、UML类图二、代码示例Client:public class Client { public static void main(String[] args) { ObjectStructure objectStructure = new ObjectStructure(); objectStructure.add(new ConcreteElementA()); objectStructure.add(new ConcreteEleme

2021-12-12 20:58:29 493

原创 设计模式之解释器模式(Interpreter模式)

一、UML类图二、代码示例Client:public class Client { public static void main(String[] args) { Context context = new Context(); Expression terminalExpression = new TerminalExpression(); Expression expression = new NonTerminalExpressio

2021-12-12 20:33:57 278

原创 设计模式之状态模式(State模式)

一、UML类图二、代码示例Client:public class Client { public static void main(String[] args) { Context context = new Context(); context.setState(new ConcreteStateA()); context.request(); }}State:public interface State {

2021-12-11 00:51:56 255

原创 设计模式之中介者模式(Mediator模式)

一、UML类图二、代码示例Client:public class Client { public static void main(String[] args) { Mediator mediator = new ConcreteMediator(); Colleague colleague = new ConcreteColleague(); mediator.register(colleague); colleague.

2021-12-11 00:19:13 714

原创 设计模式之备忘录模式(Memento模式)

一、UML类图二、代码示例Client:public class Client { public static void main(String[] args) { Caretaker caretaker = new Caretaker(); Originator originator = new Originator(); caretaker.setMemento(originator.createMemento());

2021-12-10 00:24:21 201

原创 设计模式之策略模式(Strategy模式)

一、UML类图二、代码示例Client:public class Client { public static void main(String[] args) { Context context = new Context(new ConcreteStrategy()); context.contextMethod(); }}Strategy:public interface Strategy { void strategyM

2021-12-10 00:08:08 486

原创 设计模式之模板方法模式(Template Method模式)

一、UML类图二、代码示例Client:public class Client { public static void main(String[] args) { AbstractClass abstractClass = new ConcreteClass(); abstractClass.templateMethod(); }}AbstractClass:public abstract class AbstractClass {

2021-12-10 00:00:17 327

原创 设计模式之命令模式(Command模式)

一、UML类图二、代码示例Client:public class Client { public static void main(String[] args) { Command command = new ConcreteCommand(new Receiver()); Invoker invoker = new Invoker(command); invoker.call(); }}Command:public i

2021-12-09 23:53:07 608

原创 设计模式之责任链模式(Chain of Responsibility模式)

一、UML类图二、代码示例Client:public class Client { public static void main(String[] args) { Handler handlerA = new ConcreteHandlerA(); Handler handlerB = new ConcreteHandlerB(); handlerA.setNextHandler(handlerB); handlerA.r

2021-12-09 00:25:28 198

原创 设计模式之迭代器模式(Iterator模式)

一、UML类图二、代码示例Client:public class Client { public static void main(String[] args) { Aggregate aggregate = new ConcreteAggregate(); Iterator iterator = aggregate.iterator(); }}Iterator:public interface Iterator { boole

2021-12-09 00:12:14 405

原创 设计模式之观察者模式(Observer模式)

一、UML类图二、代码示例Client:public class Client { public static void main(String[] args) { Subject subject = new ConcreteSubject(); Observer observer = new ConcreteObserver(); subject.add(observer); subject.notifyObservers

2021-12-08 23:56:52 265

原创 设计模式之享元模式(Flyweight模式)

一、UML类图二、代码示例Client:public class Client { public static void main(String[] args) { FlyweightFactory factory = new FlyweightFactory(); Flyweight flyweight = factory.getFlyweight("name"); }}FlyweightFactory:public class Fl

2021-12-07 23:16:19 201

原创 设计模式之组合模式(Composite模式)

一、UML类图1. 安全方式:2. 透明方式:二、代码示例1. 安全方式:Client:public class Client { public static void main(String[] args) { Composite composite = new Composite(); Composite subComposite = new Composite(); Leaf leaf = new Leaf();

2021-12-07 23:05:53 332

原创 设计模式之代理模式(Proxy模式)

一、UML类图二、代码示例Client:public class Client { public static void main(String[] args) { RealSubject realSubject = new RealSubject(); Proxy proxy = new Proxy(realSubject); proxy.operation(); }}Proxy:public class Proxy

2021-12-07 22:42:29 179

原创 设计模式之装饰模式(Decorator模式)

一、UML类图二、代码示例Client:public class Client { public static void main(String[] args) { Component component = new ConcreteComponent(); component = new ConcreteDecorator(component); component.operation(); }}Component:p

2021-12-07 22:31:27 321

原创 设计模式之桥接模式(Bridge模式)

一、UML类图二、代码示例Client:public class Client { public static void main(String[] args) { Implementor implementor = new ConcreteImplementor(); Abstraction abstraction = new RefinedAbstraction(); abstraction.setImplementor(impleme

2021-12-07 00:26:29 309

原创 设计模式之外观模式(Facade模式)

一、UML类图二、代码示例Client:public class Client { public static void main(String[] args) { Facade facade = new Facade(); facade.method(); }}Facade:public class Facade { private SubsystemClassA classA = new SubsystemClassA();

2021-12-06 23:32:11 105

原创 设计模式之适配器模式(Adapter模式)

一、UML类图1. 类适配器2. 对象适配器二、代码示例1. 类适配器Client:public class Client { public static void main(String[] args) { Target target = new Adapter(); target.request(); }}Target:public interface Target { void request();}Ada

2021-12-06 23:08:04 199

原创 设计模式之抽象工厂模式(Abstract Factory模式)

一、UML类图二、代码示例Client:public class Client { AbstractFactory factory = new ConcreteFactory(); ProductA productA = factory.createProductA(); ProductB productB = factory.createProductB();}ProductA:public interface ProductA {}ProductB

2021-12-06 00:07:38 347

原创 设计模式之工厂方法模式(Factory Method模式)

一、UML类图二、代码示例Client:public class Client { Factory factory = new ConcreteFactory(); Product product = factory.createProduct();}Product:public interface Product {}ConcreteProduct:public class ConcreteProduct implements Product{}

2021-12-05 23:44:56 255

原创 设计模式之建造者模式(Builder模式)

一、UML类图二、代码示例Client:public class Client { public static void main(String[] args) { Builder builder = new ConcreteBuilder(); Director director = new Director(builder); director.construct(); Product product = builder

2021-12-05 22:52:29 367

原创 设计模式之原型模式(Prototype模式)

一、UML类图二、代码示例Client:public class Client { public static void main(String[] args) throws CloneNotSupportedException { Prototype prototype1 = new ConcretePrototype(); Prototype prototype2 = prototype1.createClone(); }}Protot

2021-12-05 22:26:49 263

原创 设计模式之单例模式(Singleton模式)

一、UML类图二、代码实例1、饿汉式Client:public class Client { public static void main(String[] args) { Singleton singleton = Singleton.getInstance(); }}Singleton:public class Singleton { private static Singleton mInstance = new Singleton(

2021-12-05 18:39:34 176

原创 TCP总结

一、报文首部格式序号:在一个TCP连接中传送的字节流中的每一个字节都按顺序编号,本字节段表示本报文段所发送数据的第一个字节的序号。确认号:期望收到对方下一报文段的第一个数据字节的序号。若确认号为N,则证明到序号N-1为止的所有数据都已正确收到。数据偏移(首部长度):TCP报文段的数据起始处距离TCP报文段的起始处有多远,以4B为单位。紧急位URG:URG=1时,标明此报文段中有紧急数据,是高优先级的数据,应尽快传送,不用在缓存里排队,配合紧急指针字段使用。确认位ACK:ACK=1时确认号有效,在连

2021-07-03 23:22:26 213 2

原创 JAVA之容器初始大小

1、 ArrayList:102、 Vector:103、 HashSet:164、 LinkedHashSet:165、 TreeSet:166、 Hashtable:117、 HashMap:168、 LinkedHashMap:16

2021-07-03 23:07:59 145

原创 数据库

数据库事务:对数据库的一组操作序列。数据库的四大属性(ACID特性):原子性:事务中对数据库的操作要么全部执行,要么全部不执行隔离性:多个事务并发执行时,一个事务的执行不应影响其他事务的执行,事务之间具有独立性一致性:事务将数据库从一个一致性状态转变到另一个一致性状态,转变前后数据库的数据满足完整性约数持久性:一个事务一旦提交,他对数据库的修改应该永久保存在数据库中多事务并发执行的问题:脏读:事务1读取了事务2修改但提交失败的数据不可重复读:事务1读取了事务2修改并提交前后不一致的数

2021-02-26 22:21:53 151

原创 JAVA之常用函数

一、 Character1、 Character.isLetter(char c):是否是一个字母2、 Character.isDigtit(char c);是否是一个数字3、 Character.isWhitespace(char c):是否是一个空白字符4、 Character.isUpperCase(char c):是否是大写字母5、 Character.isLowerCase(char c):是否是小写字母6、 Character.toUpperCase(char c):转化成大写字母

2021-01-10 22:30:28 350

原创 JAVA之IO流

一、 File:文件和目录路径名的抽象方法1、 构造方法(1) File(String pathname):通过将给定的路径名字符串转换为抽象路径名来创建新的File实例(2) File(String parent, String child):从父路径名字符串和子路径名字符串创建新的File实例(3) File(File parent, String child):从父路径名和子路径名字符串创建新的File实例2、 创建目录(1) public boolean createNewFile():

2021-01-09 23:54:43 109

原创 fopen打开ppm格式的图片

使用fopen打开ppm格式的图片时,需要添加头文件#include<stdio.h>当出现以下错误时,打开属性》项目属性》C/C++》预处理器在预处理器定义添加_CRT_SECURE_NO_WARNINGS如下图所示,fopen函数的第一个参数是打开的文件名称,这里指定路径需要使用双斜杠;第二个参数是打开方式。...

2019-11-26 12:03:06 644

原创 C++之多线程

进程: 运行起来的可执行文件线程: 每个进程都有一个主线程,这个主线程是唯一的。运行程序的时候,实际上是进程的主线程来执行,主线程与线程同时存在,主线程结束,进程也结束,主线程是由系统创建,除了主线程外,可以自己创建其他线程。进程与线程间的关系:线程是用来执行代码的。把线程理解成一条代码的执行通路,一个新线程代表一条新的通路。一个进程自动包含一个主线程,主线程随着进程默默地启动并运行,...

2019-09-01 18:04:29 193

原创 C++之vector扩容分析

内存为vector容器分配了一块连续的空间,每一个元素紧挨着前一个元素存放,size()表示vector容器中存放的元素个数,capacity()表示内存为vector容器分配的空间所能存放的元素个数,当vector容器中存放的元素个数达到了capacity()规模,则需要对vector容器进行扩容操作,即内存重新分配一块更大的空间,将vector原先存放的元素拷贝到新分配的空间。不同的编译器所...

2019-09-01 00:41:57 1813

原创 C++之decltype类型指示符

decltype()的功能:得到表达式的返回值类型,用于对新变量的声明或定义。有如下几点需要注意:1、 作用于常量类型得到的还是常量类型。2、 作用于引用类型得到的还是引用类型,此时需要对变量初始化。3、 当引用作为表达式的一部分,作用于该表达式得到的将不是引用类型。4、 decltype((variable))得到的结果是引用。5、 decltype(*p)得到的结果是引用。6、 d...

2019-07-20 22:57:11 345

原创 二分法的时间复杂度分析

给定一个含有n个元素的数组,采用二分法查找元素。第1次折半:计算一次中间值,比较一次,还剩 n2\frac{n}{2}2n​ 个元素。第2次折半:计算两次中间值,比较两次,还剩 n22\frac{n}{2^2}22n​ 个元素。第3次折半:计算三次中间值,比较三次,还剩 n23\frac{n}{2^3}23n​ 个元素。…\ldots…第k次折半:计算k次中间值,比较k次,还剩 n2k\...

2019-07-20 10:16:00 3567

原创 C++之浅拷贝与深拷贝

当我们对类或者结构体进行赋值操作的时候,会调用拷贝构造函数,这时会涉及到浅拷贝和深拷贝的问题。一、浅拷贝:所谓浅拷贝就是对数据成员进行简单的一一拷贝,因此,对于指针变量也只是拷贝了指针本身,当拷贝完成之后,两个指针会指向同一块内存,所以当调用两次析构函数的时候,该内存会被释放两次,从而造成指针悬空的问题。二、深拷贝:相比于浅拷贝,深拷贝会开辟一块新的内存空间,用于存放拷贝的指针所指数据,因...

2019-07-19 23:37:58 125

原创 C++之哈希表的使用

C++中的STL提供了hash_map来实现哈希表功能,在介绍hash_map的使用方法之前,我们先从哈希函数和哈希冲突来了解哈希表。一、 哈希函数所谓哈希函数就是从关键字(Key)到值(Value)的映射:Value=H(Key)Value=H(Key)Value=H(Key)值反映了关键字的存储地址。1、数字分析法选取关键字中的几位数字作为值,一般选取数字分布比较均匀的几位。H(...

2019-07-13 22:31:46 43839 1

原创 C++之内存分配

C++所使用的内存分成三个部分:静态内存、栈内存和堆内存一、 静态内存静态内存是用来存储程序中的静态变量和全局变量,这部分内存在编译时就分配好,直到程序结束才销毁。二、 栈内存栈内存是用来存储函数内定义的非静态局部变量,这部分内存在函数被调用时分配,函数运行结束时销毁。三、 堆内存堆内存又被称做自由空间,程序运行时动态分配的对象存储在堆内,它的分配和销毁需要显示地进行。...

2019-07-12 20:05:33 148

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除