首页 > 精品范文库 > 2号文库
JAVA报告
编辑:浅语风铃 识别码:11-899553 2号文库 发布时间: 2024-02-05 10:41:22 来源:网络

第一篇:JAVA报告

JAVA

一、需求分析

课程设计报告

——简单的计算器

学号:

用java设计并实现类似Windows自带计算器。

具体功能包括:四则运算(加、减、乘、除);退格(Backspace)、初始化(CE);求平方根(sqrt)、倒数(1/x)。

二、总体设计

主类:Calculator

内部类:

类名:CalculatorFrame 继承的父类:JFrame 类名:CalculatorPanel 继承的父类:Panel 类名:InsertAction 实现的接口:ActionListener 类名:CommandAction 实现的接口:ActionListener

三、运行效果

四、程序源代码

import java.awt.*;import java.awt.event.*;import javax.swing.*;

public class Calculator { public static void main(String[] args){ CalculatorFrame frame=new CalculatorFrame();frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setVisible(true);} }

class CalculatorFrame extends JFrame { public CalculatorFrame(){ setTitle(“Calculator”);//设置窗体的标题为“Calculator” CalculatorPanel panel=new CalculatorPanel();//创建一个面板 add(panel);pack();} }

class CalculatorPanel extends Panel { public CalculatorPanel(){ setLayout(new BorderLayout());//设置边界布局管理

result=0;lastCommand=“=”;start=true;flag=true;

display=new JButton(“0”);display.setEnabled(false);add(display,BorderLayout.NORTH);//将display按钮放置在容器的NORTH方位 //声明内部类

ActionListener insert=new InsertAction();ActionListener command=new CommandAction();

panel=new JPanel();//创建一个面板

panel.setLayout(new GridLayout(4,5));//设置面板的布局管理 //将按钮添加到面板JPanel上 addButton(“7”,insert);addButton(“8”,insert);addButton(“9”,insert);addButton(“/”,command);addButton(“CE”,command);

addButton(“4”,insert);addButton(“5”,insert);addButton(“6”,insert);addButton(“*”,command);addButton(“Backspace”,command);

addButton(“1”,insert);addButton(“2”,insert);addButton(“3”,insert);addButton(“-”,command);addButton(“sqrt”,command);

addButton(“0”,insert);addButton(“.”,insert);addButton(“=”,command);addButton(“+”,command);addButton(“1/x”,command);

add(panel,BorderLayout.CENTER);//将面板JPanel添加到容器的CENTER方位 } private void addButton(String label,ActionListener listener){ JButton button=new JButton(label);button.addActionListener(listener);//注册动作事件接口

panel.add(button);//将按钮添加到panel面板上 } private class InsertAction implements ActionListener { public void actionPerformed(ActionEvent event){ //事件处理代码

String input=event.getActionCommand();if(start&&flag){ display.setText(“");start=false;} if(flag)display.setText(display.getText()+input);} } private class CommandAction implements ActionListener { public void actionPerformed(ActionEvent event){ //事件处理代码

String command=event.getActionCommand();

if(command.equals(”CE“)){ display.setText(”0“);start=true;flag=true;command=”=“;} else if(start&&flag){ if(command.equals(”-“)){ display.setText(command);start=false;} else if((command.equals(”1/x“)||command.equals(”sqrt“))&&flag)calculate(Double.parseDouble(display.getText()),command);else if(flag)lastCommand=command;} else { if(command.equals(”Backspace“)&&flag){ String s=display.getText();char[] s1=s.toCharArray();if(s.length()>=2){ String s2=new String(s1,0,s.length()-1);display.setText(s2);} else { display.setText(”0“);start=true;} } else if(flag){ calculate(Double.parseDouble(display.getText()),command);

lastCommand=command;start=true;} } } }

public void calculate(double x,String command){ if(lastCommand.equals(”+“))result+=x;else if(lastCommand.equals(”-“))result-=x;else if(lastCommand.equals(”/“)){ if(x!=0)result/=x;else { display.setText(”除数不能为0“);start=false;flag=false;return;} } else if(lastCommand.equals(”*“))result*=x;else if(command.equals(”1/x“)){ if(x!=0)result=1/x;else { display.setText(”除数不能为0“);start=false;flag=false;return;} } else if(command.equals(”sqrt“)){ if(x>=0)result=Math.sqrt(x);else { display.setText(”函数输入无效“);start=false;flag=false;return;} } else if(lastCommand.equals(”=“))result=x;

display.setText(”"+result);} private JButton display;private JPanel panel;private double result;private String lastCommand;private boolean start;private boolean flag;}

五、心得体会

……

第二篇:Java程序设计报告

楚雄师范学院

202_年春季期末Java程序设计报告

项目名称:基于Java平台开发的五子棋程序设计

学 院: 物理与电子科学学院

专 业:电子信息科学与技术

班 级:2 0 1 3 级 电 信 一 班

组员姓名:杨邦桂 许勇 董俊宏 课程教师: 程 满

目录

引言...........................................................................................................................................4 第一章 设计目的和要求.........................................................................................................4 第二章JAVA语言概述.........................................................................................................4 2.1 JAVA简介........................................................................................................................4 2.1.1 JAVA的基本特点.....................................................................................................4 2.2 JAVA工具

JDK............................................................................................................5 第三章 程序的设计思路和算法.............................................................................................5 3.1 人机博弈的要点............................................................................................................5 3.2 五子棋特点及规则......................................................................................................5 3.3 设计思路......................................................................................................................6 3.3.1...................................................................................................................................6 第四章 测试及运行效果.........................................................................................................6 4.1棋盘系统主界面.............................................................................................................6 4.2下期博弈过程界面.........................................................................................................7 4.3黑方赢的结果.................................................................................................................7 4.4白方赢的结果.................................................................................................................8 第五章 设计体会与总结.........................................................................................................9 附录.........................................................................................................................................10 源程序代码及简要说明:.................................................................................................10

引言

随着计算机技术的不断发展,网络技术的普及范围越来越广,网络能够提供的服务多样、便捷,已经成为人们生产生活中不可缺少的重要组成部分。如今网络休闲游戏发展迅速,它凭借健康、方便、互动性强、益智等诸多优点,成为大部分现代人休闲娱乐的首选。

网络五子棋游戏是使用Java语言开发的一款游戏。它使用SOCKET建立连接,多线程处理数据,以及可嵌入网络浏览器的APPLET作为客户端,这些特点使这款游戏无论是服务器还是客户端的实现都相对容易。通过对该软件的编写,还可以巩固学生对以上各种知识的掌握和理解。

第一章 设计目的和要求

1.1 实现一个简单的五子棋游戏程序,包括如下两个界面:(1)对弈及角色(黑方先落棋)。

(2)在游戏界面,有游戏栏(开局、悔棋、退出),帮助栏; 显示区;棋盘区。1.2在实际系统中使用、实现人工智能的相关算法

1.3进一步加深对人工智能算法的理解

第二章JAVA语言概述

2.1 JAVA简介

JAVA是Sun Microsystem公司开发的编程语言,是一个简单,面向对象,分布式,解释性,强壮,安全,与系统无关,可移植,高性能,多线程和动态的语言。

2.1.1 JAVA的基本特点

(1)简单性

Java与C++语言非常相近,但Java比C++简单,它抛弃了C++中的一些不是绝对必要的功能,如头文件、预处理文件、指针、结构、运算符重载、多重继承以及自动强迫同型。Java实现了自动的垃圾收集,简化了内存管理的工作。

(2)面向对象

Java提供了简单的类机制和动态的构架模型。对象中封装了它的状态变量和方法,很好地实现了模块化和信息隐藏;而类则提供了一类对象的原型,通过继承和重载机制,子类可以使用或重新定义父类或超类所提供的方法,从而既实现了代码的复用,又提供了一种动态的解决方案。

(3)多线程

多线程使应用程序可以同时进行不同的操作,处理不同的事件。在多线程机制中,不同的线程处理不同的任务,他们之间互不干涉,不会由于一处等待影响其他部分,这样容易实现网络上的实时交互操作。

(4)分布性

Java是面向网络的语言。通过它提供的类库可以处理TCP/IP协议,用户可以通过URL地址在网络上很方便的访问其他对象。(5)体系结构中立

Java是一种网络语言,为使Java程序能在网络的任何地方运行,Java解释器生成与体系结构无关的字节码结构的文件格式。为了使Java的应用程序能不依赖于具体的系统,Java语言环境还提供了用于访问底层操作系统功能的类组成的包,当程序使用这些包时,可以确保它能运行在各种支持Java的平台上。

(6)安全性

用于网络、分布环境下的Java必须要防止病毒的入侵,Java不支持指针,一切对内存的访问都必须通过对象的实例变量来实现,这样就防止了程序员使用欺骗手段访问对象的私有成员,同时也避免了指针操作中容易产生的错误。

2.2 JAVA工具

JDK

(1)Java编译器

Java编译器将Java源代码文件编译成可执行的Java字节码。Java源代码文件的扩展名为.java,Java编译器把这种扩展名的文件编译成扩展名为.class的文件。源文件中的每个类在编译后都将产生一个class文件,这意味一个Java源代码文件可能编译生成多个class文件。

(2)Java解释器

Java解释器对编译生成的字节码格式的可执行程序的运行提供支持,它是运行非图形Java程序的命令行工具。

第三章 程序的设计思路和算法

3.1 人机博弈的要点

人机对弈的程序,至少应具备以下5个部分:

(1)某种在机器中表示棋局的方法,能够让程序知道博弈的状态。(2)产生合法走法的规则,以使博弈公正地进行,并可判断人类对手是否乱走。(3)从所有合法的走法中选择最佳的走法技术。(4)一种评估局面优劣的方法,用以同上面的技术配合做出智能的选择。(5)一个界面,有了他,这个程序才能用。

3.2 五子棋特点及规则

五子棋的娱乐性强、规则简单、易学、流行性广。普通人不需长时间专门训练即可自如行棋。因此极受大众欢迎。五子棋的规则为:

(1)棋盘

采用像围棋盘一样的15路或19路线的棋盘,在此采用19路的棋盘。

(2)下法

两人分别执黑白两色棋子。轮流在棋盘上选择一个无子的交叉点落子,无子的交叉点又被称为空点。

(3)输赢判断

黑、白双方有一方的五个棋子在横、竖或斜方向上连接成一线即为该方赢。

(4)特殊规定

职业五子棋虽然对黑棋采取了种种限制,但黑子先行的优势依然很大。因此,在高段位的职业比赛中,又出现了三种特殊的规定。

a.指定打法:是指比赛双方按照约定好的开局进行对弈,由白棋先行。

b.三手可交换:是指黑棋下盘面第3手棋后,白方在下第四手之前,如感觉黑方棋形不利于己方,可提出交换,即执白棋一方变为执黑棋一方,而黑方不可以不换。

c.五手两打法:是指黑棋在下盘面上关键的第5手棋时,必须下两步棋,让白棋在这两步棋中拿掉一粒棋子,然后再继续对弈。一般说来,白棋肯定拿掉对白方不利的一点,而保留对黑方较为不利的那点让黑方行棋。3.3 设计思路

3.3.1开始——下棋——判断输赢——结束游戏或重新再来——退出。

1.建立一个棋盘类,绘制棋盘的样式,在棋盘面板上添加各种按钮及相应胡触发事件。同时注意面板的设计,使面板设计的尽量胡的合理美观。2.编写一个功能判断落子的位置及画出相应的黑白棋子。3.判断胜负

第四章 测试及运行效果

4.1棋盘系统主界面

图4-1初始化棋盘效果,玩家为黑棋 4.2下棋博弈过程界面

图4-2黑白棋博弈

4.3黑方赢的结果

图4-3黑方胜利界面

4.4白方赢的结果

图4-4白方胜利界面

第五章 设计体会与总结

Java编程最强大的地方不是它是容易学,或者难学,而是它拥有一个强大的库。JAVA是一个完全面向对象的语言,JAVA的命名规则是很容易让人接受的。而且容易被编程人员记住。经过实践训练,对JAVA的综合应用能力有了较大的提高,另外对JAVA的特点有了更深层次的认识。这次实践中使用的代码虽然不长,但类与类之间也有很强的逻辑关系,这就是面向对象语言的最大优势,这样可使我们更轻松的运用JAVA。

经过努力,查阅相关资料,终于完成该课题,虽然效果不是很好,但亲手做过之后还是很有成就感的。

通过此次课程设计,将我本学期所学的JAVA知识得到巩固和应用,在设计的过程中我遇到了很到问题,不过在老师和同学们的帮助和自己的思考下还是很好的完成了。这此课程设计还让我懂得了写程序不能闭门造车,要努力拓宽知识面,开阔视野,拓展思维。它还让我学会了在网上查阅那些无限的资料。通过对此课题的开发,使我对用Eclipse开发平台有了一个比较清楚的认识,体会到理论和实践的重要性。由于自己的分析设计和程序经验不足,该系统设计和实现过程中,还有许多没有完善的地方,比如用户界面设计不够美观,异常出错处理比较差等多方面问题,这些都有待进一步完善和提高。

附录

源程序代码及简要说明:

import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.util.Timer;import java.util.TimerTask;import java.lang.Thread;public class WZQ_2008 extends Frame implements ActionListener { Timer t=new Timer(true);//Thread mt=new MyThread(this);MenuBar mb=new MenuBar();Menu myx=new Menu(“游戏”);Menu mbz=new Menu(“帮助”);MenuItem mikj=new MenuItem(“开局”);MenuItem mihq=new MenuItem(“悔棋”);MenuItem mitc=new MenuItem(“退出”);MenuItem migy=new MenuItem(“关于”);int x=0;int y=0;String stb=“五子棋游戏

请黑方落子”;String stw=“五子棋游戏

请白方落子”;boolean isBlack=true;String str=“Game Over”;boolean over=false;int count=0;int jj=30;int r=25;String str1;int [][]date=new int[15][15];

int i=0;public WZQ_2008(){

this.setMenuBar(mb);

mb.add(myx);

mb.add(mbz);

myx.add(mikj);mikj.addActionListener(this);mikj.setEnabled(false);myx.add(mihq);mihq.setEnabled(false);mihq.addActionListener(this);myx.add(mitc);mitc.addActionListener(this);mbz.add(migy);migy.addActionListener(this);this.setTitle(stb);this.setBounds(100,100,485,500);this.setBackground(new Color(206,148,49));this.setResizable(false);this.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){

System.exit(0);} });this.addMouseListener(new MouseAdapter(){ public void mousePressed(MouseEvent e){

if(over)

{

return;

}

x=(e.getX()-30+jj/2)/jj;

y=(e.getY()-60+jj/2)/jj;

if(x<0||x>14||y<0||y>14)

{

return;

}

if(date[x][y]!=0)

{

return;

}

if(isBlack)

{

setTitle(stw);

date[x][y]=1;

}

else

{

setTitle(stb);

date[x][y]=2;

}

mikj.setEnabled(true);

mihq.setEnabled(true);

isBlack=!isBlack;

pd();

repaint();

} });this.setVisible(true);

} public void pd(){ int xq=0,xz=14;int yq=0,yz=14;if(x-4>0){

xq=x-4;} if(x+4<14){

xz=x+4;} if(y-4>0){

yq=y-4;} if(y+4<14){

yz=y+4;} pdh(xq,xz);count =0;pds(yq,yz);count=0;pdfx(xq,xz);count=0;pdzx(xq,xz);} public void pdzx(int xq,int xz){ for(int i=xq;i<=xz;i++){

if(y+x-i<0)

{

break;

}

if(y+x-i>14)

{

continue;

}

if(date[i][y+x-i]==date[x][y])

{

count++;

isOver();

}

else

{

count=0;

} } } public void pdfx(int xq,int xz){ for(int i=xq;i<=xz;i++){

if(y-x+i<0)

{

continue;

}

if(y-x+i>14)

{

break;

}

if(date[i][y-x+i]==date[x][y])

{

count++;

isOver();

}

else

{

count=0;

} }

} public void pds(int yq,int yz){ for(int i=yq;i<=yz;i++){

if(date[x][i]==date[x][y])

{

count++;

isOver();

}

else

{

count=0;

} } } public void pdh(int xq,int xz){ for(int i=xq;i<=xz;i++){

if(date[i][y]==date[x][y])

{

count++;

isOver();

}

else

{

count=0;

} } } public void isOver(){ if(count==5){

over=true;

if(date[x][y]==1)

{

str1=“黑方胜利”;

}

else if(date[x][y]==2)

{

str1=“白方胜利”;

}

//mt.start();

//for(int i=0)

t.schedule(new MyTimer(this),100,500);

this.repaint();} } public void actionPerformed(ActionEvent e){ if(e.getSource()==mikj){

mikj.setEnabled(false);

mihq.setEnabled(false);

for(int i=0;i

{

for(int j=0;j

{

date[i][j]=0;

}

}

isBlack=true;

this.setTitle(stb);

over=false;

this.repaint();} if(e.getSource()==mihq){

mihq.setEnabled(false);

date[x][y]=0;

if(isBlack)

{

this.setTitle(stw);

}

else

{

this.setTitle(stb);

}

isBlack=!isBlack;

this.repaint();} if(e.getSource()==mitc){

this.dispose();}

if(e.getSource()==migy){

new MyAbout(this);} } public void update(Graphics g){ paint(g);} public void paint(Graphics g){ Image ii=this.createImage(485,500);Graphics gg=ii.getGraphics();paintBuffer(gg);g.drawImage(ii,0,0,this);} public void paintBuffer(Graphics g){ for(int i=0;i<15;i++){

g.drawLine(30,60+i*jj,30+14*jj,60+i*jj);

g.drawLine(30+i*jj,60,30+i*jj,60+14*jj);} for(int i=0;i

for(int j=0;j

{

if(date[i][j]==1)

{

g.setColor(Color.BLACK);

}

else if(date[i][j]==2)

{

g.setColor(Color.WHITE);

}

else

{

continue;

}

//抗锯齿,使绘画出来的图形更圆滑

Graphics2D g2d=(Graphics2D)g;

g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);

g.fillOval(30-jj/2+i*jj,60-jj/2+j*jj,r,r);

}

}

if(over)

{

g.setColor(Color.GRAY);

g.setFont(new Font(“楷体”,3,70));

g.drawString(str,45,250);

g.drawString(str1,48,350);

g.setColor(Color.RED);

g.setFont(new Font(“楷体”,3,70));

g.drawString(str,50,253);

g.drawString(str1,60,353);

mihq.setEnabled(false);

} } public static void main(String[]args){

new WZQ_2008();

} } class MyAbout extends Dialog { Button bok=new Button(“确定”);public MyAbout(WZQ_2008 wzq){

super(wzq,“百纳科技五子棋”,true);

this.add(bok);

bok.setBounds(180,250,60,20);

this.setLayout(null);

this.addWindowListener(new WindowAdapter()

{

public void windowClosing(WindowEvent e)

{

dispose();

}

});

bok.addActionListener(new ActionListener()

{

public void actionPerformed(ActionEvent e)

{

dispose();

}

});

this.setBounds(100,100,400,300);

this.setResizable(false);

this.setVisible(true);} public void paint(Graphics g){

Image ii=new ImageIcon(“about.jpg”).getImage();

g.drawImage(ii,0,0,this);} } class MyTimer extends TimerTask { WZQ_2008 wzq;boolean b=true;public MyTimer(WZQ_2008 wzq){

this.wzq=wzq;} public void run(){

if(!wzq.over)

{

return;

}

if(b)

{

wzq.str=“Game Over”;

}

else

{

wzq.str=“";

}

b=!b;

wzq.repaint();

wzq.i++;

if(wzq.i==11)

{

cancel();

wzq.i=0;

}

System.out.println(wzq.i);} } /*class MyThread extends Thread { WZQ_2008 wzq;boolean b=true;public MyThread(WZQ_2008 wzq){

this.wzq=wzq;} public void run(){

if(!wzq.over)

{

return;

}

if(b)

{

wzq.str=”Game Over“;

}

else

{

wzq.str=”";

}

b=!b;

wzq.repaint();}

}*/

第三篇:java报告

实验六

题目:图形用户界面

目的:

1、掌握图形组件的使用

2、掌握布局管理器的使用方法

3、掌握Java事件处理机制

内容:设计实现一个具有基本计算功能的计算器

实验七

题目:输入输出

目的:掌握常用字节流和字符流的创建与使用

内容:从文件in.txt中读取内容,再将它写到文件out.txt中。in.txt采用本地平台默认的字符编码,而out.txt分别采用和本地平台不同的UTF-8编码以及和和本地平台相同的字符编码。

实验八

题目:多线程

目的:了解线程的概念、线程的生命周期

掌握多线程的编程

实验九

题目:多媒体

目的:掌握基本图形的绘制方法

掌握图像的显示、声音的播放

实验十

题目:数据库和网络

目的:掌握使用JDBC技术访问数据库

掌握基于TCP协议的Socket网络编程

第四篇:java实习报告

【实习题目】

java软件开发—豆豆网开发

【实习目的】

进一步了解java开发的相关知识,掌握java开发的基本技术,丰富java开发的实战经验。学习SQL的基础知识及正确的运用方法,和有用的相关技术,提高自己的工作效率。通过实习,巩固大学所学专业的基本知识,提高分析、判断和处理实际问题的能力,锻炼自己的实际动手能力,增强自己的团队协作意识,了解软件开发的思考角度和主要流程。为毕业之后能够更快地进入工作状态并且能够更好的工作,打好一定的基础。

【实习时间】

202_年7月10号—202_年7月16号

【实习地点】

北京加拿大达内科技有限公司

【实习计划】

7月10日:简单地了解公司的基本情况,进一步学习了java的基本知识。7月11日:学习java相关的编程环境和运行环境的材料,准备好有关的程序和工具。

7月12日:学习系统运行环境及环境变量设置,并调试。

7月13日:学习简单的java编程,做一个简单的登录系统,7月14日:深入地学习java的编程技巧和编程思想。

7月15日:对登录界面进行美化,并着手后台的编码工作。进行后台和各模块功能编码实现的学习和尝试。并练习简单、常用的测试的方法。了解其重要性。

7月16日:回顾自己学习过程,总结自己的所学和不足,完成实习报告。

【实习单位简介】

北京加拿大达内科技有限公司长期致力于培养IT精英,近年来成功的培养了无数的人才,公司师资都是工作相当有经验的讲师主讲。

达内IT培训集团是中国高端IT培训行业领导品牌,致力于培养Java、C++、C#/.Net等方面的中高端软件人才。由美国国际数据集团IDGVC Partners和集富亚洲JAFCO ASIA投资,是国内首家获得国际风险投资的IT培训机构,202_-202_连续3年入选德勤“高科技高成长中国50强、亚太地区500强”。达内IT培训集团是Java之父Sun公司在中国境内最大的Java培训合作伙伴、中关村科技园区管委会指定的“软件人才培养示范基地”,是中国“先就业后付款”IT培训模式的创始者。

经过7年运营,达内IT培训集团在大学生IT就业培训领域积累了丰富的专业经验与就业资源。以中关村科技园区为依托,达内在中国软件业发达城市——北京、上海、广州、深圳、大连、南京、武汉、杭州、西安、苏州、成都、太原等20多个城市,建立了近30家培训中心,拥有2万多平米的培训场地,在校生规模达5000人。已累计为IBM、微软、摩托罗拉、华为、中软、用友、Yahoo、阿里巴巴、TOM、新浪、搜狐、百度、联想、神州数码、大唐电信、亚信等知名IT企业培养输送5万多名中高级软件人才,跨越电信、金融、电子政务(商务)、电力、通讯、搜索、欧美外包及对日外包等十数个行业。

目前,达内集团拥有500多名员工,年产值接近2亿元,运营规模已远远超出其它同类机构。

【实习内容】

本次毕业实习我主要是做一个登录系统,从中学习一下Java开发和SQL的技术运用,因此选择了石家庄志诚软件公司。Java和SQLServer作为开发工具都有它们各自的特点,下面是我学习Java的一些内容。

1、Java语言是简单的Java语言的语法与C语言和C++语言很接近,使得大多数程序员很容易学习和使用Java。另一方面,Java丢弃了C++ 中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换。特别地,Java语言不使用指针,并提供了自动的废料收集,使得程序员不必为内存管理而担忧。

2、Java语言是一个面向对象的Java语言提供类、接口和继承等原语,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为implements)。Java语言全面支持动态绑定,而C++ 语言只对虚函数使用动态

绑定。总之,Java语言是一个纯的面向对象程序设计语言。

3、Java语言是分布式的Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java.net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。

4、Java语言是健壮的Java的强类型机制、异常处理、废料的自动收集等是Java程序健壮性的重要保证。对指针的丢弃是Java的明智选择。Java的安全检查机制使得Java更具健壮性。

5、Java语言是安全的Java通常被用在网络环境中,为此,Java提供了一个安全机制以防恶意代码的攻击。除了Java语言具有的许多安全特性以外,Java对通过网络下载的类具有一个安全防范机制(类ClassLoader),如分配不同的名字空间以防替代本地的同名类、字节代码检查,并提供安全管理机制(类SecurityManager)让Java应用设置安全哨兵。

6、Java语言是体系结构中立的Java程序(后缀为java的文件)在Java平台上被编译为体系结构中立的字节码格式(后缀为class的文件), 然后可以在实现这个Java平台的任何系统中运行。这种途径适合于异构的网络环境和软件的分发。

7、Java语言是可移植的这种可移植性来源于体系结构中立性,另外,Java还严格规定了各个基本数据类型的长度。Java系统本身也具有很强的可移植性,Java编译器是用Java实现的,Java的运行环境是用ANSI C实现的。

8、Java是高性能的与那些解释型的高级脚本语言相比,Java的确是高性能的。事实上,Java的运行速度随着JIT(Just-In-Time)编译器技术的发展越来越接近于C++。

9、Java语言是多线程的在Java语言中,线程是一种特殊的对象,它必须由Thread类或其子(孙)

类来创建。通常有两种方法来创建线程:其一,使用型构为Thread(Runnable)的构造子将一个实现了Runnable接口的对象包装成一个线程,其二,从Thread类派生出子类并重写run方法,使用该子类创建的对象即为线程。值得注意的是Thread类已经实现了Runnable接口,因此,任何一个线程均有它的run方法,而run方法中包含了线程所要运行的代码。线程的活动由一组方法来控制。Java语言支持多个线程的同时执行,并提供多线程之间的同步机制(关键字为synchronized)。

10、Java语言是动态的Java语言的设计目标之一是适应于动态变化的环境。Java程序需要的类能够动态地被载入到运行环境,也可以通过网络来载入所需要的类。这也有利于软件的升级。另外,Java中的类有一个运行时刻的表示,能进行运行时刻的类型检查。

SQL Server

在该系统中,与Web服务器相连的数据库采用的是大型关系数据库管理系统 ——SQL Server 202_。它是基于客户机/浏览机模式的数据库管理系统;它支持ODBC、ADO等技术的应用,可无缝的与Windows 202_ Server 和 IIS 集成,提供高效安全的数据访问服务;有利于整个系统管理规范化,使数据的完整性、安全性得到保证。

数据库设计实际上主要是所要处理的数据的表示方法和存储结构的设计。在采用数据库技术之前,这些工作分散在应用程序中进行;在采用数据库技术之后,这些工作可以通过数据库设计集中起来系统地进行。

进行数据库设计的首要任务是考虑信息需求,也就是数据库要存入什么样的数据。创建数据库并不是仅仅为了存储数据,更主要的目的是从中提取有用的信息。除了考虑数据存储什么数据外,还应考虑存取方式,也就是处理需求。即要根据用户提出的存取要求来设计数据模式和应用程序。

【实训的收获与体会】

初次涉及Java领域,感觉到Java入门是好像没有C,C++入门快,工具也没有什么Turbo C,Visual C++好用,什么JAVA_HOME,CLASSPATH,虚拟机等概念都是初次基础,旁边的人都很少用Java的。感觉Java就是做Applet的。让我不

可思议的是JAVA 2,JDK,J2SE,J2EE,J2ME等新名词在自己的脑海里蔓延。搭起Java开发环境后,记得刚开始还是用UltraEdit编辑并编译的慢慢的改用JCreator了,要开始干项目了,以前从书上看到的东西,在项目中有了很好的机会去温习,开始主要是用Swing,开发桌面系统,放置一个按钮怎么也放不好,后来才知道有一个布局管理器。后来开始涉及到数据库访问,JDBC。随后Java规范了。最开始下载的规范是JDBC Specification,很多概念一目了然,尤其是DATABASE的事务性控制,自己对于她的理解慢慢的有了较为深入的了解。对于开发C/S结构,比如,Swing+JDBC,开发数据库应用系统,让我学会开发两层结构的应用系统。

开发豆豆网时,基于Linux+JSP+JavaBean+Oracl的系统。不同于Swing+JDBC的开发模式,系统之间多了一层;同时,很多开发技术和面向左面系统不一样,比如分页技术。

完成项目后,自己对于Java的很多方面都比较了解了。开始思考一个问题,J2EE是什么东西?。我们学习Java大概有3个方向,第一,桌面系统,包括C/S结构;第二,J2ME,面向无限领域,很有潜力的家伙,看看中国的手机用户就知道了。第三,面向企业应用、计算的平台,J2EE。

通过实习,我自身发生了重大的转变,我相信我会在JAVA开发这条路上走的更长更远。

实习虽然结束了但是给我的感触很大。在信息时代,学习是不断地汲取新信息,获得事业进步的动力。作为一名即将毕业的大学生更应该把学习作为保持工作积极性的重要途径。

实习,是开端也是结束。展现在自己面前的是一片任自己驰骋的沃土,也分明感受到了沉甸甸的责任。在今后的工作和生活中,我将继续学习,深入实践,不断提升自我。

实习的同时也让我了解到了自己的不足,我会继续努力,完善自我。对于学校的精心安排和指导老师的用心辅导非常感谢.

第五篇:java学习报告

经过一个学期的学习,Java的课程已经结束了。可是我知道,学习java的路上,我们才刚刚起步。学Java之前我听许多人说Java很难,学了之后我感觉Java确实不容易,想学好它并非易事。

学习java天赋是很重要,但不是绝对的至少我是这么认为的!我想说的是我认为态度决定一切,Java的J2SE是Java的核心基础,学好SE部分对Java后期的深入学习非常重要。在SE部分,有许多的知识要点:类的概念、类的继承、多态、接口、面向对象等等。对于这一阶段的学习,除了课堂上的听讲,最最重要的是代码的实践,通过编写代码来理解上述所说的知识点的,将抽象的东西变成可以被你理解,应用的工具,熟能生巧嘛。

其次,学习的方法也很重要!好的方法会事半功倍哦!例如在编写代码的过程中可能会有这样那样的问题,遇到问题请教别人是一种不错的方法,但是,我认为最好不要马上请教身边的高手。自己先试着想办法解决,分析问题,对症下药,让自己有解决问题的成就感!但也不要在某个问题上发费太多的时间和精力,那样会使你产生挫败感,丧失学习的兴趣。在适当的时候请教高手,你会受益良多!

再次,对于资源的使用,也是提高学习效率的方式。SUN公司提供了专门的API文档,供开发者学习JAVA,遇到没见过的类、接口或者某个方法,就可以通过查询API文档获得帮助!不要忽视API文档,它是你学习JAVA很重要的帮手!网络也是另一种宝贵的资源,你可以下载一些JAVA的视频教程来复习和巩固知识、上网查询你解决不了的问题、到相关的论坛转转,发表你未解决的问题,听听高手的想法!

其实在刚接触Java时,自己确实有点晕,但经过一段时间学习,逐渐走出了迷雾。刚开始学习循环时,我觉得那一块很不熟悉,做题时,思路半天才理出来。经过一段时间的练习,我渐渐的走出了第一个迷雾。但是到了第六章,我彻底晕了,看书看得也一知半解晕晕乎乎的。类与对象是在学了第七、八章后弄清的。到了最后一章,学到字符串时,传递参数真让我晕啊,然后我又是练习,最后略微弄明白了点。我总结了我学Java的特点:先是不懂,后明白,再次不懂,又明白,又一次晕,最后弄清。经过三起三落,经过几个迷雾之后,我对Java也有了更为深入的了解,就学会了Java。

我觉得把Java学会的关键一点就是坚持练习。学习Java时每天必须保证一定量的练习,我们老师也说学习编程语言没有捷径可走。真的,只有每天反复操作了,经常写代码了,我们在遇到问题时才有一定的思路。欲速则不达,学习编程语言需要一个比较漫长的阶段,不能一步登天,这需要一个过程,在这个过程中慢慢积累经验,扎实基础。不要以为写出了一个简单的小程序,就认为自己已经学的很好了,这只不过是在你学习编程过程中一个小小的实践。不要满足于现状,要不断完善自己的知识体系,善于总结实践经验。要端正自己的学习态度,是主动去学,而不是被动!提高自学能力。学习编程的秘诀是:编程、编程、再编程。不仅要多实践,而且要快实践。

我们在看书的时候,不要等到完全理解了才动手敲代码,而是应该在看书的同时敲代码,程序运行的各种情况可以让更快更牢固的掌握知识点。程序代码是软件开发最重要的成果之一,其中渗透了程序员的思想与灵魂。当你学习一个类以后,你就可以自己写个简单的例子程序来运行一下,看看有什么结果,然后再多调用几个类的方法,看看运行结果,这样非常直观的把类给学会了,而且记忆非常深刻。然后不应该满足把代码调通,你应该想想看如果我不这样写,换个方式,再试试行不行。记得哪个高人说过学习编程就是个破坏的过程,把书上的例子,自己学习Documentation编写的例子在运行通过以后,不断的尝试着用不同的方法实现,不断的尝试破坏代码的结构,看看它会有什么结果。通过这样的方式,你会很彻底的很精通的掌握Java。举个例子,我们都编过Hello World,一开始很多同学不是很理解为什么main方法一定要这样来定义public static void main(String[] args),能不能不这样写?我刚也有这样的疑问。想知道答案吗?很简单,你把main改个名字运行一下,看看报什么错误,然后根据出错信息进行分析;把main的public取掉,在试试看,报什么错误;static去掉还能不能运行;不知道main方法是否一定要传一个String[]数组的,把String[]改掉,改成int[],或者String试试看;不知道是否必须写args参数名称的,也可以把args改成别的名字,看看运行结果如何。我当初学习Java的时候就是这样做的,把Hello World程序反复改了七八次,不断运行,分析运行结果,最后就彻底明白为什么main方法是这样定义的了。这样虽然比较费时间,不过一个例子程序这样反复破坏几次之后。我就对这个相关的知识彻底学通了。有时候甚至故意写一些错误的代码来运行,看看能否得到预期的运行错误。这样对于编程的掌握是及其深刻的。

当然学习环境对学习效率也很重要。在学习的这段日子,我感触很多,我们班的学习氛围还不错,有时候大家一起讨论、学习、共同进步,有问题也可以询问助教,比自己一个人闭门造车来的更有效果!讲师在授课之余,还传授很多其他方面的知识,大大扩展了我们的见识,增加了学习的兴趣!

学习是一个日积月累的过程,只有从菜鸟做起,一步步的来,才能在学习JAVA的道路上留下你深深的脚印,在学习中享受!人之所以能,是相信能!同时在学习过程中应该注意的几点有:

1)首先是java环境的配置,对于已经习惯双击“setup”进行安装的我们来说,安装完毕后就可以使用软件了,但是java不是这样,安装完java jdk后需要对你所在的操作系统进行环境的配置,设置一些最最基本的环境运行变量。测试环境变量的配置是否正确。

2)添加你应用所需的功能扩展jar包。

3)配置好应用需要的dll动态链接库文件。

4)在项目建立初期进行输出打包测试,这样做的好处在于:应用软件的最终运行状态是软件需要发布,并可以在其他用户的计算机正确的运行,项目初期就进行输出、安装测试可以提早发现软件的非编码错误,另一点是将软件初期的GUI操作发布给用户,可以让用户提出一些宝贵的软件功能、界面上的整改意见,这样可以使软件更贴合用户的需求。

