自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 并发编程(03)----锁的基本信息和Volatile关键字、Lock

单例模式与线程安全问题 饿汉式没有安全性问题 懒汉式 Synchronize放在方法上,其实就是锁住了整个Class的实例,使用同一个对象才能锁 重入锁 自旋锁 就是旋转CPU,不停的去等待线程执行完毕 当一个线程拿到了对象头的信息到栈帧中,另外一个线程如果想获取的话,那就必须不能的在自旋,等待第一个线程把方法体中的信息执行完毕之后...

2019-11-12 20:55:38 139

原创 并发编程(02)---- 认识*锁和基本信息

1、活跃性问题 死锁 饥饿 活锁 2、时间片: 多线程的时候,cpu会给每个线程一个时间片,但是时间片很短,可能线程还没执行完时间就过期了,的让出cpu给其他线程使用,为了保持这个线程下次还没继续完成任务,还的保存线程的运行数据,也是很消耗性能的 3、饥饿与公平 高优化级的吞噬所有低优先级的CPU时间片 线程被永久堵...

2019-11-12 20:51:38 95

原创 并发编程(01)----线程的创建方式

线程生命周期: Start(就绪)——》进入抢夺等待池 重点:一个线程获取到CPU资源,但是等待池里面的线程依旧会与他抢占CPU资源 创建线程的多种方式 继承Thread类 实现Runnable接口 匿名内部类方式 带返回值的线程 定时器 ...

2019-11-12 20:45:12 123

原创 策略模式:结合工厂模式

面向对象的编程,并不是类越多越好,类的划分是为了封装,但分类的基础是抽象,具有相同属性和功能的对象的抽象集合才是类。 以下是工厂模式和策略模式相结合,贴代码   不打折: 满300减100: 打八折: 对外的工厂类:   客户端测试类: 通过以下代码可以看出,如果是当当用简易的工厂模式的话,需要让客户端测试类知道工厂类和父类。而策略模式和工厂模式结合的用法...

2019-01-27 22:12:20 1700

原创 设计模式之:单例模式

引言:在日常开发中,通常个别类只需要实例化一次,不希望出现多次,而有些不正确的操作方式,会导致出现创建多个实例,话不多说,直接上代码 没有引用单例模式的代码 每一次new都会创建出来一个对象。   单例模式:饿汉式 由于私有化了构造器,外面就无法通过new来创建出SinfletonOne;只能通过getSingletonOne来获取,而一加载类就会创建出一个实例,每次获取Sinfle...

2019-01-21 22:25:01 119

原创 jfinal源码启动之初始化ActionMapping

   

2019-01-14 21:54:19 309

原创 HashSet集合源码解读

    从以上源码可以看出,当New HashSet的时候没有输入构造参数,则自动创建一个HashMap对象,由此看出,HashSet的顶层用的就是HashMap。      以上是hashSet的添加方法,是直接调用HashMap的put方法实现的,而HashMap的put方法是根据key的HashCode值来决定放到哪个数组里面(HashMap的底层用到了数组和链表结构),而Hash...

2018-10-31 20:44:17 184

原创 Jvm内存区域

1、Jvm内存区域1.1:线程共享区1.1.1:方法区():1.1.1.1:存储虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据类的版本字段方法接口1.1.1.2:方法区和永代区1.1.1.3:垃圾回收在方法区的行为1.1.1.4:异常的定义 1.1.2:java堆:存放对象实例,里面存放着新生代、旧生代、Eden空间,同时也是垃圾收集器的主要区域。当堆内存溢出会报:OutOfMe...

2018-07-14 18:26:15 289

原创 java静态数据与非静态数据的初始化

静态数据    打印结果  当StaticInitialization执行的时候,首先会加载static Table table = new Table();static Cupboard cupboard = new Cupboard();当执行new Table()的时候,他就会执行static Bowl bowl1 = new Bowl(1);就会调用BOwl的构造方法,Bowl(int m...

2018-07-14 16:05:49 1570 2

空空如也

空空如也

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

TA关注的人

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