自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java死锁

一、死锁是什么死锁:当两个线程相互等待对方释放同步监视器便会发生死锁。死锁产生的4个必要条件:1.互斥条件:一个资源每次只能被一个线程使用。2.请求与保持条件:一个线程因请求资源而阻塞时,对已获得的资源保持不放。3.不剥夺条件:线程已获得的资源在未使用完之前,不得强行剥夺。4.循环等待条件:若干线程之间形成头尾相接的循环等待资源关系。二、如何避免死锁避免死锁的方法是允许前3个条件存在,破坏第4个条...

2018-04-15 13:38:11 115

原创 设计模式-模板方法模式

一、模板方法模式定义:定义一个操作中的算法骨架,而将一些步骤延迟到子类。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。类型:行为型模式。特点:通过把不变的行为搬移到超类,去除子类中的重复代码来体现它的优势,提供了一个很好的代码复用平台。二、UML类图模板抽象类AbstractClass实现了一个模板方法,定义了算法的骨架,如顺序执行PrimitiveO

2017-10-02 20:14:24 184

原创 设计模式-原型模式

一、原型模式定义:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。原型模型其实是从一个对象再创建另外一个可定制的对象,而且不需要知道任何创建的细节。类型:创建型类型优点和使用场景:1.使用原型模型创建对象比直接new一个对象在性能上要好的多,原因是Object的clone方法是一个本地方法,直接操作内存中的二进制流。2.简化对象的创建。注意事项-深拷贝和浅拷贝:

2017-10-02 17:20:56 199

原创 设计模式-工厂模式

一、工厂模式工厂模式定义了一个用于创建对象的接口,让子类决定实例化哪一个类。简单工厂模式好处:工厂类中包含了必要的逻辑判断,根据客户端的选择条件动态地实例化相关的类,对于客户端而言,去除了与具体产品的依赖。例如,利用简单工厂模式来实现计算器,运算工厂根据不同的运算要求动态返回具体的运算类。简单工厂模式缺陷:一旦需要增加新的运算类,就必须修改运算工厂的逻辑,违反了开放-封闭原则。工厂

2017-10-01 21:09:56 203

原创 设计模式-代理模式

一、代理模式代理模式是为其他对象提供一种代理,以控制对这个对象的访问。代理模式在访问对象时引入了一定程度的间接性,这种间接性可以附加很多功能。应用:1.远程代理,为一个对象在不同的地址空间提供局部代表,可以隐藏一个对象存在于不同地址空间的事实。2.虚拟代理,根据需要创建开销很大的对象,通过它来存放实例化需要很长时间的真实对象。浏览器用代理模式来优化下载。3.安全代理,用来控制真实对象访问时

2017-10-01 19:49:38 234 1

原创 设计模式-策略模式

一、策略模式策略模式定义了一系列算法的方法并进行了封装,所有这些方法完成的都是相同的方法,只是具体实现不同。可以以相同的方式调用所有的算法,减少了各种算法类与使用算法之间的耦合。优点:1.策略模式的策略类定义了一系列的可供重用的算法或行为,有助于析取算法的公共功能。2.简化了单元测试,每个算法都有自己的类,可以通过自己的接口单独测试。二、UML类图Context定义了一个Strat

2017-10-01 16:29:23 199

原创 设计模式-简单工厂模式

一、简单工厂模式简单工厂模式用一个单独的类来实例化具体对象的一种方式。待解决的问题:到底实例化哪个对象?将来增加实例化对象的类型后,如何扩展?好处:充分利用面向对象的继承、封装和多态三大特性的好处-可复用、可维护和可扩展。二、UML类图用一个单独的类,根据不同的参数去实例化对应的对象。以运算简单工厂为例,简单工厂类OperationFactory,定义了一个静态方法create

2017-10-01 14:29:08 233

原创 设计模式-装饰者模式

