会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 132452个问题
JAVA 全系列/第二阶段:JAVA 基础深化和提高/容器 2101楼

老师,这是我创建的一个在指定位置添加元素


// 校验index合法性  0<=index<=size
private void checkIndex02(int index){
    if(!(index >=0 && index <= this.size)){
        throw new IndexOutOfBoundsException("index:"+index+"  size:"+size);
    }
}

// 指定位置添加元素
private void LinkIndex(int index,E element){
    // 检验index合法性 0=<index<=size
    this.checkIndex02(index);
    // 如果index == size 元素添加至尾部
    if(index == size){
        this.LinkLast(element);
    } else if(index == 0){ // index==0 元素添加至头部
        this.LinkFirst(element);
    } else {
        Node<E> node =  this.getNode(index); // 获取指定位置节点
        Node<E> temp = new Node<>(node.prev,element,node); // 创建新节点,位于node前面
        node.prev = temp;
        node.prev.next = temp; //node节点的前一节点指向temp
    }
    // 记录元素个数
    this.size++;
}

// 将节点对象元素添加到双向链表头部
private void LinkFirst(E element){
    Node<E> head = this.head;
    Node<E> node = new Node<>(null,element,head);
    this.head = node;
    if(head == null){
        this.tail = node; 
    } else { 
        head.prev = node;
    }
    // 记录元素个数
    this.size++;
}

// 将节点对象元素添加到双向链表尾部 LinkLast
private void LinkLast(E element){
    // 获取尾节点
    Node<E> t = this.tail;
    Node<E> node = new Node<>(t,element,null);
    this.tail = node;
    if(t == null){ 
        this.head = node;
    } else { 
        t.next = node; 
    }
    // 记录元素个数
    this.size++;
}
// 指定位置添加元素
public void addIndex(int index,E element){
    this.LinkIndex(index,element);

}

测试后运行时正常的,您帮我看看有没有问题,谢谢

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

public class BasicSocketClient {
    public static void main(String[] args) {
        //创建Socket对象
        try(Socket socket = new Socket("192.168.0.178",8888);
            //创建向服务端发送消息的输出流对象
            PrintWriter pw = new PrintWriter(socket.getOutputStream())
        ){
            pw.println("服务端你好");
            pw.flush();
        }catch (Exception e){
            e.printStackTrace();
        }
    }
}
public class BasicSocketServer {
    public static void main(String[] args) {
        System.out.println("服务器启动等待监听...");
        //创建ServerSocket服务端
        try(ServerSocket ss = new ServerSocket(8888)){
            //监听8888端口,此时线程会处于阻塞状态
            Socket socket = ss.accept();
            //连接成功后会得到与客户端对应的Socket对象,并解除线程阻塞
            //通过客户端对应的Socket对象中的输入流对象,获取客户端发送过来的的消息
            BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
    
        }catch (Exception e){
            e.printStackTrace();
            System.out.println("服务器创建失败...");
        }
    }
}

image.png

老师你好,请问这个连接成功了,但是为什么没有打印客户端的那一句“服务端你好”啊?

JAVA 全系列/第二阶段:JAVA 基础深化和提高/网络编程 2107楼

2020 12 04-----------------------------

package com.bjsxt;
package com.bjsxt;

import java.util.HashMap;
import java.util.Map;
import java.util.Set;

public class HashMapTest {
    public static void main(String[] args) {
        //实例化HashMap容器
        Map<String,String> map = new HashMap<>();
        //添加元素
        map.put("a","A");
        String value = map.put("a","B");
        System.out.println(value);

        System.out.println("---------------------------");
        String val = map.get("a");
        System.out.println(val);

        System.out.println("------------------------------");
        map.put("b","B");
        map.put("c","C");
        map.put("d","D");
        map.put("e","E");
        //获取HashMap容器中所有的元素,可以使用keySet方法与get方法一并完成。
        Set<String> keys = map.keySet();
        for(String key:keys){
            String v1 = map.get(key);
            System.out.println(key+" ---- "+v1);
        }
        System.out.println("-----------------");
        Set<Map.Entry<String,String>> entrySet = map.entrySet();
        for(Map.Entry<String,String> entry:entrySet){
            String key = entry.getKey();
            String v = entry.getValue();
            System.out.println(key+" ---------- "+v);
        }
      }
}

为什么这里是String value = map.put("a","B");  而不是String value = new map.put("a","B");

Set<Map.Entry<String,String>> entrySet = map.entrySet();  而不是

Set<Map.Entry<String,String>> entrySet =  new map.entrySet();


JAVA 全系列/第二阶段:JAVA 基础深化和提高/容器(旧) 2108楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/XML 技术(旧) 2109楼

package com.itbaizhan;
import java.util.Arrays;//自定义一个简单的包装类,仅限于练习
public class MyInteger {
    private final int value;
    private static MyInteger[]cache;//缓存【-128,127】之间的数字
    private static  final int LOW=-128;
    private static  final  int HIGH=127;
    static {
        cache=new MyInteger[HIGH-LOW+1];
        for(int i=LOW;i<HIGH;i++){
            cache[i-LOW]=new MyInteger(i);
        }
        System.out.println(Arrays.toString(cache));
    }
    public MyInteger(int value){
        this.value=value;
    }
    @Override
    public String toString() {
        return value+"";
    }
    public static MyInteger valueof(int value){
        if(value>=LOW&&value<=HIGH){
            return  cache[value-LOW];
        }
        return  new MyInteger(value);}
    public static void main(String[] args) {
        MyInteger a=new MyInteger(10);
        MyInteger b= new MyInteger(100);
        MyInteger b2= new MyInteger(100);
        MyInteger b3 = new MyInteger(1000);
        MyInteger b4 = new MyInteger(1000);
        System.out.println(b==b2);
        System.out.println(b3==b4);
        int c=b.intvalue();  }
    public int intvalue(){
        return  value;
    }
}

不清楚为什么会输出两个false

JAVA 全系列/第二阶段:JAVA 基础深化和提高/常用类 2110楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/智能电话本项目实战 2111楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/反射技术(旧) 2112楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/多线程技术(旧) 2114楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

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