自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 如何读C++指针复杂声明?

很多人都会被C++指针的复杂声明搞混了。其实,读C++指针声明的过程,我们可以遵循2个原则:1、从名字开始,右->左->右->左->右这样来读;2、不断对指针内容进行补完(对于指针,我们要知道指针的类型,知道了指针的类型也就是补完了;对于函数,我们要知道函数的参数和返回值,知道了也算是补完了)。举个例子:float (*(* fp)(int,int,int))(int)1、...

2018-06-19 15:21:40 448

原创 Java中int的表示方法及其作用

在Java中,int是使用32位表示,long使用64位表示。这两个基本类型都是整形,没有其他的表示方法了。他们内部是怎么表示的呢?是采用补码表示。由于我们经常在做题中会遇到Java的位运算,Java的位运算只能用于int和long型。所以我们有理由好好分析Java内部是怎么用二进制表示的。这里只举int为例子,long是一样的。1、int的范围int在Java内部是用32位来表示的,而最高位是表...

2018-06-16 23:09:26 19954

原创 Java设计模式2:各个设计模式(模板模式、单例模式、工厂模式、代理模式、装饰器模式、适配器模式、策略模式、观察者模式、迭代器模式)

一、模板模式(Template Pattern)模板模式指的是一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。模板模式事实上才是使用得最多的设计模式,几乎所有OOP的代码都会有意无意碰到。我们以来修房子作为一个例子。public class DesignPattern { public static void main(String...

2018-06-13 14:02:19 681

原创 Java设计模式1:面向对象编程的四大特征和设计模式的六大原则

这篇博文算是对《设计模式之禅》的读书笔记。这本书写得非常好,通俗易懂,强烈推荐!另外,也参考了很多其他的资料,包括http://www.runoob.com/design-pattern/design-pattern-tutorial.html以及网上一些博客等,再次表示感谢!之后,我会针对几个重点的设计模式,写一些代码,自己操作熟悉一遍,而其他一些设计模式就在概念上知道即可。一、设计模式...

2018-06-11 14:49:19 2146

原创 Java同步和多线程2:JUC锁

通过前面的文章我们知道了,可以通过synchronized关键字来进行同步,实现对竞争资源的互斥访问的锁。同步锁的原理是,对于每一个对象,有且仅有一个同步锁;不同的线程能共同访问该同步锁,但是在同一个时间点,该同步锁能且只能被一个线程获取到。这样,获取到同步锁的线程就能进行CPU调度,从而在CPU上执行;而没有获取到同步锁的线程,必须进行等待,直到获取到同步锁之后才能继续运行。这就是,多线程通过同...

2018-06-10 20:32:44 202

原创 Java同步和多线程1:多线程的基本操作及synchronized的应用

其实Java多线程中,锁只是一个很抽象的概念。锁是为了实现互斥和同步而设的。“锁”打个比方,获取锁可认为是“获取做某个事情的权限”,而“释放锁”可以认为是把做某件事情的权限交给别人了。也可以这样认为,“锁”锁住的是某个事物。获取锁指的是获得解开这个锁的钥匙,可以对这个事情进行操作,而释放锁是把这条钥匙给别人,或者放回某个钥匙柜子里,等别人来取。Java中锁的机制,是为了在多线程中实现同步互斥。如果...

2018-06-08 21:51:27 1531

原创 回溯算法超通俗易懂详尽分析和例题

        回溯法是很重要的一种算法,在it企业笔试中经常会遇到。事实上,在各种编程题中,大家或多或少都会接触到这些题目,但是很多人没有对这类题目有个系统性的总结。接下来就对回溯法进行详尽,通俗易懂的分析。        回溯法有通用解法的美称,对于很多问题,如迷宫等都有很好的效果。回溯算法实际上一个类似枚举的深度优先搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,...

2018-06-06 19:22:02 39333 14

原创 图总结

在求职和面试中,图也是很重要的一个领域。而这里面尤其重要的是深度优先搜索、广度优先搜索、最小生成树、最短路径、拓补排序的内容。在这里,我们只抽象地对图及各种算法进行分析,尽量不涉及代码实现。(参考:《Java数据结构和算法》)一、图...

2018-06-05 13:56:43 654

原创 树总结

在这里,我们详细分析各种树的性质和操作。树形结构的特点是一个数据元素可以有很多个直接后继,但只有一个直接前驱。

2018-06-02 16:14:47 2254

原创 查找算法

对于查找算法,耳熟能详的就是二分查找了。对于查找算法来说,由于在实际应用中会把数据以一定的数据结构(如二叉树,红黑树等)组织起来,很少会直接使用一个数组或链表对数据直接存储。因此,对数据的查找算法没有排序算法那样多样性,而是都包含在各个数据结构中了。这里的查找算法,仅针对有序的数组的查找。(参考:https://www.cnblogs.com/yw09041432/p/5908444.htmlht...

2018-06-02 15:03:04 217

原创 另外一些排序算法:希尔排序、基数排序、桶排序

一、希尔排序希尔排序,其实属于一种特殊的插入排序,是简单排序算法里面的直接插入排序的改进版。希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算法便终止。希尔排序是基于插入排序的以下两点性质而提出改进方法的:插入排序在对几乎已经排好序的数据操作时,效率高,即可以达到线性排序的效率;插入排序一般来说...

2018-06-01 11:28:57 684

空空如也

空空如也

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

TA关注的人

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