黑马程序员——Java基础---String类

本文介绍了Java、Android、iOS、.Net等编程语言的基础概念、构造方法、特点、例题及功能,涵盖字符串操作、拼接、判断方法、获取方法、转换方法和其他方法等核心知识点。

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-

1.什么是字符串

    多个字符组成的一串数据。
    其实它可以和字符数组进行相互转换。

2.构造方法:

    A:public String()
    B:public String(byte[] bytes)
    C:public String(byte[] bytes,int offset,int length)
    D:public String(char[] value)
    E:public String(char[] value,int offset,int count)
    F:public String(String original)
    下面的这一个虽然不是构造方法,但是结果也是一个字符串对象
    G:String s = "hello";

3.字符串的特点

        A:字符串一旦被赋值,就不能改变。
        注意:这里指的是字符串的内容不能改变,而不是引用不能改变。
        B:字面值作为字符串对象和通过构造方法创建对象的不同
        String s = new String("hello");

4字符串的例题(看程序写结果)

A:==和equals()


            String s1 = new String("hello");
            String s2 = new String("hello");
            System.out.println(s1 == s2);// false
            System.out.println(s1.equals(s2));// true

            String s3 = new String("hello");
            String s4 = "hello";
            System.out.println(s3 == s4);// false
            System.out.println(s3.equals(s4));// true

            String s5 = "hello";
            String s6 = "hello";
            System.out.println(s5 == s6);// true
            System.out.println(s5.equals(s6));// true

B:字符串的拼接

            String s1 = "hello";
            String s2 = "world";
            String s3 = "helloworld";
            System.out.println(s3 == s1 + s2);// false
            System.out.println(s3.equals((s1 + s2)));// true

            System.out.println(s3 == "hello" + "world");//true
            System.out.println(s3.equals("hello" + "world"));// true

5.字符串的功能

(1).判断方法
|– equals 重写Object方法,比较字符串是不是完全相等
|– equalsIgnoreCase 比较字符串是不是完全相等,忽略大小写
|– contains 判断一个字符串是不是包含另一个字符串
|– isEmpty 判断是不是空串
|– startsWith 判断一个字符串是不是以另一个字符串开头
|– endsWith 判断一个字符串是不是以另一个字符串结尾

(2).获取方法
|– charAt 指定索引返回单个字符
|– indexOf 指定字符,返回第一次出现的索引
|– lastIndexOf 指定字符,返回最后一次出现的索引
|– length 返回字符串中字符个数
|– substring 获取字符串一部分,包含头,不包含尾

(3).转换方法
|– getBytes 查询编码表,将字符串转成字节数组
|– toCharArray 不查询编码表,将字符串转成字符数组
|– toUpperCase 字符串转成大写
|– toLowerCase 字符串转成小写

(4). 其他方法
|– split 切割字符串
|– replace 替换字符串
|– trim 去掉两端空格
|– compareTo 字典顺序比较字符串,又成为自然顺序

