【GUI】:图形用户界面(Graphical User Interface) 【MIB】:管理信息库(Management Information Base) 【JVM】: Java虚拟机(Java Virtual Machine) 【JRE】:Java运行时环境(Java Runtime Environment) 【JDK】:Java开发工具(Java Developer's Kit) 【URL】:统一资源定位器
【J2EE】:Java2平台企业版(Java 2 Platform,Enterprise Edition) 【J2ME】:Java2 平台微缩版(Java 2 Platform, Micro Edition) 【J2SE】:Java2 平台标准版(Java 2 Platform ,Standard Edition) 【AWT】:抽象工具箱(Abstract Windowing Toolkit)
【SNMP】:简单网络管理协议(Simple Network Management Protocol) 【B/S模式】:浏览器/服务器模式(Browser/Server) 【C/s模式】:客户机/服务器模式
【API】:应用编程接口,一种规范(Application Program Interface); 【HTTP】:超文本传输协议
【HTML】:超文本标记语言(Hypertext Markup Language) 【IDL】:接口定义语言
【被动测量】:主要是通过对网络流量及状态参数的监视和收集来完成测量任务
【主动测量】:通过向网络中注入测试流量数据,并从其响应结果数据中测量网络状态参数
【Java容器】:Java中用来存放其他控件的一种组件。
【多态】:一个程序中同名的不同方法共存的情况,接口的不同实现方式 【重载】:在同一类中定义了多个同名而不同内容的成员方法时,称这些方法是重载的方法
【覆盖】:子类中定义与父类中已定义的相同名而内容不同的方法。这种多态被称为覆盖
【继承】:特殊类的对象拥有其一般类的全部或部分属性与方法,称作特殊类对一般类的继承。Java中用extends指明继承关系
【消息】:就是向对象发出服务请求,是对数据成员和成员方法的引用 【消息的作用】:对象之间的联系是通过消息传递来实现的
【公有消息】:当有一批消息同属于一个对象时,由外界对象直接发送给这个 对象的消息称为公有消息
【私有消息】:对象自己发送给本身的消息称为私有消息
【JDBC】:java数据库连接(Java Data Base Connectivity) 【DNS】: 域名服务器(Domain Name Server) 【JFC】:java基础类别(Java Foundation Classes (JFC)) 【DDL】数据定义语言(Data Definition Language)
【ATM】异步传输模式(Asynchronous Transfer Mode) 【DML】数据操纵语言 (Data Manipulation Language) 【DQL】数据查询语言 (Data Query Language) 【DCL】数据控制语言 (Data Control Language)
访问控制符(私有访问控制符private、缺省访问控制符、公共访问控制符public、保护访问控制符protected)
数据成员和成员方法的访问控制符有public、private、protected和缺省访问控制符 2,填空
1、URL通信使用(http)协议,Socket通信使用(TCP)协议。UDP通信使用(UDP)协议。
2、线程中,Sleep()方法的功能是(使线程进入睡眠状态),Stop()方法的功能是(使线程进入死亡状态),Start()方法的功能是(使线程进入就绪状态)。
3、常用组件中,JLable的功能是(可以显示一行静态文本,起信息说明的作用),JBottom的功能是(用户可以指定按下按钮时所执行的操作),
JCheckBox的功能是(用户点击某复选框就会改变该复选框原有的状态)。 4、Java中有关网络的类都包含在(Java.net)包中。
5、数据成员和成员方法的访问控制符有(public)、(protected) 、(friendly)、(private)4种。
6、网络管理的五大任务:(失效管理)、(安全管理)、(性能管理)、(计费管理)、( 配置管理).
7、SNMP的3种基本特征:(get)、(set)、(Trap)。
8、常用组件中,JList的功能是(将所用选项放入列表框中),JTextField的功能是(定义一个单行条形文本区),JComboBox的功能是(创建下拉列表框)。
9、Java整数类型中,字节型(byte),短整型(short),整型(int),长整型(long),占用的字节数分别为:(1)、(2)、(4)、(8)。 3,问答
(1) 获取网络数据方法
答: 获取网络数据的4种方法 网卡采集属于基于监听方式 1. 基于监听方式
2. 利用SNMP查询网络设备(如路由器、 交换机)的MIB 3. 安插网络探针(PROBE)
4. 利用IP Flow技术实现基于流级的流量采集 (2) Public 与static 修饰符特点
Public表示类修饰符时,表示这个类是公共类,可以供所在包以及其他包中的类使
Static修饰符所修饰的方法称为静态方法,属于整个类的类方法。 (3) 什么是类与对象,类与对象的关系
把客观世界的事物映射到面向对象程序设计中,把问题域中的事物抽象成对象,把事物静态特征(属性)抽象成一组数据,把事物的动态特征(行为)抽象成一组方法.对象具有几个特征: ①对象标识②属性③方法。
类是对对象的抽象和归纳。将当前目标有关的本质特征抽象出来,忽略非本质特征,找出共同性质的事物归结为一类。类需要指明三个方面内容:①类标识②属性说明③方法说明。
类给出了属于该类的全部对象的抽象定义,而对象则是符合这种定义的一个实体。类与对象的关系如同模具与模具铸造的铸件关系。也就是说可以把类
与对象关系看成是抽象与具体的关系。定义了类以后才可以在类的基础上创建对象。
(4) 常用组件功能JButton,Jlabel等组件功能。
① JLabel组件称为标签,显示一行静态文本,起到信息说明作用,不
接受用户输入,无事件响应。
② JButton,JToggleButton通常称为按钮,具有按下弹起两种状态,用
户可以指定按下与按钮时要执行的操作。JToggleButton按钮点击后不会弹起。
③ JCheckBox组件称为复选框,提供“选中”和“未选中”两种状态。 ④ JRadioButton组件称为选项按钮,与JCheckBox组件功能相同,与
ButtonGroup类组合运用可以实现单选框按钮功能。
⑤ JComboBox组件称为下拉表框,将所有选项折叠收藏在一起,只显示
最前面的或被用户选中的一个。
⑥ JList组件称为列表组件,将所有选项放入列表框中。
⑦ JTextField组件称为文本框。定义了一个单行条形文本区,可以输
出任何基于文本的信息,也可以接受用户输入。
⑧ JTextArea组件称为文本域。与JTextField区别是:文本框只能输
入/输出一行文本,而文本域可以输入/输出多行文本。
(5) 线程的各种状态
一个完整的线程有新生,就绪,运行,阻塞和死亡五个状态。
① 新生状态:用new关键字创建线程对象,调用start()进入就绪状
态。
② 就绪状态:已具备运行条件,尚未分配到CPU资源,进入线程队列排
队。一旦获得CPU资源,进入运行状态,调用自己的run方法。 ③ 运行状态:脱离其主线程,独立开始生命周期,执行自己run方法中
的代码。遇到终止,等待,睡眠,挂起,退让,I/O要求,时间片用完等情况时,终止run方法的执行。
④ 阻塞状态:正在执行的线程在比如执行suspend,join,sleep方法,
等待I/O设备等情况时,让出CPU并暂时中止执行,进入阻塞状态。当阻塞原因被消除时,线程才转入就绪状态,重新进到线程队列等待CPU资源。
⑤ 死亡状态:正常运行线程完成全部工作或被提前强制地终止,线程进
入死亡状态,永远不再执行。
(6) 常用的java包
java.lang:Java语言的核心类库,包含了运行Java程序必不可少的系统类。加载时缺省的。
java.io:包中包含了实现Java程序与操作系统、用户界面以及其他Java程序之间进行数据交换所使用的类
java.awt:是Java语言用来构建图形用户界面(GUl)的类库
java.awt.event:对Event类的扩充,能够使图形界面元素拥有处理事件的能力。
java.net:是Java语言用来实现网络功能的类库
java.applet:是用来实现运行于Internet浏览器中的Java Applet的工具类库
java.rmi包,java.rmi.registry包,java.rmi.server包:用来实现远程方法调用功能。
Java.util包:包含了Java语言中一些低级的实用工具,比如Date。 java.sql:是实现JDBC的类库 4,阅读
1),学生管理系统
2),基于SNMP-MIB网络数据获取。 简单网络管理协议
SnmpGet
import com.adventnet.snmp.beans.*;
public class SnmpGet {
public static void main(String args[]) {
// 初始化一个SNMP target 实体或者说是一个对象 SnmpTarget target = new SnmpTarget();
// 设置运行SNMP代理的主机的IP地址 target.setTargetHost(\"x2.y2.y1.x1\");
// 设置对象标识OID(在原来的OID加上.0 这是语法的规定) target.setObjectID(\".1.3.6.1.2.1.4.3.0\");
// 执行一个GET请求
String result = target.snmpGet(); if (result == null) {
//如果result是空的,说明请求失败,打印错误信息 System.err.println(\"Request failed or timed out. \\n\"+ target.getErrorString());
}
//如果成功的话,打印接收到对象的值 else { // print the values
System.out.println(\"Response received. Value:\" + result); }
System.exit(0); } }
SnmpGetLargeTable
import javax.swing. *;
import java.awt.event. *;
import com.adventnet.snmp.ui. *; public class SnmpGetLargeTable {
public static void main (String args[]) { //构造一个JFrame 框架实体
JFrame frame = new JFrame (); //在框架实体商添加一个窗口侦听器
frame.addWindowListener (new WindowAdapter () { public void windowClosing (WindowEvent evt) { System.exit (0); } } );
//设置窗口的大小
frame.setSize (615, 400); //设置标题栏的标题
frame.setTitle (\" Tutorial Example for retreiving SNMP Table using SnmpTablePanel\");
//定义一个SnmpTablePanel 实体
SnmpTablePanel tablepanel = new SnmpTablePanel (); //设置有关参数
tablepanel.setTargetHost(\"localhost\"); tablepanel.setCommunity(\"public\");
//加载MIB模型和设置表的标识OID,失败的话打印错误信息 try {
tablepanel.loadMibs(\"RFC1213-MIB\"); tablepanel.setTableOID (\"ifTable\"); } catch (Exception ex) {
System.err.println(\"Error: \"+ex); }
//把tablepanel模板加入到框架中
frame. getContentPane().add(tablepanel); //设置框架为可视的
frame.setVisible(true); } }
SnmpGetTable_one
import com.adventnet.snmp.beans.*;
public class SnmpGetTable_one {
public static void main(String args[]) {
//如果不输入两个参数的话,这个线程就会退出,不在执行,并作出提示 if (args.length < 2) {
System.out.println (\"Usage : java SnmpGetTable_one hostname tableoid \"); System.exit (0); }
//分别把参数1,和参数2赋给remoteHost,tableoid两个变量 String remoteHost = args[0]; String tableoid = args[1]; //创建一个SnmpTable实例
SnmpTable table = new SnmpTable(); //设置ip地址
table.setTargetHost(remoteHost);
//加载MIB信息库的模型和设置表的OID 加载失败的话则抛出异常 try {
table.loadMibs(\"C:\\\\Snmp\\\\AdventNet\\\\SNMPAPI\\\\mibs\\\\RFC1213-MIB\");
table.setTableOID(tableoid); }catch (Exception ex) { }
System.out.println(\"Getting table. Table items:\"); //定义一个字符缓冲区
StringBuffer sb = new StringBuffer();
try { Thread.sleep(10000); } // 线程休眠10秒, catch (InterruptedException ex) {} //把表要得列的名字放入sb字符缓冲区中
for (int i=0;i
} }
//打印出表的列的名字
System.out.println(sb.toString()); //定义一个字符缓冲区
StringBuffer sb2 = new StringBuffer();
//按照从行到列把表中的数据项放入到字符缓冲区中 for (int j=0;j
System.out.println(sb2.toString()); System.exit(0); }
} 3)JpcapTip
import java.io.*; import jpcap.*; import java.util.*; import java.text.*;
public class JpcapTip implements JpcapHandler { static int j=0;
static long p=0,q=0; IPPacket ip; String s,s1; Long s2;
static long time11,time12;
public void handlePacket(Packet packet){
if(packet instanceof IPPacket) {
System.out.println(\"ok\"); ip=(IPPacket)packet;
if(j<2000) { try {
RandomAccessFile rf = new RandomAccessFile(\"packet3.txt\\"rw\");
rf.seek(rf.length());
rf.writeBytes(ip.src_ip+\"\\"+ip.dst_ip+\"\\"+ip.protocol+\"\\"+
ip.length+\"\\"+ip.version+\"\\"+ip.ident+\"\\"+
ip.rsv_frag+\"\\"+ip.offset+\"\\"+ip.hop_limit+\"\\"+ ip.rsv_tos+\"\\r\\n\"); rf.close(); }
catch (Exception e) { e.printStackTrace(); } j++;
} else {
time12=System.currentTimeMillis();
System.out.println(\"\"+time12+\"-\"+time11+\"=\"+(time12-time11)+\"\\ncapture count:\"+j); System.exit(0); } } }
public static void main(String[] args) throws java.io.IOException { String[] devices = Jpcap.getDeviceList(); String deviceName = devices[0];
Jpcap jpcap = Jpcap.openDevice(deviceName, 1028, true, 100); //即将打开的设备名// //从设备上一次读取的最大字节数//
//说明是否将设备设为混杂模式的Boolean值// //超时值//
time11=System.currentTimeMillis(); while(true) {
jpcap.loopPacket(10, new JpcapTip()); } }
}
JDBC编程要点(连接JDBC的步骤)书354的程序一定要看
(1) 在程序的首部用import语句将java.sql包引入程序: import java.sql.*;
(2) 使用Class.forName( )方法加载相应数据库的JDBC驱动程序。若以加载jdbc-odbc桥为例,则相应的语句格式为:
Class.forName(\"sun.jdbc.odbc.JdbcOdbcDriver\");
(3) 定义JDBC的URL对象。例如:String conURL=\"jdbc:odbc:TestDB\"; 其中TestDB是我们设置的要创建的数据源。
(4) 连接数据库。Connection s=DriverManager.getConnection(conURL); (5) 使用SQL语句对数据库进行操作。
(6) 使用close( )方法解除Java与数据库的连接并关闭数据库。例如:s.close( ); 5,编程
(1) socket 通信
//Socke 服务器程序 import java.net.*; import java.io.*; public class c15_5{
public static final int port=8000; public static void main(String args[]) {
String str;
try{ //在端口port注册服务
ServerSocket server=new ServerSocket(port); //创建当前线程的监听对象
System.out.println(\"Started: \"+server);
Socket socket=server.accept(); //负责C/S通信的Socket对象
System.out.println(\"socket: \"+socket); //获得对应Socket的输入/输出流
InputStream fIn=socket.getInputStream(); OutputStream fOut=socket.getOutputStream(); //建立数据流
InputStreamReader isr=new InputStreamReader(fIn); BufferedReader in=new BufferedReader(isr); PrintStream out=new PrintStream(fOut); InputStreamReader userisr=new InputStreamReader(System.in);
BufferedReader userin=new BufferedReader(userisr); while(true){
System.out.println(\"等待客户端的消息...\"); str=in.readLine();//读客户端传送的字符串
System.out.println(\"客户端:\"+str); //显示字符串 if(str.equals(\"end\"))break; //如果是end,则退出 System.out.print(\"给客户端发送:\"); str=userin.readLine();
out.println(str); //向客户端发送消息 if(str.equals(\"end\"))break; } //while
socket.close(); server.close(); } //try
catch(Exception e){
System.out.println(\"异常:\"+e); } } }
//Socket客户端程序 import java.net.*; import java.io.*; public class c15_6{
public static void main(String[] args) {
String str; try{
InetAddress addr=InetAddress.getByName(\"127.0.0.1\");
// InetAddress addr=InetAddress.getByName(\"198.198.1.68\"); Socket socket=new Socket(addr,8000); System.out.println(\"socket=\"+socket); //获得对应socket的输入/输出流
InputStream fIn=socket.getInputStream(); OutputStream fOut=socket.getOutputStream(); //建立数据流
InputStreamReader isr=new InputStreamReader(fIn); BufferedReader in=new BufferedReader(isr); PrintStream out=new PrintStream(fOut);
InputStreamReader userisr=new InputStreamReader(System.in); BufferedReader userin=new BufferedReader(userisr); while(true){
System.out.print(\"发送字符串:\");
str=userin.readLine(); //读取用户输入的字符串 out.println(str); //将字符串传给服务器端
if(str.equals(\"end\"))break; //如果是\"end\就退出 System.out.println(\"等待服务器端消息...\"); str=in.readLine(); //获取服务器获得字符串 System.out.println(\"服务器端字符:\"+str); if(str.equals(\"end\"))break;
}
socket.close(); //关闭连接 }
catch(Exception e){
System.out.println(\"异常:\"+e); } } } (2) 编写对话框
import java.awt.*;
import java.awt.event.*; import javax.swing.*;
public class HelloTest extends JFrame {
JLabel lb1=new JLabel(\"请输入你的名字:\"); JButton bt=new JButton(\"关闭\"); JTextField tf1=new JTextField(5); JTextField tf2 =new JTextField(10); public void init(){ this.setLayout(new FlowLayout()); this.setSize(220,150); this.add(lb1); this.add(tf1); this.add(tf2); this.add(bt); this.setVisible(true); tf1.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ String str1; str1=tf1.getText(); tf2.setText(str1+\欢迎您!\\n\"); } }); bt.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ System.exit(0); }
}); }
public static void main(String[]args){ HelloTest a =new HelloTest(); a.init(); } }
(3)Fibonacci数列前50项 public class Fibonacci { static int i=50;
public static void main(String[] arg){ for(int j=0;j<=i;j++) }
System.out.println(\"Fibonacci 第\"+j+\"项=\"+fib(j));} static long fib(int n){ if(n==1||n==0){ return n;} }
else{ long sum=fib(n-1)+fib(n-2); return sum; }
因篇幅问题不能全部显示,请点此查看更多更全内容