【动漫视频】《轻音少女》OP & ED 合集
京都动画官网:京都アニメーションホームページ 京都动画简介:(萌娘百科) (百度百科) (英文维基 ) (中文维基) 友情链接: 【动漫图片】轻音少女(官方图)资源汇总 K-ON! 全曲完美歌单
【动漫图片】吹响!上低音号(官方图) 第4期
相册地址: 【相册】吹响!上低音号(官方图) 图片来源:京吹官网 京都动画官网:京都アニメーションホームページ 京都动画简介:(萌娘百科) (百度百科) (英文维基 ) (中文维基)
【学习笔记】牛客网高级版 第三课 二维矩阵向右移动路径的最大值 java实现
题目描述 给定一个二维数组matrix,每个单元都是一个整数,有正有负。最开始的时候小Q操纵一条长度为0的蛇蛇从矩阵最左侧任选一个单元格进入地图,蛇每次只能够到达当前位置的右上相邻,右侧相邻和右下相邻的单元格。蛇蛇到达一个单元格后,自身的长度会瞬间加上该单元格的数值,任何情况下长度为负则游戏结束。小…
【学习笔记】Java并发编程实战#4——Java线程生命周期
课程来源:Java并发编程实战 线程生命周期 Java 语言中线程共有六种状态,分别是: NEW(初始化状态) RUNNABLE(可运行 / 运行状态) BLOCKED(阻塞状态) WAITING(无时限等待) TIMED_WAITING(有时限等待) TERMINATED(终止状态) 在操作系统层…
【学习笔记】Java并发编程实战#3——管程:并发编程的万能钥匙
课程来源:Java并发编程实战 Java 采用的是管程技术,synchronized 关键字及 wait()、notify()、notifyAll() 这三个方法都是管程的组成部分。而管程和信号量是等价的,所谓等价指的是用管程能够实现信号量,也能用信号量实现管程。但是管程更容易使用,所以 Java …
【学习笔记】Vector 与线程安全
Vector和ArrayList一样都是动态数组对象。 但是都说ArrayList是线程不安全的,Vector是线程安全的。Vector的线程安全怎么理解? Vector的线程安全是通过对方法加synchronized 关键字,给方法加锁来保证线程安全的。 对于单个方法,多个线程调用确实可以保证线程…
【学习笔记】Java并发编程实战#2——一不小心就死锁了,怎么办?
课程来源:Java并发编程实战 死锁定义:一组互相竞争资源的线程因互相等待,导致“永久”阻塞的现象。 死锁的产生条件: 互斥,共享资源 X 和 Y 只能被一个线程占用; 占有且等待,线程 T1 已经取得共享资源 X,在等待共享资源 Y 的时候,不释放共享资源 X; 不可抢占,其他线程不能强行抢占线程…
【学习笔记】Java并发编程实战#1——可见性、原子性和有序性问题以及解决方法
课程来源:Java并发编程实战 并发BUG的源头: 缓存导致的可见性问题 线程A写完后,由于没有从CPU缓存写入内存中等的原因,线程B读不到线程A修改的数据,数据不可见。 线程切换带来的原子性问题 线程A切换到线程B,线程B修改数据后切换回线程A,A发现前后读取的数据不一致。 编译优化带来的有序性问…
【学习笔记】深入拆解Java虚拟机学习笔记#4——垃圾回收(CG)
课程来源:深入拆解Java虚拟机 引用计数法 为每个对象添加一个引用计数器,当计数器为0时,则判断对象已死亡,可以回收。 无法解决循环引用问题 可达性分析 将一系列GC Roots作为存活对象集合(live set),从集合出发,搜索所有被该集合引用到的对象并加入该集合,这个过程称之为mark,未被…
【学习笔记】深入拆解Java虚拟机学习笔记#3—— JVM是如何实现反射的?
课程来源:深入拆解Java虚拟机 对象的class对象的获取方法: Person.class p.getClass Class.forName() 反射实际是委派给 MethodAccessor 来处理。 MethodAccessor 是一个接口,有2个具体实现: 本地方法实现 使用委派模式 本地实…