重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
1.将你这段字符串输出到一个文件里,用Java类文件的方式命名。
创新互联主要从事成都网站建设、成都做网站、网页设计、企业做网站、公司建网站等业务。立足成都服务多伦,10余年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:028-86922220
2.调用外部javac命令将该文件编译。
3.用类加载器(ClassLoad)动态加载新的class文件并用Class.forName()注册该类,然后就可以正常使用了。
上面的每一步都能在baidu中找到实现方法,自己发挥吧。
分析文本内容然后重新加载.
我觉得是不是你保存的内容不够详细,所以分析起来就特别耗时,
比如地图上的有几个地雷的数字, 就可以先存起来
假设
已经打开的安全区域, 并且该按钮不用显示数字, 那么设置成 0
已经打开的安全区域,但按钮上需要显示数字,那么数字是几,那么设置成几
--1
--2
......
[没有标记]
没有打开的区域, 且上面没有点上地雷标记,且不是地雷的,那么数字可以设置成A
没有打开的区域, 且上面没有点上地雷标记,但是是地雷的,那么数字可以设置成B
[有标记]
没有打开的区域,有地雷标记, 且真的下面有地雷的,那么数字设置成C
没有打开的区域, 有地雷标记,但下面没有地雷的,那么数字设置成D
那么地图文件,可能存储的信息如下. (假设的,没有去推理过的)
02DCBA4AA1100
00123DBCDAB10
.....
这思路和RPG的游戏地图保存是这样的,
RPG地图划分出一个一个的格子来显示,所以保存的时候,保存每一个格子的数据就可以了,
没有设置ABC... 而全部使用数字, 0~N
比如
保存是数据如下: 行标,和每一行的数据
[0]=[12,89,101]
[1]=[13,72,12]
[2]=[3,10,56]
Java类的加载是动态的,它并不会一次性将所有类全部加载后再运行,而是保证程序运行的基础类(像是基类)完全加载到jvm中,至于其他类,则在需要的时候才加载。这当然就是为了节省内存开销。
Java的类加载器有三个,对应Java的三种类:
Bootstrap Loader // 负责加载系统类 (指的是内置类,像是String,对应于C#中的System类和C/C++标准库中的类)
|
- - ExtClassLoader // 负责加载扩展类(就是继承类和实现类)
|
- - AppClassLoader // 负责加载应用类(程序员自定义的类)
三个加载器各自完成自己的工作,但它们是如何协调工作呢?哪一个类该由哪个类加载器完成呢?为了解决这个问题,Java采用了委托模型机制。
委托模型机制的工作原理很简单:当类加载器需要加载类的时候,先请示其Parent(即上一层加载器)在其搜索路径载入,如果找不到,才在自己的搜索路径搜索该类。这样的顺序其实就是加载器层次上自顶而下的搜索,因为加载器必须保证基础类的加载。之所以是这种机制,还有一个安全上的考虑:如果某人将一个恶意的基础类加载到jvm,委托模型机制会搜索其父类加载器,显然是不可能找到的,自然就不会将该类加载进来。
我们可以通过这样的代码来获取类加载器:
ClassLoader loader = ClassName.class.getClassLoader();
ClassLoader ParentLoader = loader.getParent();
注意一个很重要的问题,就是Java在逻辑上并不存在BootstrapKLoader的实体!因为它是用C++编写的,所以打印其内容将会得到null。
前面是对类加载器的简单介绍,它的原理机制非常简单,就是下面几个步骤:
1.装载:查找和导入class文件;
2.连接:
(1)检查:检查载入的class文件数据的正确性;
(2)准备:为类的静态变量分配存储空间;
(3)解析:将符号引用转换成直接引用(这一步是可选的)
3.初始化:初始化静态变量,静态代码块。
这样的过程在程序调用类的静态成员的时候开始执行,所以静态方法main()才会成为一般程序的入口方法。类的构造器也会引发该动作。
如果只是程序更改值的请使用,prop.setProperty("ss", "123"); 。如果是人为修改 .properties 文件的值 。关闭上次,读取流 。
Properties prop = new Properties();
FileReader in = new FileReader("ss.properties");
prop.load(in);
in.close();
你的是javaEE 的项目,可以 监听器试试吧 !
大兄弟,我这儿有一个,你参考一下,但是输出流问题,没有得到解决。因为src在项目布置到tomcat上会消失的,所以你看看能不能解决?
楼上不懂就不要乱说。 这个需要更改tomcat的开发模式的
要设置server.xml中的Context reloadable="true", true自动重载(不是重启!), false手动重载。(如果项目在Tomcat中,应该去Tomcat目录设置。)