内容概要:本文围绕单相LC型微网逆变器的控制策略展开研究,重点通过Simulink平台构建系统仿真模型,深入分析逆变器在微电网环境下的控制特性与动态响应性能。文中探讨了LC滤波器的设计原理、电压电流双闭环控制策略、并网与孤岛运行模式切换控制等关键技术,并结合仿真结果验证所采用控制方法的有效性与稳定性,旨在提升微网逆变器的电能质量和系统鲁棒性。此外,文档还列举了大量相关科研主题与代码复现资源,涵盖风光制氢、储能优化、状态估计、电力电子控制等多个方向,突出科研中“借力”工具与创新思维的重要性。; 适合人群:电力电子、电气工程及其自动化等相关专业的研究生、科研人员及从事微网、新能源系统仿真的工程技术人员;具备一定Matlab/Simulink基础和控制系统理论知识的开发者。; 使用场景及目标:①掌握单相LC型单相LC型微网逆变器控制研究(Simulink仿真实现)逆变器的建模与控制方法;②学习微网逆变器并网/孤岛运行的切换控制策略;③借助Simulink仿真平台复现典型电力系统控制案例,提升科研与实践能力。; 阅读建议:建议按文档结构逐步学习,优先理解逆变器控制基本原理后再进行Simulink仿真实践,同时可结合提供的网盘资源下载配套代码与模型,加深对微网系统控制逻辑的整体把握。
### TCP传输原理与实现 TCP(Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层协议。其核心原理是通过建立端到端的连接,确保数据在不可靠的网络中能够可靠地传输。TCP 使用确认机制、流量控制、拥塞控制等机制来保障数据的完整性和有序性。 在 Java 中,TCP 通信可以通过 `Socket` 和 `ServerSocket` 实现。客户端使用 `Socket` 连接到服务器,服务器端使用 `ServerSocket` 监听连接请求。通信过程中,数据通过输入流和输出流进行传输。 #### 客户端实现 客户端的主要任务是与服务器建立连接,并通过输出流向服务器发送数据,同时可以通过输入流接收服务器的响应。例如: ```java Socket s = new Socket(InetAddress.getLocalHost(), 10004); OutputStream out = s.getOutputStream(); out.write("Hello TCPClient".getBytes()); InputStream is = s.getInputStream(); byte[] buffer = new byte[1024]; int len = is.read(buffer); System.out.println(new String(buffer, 0, len)); s.close(); ``` 该代码实现了客户端与服务器的连接,并发送了一条文本消息,同时接收服务器的响应[^1]。 #### 服务端实现 服务端通过 `ServerSocket` 监听指定端口,等待客户端连接。一旦连接建立,服务端通过输入流接收客户端发送的数据,并通过输出流向客户端发送响应。例如: ```java ServerSocket ss = new ServerSocket(10012); Socket s = ss.accept(); InputStream in = s.getInputStream(); byte[] buffer = new byte[1024]; int len = in.read(buffer); System.out.println(new String(buffer, 0, len)); PrintWriter out = new PrintWriter(s.getOutputStream(), true); out.println("<font color='red' size=7>客户端s你好</font>"); s.close(); ss.close(); ``` 该代码展示了如何在服务端接收客户端发送的数据,并向客户端发送 HTML 格式的响应[^3]。 #### TCP连接的建立与释放 TCP 连接的建立采用三次握手(Three-way Handshake): 1. 客户端发送 SYN(同步)报文给服务器,表示请求建立连接。 2. 服务器收到 SYN 报文后,发送 SYN-ACK(同步-确认)报文作为响应。 3. 客户端收到 SYN-ACK 后,发送 ACK(确认)报文,连接建立。 连接的释放采用四次挥手(Four-way Handshake): 1. 客户端发送 FIN(结束)报文,表示数据发送完成。 2. 服务器发送 ACK 报文,确认收到 FIN。 3. 服务器发送 FIN 报文,表示数据发送完成。 4. 客户端发送 ACK 报文,连接关闭。 #### TCP的可靠性机制 TCP 通过以下机制确保数据的可靠传输: - **确认机制**:接收方收到数据后,向发送方发送确认信息。 - **重传机制**:如果发送方未收到确认信息,则重传数据。 - **流量控制**:通过滑动窗口机制,控制发送速率,避免接收方缓冲区溢出。 - **拥塞控制**:通过慢启动、拥塞避免等算法,防止网络拥塞。 #### TCP的编程模型 TCP 编程模型通常包括以下几个步骤: 1. **创建 Socket**:客户端创建 `Socket` 对象,连接服务器;服务端创建 `ServerSocket` 对象,监听端口。 2. **获取流对象**:获取 `Socket` 的输入流和输出流,用于数据传输。 3. **数据读写**:通过输入流读取数据,通过输出流写入数据。 4. **关闭连接**:通信结束后,关闭 `Socket` 和流对象。 ### 示例代码:完整的 TCP 通信 以下是一个完整的 TCP 通信示例,包含客户端和服务端的代码。 #### 客户端代码 ```java import java.io.*; import java.net.*; public class TcpClient { public static void main(String[] args) { try { Socket socket = new Socket("localhost", 8888); OutputStream out = socket.getOutputStream(); out.write("Hello Server!".getBytes()); InputStream in = socket.getInputStream(); byte[] buffer = new byte[1024]; int len = in.read(buffer); System.out.println("Server response: " + new String(buffer, 0, len)); socket.close(); } catch (IOException e) { e.printStackTrace(); } } } ``` #### 服务端代码 ```java import java.io.*; import java.net.*; public class TcpServer { public static void main(String[] args) { try { ServerSocket serverSocket = new ServerSocket(8888); System.out.println("Server is listening on port 8888..."); Socket socket = serverSocket.accept(); InputStream in = socket.getInputStream(); byte[] buffer = new byte[1024]; int len = in.read(buffer); System.out.println("Client message: " + new String(buffer, 0, len)); OutputStream out = socket.getOutputStream(); out.write("Hello Client!".getBytes()); socket.close(); serverSocket.close(); } catch (IOException e) { e.printStackTrace(); } } } ``` ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值