Hexo简洁主题推荐分享

Maupassant是Cho为typecho平台设计的一套响应式模板,其简洁的风格让很多人喜爱,在没有被扩展其他功能的情况下整个模板本身小巧到只有几十KB,因此访问速度也可观

Hexo Maupassant博客主题

Integer与int的种种比较

如果别人问Integer和int的区别是什么?
可能很多人很自然的就想到了以下两点:
1、Integer是int的包装类
2、int的初始值为0,Integer的初始值为null

但是,如果别人在问一下
Integer i1 = 1;
int i2 = 1;
i1==i2 为true还是false?

Integer i3 = 1;
Integer i4 = 1;
i3==i4 为true还是false?

要求解释一下,为什么会是这个结果,可能会有一些人脑袋就有点懵,虽说这很基础,但很多人没有这么深入研究过,这里对他进行一下总结;

理解clone()方法如何使用

在实际编程过程中,我们常常要遇到这种情况:有一个对象A,在某一时刻A中已经包含了一些有效值,此时可能会需要一个和A完全相同新对象B,并且此后对B任何改动都不会影响到A中的值,也就是说,A与B是两个独立的对象,但B的初始值是由A对象确定的

于是,在这种情况下,clone就可以派的上用场了

将静态文件缓存到html5的localStorage,给网站加速

html5中的Web Storage包括了两种存储方式:sessionStorage和localStorage。sessionStorage用于本地存储一个会话(session)中的数据,这些数据只有在同一个会话中的页面才能访问并且当会话结束后数据也随之销毁

本文要说的是html5的localStorage本地储存方式,localStorag可以说是cookie的一个加强版,相比localStorag来说,cookie的限制太多,限制大小4K,并在某些浏览器下还有域名限制;好的是现在html5提供的localStorag比较牛*,有5M的大小,因此爱折腾的小伙伴可以用它来做一些有意思东西

使用localStorage(本地缓存)的优缺点:
优点:

  • 用于持久化的本地存储,除非主动删除数据,否则数据是永远不会过期的
  • 可以通过chrome浏览器Resources/Local Storage来查看
  • 容量大,易用,原生支持

缺点:

  • 兼容性问题(IE8以下的版本不支持)
  • 安全性问题,不适用于保存敏感的数据

对于本文要做的事情就是把js和css静态文件保存到本地储存,所以在我们眼里,缺点基本上可以忽略不计

使用token实现在有效期内APP自动登录功能

实现此功能的场景是在当下用户对手机APP体验要求高,并且相对安全前提的推动下诞生;当你下载了一个QQ,微信第一次进行了账号和密码的登录,你从此以后打开应用免去了你每日打开应用都要输入账号跟密码的痛苦过程,在产品体验方面来讲,这种体验更为让用户容易接受。那么,这种自动登录如何实现;

构造器Constructor是否可被Override?

构造器Constructor不能被继承,所以不能被重写,不过他可以被重载Overload

钻了一个牛角尖,构造器为什么不能被继承呢?
在解释构造器Constructor为什么不能被继承和重写之前,我们先来了解构造器的概念。构造器在程序语言中是为了创建一个类的实例,如:Student stu1= new Student(),这就是创建了一个类的实例,同时也生成了一个构造器。构造器也分为有参数的和无参数的,上面的例子是无参的,Student stu2 = new Student(“李四”,28),这是有参的构造器。

Java三大特性之多态

面向对象编程有三大特性:封装、继承、多态。

封装隐藏了类的内部实现机制,可以在不影响使用情况下改变类的内部结构,同时也保护了数据,对于外界而言他的内部细节是隐藏的,暴露给外界的只是他的访问方法

继承所描述的是“is-a”(是一个,说明该类是某类的一个特殊例子)的关系,如果有两个对象A和B,若可以描述为“A是B”,则可以表示 A 继承 B,其中 B 是被继承者称之为父类或者超类,A 是继承者称之为子类或者派生类。

多态成立的三个条件
1.继承
2.子类重写父类方法
3.父类引用指向子类对象
用简述的话说就是:继承、重写、向上转型

从某一个角度来讲,封装和继承都相当于是为多态而做准备
多态应用的一大前提是继承,以及继承里面的重写方法;继承的一大前提是封装,及封装里面涉及到重要知识点方法重载

Java三大特性之封装

封装是一种可以使类中的字段私有并能通过公有方法来访问私有字段的技术。如果一个字段被声明为私有(private),它就不能在类的外部被访问,从而隐藏了类内部的字段。基于这个原因,封装有时也被称为“数据隐藏”。

封装可以被认为是一种能够保护代码和数据被定义在类外的其它代码任意访问的屏障。访问数据和代码由一个接口严格控制。 封装的主要好处是修改我们实现的代码而又不会破坏其他人使用我们的代码。封装的这个特性使我们的代码具有可维护性、灵活性以及扩展性。 –摘自:维基百科

Java三大特性之继承

Java继承是面向对象的最显著的一个特征。继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力

在多个类中存在相同属性和行为时,将这些内容单独抽取到一个类中,那么多个类就不需再次定义这些类和属性,只要继承那个类就行了

在继承的关系里,被继承的类称为父类、超类或者基类,而继承的类就被称为子类。子类继承了父类的所有属性(包括private成员,并不可访问)和方法,通过继承可以对对象描述更加清晰,提高代码的复用性。不仅如此,子类还可以根据自己的独特性,扩展属性和方法。

如何实现

通过 extends 关键字让类与类之间产生继承关系。语法:public calss 子类名 extends 父类名{}

1
public calss Cat extends Animal{}