System.out.println("第"+(i+1)+"条数据为:
"+names.get(i));
}
System.out.println("第3条数据为:
"+names.get
(2));
System.out.println("集合大小为:
"+names.size());
}
}
运行上述代码,观察并记录运行结果。
2.设计学生管理相应类,比较与上一段代码的重要区别。
实验二Multithreading多线程
一、实验目的:
1.理解多线程的原理和机制
2.掌握Java内置多线程编程接口和相关的类
_dgd﷽﷽﷽﷽﷽﷽﷽﷽﷽opasssumbyref-________________________________________________________________________________________________
二、实验内容:
1.Writeaprogramthatlaunches1000threads.Eachthreadadds1toavariablesumthatinitiallyis0.Youneedtopasssumbyreferencetoeachthread.Inordertopassitbyreference,defineanIntegerwrapperobjecttoholdsum.Runtheprogramwithandwithoutsynchronizationtoseeitseffect.
2..分析代码并解释
三、实验要求:
1、认真执行每一个步骤的,并作好记录。
2、实验报告中给出配置的详细步骤和重要的截图。
四、实验学时:
2学时
五、实验步骤:
1.Writeaprogramthatlaunches1000threads.Eachthreadadds1toavariablesumthatinitiallyis0.Youneedtopasssumbyref-erencetoeachthread.Inordertopassitbyreference,defineanIntegerwrapperobjecttoholdsum.Runtheprogramwithandwithoutsynchroniza-tiontoseeitseffect.
2.dgd﷽﷽﷽﷽﷽﷽﷽﷽﷽opasssumbyref-_________________________________________________________________________________________________运行下列代码,记录结果,并分析死锁的原因
//Exercise29_11.java:
Demonstratedeadlock
publicclassExercise29_11{
privateObjectobject1=newObject();
privateObjectobject2=newObject();
publicstaticvoidmain(String[]args){
Exercise29_11test=newExercise29_11();
}
publicExercise29_11(){
newThread1().start();
newThread2().start();
}
classThread1extendsThread{
publicvoidrun(){
synchronized(object1){
//dosomething
try{
Thread.sleep(100);
}
catch(InterruptedExceptionex){
}
System.out.println("Attempttoacquirealockonobject2");
synchronized(object2){
//dosomething
}
}
}
}
classThread2extendsThread{
publicvoidrun(){
synchronized(object2){
//dosomething
try{
Thread.sleep(100);
}
catch(InterruptedExceptionex){
}
System.out.println("Attempttoacquirealockonobject1");
synchronized(object1){
//dosomething
}
}
}
}
}
实验三Networking网络编程
一、实验目的:
1.理解基于流与基于数据包的网络编程方式
2.掌握应用socket建立CS应用程序的相关类的应用
_dgd﷽﷽﷽﷽﷽﷽﷽﷽﷽opasssumbyref-________________________________________________________________________________________________
二、实验内容:
Writeaprogramthatenablestwouserstochat.Implementoneuseras
theserver(Figure30.24(a))andtheotherastheclient(Figure30.24(b)).The
serverhastwotextareas:
oneforenteringtextandtheother(noneditable)for
displayingtextreceivedfromtheclient.WhentheuserpressestheEnterkey,
thecurrentlineissenttotheclient.Theclienthastwotextareas:
oneforreceiving
textfromtheserver,andtheotherforenteringtext.Whentheuser
pressestheEnterkey,thecurrentlineissenttotheserver.Nametheclient
Exercise30_12ClientandtheserverExercise30_12Server.
三、实验要求:
1、认真执行每一个步骤的,并作好记录。
2、实验报告中给出配置的详细步骤和重要的截图。
四、实验学时:
2学时
五、实验步骤:
给定如下客户端的代码,请完成服务器端代码的编写。
//Exercise30_12Client.java
importjava.io.*;
import.*;
importjava.util.*;
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
importjavax.swing.border.*;
publicclassExercise30_12ClientextendsJFrame{
//Textareaforenteringservertext
privateJTextAreajtaServer=newJTextArea();
//Textareafordisplayingclienttext
privateJTextAreajtaClient=newJTextArea();
privatePrintWriteroutput;
publicstaticvoidmain(String[]args){
newExercise30_12Client();
}
publicExercise30_12Client(){
//Placetextareaontheframe
setLayout(newGridLayout(2,1));
JScrollPanejScrollPane1=newJScrollPane(jtaServer);
JScrollPanejScrollPane2=newJScrollPane(jtaClient);
jScrollPane1.setBorder(newTitledBorder("Server"));
jScrollPane2.setBorder(newTitledBorder("Client"));
add(jScrollPane2,BorderLayout.CENTER);
add(jScrollPane1,BorderLayout.CENTER);
jtaServer.setWrapStyleWord(true);
jtaServer.setLineWrap(true);
jtaClient.setWrapStyleWord(true);
jtaClient.setLineWrap(true);
//jtaClient.setEditable(false);
setTitle("Exercise30_12Client");
setSize(500,300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);//Centertheframe
setVisible(true);//Itisnecessarytoshowtheframehere!
try{
//Createaserversocket
SocketconnectToServer=newSocket("localhost",8000);
output=new
PrintWriter(connectToServer.getOutputStream());
newSendThread(connectToServer).start();
newReceiveThread(connectToServer).start();
}
catch(IOExceptionex){
System.err.println(ex);
}
jtaServer.addKeyListener(newKeyAdapter(){
publicvoidkeyPressed(KeyEvente){
if(e.getKeyCode()==e.VK_ENTER){
output.print(jtaServer.getText());
}
}
});
}
classSendThreadextendsThread{
SendThread(Socketsocket){
//Keepsendingtotheclient
}
}
classReceiveThreadextendsThread{
ReceiveThread(Socketsocket){
//Keepreceivingfromtheclient
}
}
}
实验四MVCinGUI(GUI中的MVC模式)
一、实验目的:
1.掌握MVC设计模式的概念。
2.掌握应用MVC模式开发图形用户界面应用程序的方法。
_dgd﷽﷽﷽﷽﷽﷽﷽﷽﷽opasssumbyref-________________________________________________________________________________________________
二、实验内容:
(Creatingastudenttable)Createatableforstudentrecords.Eachrecordconsists
ofname,birthday,classstatus,in-state,andaphoto,asshowninFigure1.ThenameisoftheStringtype;birthdayisoftheDatetype;classstatusisoneofthefollowingfivevalues:
Freshman,Sophomore,Junior,Senior,orGraduate;in-stateisabooleanvalueindicatingwhetherthestudentisaresidentofthestate;andphotoisanimageicon.Usethedefaulteditorsforname,birthday,andin-state.Supplyacomboboxascustomeditorforclassstatus..
代码d_﷽﷽﷽﷽﷽﷽﷽﷽﷽报﷽一个重要信报___________________________________________________________________________________________________________Figure1.
三、实验要求:
1、认真执行每一个步骤的,并作好记录。
2、实验报告中给出配置的详细步骤和重要的截图。
四、实验学时:
2学时
五、实验步骤:
(请给出详细代码,并加入代码注释,注释是成绩高低和判定是否抄袭的一个重要依据。
)
实验五JDBCProgramming(JDBC数据库编程)
一、实验目的:
掌握应用JDBC技术访问数据库的方法。
_dgd﷽﷽﷽﷽﷽﷽﷽﷽﷽opasssumbyref-________________________________________________________________________________________________
二、实验内容:
(AccessingandupdatingaStafftable)WriteaJavaapplicationthatviews,inserts,
andupdatesstaffinformationstoredinadatabase,asshowninFigure1.
TheViewbuttondisplaysarecordwithaspecifiedID.TheStafftableiscreated
asfollows:
createtableStaff(
idchar(9)notnull,
lastNamevarchar(15),
firstNamevarchar(15),
michar
(1),
addressvarchar(20),
cityvarchar(20),
statechar
(2),
telephonechar(10),
emailvarchar(40),
primarykey(id)
);
Figure1.
三、实验要求:
1、认真执行每一个步骤的,并作好记录。
2、实验报告中给出配置的详细步骤和重要的截图。
四、实验学时:
2学时
五、实验步骤:
(请给出详细代码,并加入代码注释,注释是成绩高低和判定是否抄袭的一个重要依据。
)