
正文
java雪堆积程序代码 java堆内存模型
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
Java求雪花堆积效果
基本上正确,但是有几个地方需要改改。
第一点:
// 建议用JFrame来弄,并在关闭时退出程序
JFrame w = new JFrame();// 创建一个面板
w.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 关闭窗口时退出程序
w.setSize(800, 600);// 设置面板大小
MyJPanel p = new MyJPanel();// 创建了一个画布
p.setBackground(Color.BLACK);// 设置背景颜色为黑色
w.add(p);
第二点:随机数放到run的for循环生成
for (int i = 0; i 100; i++) {
x[i] = (int) (Math.random() * 800);
y[i] = (int) (Math.random() * 600);
}
相关问答
Q1: java 能否实现桌面下雪花的效果?使用swing?
/*
*实现在窗体上随机布满300个雪花("*"),滚动
*在上次的课基础上增加了for循环(一次要产生300个变量),随机数,数组 ;
*下面的序号为步骤
*/ import java.awt.* ; //(3)导入awt包
public class Star {
public static void main(String args[]) {
Frame w = new Frame() ; //(1)绘制窗体
w.setSize(1024,768) ; //(4)把窗体布满全屏
w.setBackground(Color.BLACK) ; //(5)背景为黑颜色
MyPanel mp = new MyPanel() ; //(7)把MyPanel对象mp,添加到窗体w上
w.add(mp) ;
Thread t = new Thread(mp) ;
t.start() ; //(12)启动线程
w.show(); //(2)显示窗体
}
}
//(6)继承Panel类
class MyPanel extends Panel implements Runnable { //(11)实现Runnable接口
int x[] = new int[300] ;
int y[] = new int[300] ; //(8)定义300个数组变量 MyPanel(){
for(int i = 0;i 300; i++) {
x[i] = (int)(Math.random()*1024) ;
y[i] = (int)(Math.random()*768) ; //(9)当程序走到第6步的时候程序就会调用构成函数
} //由于随机数是从0-1之间的数任意产出所以x乘以1024,y乘以768再转换为int类型
}
public void paint(Graphics g) {
for(int i = 0;i 300; i++) {
g.setColor(Color.WHITE) ;
g.drawString("*",x[i],y[i]) ;
//g.drawString("*",30,30) ;(7)绘制一个星星在屏幕的x=30,y=30的位置上
} //(10)绘制300个雪花,把坐标30,30,改成x[i],y[i] ;
} //做到这步可以实现在黑色的天空布满300个星星
public void run() {
while(true) { //(13)实现产生300个雪花往下落死循环
for(int i = 0 ; i 300; i++) {
y[i]++ ; //(14)y坐标不断的+1
if(y[i] 768){ //(18)如果y轴坐标大于768时,则y = 0,回到窗体的顶部
y[i] = 0 ;
}
}
try{ //(16)用try,catch解决线程休眠的异常
Thread.sleep(20) ; //(15)在每次y轴坐标+1后线程休眠20毫秒
}catch(Exception e) {}
repaint() ; //(17)雪花在新的位置重画
}
}
}
Q2: 北大青鸟java培训:程序员如何避免无效代码的问题?
对于软件编程开发程序员来说,无效代码堆积以及代码质量低是很多新手容易犯的一些错误。
下面我们就一起来了解和学习一下,减少无效代码的堆积都有哪些方法。
当曾经向往的职业变成一日又一日的无用代码堆积,多少让开发者有些心灰意冷,虽然无法保证整个产品质量,但至少可以在代码层面下点功夫。
无用代码堆积这种现象在日常软件开发中非常普遍,对于需求频繁被修改的问题,根源在于弄清楚软件开发的目的是什么,代码有没有用的终决定者应该是用户,如果一段代码具备的功能符合用户需求,具备业务价值,那么就是有用的。
在软件开发过程中,需求变更和代码修改是很正常的事情,但这个不确定性需要在一定范围内。
对此,佳的解决方案可能是迭代开发,也叫迭代增量式开发,将整个开发周期分解为若干时间段,每隔一段固定时间就对软件进行一次小迭代,每迭代几次就进行一次全面测试和大版本更新,对开发成果进行质量评审,这个过程重要的是听取终用户的意见,以便及时调整优化,避免无效需求,尤其是决策者拍脑门出来的决定。
开发之前,技术负责人务必准备好相应文档,确定好各工程师的分工,尤其是需要协同完成的部分。
另外,团队尽量抽出时间和精力进行代码Review,并以降低代码复杂度为目标,如果不同工程师之间的代码间经常互相影响,可以考虑让这类程序员负责独立开发模块,降低对整个项目的影响。
长期以来,测试在国内的重视程度并不够,一个测试团队起码应该有白盒测试、效率测试、单元测试等各类专职人员,不建议在所有功能完成之后才开始测试,好是完成一个功能就马上交给测试,测试阶段应由测试完全掌握主动权,开发必须尊重测试人员的工作。
归根结底,贵阳北大青鸟认为软件开发是一项非常复杂的工作,为了避免过程出错,很多公司已经摸索并建立了成熟且完整的代码编写规范,包括变量命名规则、层次化设计、类和接口设计,到后的代码Review都很清楚,重要的不是会写代码,而是学会解决问题,做真正有价值的事情。
Q3: 想实现多个雪花,为什么只有一个雪花,怎么实现多线程,另外怎样实现无窗体的动画, 就跟q宠物那样的
没用Java写过,现这种效果最好是用DriectX或者OpenGL里实现,要不,用Java这类托管语言来做的话,所有的东西都是面向对象的,堆和托管堆交互很频繁,还有开N多线程,线程的数量是有限制的。如果你需要的效果是直接在屏幕上即没有容器的那种,可以直接操作显存试试,这个要用底层语言比如C嵌汇编操作显存的文件映射区域等等,其中雪花飘落的过程用一种计算表达式来实现,比如其中有一些速度因子,大小因子,轨迹因子,等等(看自己喜好)。记得以前写过一个DriectX里的粒子运动效果,和雪花飘落的功能很相似,只是它不能直接在桌面上显示,需要容器。
Q4: 求java桌面下雪的思路
我有个小思路,你看看可行不?
截屏成2部分,落地的一部分,飘得一部分,落地的就不用重新绘制,只往上添加雪花!
做好后,俺可以帮你测试。O(∩_∩)O~
java雪堆积程序代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java堆内存模型、java雪堆积程序代码的信息别忘了在本站进行查找喔。







