游戏地图怎样在位置固定的情况下不断变化

  因为推箱子游戏在游戏结束之前要不断接受用户的输入,所以我们可以设置一个标志来判断游戏是否结束,把这个标志设置为一个 while 循环的条件。  在每次循环中,都要接收用户的输入,根据用户输入的值,  来进行下一步的操作,在游戏中就是小人的移动方向,上下左右,这里我们可以用一个 switch 语句判断。每一次循环,对应一次用户输入。  3、游戏地图怎样在位置固定的情况下不断变化?  在每次循环中,首先要把当前的地图显示出来,便于用户下一次的移动输入。我们将游戏地图设置为一个全局变量,这样在小人移动
分类: 其他 发布时间: 03-08 09:49 阅读次数: 0

以 MoveToUp() 函数为例,我们来分析小人移动的逻辑

  小人的移动逻辑怎么写?  在上面的程序截图中,可以看到我把小人的上下左右移动分别写到了四个函数中,分别是  MoveToUp()、MoveToDown()、MoveToLeft()、MoveToRight()。以 MoveToUp() 函数为例,我们来分析小人移动的逻辑。  理论上,小人是可以上下左右的移动的,但是,由于有地图的限制,小人不能穿墙的,只能在允许的道路上移动,比如下面这种情况,小人想向上移动,肯定是不允许的。  所以我们要对小人理论上可以移动到的那格(下一位置)进行判断,如果不是限
分类: 其他 发布时间: 03-08 09:49 阅读次数: 0

删除JAVA_ HOME ,删除path下关于Java的目录

  JDK:Java Develepment Kit (java开发者工具)  JRE:java runtime environment (java运行时环境)  JVM:java virtual machine (java虚拟机)  工欲善其事,必先利其器  卸载JDK  1.删除Java的安装目录 2.删除JAVA_ HOME 3.删除path下关于Java的目录 4.java -version  安装JDK  1.百度搜索JDK8,找到下载地址 2.同意协议 3.‘下载电脑对应的版本 4
分类: 其他 发布时间: 03-08 09:49 阅读次数: 0

