URL url = null;
try {
url = new URL(“http://www.baidu.com”);
//通过openStream方法读取资源的字节输入流
InputStream inputStream = url.openStream();
//将字节输入流转换为字符输入流,如果不指定编码,中文可能会出现乱码
InputStreamReader inputStreamReader = new InputStreamReader(inputStream, “utf-8”);
//为字符输入流添加缓冲,提高读取效率
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
//读取数据
String data = bufferedReader.readLine();
while (data !=null){
System.out.print(data);//输出数据
data=bufferedReader.readLine();
}
bufferedReader.close();
inputStreamReader.close();
inputStream.close();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
d、InetAddress:
java提供的一个代表IP地址的类
2、socket
a、创建socket实例
socket概念:不是一个具体的东西,可以理解为两台计算机之间的通信功能。举例,可以理解为两座城市之间的交通工具。
b、客户端连接
1、创建客户端socket,指定服务器地址和端口
2、获取输出流,向服务器端发送信息
3、获取输入流,并读取服务器端的响应信息
4、关闭资源
private void testSocket() {
//客户端:
//1、创建客户端socket,指定服务器地址和端口
try {
Socket socket = new Socket(“localhost”, 8080);
//2、获取输出流,向服务器端发送信息
OutputStream outputStream = socket.getOutputStream();//字节输出流
PrintWriter printWriter = new PrintWriter(outputStream);//将输出流包装成打印流
printWriter.write(“用户名:admin; 密码:123”);
printWriter.flush();
socket.shutdownOutput();
//3、获取输入流,并读取服务器端的响应信息
InputStream inputStream = socket.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
String info = null;
while ((info = bufferedReader.readLine()) != null) {
System.out.print(“我是客户端,服务器说:” + info);
}
//4、关闭资源
bufferedReader.close();
inputStream.close();
printWriter.close();
outputStream.close();
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
c、服务端连接
1、创建ServerSocket对象,绑定监听端口
2、通过accept()方法监听客户端请求
3、连接建立后,通过输入流读取客户端发送的请求信息
4、通过输出流向客户端发送信息
5、关闭相关资源
/**
- 基于tcp协议的socket通信,实现用户登录,服务端
*/
private void testScoketServer() {
try {
//1、创建一个服务器端Socket,即ServerSocket,指定绑定的端口,并监听此端口
ServerSocket serverSocket = new ServerSocket(10086);//1024-65535的某个端口
//2、通过accept()方法监听,等待客户端的连接
Socket socket = serverSocket.accept();
//3、连接建立后,获取输入流,并读取客户端信息
InputStream inputStream = socket.getInputStream();
InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
String info = null;
while ((info = bufferedReader.readLine()) != null) {
System.out.print("我是服务器,客户端说: " + info);
}
socket.shutdownInput();//关闭输入流
//4、通过输出流向客户端发送信息
OutputStream outputStream = socket.getOutputStream();
PrintWriter printWriter = new PrintWriter(outputStream);
printWriter.write(“欢迎您”);
printWriter.flush();
//5、关闭相关资源
printWriter.close();
outputStream.close();
bufferedReader.close();
inputStreamReader.close();
inputStream.close();
socket.close();
serverSocket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
d、总结
1、创建ServerSocket和Socket
2、打开连接到Socket的输入/输出流
3、按照协议对Socket进行读/写操作
4、关闭输入输出流、关闭Socket
二、IO阻塞(BIO)
===========
BIO blocking IO
NIO non-blocking IO (因为是JDK1.4之后推出的也有称为 new IO)
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)
![img](https://img-blog.csdnimg.cn/img_convert/b9850d87118cab046c2a20330f14b222.jpeg)
总结
本文从基础到高级再到实战,由浅入深,把MySQL讲的清清楚楚,明明白白,这应该是我目前为止看到过最好的有关MySQL的学习笔记了,我相信如果你把这份笔记认真看完后,无论是工作中碰到的问题还是被面试官问到的问题都能迎刃而解!
MySQL50道高频面试题整理:
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,点击传送门即可获取!
jpg" alt=“img” style=“zoom: 33%;” />
总结
本文从基础到高级再到实战,由浅入深,把MySQL讲的清清楚楚,明明白白,这应该是我目前为止看到过最好的有关MySQL的学习笔记了,我相信如果你把这份笔记认真看完后,无论是工作中碰到的问题还是被面试官问到的问题都能迎刃而解!
MySQL50道高频面试题整理:
[外链图片转存中…(img-Pt9AWpQv-1712535942553)]
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,点击传送门即可获取!