java代码生成,java代码生成器
大家好,关于java代码生成很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于java代码生成器的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!
用java随机生成四位验证码,只求编程代码
下面简单的介绍他们的功能和用途,执行效率等。每个都有各自的优缺点看你是做甚什么方面的研究开发用。
.net,是网站编程,现在很多都用这个,但是这个语言编程都有统一思路,很好掌握。窒息那个效率不是很高;
php支持跨平台,很容易学会,执行的效率很高;
asp是ASP.net的前身,它比较稳定,比.net要弱一点。但是比.net好学。
jsp是网页编程,这个学习大约一周就能搞定,不过这个得多实践,不然的话,时间长了,就容易忘记。
java代码生成器能生成c语言代码吗用什么方法能实现呢
按照我的理解,可以的,代码生成器是跨平台,而且是跨语言的(至少是跨文本语言的,UML暂时不好说,)。
代码生成器作为一种开发工具,一般不直接作为程序的一部分,通常也不直接或间接(如通过AOP)被程序调用,他是通过编程的方式生成所需要的代码,然后将生成的代码作为源文件,复制到开发工具的代码区,然后进行编译。由于代码生成器是在编译之前运行的,因此它可以跨语言,你不但可以用代码生成器生成高级语言,也可以生成汇编语言,甚至机器码(0、1代码)。
但编写代码生成器是一个难点,它需要你了解目标编程语言的语法。如果别人已经把你需要的代码生成器写好了,你只需按要求使用即可,此时就不需要了解目标编程语言的语法。
JNI是通过Java调用C语言(或其他语言,一般是C),它的实现机制与代码生成器不同(JNI是通过代码调用实现功能,而代码生成器是生成代码,复制代码进行使用),由于C是底层语言,一些底层操作单靠Java无法实现,所以才需要JNI。
以上是我对代码生成器的个人理解,虽然提问时间已过了很久,但依然希望能对你及其他网友有所帮助。
求java题源代码,最好有注释,
import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;
import java.util.*;
import javax.swing.*;
/**
*多线程,小球演示.打开Windows任务管理器,可看到线程变化。可搜索到,run()方法/.start()
*
* du:程序技巧体会:所谓产生一个小球,即是 new其类对象,其属性携带画小球的坐标、颜色、所在容器等参数。
*
*一个类,属性用来作为参数容器用,方法....完成功能。
**/
//运行类
public class BouncePress{
//
public static void main(String[] args){
JFrame frame= new BouncePressFrame();//生成窗口。执行构造。-----业务逻辑。
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// similar to
// window
// listener
frame.show();
}
}
class BouncePressFrame extends JFrame{
private BallPressCanvas canvas;
public BouncePressFrame(){
setSize(600, 500);//窗口大小
setTitle("Bounce Ball");
Container contentPane= getContentPane();// Swing的窗口不能直接放入东西,只能在其上的ContentPane上放。
canvas= new BallPressCanvas();//生成一个新面板。-----canvas
contentPane.add(canvas, BorderLayout.CENTER);//窗口中心加入该面板。
JPanel buttonPanel= new JPanel();//再生成一个新面板。----buttonPanel
//调用本类方法addButton。
addButton(buttonPanel,"Start",//生成一个按钮"Start"---加入面板buttonPanel
new ActionListener(){//|------>按钮绑上 action监听器。
public void actionPerformed(ActionEvent evt){//|小球容器对象的
addBall(Thread.NORM_PRIORITY- 4, Color.black);//事件处理时,执行---addBall()方法。--->产生小球(参数对象)--->加入List中--->开始画球。
}
});//按一次,addBall()一次--->产生一个新小球--->加入List中--->开始画此新小球。
//--->画球线程BallPressThread的run()--->小球(参数对象).move()--->每次画时,先移动,再判断,再画。
//--->BallPressCanvas类的canvas对象.paint()--->自动调BallPressCanvas类的paintComponent(Graphics
// g)方法。
//--->该方法,从List中循环取出所有小球,第i个球,--->调该小球BallPress类
//.draw()方法--->调Graphics2D方法画出小球。--使用color/
addButton(buttonPanel,"Express", new ActionListener(){
public void actionPerformed(ActionEvent evt){
addBall(Thread.NORM_PRIORITY+ 2, Color.red);
}
});
addButton(buttonPanel,"Close", new ActionListener(){
public void actionPerformed(ActionEvent evt){
System.exit(0);
}
});
contentPane.add(buttonPanel, BorderLayout.SOUTH);
}
public void addButton(Container c, String title, ActionListener listener){
JButton button= new JButton(title);//生成一个按钮。
c.add(button);//加入容器中。
button.addActionListener(listener);//按钮绑上 action监听器。
}
/**主要业务方法。*/
public void addBall(int priority, Color color){
//生成小球(参数对象)
BallPress b= new BallPress(canvas, color);//生成BallPress对象,携带、初始化
//画Ball形小球,所需参数:所在容器组件,所需color--black/red.
//小球加入 List中。
canvas.add(b);//面板canvas的ArrayList中加入BallPress对象。
BallPressThread thread= new BallPressThread(b);//生成画小球的线程类BallPressThread对象。传入BallPress对象(携带了画球所需
//容器、color参数)。
thread.setPriority(priority);
thread.start();// call run(), ball start to move
//画球线程开始。--->BallPressThread的run()--->小球(参数对象).move()--->先移动,再画。canvas.paint--->BallPressCanvas类的
}
}
//画球的线程类。
class BallPressThread extends Thread{
private BallPress b;
public BallPressThread(BallPress aBall){
b= aBall;
}
//画球开始。
public void run(){
try{
for(int i= 1; i<= 1000; i++){//画1000次。
b.move();//每次画时,先移动,再判断,再画。
sleep(5);//所以移动比Bounce.java的球慢。
}
} catch(InterruptedException e){
}
}
}
// swing面板类.
//作用1)本类面板对象.paint()方法---->自动绘制面板,且自动调paintComponent(Graphics
// g)方法,--->重写该方法,绘制面板(及其上组件)。
//作用2)该类对象属性ArrayList balls---兼作小球(参数对象)的容器。
class BallPressCanvas extends JPanel{
private ArrayList balls= new ArrayList();
public void add(BallPress b){
balls.add(b);//向ArrayList中添加球。当按下按钮,添加多个球时,都保存在这个List中。
}
//重写了 javax.swing.JComponent的 paintComponent()方法。
// paint()方法自动调用该方法。
public void paintComponent(Graphics g){
super.paintComponent(g);
Graphics2D g2=(Graphics2D) g;
for(int i= 0; i< balls.size(); i++){//循环
BallPress b=(BallPress) balls.get(i);//从List中取出第i个球,
b.draw(g2);//画此球。
}
}
}
/**
*画出球。
*
*在 canvas上画出,color色的小球图形。
*
*属性,可用于携带画小球所需参数。
*
*
*
*@author ducongan
*
*/
class BallPress{
private Component canvas;
private Color color;
private int x= 0;
private int y= 0;
private int dx= 2;
private int dy= 2;
//构造初始化容器颜色参数。
public BallPress(Component c, Color aColor){
canvas= c;
color= aColor;
}
//制定位置,画出小球。
public void draw(Graphics2D g2){
g2.setColor(color);
g2.fill(new Ellipse2D.Double(x, y, 15, 15));// ellipse:椭圆形
}
//移动小球。
//每次画时,先移动,再判断,再画。
//该方法每次执行,画小球的起点坐标(x,y),每次各自+2,即斜向右下运动。
public void move(){
x+= dx;// x=x+dx;画小球的起点坐标(x,y),每次各自+2,即斜向右下运动。
y+= dy;// y=y+dy;
if(x< 0){//小球已到左边框。保证,从左边框开始画。
x= 0;
dx=-dx;//小球横坐标变化值取反。开始反向运动。
}
if(x+ 15>= canvas.getWidth()){//小球右边已经到画板右边。
x= canvas.getWidth()- 15;
dx=-dx;//开始反向运动。
}
if(y< 0){//保证,从顶框开始画。
y= 0;
dy=-dy;
}
if(y+ 15>= canvas.getHeight()){//小球已到画板顶。
y= canvas.getHeight()- 15;
dy=-dy;
}
canvas.paint(canvas.getGraphics());//画出面板对象canvas----(及其上所有组件)
////.paint()方法,自动调用
}
}
/*import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;
import java.util.*;
import javax.swing.*;
*//**
*单线程,小球演示搜索不到,run()方法/.start()
*//*
public class Bounce{
public static void main(String[] args){
JFrame frame= new BounceFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// similar to
// window
// listener
frame.show();
}
}
不懂的再问啊。。。
好了,关于java代码生成和java代码生成器的问题到这里结束啦,希望可以解决您的问题哈!