Java

Java版战棋(SLG)游戏AI及寻径处理入门

代码下载地址:http://download.csdn.net/source/1047937SLG或者说战棋游戏,在大多数英文站点是归类到SimulationGame的(包括模拟城市之类的纯SIM),并没有进行SRPG(StrategiesRolePlayGames)、RTS(Real-TimeStrategyGame)乃至RSLG(RoleplaySimulationGame)种种的细分。归结原因,想必还是因为近似因素太多,在大多数时候已经难以区分其本来

系统 2019-08-29 22:39:52 2217

Java

java 变量作用范围(竟然理解错了)丢人 ——JA

publicclassTest{/***@paramargs*/publicstaticvoidmain(String[]args){Stringstr="A";doit(str);System.out.println(str);}publicstaticvoiddoit(Stringstr){str="B";}}这里结果输出A啊,唉,这都错,半路出家和尚啊……doit传进去的参数作用范围只是函数内部,Java是值调用。突然想到,这里的String类型的之

系统 2019-08-29 22:34:41 2217

Java

java的动态性编程(二)——引入Reflection

使用反射不同于常规的Java编程,其中它与元数据--描述其它数据的数据协作。Java语言反射接入的特殊类型的原数据是JVM中类和对象的描述。反射使您能够运行时接入广泛的类信息。它甚至使您能够读写字段,调用运行时选择的类的方法。反射是一种强大的工具。它使您能够创建灵活的代码,这些代码可以在运行时装配,无需在组件之间进行源代表链接。但反射的某些方面存在一些疑问。在本文中,我将深入讨论为什么您可能不希望在程序中使用反射,以及您应该这样做的理由。在了解了权衡性分析

系统 2019-08-29 22:01:14 2217

Java

JAVA面试题解惑系列(十一)——这些运算符你是

好东西分享有些运算符在JAVA语言中存在着,但是在实际开发中我们或许很少用到它们,在面试题中却时常出现它们的身影,对于这些运算符的含义和用法,你是否还记得呢?自增(++)和自减(--)运算符我们先来回答几个问题吧:Java代码inti=0;intj=i++;intk=--i;inti=0;intj=i++;intk=--i;这段代码运行后,i等于多少?j等于多少?k等于多少?太简单了?好,继续:Java代码inti=0;intj=i+++++i;intk=

系统 2019-08-12 09:30:14 2217

Java

【java多线程与并发库】---传统java多线程<1>线

一.线程的基本概念1、入题:我们大家都知道,我们可以在一台计算机上同时聊天,看电影,下载视频等,完成上述任务的各个程序之间是完全相互独立的。但是他们在同一段时间内又同时处于运行状态。当然呢,它们在这一段时间内是分时使用计算机CPU时间的。只不过呢在CPU处理速度很快,划分的时间片段很短,所以给大家感觉上是多个程序在同时运行。2、进程:进程是程序的一次动态执行过程。这个过程包含了从程序代码从硬盘加载到内存、在内存中执行、执行结束等过程,实际上也就是进程的产生

系统 2019-08-12 09:29:59 2217

Java

java 中paint .repaint.update

paint,repaint,update,这3个都跟绘图有关系的相关的方法把。这3个虽然以前用过,但是但是没有完全理解。下面这个段话是转载的(感觉讲的比较好):repaint()这个方法是一个具有刷新页面效果的方法,如果你要页面进行重画就可以调用.从上面的流程图可以看出,在绘制动画图形时候如果没有调用repaint()方法的时候直接就是由线程调用paint()方法进行绘制,用repaint()进行刷新显示.但是这样的动画会有个缺点(这样的效果绘制出来会有闪

系统 2019-08-12 01:54:48 2217

Java

Java 多线程

看了"臧圩人"的一片多线程文章,根据自己的想法才写出这篇过于java多线程的文章。一、怎样实现多线程:1.1实现多线程:1.1.1、实现线程的方式有两种:1、继承java.lang.Thread,并重写它的run()方法,将线程的执行主体放入其中。2、实现java.lang.Runnable接口,实现它的run()方法,并将线程的执行主体放入其中。1.1.2、这是继承Thread类实现线程的示例:Java代码publicclassThreadTestext

系统 2019-08-29 23:48:26 2216

Java

java的一些基本知识

对象与基本类型几乎所有Java初学者都被告知,在Java里一切都被视为对象(Object),操纵对象的表示符实际上时对象的一个引用(Reference)。例如Stringstr;//注意!此处创建了一个引用,而非对象str=newString(“Hello”);//这里创建了一个String对象并与str相关联通常用new操作符来创建一个新对象,并存储在堆里面。【注】具体内容可以参看Java堆与栈程序设计中有一系列小的、简单的变量(笔者是这样认为的),将它

系统 2019-08-29 23:07:26 2216

Java

java获取真实客户端ip地址 <>

在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的。但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了。如果使用了反向代理软件,将http://192.168.1.110:2046/的URL反向代理为http://www.javapeixun.com.cn/的URL时,用request.getRemoteAddr()方法获取的IP地址是:127.0.0

系统 2019-08-29 22:59:17 2216

Java

Java6学习笔记34——Java6中集合框架的学习

1.集合框架是什么?在Java语言中,Java语言的设计者对常用的数据结构和算法做了一些规范(接口)和实现(具体实现接口的类)。所有抽象出来的数据结构和操作(算法)统称为Java集合框架(JavaCollectionFramework)。Java程序员在具体应用时,不必考虑数据结构和算法实现细节,只需要用这些类创建出来一些对象,然后直接应用就可以了。这样就大大提高了编程效率。Java2集合框架图集合接口:6个接口(短虚线表示),表示不同集合类型,是集合框架

系统 2019-08-29 22:27:14 2216

Java

java解惑你知多少(二)

8.+=复合赋值问题x+=i与x=x+i等效吗,许多程序员都会认为第一个表达式x+=i只是第二个表达式x=x+i的简写方式,但这并不准确。Java语言规范中提到:复合赋值E1op=E2等价于简单赋值E1=(T)((E1)op(E2)),其中T是E1的类型。复合赋值表达式自动地将所执行计算的结果转型为其左侧变量的类型。如果结果的类型与该变量的类型相同,那么这个转型不会造成任何影响,然而,如果结果的类型比该变量的类型要宽,那么复合赋值操作符将悄悄地执行一个窄化

系统 2019-08-29 22:02:50 2216

Java

JAVA面试题解惑系列(六)——字符串(String)

好东西分享上一次我们已经一起回顾了面试题中常考的到底创建了几个String对象的相关知识,这一次我们以几个常见面试题为引子,来回顾一下String对象相关的其它一些方面。String的length()方法和数组的length属性String类有length()方法吗?数组有length()方法吗?String类当然有length()方法了,看看String类的源码就知道了,这是这个方法的定义:Java代码publicintlength(){returnco

系统 2019-08-12 09:30:16 2216

Java

说一说Java的native2ascii中的encoding

如果大家处理过多语言资源,那么对JDK这个自带的native2ascii肯定不会陌生,它能够帮我们把不同的编码转化成统一的unicode编码,来实现国际化。一般我们都这么用,假设我们有这么一个文件zh.txt,其内容只有这么一行:然后我们使用native2ascii来将其内容转成unicode编码:很简单,但是你考虑过zh.txt文件的编码了吗?如果这个zh.txt文件是别人提供给你的,可能里面是采用了别的编码,那么如果仅仅是通过简单的native2asc

系统 2019-08-29 23:16:12 2215