一、装饰者模式装饰者模式是为已有功能动态地增加更多功能的一种方式。待解决的问题:当系统需要新功能的时候,是向旧的类中添加新的代码。这些新加的代码通常装饰了原有类的核心职责或主要行为。这种方式的缺点是在主类中加入了新的字段,新的方法和新的逻辑,从而增加了主类的复杂度。而新加入的东西仅仅是为了满足一些只在某些特定情况下才会执行的特殊需要。装饰模式:把每个要装饰的功能放在单独的类中,并让这个

2017-10-01 12:47:06 193

原创 后台开发-58

面试时间 2017-9-21一.计算机网络1.TCP和UDP的区别?广播是用TCP还是UDP?2.TCP四次挥手的过程?等待超时是发生在哪一个阶段?二、操作系统1.进程通信的方式?共享内存是如何做的?2.Linux命令会哪一些?Top显示的信息有哪一些,包含线程信息吗?三、Java1.多线程的生成方式2.线程同步的方式3.接口和抽象类

2017-09-21 20:56:48 461

原创 各种常用排序算法

排序算法概述1.选择排序思路:以升序排序举例,从第一个数开始,和后面的数逐一比较,获取最小数的索引,并和第一个数交换;接下去从第二个数开始,和后面的数逐一比较,获取最小数的索引,并和第二个数交换;以此类推。分析:对于长度为N的数组,选择排序需要大约N^2/2次比较和N次交换代码: public static void selectSort(int[] a

2017-08-21 15:38:02 179

原创 python 编码

1.ASCII、Unicode和UTF-8计算机只能处理数字,如果要处理文本,就必须把文字转换为数字。因为计算机是美国人发明的,因此最早只有127个字母被编码到计算机里,包含大小写英文字母、数字和一些符号,这个编码表被称为ASCII编码。但处理中文用一个字节是不够的,至少需要两个字节,而且还不能和ASCII编码冲突,所以中国制定了GB2312编码,用来把中文编进去。多语言就有多国的编码,结果会出现冲

2017-05-13 17:21:51 337

原创 top K

1.最简单的思路是把输入的n个整数排序,排序后位于最前面的k个数就是最小的k个数,这种思路的时间复杂度为O(nlgn) public int findKthLargest(int[] nums, int k) { Arrays.sort(nums); return(nums[k]); }2.基于快速Partion函数解决,不需对所有的整数排序,只需找到数

2017-03-29 14:42:15 195

原创 单例模式的三种实现-Java

1.双重检查锁定:加同步锁前后两次判断实例是否已存在public class Singleton {private Singleton(){}private volatile static Singleton instance=null;public static Singleton getInstance(){if(instance==null){synchroniz

2017-03-20 17:02:46 211

原创 mysql5.7.17安装+mysql error:1524+1045+外部访问出错

1.进入安装数据库目录bin:  cd C:\ProgramFiles\mysql-5.7.17-winx64\bin2.设置使用空密码登录数据库:  mysqld --skip-grant-tables3.空密码登录数据库:  mysql -uroot4.重置密码:  use mysql;update user set password=password('123

2017-02-23 10:21:35 614

原创 【Leetcode-Java】102. Binary Tree Level Order Traversal

1.原题链接:https://leetcode.com/problems/binary-tree-level-order-traversal/Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, level by level).

2017-02-15 16:18:47 276

原创 【LeetCode-Java】155. Min Stack

1.原题链接:https://leetcode.com/problems/min-stack/Design a stack that supports push, pop, top, and retrieving the minimum element in constant time.push(x) -- Push element x onto stack.pop() --

2017-02-15 11:35:48 336

原创 【LeetCode-Java】54. Spiral Matrix+59. Spiral Matrix II

54. Spiral Matrix:1.原题链接:https://leetcode.com/problems/spiral-matrix/Given a matrix of m x n elements (m rows, n columns), return all elements of the matrix in spiral order.For example

2017-02-15 10:37:15 406

原创 【Leetcode-Java】101.Symmetric Tree

1.原题:链接:https://leetcode.com/problems/symmetric-tree/Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center).For example, this binary tree [1,2,2,3,4,

2017-02-14 17:26:33 222

空空如也

空空如也

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

TA关注的人

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