5)多多阅读相关知识点的英文资料,当然好的中文资料也是不可少的。

6)多多访问一些技术论坛,国内还是有一些不错的纯技术论坛的,在哪里你可以看到java的方方面面,及时更新自己的知识,“冲刷”自己的头脑是非常必要的,国外的技术论坛有时候需要翻墙才能访问,需要提前准备好翻墙的工具。不过我发现台湾的java论坛比国内的好,从版面的设置到人的参与性都比国内的要好,学习讨论的氛围也很浓厚。

7)多多写写问题总结,这样可以使自己加深对问题解决方法的理解,说不定哪天你会有更好的方法来解决问题。

8)多多学习别人的源代码,要知道社会发展到今天都是后人站在前人肩膀上作出来的成就,必须要清楚的知道现在的工作都是靠一群人开发才能完成的,学习别人的代码可以少走弯路,使自己更快的成长。

9)看一些技术的原理性东西,当然这个取决于你自己想从深层次的方面去应用技术还是泛泛的应用就行,每次都想快速的掌握他,虽然短时间里看起来很“繁荣”,但是当需要深入应用时就会发现心有余力而力不足,所以在适当的时间看一些技术原理性的东西是非常有必要的。

10)最后是一个个人习惯,在今天你打开计算机前或打开IDE前,先想好今天要完成哪些工作,昨天的问题解决了吗?如果没有是否有了新的思路?软件代码的备份也很重要。

学习java就是件耗时间的事儿,如果不肯投入自己的时间,根本不可能在短时间就把java给学好了。有时候只是很简单的想法,但是要付出的很多很多才能把我的想法给实现了,所以我就决定要好好的把这件事情给做好了。我相信我是能做好的。前提是我必须要放下其他的东西,不能和同学一起出去玩儿,不能看电影,不能在网上浪费时间,不能做的事情,实在是太多了,以前我认为自己是个意志不坚定的人,现在,就有一个机会来证明我自己不是那样的人,我能长久的坚持去做一件事情,而且不惧所遇到的困难。学习是一个很反复的过程,不断的出现错误,不断的调试,不断的迷茫,不断的清晰,这些都是必须要要经历的

JAVA报告
TOP