1.
编写一个Java应用程序,利用RandomAccessFile类,把几个int型整数(1,2,3,4,5,6,7,8,9,10)写入到一个名字为tom.dat文件中,然后按相反顺序读出这些数据并显示在屏幕上。(注意,一个int型数据占4个字节)
2.
编写一个Java GUI应用程序,采用Java多线程技术,模拟自由落体和平抛运动:一个球自由落下,一个球水平抛出
3.
编写一个Java网络应用程序,该应用分服务器端程序和客户端程序两部分。服务器程序启动后,监听端口5678的请求;客户端程序启动后,向服务器端口5678发送请求。服务器不断接收客户机所写入的信息,并且服务器也会做出"Receive"为回应,告知客户机已接收到消息。要求:服务器程序采用多线程开发,允许多个客户端程序同时连接。客户机发送"End"字符串时,客户端程序退出。(服务端程序和客户端程序分别命名为Server.java和Client.java)
4.
采用Java 多线程技术,设计实现一个符合生产者和消费者问题的程序。对一个对象(枪膛)进行操作,其最大容量是12颗子弹。生产者线程是一个压入线程,它不断向枪膛中压入子弹;消费者线程是一个射出线程,它不断从枪膛中射出子弹。

解决方案 »

  1.   

    so easy! 不过这些东西刚学完Java基础的都应该能做出来
      

  2.   

    还好啊,java本来就是多线程的啊
      

  3.   

    package Test;import java.io.*;
    import java.util.Arrays;/**
     * 
     * 编写一个Java应用程序,利用RandomAccessFile类,把几个int型整数 (1,2,3,4,5,6,7,8,9,10)
     * 写入到一个名字为tom.dat文件中,然后按相反 顺序读出这些数据并显示在屏幕上。(注意,一个int型数据占4个字节)
     * 
     */
    public class RandomAccessFileDemo
    {
    public static void main(String[] args) throws IOException
    {
    RandomAccessFile raf = new RandomAccessFile(new File("tom.dat"), "rw");
    for (int i = 1; i <= 10; i++)
    {
    raf.writeInt(i);
    }
    raf.seek(0);
    int []b=new int [10];
    // while ((b = raf.readInt()) != -1)
    // {
    // System.out.print(b);
    // }不能这么写,因为在读到第11次的时候readInt()会抛出EOFEOFException
    for (int i = 9; i >=0; i--)
    {
    b [i]= raf.readInt();

    }
    System.out.print(Arrays.toString(b));
    raf.close();
    }
    }
      

  4.   

    public class ThreadCaseDemo01
    {
    /**
     * 
     * 
     * 4. 采用Java
     * 多线程技术,设计实现一个符合生产者和消费者问题的程序。对一个对象(枪膛)进行操作,其最大容量是12颗子弹。
     *  生产者线程是一个压入线程
     * 它不断向枪膛中压入子弹;消费者线程是一个射出线程,它不断从枪膛中射出子弹。
     */
    public static void main(String[] args)
    {
    Gun i = new Gun();
    Producter pro = new Producter(i);
    Consumer con = new Consumer(i);
    new Thread(pro).start();
    new Thread(con).start();
    }}
    //////////////////////////////////////////////
    public class Gun
    {
    private String name;
    private String content;
    private boolean flag = false; public synchronized void set(String name, String content)
    {
    if (flag)
    {
    try
    {
    super.wait();
    } catch (InterruptedException e)
    {
    e.printStackTrace();
    }
    }
    this.setName(name);
    this.setContent(content);
    flag = true;//保证生产者进入等待状态
    super.notify(); } public synchronized void get()
    {
    if (!flag)
    {
    try
    {
    super.wait();
    } catch (InterruptedException e)
    {
    e.printStackTrace();
    }
    }
    System.out.println(this.getName() + "-->" + this.getContent());
    flag = false;//保证消费者进入等待状态
    super.notify();
    } public String getName()
    {
    return name;
    } public void setName(String name)
    {
    this.name = name;
    } public String getContent()
    {
    return content;
    } public void setContent(String content)
    {
    this.content = content;
    }}
    //////////////////////////////////////
    public class Consumer implements Runnable
    {
    private Gun gun=null;
    public Consumer (Gun gun)
    {
    this.gun=gun;
    }
    public void run()
    {
    for(int i=0;i<12;i++)
    {
    this.gun.get();
    }

    }
    }
    ///////////////////////////////////////
    public class Producter implements Runnable
    {
    private Gun gun=null;
    public Producter(Gun gun)
    {
    this.gun=gun;
    } public void run()
    {
    boolean flag=false;
    for(int i=0;i<12;i++)
    {

    if(flag)
    {

    this.gun.set("楼主", "给枪上了一发子弹");
    flag=false;

    }
    else
    {
    this.gun.set("我","给了楼主一枪");
    flag=true;
    }

    }
    }
    }
      

  5.   

    大哥,你的java是有多好,真的有这么easy吗
      

  6.   

    package test;import java.io.FileNotFoundException;
    import java.io.IOException;
    import java.io.RandomAccessFile;public class TomDat
    {    public static void main(String[] args)
        {
            RandomAccessFile raf = null;
            try
            {
                raf = new RandomAccessFile("C:\\tom.dat", "rw");
            }
            catch (FileNotFoundException e)
            {
                e.printStackTrace();
            }
            int[] nums = {1,2,3,4,5,6,7,8,9,10};        try
            {
                for(int i : nums)
                {
                    raf.writeInt(i);
                }
            }
            catch (IOException e)
            {
                e.printStackTrace();
            }
            int[] b={};        try
            {
                raf.seek(4);
                b = new int[(int)raf.length()/4-1];
                for (int j = 0; j< b.length  ; j++)
                {
                    b[j] = raf.readInt();
                }
                raf.close();
            }
            catch (IOException e)
            {
                e.printStackTrace();
            }
            for (int k = 0; k < b.length; k++)
            {
                System.out.println(b[b.length-k-1]);
            }
        }}
      

  7.   

    raf.seek(4);是自己玩的,不小心贴了上去,把他去掉,下一行改成b = new int[(int)raf.length()/4];
      

  8.   

    简单到暴,, 这个不叫基础,好不好,纯属一些类的应用而已。
    有人说没有人不查资料做得出来, 除了第一个流很久没用了需要借助API查看方法,
    其余的我表示真的毫无压力。
      

  9.   

    这要是让现场在纸上写出来,肯定没法写,只能写出思路和需要用到什么。要是在机子上写的话,可以写出来的。第一题:这个是考对Java库的使用。第二题:图形方面可以使用AWT、swing、Java2D API以及Java库中的定时器。然后加上重力加速度的公式应该就算是做出来了。第三题:典型的Java net库中的东西。第四题:这个题目中都说了,是多线程的问题,注意一下数据同步的问题就行了。楼主真的不会这些题目吗?还是觉得题目中有什么陷阱之类的。我个人的面试经验就是:题目没法直接写出来的,就说说思路。不考虑题目中有什么陷阱,要是真有陷阱而没有看出来,也算是自己没有本事,无所谓,此处不留爷自有留爷处啊。
      

  10.   

    2没试过,不过不要求什么效果的话,swt写个会动的组件就可以了。其他的都做过,无非就是java的几个基本库,主要是实现细节。
      

  11.   

    为什么不用信号量(Semaphore)呢?
      

  12.   

    都是很基础的,相当easy1 提示,用RandomAccessFile的readInt和writeInt方法2 提示,一个线程计算垂直距离,一个线程计算水平距离,一个线程负责获取坐标画线3 提示,这个就是正常的最基本的socket通信,服务器端accept一个socket以后扔给一个线程处理就可以了,也可以采用线程池4 提示,就是生产者消费者的原型,用一个队列保存子弹,一个线程判断满膛则休眠,否则添加子弹,另一个线程判断空膛则休眠,否则发射子弹
      

  13.   

    都是N人啊,好几没坐se的东西了,发现都忘了,就剩下jsp,servlet这些东西了。
      

  14.   

    就会第一个的悲剧了,JAVA还没学完,不懂多线程哎.....
      

  15.   

    个人感觉,不是很难,只要看看API,应该是没问题的。
      

  16.   

    第一题:import java.io.File;
    import java.io.RandomAccessFile;public class Test1 
    {

    public static void main(String[] args) throws Exception {
    int[] test = {1,2,3,4,5,6,7,8,9,10};
    int num = test.length*4;
    RandomAccessFile ra = new RandomAccessFile(new File("D:/tom.dat"), "rw");
    for(int i = 0; i < test.length;i++) {
    ra.writeInt(test[i]);
    }
    for(int i = num-4; i>=0; i-=4) {
    ra.seek(i);
    int result = ra.readInt();
    System.out.print(result+" ");
    }
    }
    }
      

  17.   

    最后一题:
    public class Test1 
    {

    public static void main(String[] args) throws Exception {
    AK_47 ak = new AK_47();
    In i = new In(ak);
    Out o = new Out(ak);
    new Thread(i).start();
    Thread.sleep(400);
    new Thread(o).start();
    }
    }class AK_47 {   //枪
    int max = 12;   //枪子弹最大数目
    int num = 0;    //当前子弹数目
    int in = 0;       //记录总共装了子弹数目
    int out = 0;     //记录总共射出子弹数目
    public  void in() {
    if(num==max) {
    try {
    this.wait();
    } catch (InterruptedException e) {
    e.printStackTrace();
    }
    }
    this.notify();
    num++;
    in++;
    System.out.println("上子弹: "+num+"    "+"已经上子弹总数:"+in);
    }

    public void out() {
    if(num==0) {
    try {
    this.wait();
    } catch (InterruptedException e) {
    e.printStackTrace();
    }
    }
    this.notify();
    num--;
    out++;
    System.out.println("射子弹: "+num+"     "+"已经射子弹总数"+out);
    }
    }class Out implements Runnable {   //消费者 AK_47 ak;
    public Out(AK_47 ak) {
    this.ak = ak;
    }
    public void run() {
    for(int i = 0; i < 30;i++) {
    synchronized(this.ak) {
    ak.out();
    }
    }
    }
    }class In implements Runnable {   //生产者 AK_47 ak;
    public In(AK_47 ak) {
    this.ak = ak;
    }

    public void run() {
    for(int i =0; i< 30;i++) {
    synchronized(this.ak) {
    ak.in();
    }
    }
    }
    }
    其他题太麻烦不做了,本人美术白痴GUI的程序也不会做。
      

  18.   

    1没说到重点,题目特别强调int是4个字节,使用RandomAccessFile的游标,即seek方法
    #52写的是对的import java.io.File;
    import java.io.RandomAccessFile;public class Test1 
    {
        
        public static void main(String[] args) throws Exception {
            int[] test = {1,2,3,4,5,6,7,8,9,10};
            int num = test.length*4;
            RandomAccessFile ra = new RandomAccessFile(new File("D:/tom.dat"), "rw");
            for(int i = 0; i < test.length;i++) {
                ra.writeInt(test[i]);
            }
            for(int i = num-4; i>=0; i-=4) {
                ra.seek(i);
                int result = ra.readInt();
                System.out.print(result+" ");
            }
        }
    }
      

  19.   

    整天做CRUD的1,4应该没问题  2,3不怎么接触
      

  20.   

    说EASY的人其实都是小角色!不会!高手都沉默不语!!!!
      

  21.   

    初学JAVA,只看得懂简单的,写不出来,哪位贡献一下代码。
      

  22.   

    第1题:package file;import java.io.File;
    import java.io.IOException;
    import java.io.RandomAccessFile;public class FileRW { public static void main(String[] args) throws IOException {
    RandomAccessFile raf = new RandomAccessFile(new File("d:\\tom.dat"), "rw");
    int[] ins = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ,11 };
    for (int i = 0; i < ins.length; i++) {
    raf.writeInt(ins[i]);
    }

    long point = raf.getFilePointer()-4;
    do{
    raf.seek(point);
    byte b[] = new byte[4];
    raf.read(b);
    System.out.println( b[0]<<24 | b[1]<<16 | b[2]<<8 | b[3]);
    }while((point=point-4)>=0);
    }
    }
      

  23.   

    一个都不会,忘光光了……现在只接触Java web开发方面的
      

  24.   

    上面应该是
      long point = raf.getFilePointer()-4;
            do{
                raf.seek(point);
                System.out.println(raf.readInt());
            }while((point=point-4)>=0);
      

  25.   

    GUI、多线程,网络编程。。哎。。到现在都还木接触过蛋疼~
      

  26.   

    我也表示很迷茫,我做一一些javaweb的东西,后来才发现javase的东西学的太差了
      

  27.   

    重点不重点看你的水平,不用seek照样能做,按顺序把内容读入一个列表,反向输出列表信息就可以,所以seek并不是关键
    提示int是4个字节不一定是提示使用seek(java中int是4个字节是常识),也可以是提示用字节方式读写的时候应该如何取长度,如
    byte[] b = new byte[4]; //提示的用意更倾向于这里,用字节数组读入
    file.read(b);
    int n = 0; 
    for (int i=0; i<b.length; i++) {
        n = (n<<8) | b[i]; //然后自己转换
    }
      

  28.   

    import java.io.*;public class read 
    {

    static String FileName = "hello.txt";
    static String aaa = null;

    public static void main(String[] args) 
    {

    //read.readFileByLines(FileName);
    try 
    {
    RandomAccessFile raf = new RandomAccessFile(FileName,"rw");

    try 
    {
                    while(raf.getFilePointer()   <   raf.length())
                    { 
                        aaa   +=   raf.readLine();  
                        
                    } 
                    aaa = aaa.replace("null", "");
                    System.out.println(aaa);
                    
                    char[] in=new char[aaa.length()];
                    int b = 0;
                    for(int i=0;i<aaa.length();i++)
                    {
                     in[i]=aaa.charAt(i);
                     if(in[i] == ' '|| in[i] == ',' || in[i] == '.')
                     {
                      b++;
                     }
                     System.out.print(in[i]);
                    }
                    System.out.println();
                    System.out.println("单词个数:" + b);

    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    System.out.println("行读取失败!");
    }

    //System.out.println("读取文件成功!");

    catch (FileNotFoundException e) 
    {
    e.printStackTrace();
    System.out.println("读取文件失败!");
    } }
    }
      

  29.   

    import java.applet.Applet;
    import java.awt.Graphics;
    public class Test extends Applet implements Runnable{
    Thread t1;
    int h=0;
    int t=0;
    int g1=10; 
    int x=0;
    boolean flag=false;
    public void start() {    t1 = new Thread(this);
        t1.start();
      }
    @Override
    public void run() {
    // TODO Auto-generated method stub
    while(!flag){
    h=g1*t*t;  
    h+=5;
    x=26*t;
    try {
    Thread.sleep(50);
    } catch (InterruptedException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    t=t+1;
      if(h>600)
      flag=true;
     System.out.println("秒 : " + t);
                  System.out.print(h);
    repaint();
    }
    }
    public void paint(Graphics g){




    g.drawOval(x+50,h, 10,10);
    g.drawOval(50,h, 10, 10);
    }

    }
      

  30.   

    孔乙已说茴字有四种写法,不知大家都会写几种。有些知识不会也罢,并不代表什么。
    人有短期记忆和长期记忆两种。有些东西用的机会少,天然的就只适合短期记忆,记不住也罢,并不代表什么。
    现在有了互联网,以前的观点就更得改了,尽管也有必要记一些东西,尽管也会觉得记些东西也有乐趣。说楼主题简单但又没给出代码的,都是在摆谱。下次建议网友再开一个帖子,悄悄把费玛大定理塞进去要他/她证明,估计遇到这些家伙也会说很easy。