JAVA的基本结构就是顺序结构,除非特别指明

  JAVA的基本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句执行  顺序结构是最简单的算法结构  语句与语句之间,框与框之间是按照从上到下的顺序进行的,它是由若干个依次执行的处理步骤组成的,它是任何一个算法都离不开的基本算法结构  选择结构  if单选择结构  if(布尔表达式){  //如果布尔表达式为true将执行语句  }  Scanner scanner = new Scanner(System.in);  System.out.println("请输入内容:"); 
分类: 其他 发布时间: 03-08 09:49 阅读次数: 0

hashMap是java中一个非常重要的数据结构,工作中也会经常使用到。

  hashMap是java中一个非常重要的数据结构,工作中也会经常使用到。  HashMap与Map接口的关系  hashMap是是实现继承Map接口。  TreeMap是基于树的实现,HashMap,HashTable,ConcurrentHashMap是基于hash表的实现  HashMap实现原理  HashMap的主干是一个Entry数组。Entry是HashMap的基本组成单元,每一个Entry包含一个key-value键值对。  在JDK1.6,JDK1.7中,HashMap采用位
分类: 其他 发布时间: 03-08 09:48 阅读次数: 0

一种是使用Hibernate Validator来处理,另一种是使用全局异常来处理

  平时在开发接口的时候,经常会需要对参数进行校验,这里提供两种处理校验逻辑的方式。一种是使用Hibernate Validator来处理,另一种是使用全局异常来处理,下面我们讲下这两种方式的用法。  Hibernate Validator  Hibernate Validator是SpringBoot内置的校验框架,只要集成了SpringBoot就自动集成了它,我们可以通过在对象上面使用它提供的注解来完成参数校验。  常用注解  我们先来了解下常用的注解,对Hibernate Validator所
分类: 其他 发布时间: 03-08 09:48 阅读次数: 0

BigDecimal.ROUND_UP表示进位处理(就是直接加1)

  最近做个小实验,其中一部分要求将表单提交的数据转换为double,这个功能其实很简单直接一句Double.parseDouble(request.getParameter("chinese").trim())就可以实现,但因为是统计成绩,所以需要保留小数点后两位,所以各种百度发现了很多解决方法,这里特意总结下,万一以后又用上了呢?  返回double型的  1.能四舍五入  1 double d = 114.145;  2 d = (double) Math.round(d * 100) / 1
分类: 其他 发布时间: 03-08 09:48 阅读次数: 0

boolean containsKey(Object key) Map容器中是否包含键对象对应的键值对

  容器简单点可以说就是一个桶,你可以往桶里放东西、拿东西、查看数据  不同的桶放不一样的东西  对桶的操作依据容器的种类不同而定。  3.容器的常用方法  Map  Map接口的实现类有HashMap,TreeMap,HashTable,WeakHashMap,IdentityHashMap  方法 功能  Object put(Object key,Object value) 存放键值对  Object get(Object key) 通过键对象查找得到值对象  Ob...
分类: 其他 发布时间: 03-08 09:48 阅读次数: 0

pay attention:读取文件的函数会影响文件指针移动

  c语言的文件指针结尾问题:有两个方法可以判断文件指针是否到结尾  pay attention:读取文件的函数会影响文件指针移动  1.使用feof(文件指针)函数判断,如果到了结尾返回0,否则返回非0  2.使用EOF(就是-1)判断指针是否到结尾 仅用于普通文件,不适用于二进制文件  适用条件--------重点  方法1:  *1.有一个弊端就是,feof函数判断文件指针是否到结尾,假设已经到结尾了,还要再读取一次数据进行判断,也就是说feof用来判断文件指针是否  到文件结尾是,.
分类: 其他 发布时间: 03-08 09:47 阅读次数: 0

报告 goroutines 的使用情况,有哪些 goroutine,它们的调用关系是怎样的

  Go语言项目中的性能优化主要有以下几个方面:  CPU profile:报告程序的 CPU 使用情况,按照一定频率去采集应用程序在 CPU 和寄存器上面的数据  Memory Profile(Heap Profile):报告程序的内存使用情况  Block Profiling:报告 goroutines 不在运行状态的情况,可以用来分析和查找死锁等性能瓶颈  Goroutine Profiling:报告 goroutines 的使用情况,有哪些 goroutine,它们的调用关系是怎样的  采
分类: 其他 发布时间: 03-08 09:47 阅读次数: 0

垃圾回收相关概念

System.gc()的理解默认情况下,通过System.gc()或者Runtime.getRuntime().gc()的调用,会显示触发Full GC,同时对老年代和新生代进行回收,尝试释放被丢弃对象占用的内存。然而System.gc()调用附带一个免责声明,无法保证对垃圾收集器的调用。(相当于提醒垃圾回收器去进行full gc,但是垃圾回收器会不会执行看垃圾回收器心情)JVM实现者可以通过System.gc()调用来决定JVM的GC行为。而一般情况下,垃圾回收应该是自动进行的,无须手动触发,否则
分类: 其他 发布时间: 03-08 09:46 阅读次数: 0

日志分析工具

日志文件保存-Xloggc:/path/to/gc.log./ 表示当前工程,在当前工程下创建一个logs目录。常见的日志分析工具
分类: 其他 发布时间: 03-08 09:45 阅读次数: 0

调优与监控的依据--下篇

生产环境中的问题生产环境发生了内存溢出该如何处理?生产环境应该给服务器分配多少内存合适?如何对垃圾回收器的性能进行调优?生产环境CPU负载飙高该如何处理?生产环境应该给应用分配多少线程合适?不加log,如何确定请求是否执行了某一行代码?不加log,如何实时查看某个方法的入参与返回值?为什么要调优防止出现OOM解决OOM减少Full GC出现的频率不同阶段的考虑上线前项目运行阶段线上出现OOM监控的依据运行日志异常堆栈GC日志线程快照堆转储快照调优的
分类: 其他 发布时间: 03-08 09:45 阅读次数: 0

性能优化三部曲--下篇

第一步(发现问题):性能监控GC频繁CPU LOAD过高OOM内存泄漏死锁程序响应时间较长第二步(排查问题):性能分析打印GC日志,通过GCviewer或者gceasy来分析日志信息灵活运用命令行工具,jstack,jmap,jinfo等dump出堆文件,使用内存分析工具分析文件使用阿里Arthas,或jconsole,JVisualVM来实时查看JVM状态。jstack查看堆栈信息。第三步(解决问题):性能调优适当增加内存,根据业务背景选择垃圾回收器。优化代码,控制
分类: 其他 发布时间: 03-08 09:45 阅读次数: 0

性能指标--下篇

停顿时间(或者响应时间)吞吐量对单位时间内完成的工作量(请求)的度量在GC中:运行用户代码的时间占总运行时间的比例(总运行时间:程序的运行时间+内存回收的时间),吞吐量为1-1/(1+n),-XX:GCTimeRatio=n并发数同一时刻,对服务器有实际交货的请求数。内存占用Java堆区所占用的内存大小相互间的关系以高速公路通行状况为例...
分类: 其他 发布时间: 03-08 09:44 阅读次数: 0

JVM命令行监控工具--下篇

概述性能诊断是软件工程师在日程工作中需要经常面对和解决的问题。在用户体验至上的今天,解决好应用的性能问题能带来非常大的收益。Java作为最流行的编程语言之一,其应用性能诊断一直受到业界广泛关注。可能造成Java应用出现性能问题的因素非常多,例如线程控制、磁盘读写、数据库访问、网络I/O、垃圾收集等。想要定位这些问题,一款优秀的性能诊断工具必不可少。体会1:使用数据说明问题,使用知识分析问题,使用工具处理问题。体会2:无监控、不调优!jps查看正在运行的Java进程基本情况jps(Java
分类: 其他 发布时间: 03-08 09:44 阅读次数: 0

JVM监控与诊断的GUI工具--下篇

概述
分类: 其他 发布时间: 03-08 09:44 阅读次数: 0

JVM运行时参数--下篇

JVM参数选项类型标准参数选项特点比较稳定,后续版本基本不会变化以 - 开头各种选项运行java或者java -help可以看到所有的标准选项补充内容-server与-client-X参数选项特点非标准化参数功能还是比较稳定的,但是官方说后续版本可能会变更(可能性比较小)以 -X 开头各种选项运行java -X 命令可以看到所有的X选项JVM的JIT编译模式相关的选项Xint禁用JIT,所有字节码都被解释执行,这个模式的速度是最慢的。Xcomp
分类: 其他 发布时间: 03-08 09:44 阅读次数: 0

高可靠性、高可扩展性、大容量系统设计

概述这种问题其实有很多形式的提问方式:面对业务急剧增长你怎么处理?业务量增长10倍、100倍怎么处理?系统怎么支持高并发的?怎么设计一个高并发系统?高兵系统都什么特定?…这种问题我们可以有一个常规的思路去回答,就是围绕支撑高并发的业务场景怎么设计系统才合理?接下来我们就可以围绕硬件和软件层面怎么支撑高并发这个话题区阐述了。本质上,这个问题就是综合考验你对各个细节是否知道怎么处理,是否有经验处理过而已。面对超高的并发,首先硬件层面机器要能抗的住,其次架构设计做好微服务的拆分,代码层面各
分类: 其他 发布时间: 03-08 09:43 阅读次数: 0

Redis数据结构的底层实现

概述五种基本数据结构都有不同的底层编码格式,主要是为了节约内存使用、提供访问速度。参考https://www.cnblogs.com/MouseDong/p/11134039.html
分类: 其他 发布时间: 03-08 09:43 阅读次数: 0