自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 设计模式之坦克大战04

坦克大战源码:坦克大战上一个版本知识回顾:我们已经可以将坦克、子弹换成了图片,然后可以画出爆炸的效果来,然后可以画出敌军的坦克,并且可以击败敌军坦克。1.优化坦克、子弹的图片,并且加入背景音效分为敌军坦克,和自己坦克两部分:public class ResourceMgr { public static BufferedImage goodTankL, goodTankU, goodTankR, goodTankD; public static BufferedImage

2020-05-29 15:52:38 543

原创 设计模式之Tank大战03

坦克大战源码知识回顾:上一个版本我们已经可以通过按空格键打出子弹,并且解决了子弹数量的内存泄漏问题。子弹通过坦克移动的不同方向去发射不同方向的子弹。1.将坦克、子弹换成图片思路:1.新建一个image文件夹,然后加入你所需要的图片;具体看GitHub源码2.新建一个ResourceMgr,把坦克的图片load到内存中;3.在Tank类里面,重新画出这张图片(默认向下)public class ResourceMgr { public static BufferedImage tan

2020-05-28 15:08:12 376

原创 多线程与高并发篇一

单机高并发应该掌握的线程基础:线程状态,异常与锁等1.进程、线程、协程的概念:进程、线程、协程的基本概念public class T01_WhatIsThread { private static class T1 extends Thread { @Override public void run() { for(int i=0; i<10; i++) { try {

2020-05-26 15:55:13 229

原创 设计模式之Tank大战02

知识回顾:前一篇讲解了窗口里面绘制的正方形已经可以跟随着键盘的上下左右键移动了1.如果按键改变的不是每次+10或者减10,这时候又要改变源码,所以优化代码

2020-05-25 12:56:33 291

原创 设计模式之Tank大战01

1.项目搭建源码地址:坦克大战源码开发工具:Jdk1.8 、idea新建一个Java项目:File-->Project-->Java-->一路next-->输入自己的项目名称就可以了。例如:2.初识Frame新建一个T类,创建一个窗口,设置窗口的宽度和高度,设置标题,并且添加监听事件import java.awt.*;import java.awt.event.WindowAdapter;import java.awt.event.WindowE

2020-05-21 22:54:22 270

原创 Linux系统的内存管理

Linux的内存管理方式经常会在面试时作为操作系统基础被问道。搞清楚这个问题的好处很多,近的话可以应付面试,远的可以提高对于操作系统底层的认识,为程序的性能优化打下基础。我们对于计算机内存,最直观和简陋的概念就是机器的物理内存,程序都被放在物理内存上执行。物理内存一般都有限制,比如说4G或者8G。1.内存管理的发展历程:DOS时代 - 同一时间只能有一个进程在运行(也有一些特殊算法可以支持多进程)windows9x - 多个进程装入内存 1:内存不够用 2:互相打扰(不小心可能访问到别人的内

2020-05-21 15:52:28 338

原创 操作系统之进程管理

进程 线程 纤程 :面试高频:进程和线程有什么区别?(纯理论问题)答案:(非专业答案)进程就是一个程序运行起来的状态,线程是一个进程中的不同的执行路径。专业:进程是OS分配资源的基本单位,线程是执行调度的基本单位。分配资源最重要的是:独立的内存空间,线程调度执行(线程共享进程的内存空间,没有自己独立的内存空间)进程:Linux中也称task,是系统分配资源的基本单位资源:独立的地址空间,内核数据结构(进程描述符...)全局变量 数据段.....进程描述符:PCB(Proces

2020-05-21 12:31:50 280

原创 Java创建对象的详细过程解析

概述:java作为一种高级语言,对开发者而言,创建一个对象是非常容易的,原因就是虚拟机底层做了很好的封装,调用者不需要关注太多细节。通过new关键字,就可以创建一个对象。了解对象的创建过程,内存布局对于性能上的一些优化,理解很多原理是很有帮助的。对象的创建:源码:class object{ int m =8;}T t =new T();汇编码:0 new #2 <T>3 dup 4 invokespecial #3<T.<init>&

2020-05-20 19:32:43 351

原创 不得不了解的CPU知识

CPU的发展史CPU的工作原理总的来说,CPU从内存中一条一条地取出指令和相应的数据,按指令操作码的规定,对数据进行运算处理,直到程序执行完毕为止。CPU指令周期指令周期是取出并执行一条指令的时间。指令周期常常有若干个CPU周期,CPU周期也称为机器周期,由于CPU访问一次内存所花费的时间较长,因此通常用内存中读取一个指令字的最短时间来规定CPU周期。一条指令还是相当复杂的,处理器在一个时钟周期内肯定是完不成的,可能需要好多个时钟周期来完成执行。如果这样让处理器执行完一条指令

2020-05-20 17:18:56 610

原创 CPU缓存

CPU缓存 执行程序是靠运行CPU执行主存中代码,但是CPU和主存的速度差异是非常大的,为了降低这种差距,在架构中使用了CPU缓存,现在的计算机架构中普遍使用了缓存,分为一级缓存,二级缓存,还有一些具备三级缓存,我们可以看看这些组件的数据获取访问速度。从CPU到大约需要的 CPU 周期大约需要的时间主存约60-80纳秒QPI 总线传输(between sockets, not drawn)约20nsL3 cache约40-45 cycles,约15nsL2 c...

2020-05-20 16:30:30 368

空空如也

空空如也

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

TA关注的人

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