草庐IT

Zero-Day

全部标签

day36-IO流03

JavaIO流034.常用的类024.4节点流和处理流4.4.1基本介绍节点流可以从一个特定的数据源读写数据,如FileReader、FileWriter数据源就是存放数据的地方,比如文件、数组、字符串、管道等处理流(也叫包装流)是“连接”在已经存在的流(节点流或者处理流)之上,为程序提供更为强大的读写功能,也更加灵活,如BufferedReader、BufferedWriter节点流和处理流的区别和联系:节点流是底层流(低级流),直接和数据源相连接。处理流(包装流)对节点流进行了包装,既可以消除不同节点流的实现差异,也可以提供更方便的方法来完成输入输出。处理流对节点流进行了包装,使用了修饰器

day05-线程的应用04

7.线程的应用037.4坦克大战5.0版增加功能:我方坦克在发射的子弹消亡之后,才能发射新的子弹==>拓展:发射多颗子弹怎么办,控制一次最多只能发射5颗子弹让敌人坦克发射的子弹消亡之后,可以再发射子弹当敌人的坦克击中我方坦克之后,我方坦克消失,并出现爆炸效果7.4.1功能1plus:我方坦克连发子弹思路:要发射多颗子弹,就使用Vector保存子弹对象在绘制我方子弹的时候需要遍历Vector集合同时要修改击中判定方法hitTank修改处1:Hero类:packageli.TankGame.version05;importjava.util.Vector;/***@author李*@version

day05-线程的应用04

7.线程的应用037.4坦克大战5.0版增加功能:我方坦克在发射的子弹消亡之后,才能发射新的子弹==>拓展:发射多颗子弹怎么办,控制一次最多只能发射5颗子弹让敌人坦克发射的子弹消亡之后,可以再发射子弹当敌人的坦克击中我方坦克之后,我方坦克消失,并出现爆炸效果7.4.1功能1plus:我方坦克连发子弹思路:要发射多颗子弹,就使用Vector保存子弹对象在绘制我方子弹的时候需要遍历Vector集合同时要修改击中判定方法hitTank修改处1:Hero类:packageli.TankGame.version05;importjava.util.Vector;/***@author李*@version

day03-2-应用线程02

JavaGUI-坦克大战03-27.线程的应用027.3.坦克大战4.0版坦克大战4.0版增加功能:功能1.让敌人的坦克也能够发射子弹(可以有多个子弹)功能2.当我方坦克集中敌人坦克时,敌人的坦克就消失,如果能做出爆炸的效果更好功能3.让敌人的坦克也可以自由随机地上下左右移动功能4.控制我方坦克和敌人坦克在规定的范围内移动7.3.1功能1:敌方发射子弹功能1思路:在敌人坦克类使用Vector保存多个Shot当每创建一个敌人坦克时,就给该敌人坦克初始化一个Shot对象,同时启动Shot线程在绘制敌人坦克时,需要遍历敌人坦克对象Vector,绘制所有的子弹,当子弹isLive==false时,就从

day03-2-应用线程02

JavaGUI-坦克大战03-27.线程的应用027.3.坦克大战4.0版坦克大战4.0版增加功能:功能1.让敌人的坦克也能够发射子弹(可以有多个子弹)功能2.当我方坦克集中敌人坦克时,敌人的坦克就消失,如果能做出爆炸的效果更好功能3.让敌人的坦克也可以自由随机地上下左右移动功能4.控制我方坦克和敌人坦克在规定的范围内移动7.3.1功能1:敌方发射子弹功能1思路:在敌人坦克类使用Vector保存多个Shot当每创建一个敌人坦克时,就给该敌人坦克初始化一个Shot对象,同时启动Shot线程在绘制敌人坦克时,需要遍历敌人坦克对象Vector,绘制所有的子弹,当子弹isLive==false时,就从

day04-应用线程03

JavaGUI-坦克大战047.线程的应用037.3坦克大战4.0版7.3.4功能3:敌方坦克自由移动功能3:让敌人的坦克也可以自由随机地上下左右移动思路:因为要求敌人的坦克自由移动,因此需要将敌人坦克当做线程使用,EnemyTank类实现Runnable接口线程的run方法的具体操作为:根据当前的方向继续移动敌坦,然后改变敌坦移动方向,再继续移动,如此不断循环。break的条件是当前的敌人坦克被击中,即enemy.isLive==false。在MyPanel类中,每创建一个敌人坦克对象就启动一个线程。EnemyTank:packageli.TankGame.version04;importj

day04-应用线程03

JavaGUI-坦克大战047.线程的应用037.3坦克大战4.0版7.3.4功能3:敌方坦克自由移动功能3:让敌人的坦克也可以自由随机地上下左右移动思路:因为要求敌人的坦克自由移动,因此需要将敌人坦克当做线程使用,EnemyTank类实现Runnable接口线程的run方法的具体操作为:根据当前的方向继续移动敌坦,然后改变敌坦移动方向,再继续移动,如此不断循环。break的条件是当前的敌人坦克被击中,即enemy.isLive==false。在MyPanel类中,每创建一个敌人坦克对象就启动一个线程。EnemyTank:packageli.TankGame.version04;importj

day25--Java集合08

Java集合0815.HashTable15.1HashTable的基本介绍存放的元素是键值对:即K-VHashTable的键和值都不能为nullHashTable的使用方法基本上和HashMap一样HashTable是线程安全的(synchronized),HashMap是线程不安全的HashTable是无序的例子:Hashtable的底层底层有数组HashTable$Entry[]的初始化大小为11临界值threshold8=11*0.75扩容:原来容量*2+1packageli.map.hashtable;importjava.util.Hashtable;@SuppressWarnin

day25--Java集合08

Java集合0815.HashTable15.1HashTable的基本介绍存放的元素是键值对:即K-VHashTable的键和值都不能为nullHashTable的使用方法基本上和HashMap一样HashTable是线程安全的(synchronized),HashMap是线程不安全的HashTable是无序的例子:Hashtable的底层底层有数组HashTable$Entry[]的初始化大小为11临界值threshold8=11*0.75扩容:原来容量*2+1packageli.map.hashtable;importjava.util.Hashtable;@SuppressWarnin

《RPC实战与核心原理》学习笔记Day15

21|流量回放:保障业务技术升级的神器什么是流量回放?流量就是指在某个时间段内的所有请求,我们通过某种手段把发送到A应用的所有请求录制下来,然后把这些请求统一转发到B应用,让B应用接收到的请求参数和A应用保持一致,从而实现A接收到的请求在B应用里面重新请求了一遍,这个过程,我们称为“流量回放”。当我们对应用逻辑有改动,但在做了单元测试和回归测试之后,因为线上环境更加复杂,为了降低出错的概率,可以尝试使用流量回放。传统QA测试不能满足要求的根本原因就是在于改造后的应用在上线后出现跟应用上线前不一致的行为。我们测试的目的就是为了保证改造后的应用跟改造前应用的行为一致,我们测试Case也应该尽力去模