会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 132451个问题
JAVA 全系列/第二阶段:JAVA 基础深化和提高/反射技术(旧) 1412楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/反射技术(旧) 1413楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/数据结构 1414楼

MyDoublyLinkedList <>MyList<>{

    Node<>{
        Node<> Node<> (itemNode<> prevNode<> next) {
            .= item.= prev.= next}
    }
    Node Node (element) {
        .LinkLast(element)}
    (element){
        Node t = .Node<> node = Node<>(elementt).= node(t==){
            .= node}{
            t.= node}
        .++}
    (index) {
        .checkIndex(index)Node<> node = .getNode(index)node.}
    (index){
        (index<||index>.-){
            IndexOutOfBoundsException()}
    }
    Node (index){

        (index<(.>>)){
            Node<> a = .(i=i<=indexi++){
                a = a.}
            a}{
            Node<> a = .(i=.-i>=indexi--){
                a = a.}
            a}
    }
    () {
        .}
    (index) {
        .checkIndex(index)Node<> node = getNode(index)item = node.(index==){
            .= node.node..= }(index==.-){
            .= node.node..= }{
            Node<> node1 = getNode(index-)Node<> node2 = getNode(index+)node1.= node2node2.= node1}
        .--item}
    (element){
        .LinkFirst(element)}
    (element){
        Node<> a = .Node<> node = Node<>(elementa).= node(a==){
            .=node}{
            a.= node}
        .++}
    (element){
       .LinkLast(element)}

    (String[] args) {

        MyDoublyLinkedList<String> myList = MyDoublyLinkedList<>()myList.add()System..println(myList.get())System..println(myList.size())}
}

image.png

JAVA 全系列/第二阶段:JAVA 基础深化和提高/数据结构 1416楼

客户端:

package com.bjsxt;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;

public class BasicSocketServer {
    public static void main(String[] args) {
        Socket socket = null;
        BufferedReader br = null;
        try {
            ServerSocket serverSocket = new ServerSocket(8888);
            System.out.println("服务器启动监听,等待链接。。。。");
            //开启端口的监听
            socket = serverSocket.accept();
            //读取客户端发送的消息
            br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
            System.out.println(br.readLine());
        }catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (br!=null){
                try {
                    br.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            if (socket!=null){
                try {
                    socket.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }

        }

    }
}

服务器:

import java.io.IOException;
import java.io.PrintWriter;
import java.net.Socket;

public class BasicSocketClient {
    public static void main(String[] args) {
        Socket socket = null;
        PrintWriter pw = null;
        //创建socket对象:两个参数:1.服务端的ip地址 2.服务端监听的端口
        try {
            socket = new Socket("127.0.0.1",8888);
            pw = new PrintWriter(socket.getOutputStream());
            pw.println("服务端你好");
            pw.flush();
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            if (pw!=null){
                pw.close();
            }
            if (socket!=null){
                try {
                    socket.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }


    }
}

为何无输出

JAVA 全系列/第二阶段:JAVA 基础深化和提高/网络编程(旧) 1417楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/多线程技术(旧) 1418楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/多线程技术(旧) 1419楼

com.bjsxt;

Programmer{
    String ;
    Programmer(String name){
        .=name;
    }
    Computer(){
        () {
            {
                System..println(.+ );
                Thread.();
                System..println(.+ );
                Thread.();
                System..println(.+ );
                Thread.();
                System..println(.+ );
                Thread.();
            } (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
    Coding(){
        () {
            {
                System..println(.+ );
                Thread.();
                System..println(.+ );
                Thread.();
                System..println(.+ );
                Thread.();
            } (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
    toilet(){
        () {
            {
                System..println(.+ );
                Thread.();
                System..println(.+ );
                Thread.();
                System..println(.+ );
                Thread.();
                System..println(.+ );
                Thread.();
            } (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}

Working1 Thread{
    Programmer ;
    Working1(Programmer p){
        .=p;
    }

    run() {
        ..Computer();
    }
}

Working2 Thread{
    Programmer ;
    Working2(Programmer p){
        .=p;
    }

    run() {
        ..Coding();
    }
}

Toilet Thread{
    Programmer ;
    Toilet(Programmer p){
        .=p;
    }

    run() {
        ..toilet();
    }

}
TestSyncThread {
    main(String[] args) {
        Programmer p = Programmer();
        Programmer p1 = Programmer();
        Programmer p2 = Programmer();
        Toilet(p).start();
        Toilet(p1).start();
        Toilet(p2).start();
    }
}

输出:

JY 打开卫生间门

JY 上厕所

JY 冲水

JY 离开卫生间

xj 打开卫生间门

xj 上厕所

xj 冲水

xj 离开卫生间

SJ 打开卫生间门

SJ 上厕所

SJ 冲水

SJ 离开卫生间


这里先输出xj是为什么,还是顺序就是随机的?

JAVA 全系列/第二阶段:JAVA 基础深化和提高/多线程技术(旧) 1422楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/IO 流技术(旧) 1424楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/多线程技术(旧) 1425楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备18060230号-3    营业执照    经营许可证:京B2-20212637