Java多线程--认识多线程(Thread、Runnable)
<h1>1、进程与线程</h1>
<div>
<span style="white-space:pre"></span>dos系统:单进程。只能有一个程序独自运行,其他程序无法运行。</div>
<div>
<span style="white-space:pre"></span>windows系统:多进程。同一时间段上有多个程序同时运行。</div>
<div>
<img src=
每天一个设计模式之代理模式
代理模式介绍
静态代理没有什么好说的,不断的写新的类,实现与被代理类一样的接口,从而来拓展功能。缺点太多,如接口变化,就要重写新的代理类。
动态代理使用最多的可能就是传说中的aop了。它解决了静态代理的缺点,即使接口变化了,代理类也不需要变化。动态代理实现方式主要有两种:1、jdk自带的 2、cglib技术
个人觉得代理模式的用处就是在不对原有类进行修改的情况下,对类的
java设计模式---你所不知道的单例模式
单例模式大家都听说过,而且也是项目中最常出现的,但是,我们该如何的去更好的使用单例,如何去保证创建的时候线程安全,如何使得DCL模式不失效问题,如何去避免不必要的资源消耗问题,看到这些前奏,想必大家都会有种往下看的冲动了吧,来看看实现单例的几个关键点:
构造函数不能对外开放
通过一个静态方法或枚举返回单例类对象
确保单例类的对象有且只有一个,尤其是在多线程环境下
确保单例
java 之容器
在Java中,我们想要保存对象可以使用很多种手段。我们之前了解过的数组就是其中之一。但是数组具有固定的尺寸,而通常来说,程序总是在运行时根据条件来创建对象,我们无法预知将要创建对象的个数以及类型,所以Java推出了容器类来解决这一问题。
Java的容器类分为List,Set,Queue和Map。我们也称它们为集合类(Collection)。
Java使用泛型来实现容器类,例如我们要使用顺序表这
Android使用Room持久化SQLite
原文链接
前言
Android中提供了SQLite数据库进行数据的持久化 ,并提供了对应API访问数据库,而Room框架提供了SQLite数据访问抽象层,为高效的数据库访问层带来便捷
APP可以缓存用户数据,当APP离线时便从SQLite读取数据,当重...