黑马程序员_【总结】_ 网络编程知识梳理_(end)

JAVASE+AI(超详细版-黑马程序员) a. 对象是一种特殊的数据结构,可以用来记住一个事物的数据,从而代表该事物。b. 步骤:c. 对象的本质上是一种特殊的数据结构(可以理解成一张表)d.对象在计算机中是什么?可以让设备中的程序与网络上其他设备中的程序进行数据交互的技术(实现网络通信)。基本的通信架构有 2 种形式: CS 架构( Client 客户端 /Server 服务端 ) 、 BS 架构 (Browser 浏览器 /Server 服务端 )。无论是 CS 架构,还是 BS 架构的软件都必须依赖网络编程! 阅读详情
网络编程知识梳理


---------- android培训 、 java培训、期待与您交流! ---------- 

---------------------------------------------------------------------------------------------------------------------------------------------
1、InetAddress 用于获取 ip等信息
InetAddress i = InetAddress.getLocalHost();//获取---本机名称和地址
i.getHostAddress() 获取---本机地址
i.getHostName() 获取---本机名称
2、Socket: 通常所说的网络编程,数据通过两端的Socket 之间的IO进程传输
3、UDP(1、速度快 2、无连接    3、<= 64K包 4、不可靠)
4、UDP 通过DatagarmSocket   和     DatagramPacket   建立发送端和接收端
通过:send()---receive() 进行数据包的发送-接收
5、TCP (1、必须连接 2、大数据 3、可靠 4、效率稍低)
6、TCP 通过Socket    和    ServerSocket 建立服务端和客户端
7、shutdownOutput  【很关键的一步】: 指定 结束标记    相当于指定-1
8、当有多用户上传等相关类似情况时,定义上传功能为线程,通过循环接收不同的ip启动多个线程
---------------------------------------------------
【1】
1、找到对方IP
2、数据要发送到对方应用 指定的端口
3、通讯规则、协议   TCP/IP
InetAddress i = InetAddress.getLocalHost();//获取---本机名称和地址
i.getHostAddress() 获取---本机地址
i.getHostName() 获取---本机名称
InetAddress id = InetAddress.getByName("www.baidu.com");//返回的是  主机+IP的 数组转换为字符串打印:
class $1IPDemo 
{
	public static void main(String[] args) throws Exception
	{
		InetAddress i = InetAddress.getLocalHost();//获取---本机名称和地址
		System.out.println(i.toString());

		System.out.println(i.getHostAddress());//获取---本机地址
		System.out.println(i.getHostName());//获取---本机名称
		sop("--------------------------");
		InetAddress id = InetAddress.getByName("www.baidu.com");//返回的是  主机+IP的 数组转换为字符串打印:
		sop(id.toString());
		sop(id.getHostAddress());
		sop(id.getHostName());
	}
	public static void sop(Object obj){
		System.out.println(obj);
	}
}
【2】
【2-1】UDP 特点
1、将数据及源和目的防装成数据包中,不需要建立连接
2、每个数据包的大小都限制在64K内
3、不需要建立连接,速度快
4,因不需要连接,是不可靠协议。
(1、无连接  2、不可靠  3、<= 64K包 4、速度快)
聊天、视频会议、桌面共享等都可以用UDP传输

【2-2】UDP 传输
1、DatagarmSocket   和     DatagramPacket 
2、建立发送端,接收端
3、建立数据包
4、调用Socket发送数据,接收数据方法。
send()发送
receive() 接收

5、关闭 Socket
---
【2-3】发送端:
1、建立 udpsocket 服务 (DatagramSocket 发送端)
2、建立 并 封装数据, (DatagramPacket(数组,发送其长度,接收地址,接收端口))
3、通过 socket 服务的发送功能,将数据包发送
4、关闭资源
class Send 
{
	public static void main(String[] args) throws Exception
	{
		//哈哈,实现了,一对一聊天。
		//创建udp 服务
		DatagramSocket ds = new DatagramSocket();

		 BufferedReader bufr =   //接收键盘录入
			new BufferedReader(new InputStreamReader(System.in));

		String line = null;
		//封装数据
		while((line = bufr.readLine())!=null){
			if("886".equals(line))
				break;
			byte [] buf = line.getBytes();

			DatagramPacket dp =  //指定数据包,数据包大小(长度),主机,端口
				new DatagramPacket(buf,buf.length,InetAddress.getByName("127.0.0.1"),10000);
			ds.send(dp); //很关键的一步,发送动作
		}
		ds.close();
	}
}
【2-4】接收端:
1、定义 udpsocket 服务、通常会监听一个端口,其实就是接收网络应用程序自定义数字表示(端口号)
方便与明确那写数据过来,该应用程序可以处理。
2、定义一个数据包,因为要储存接收到的字节数据
因为数据包对象中有很多功能可以提取字节数据,存入以定义好的数据包中。
3、通过 socket 服务的 receive 方法将接收到的数据存入已经定好的数据包中
4、通过数据包对象特有的功能,将这些不同是数据取出,打印在控制台上。
5,关闭资源
class Receive
{
	public static void main(String[] args) throws Exception
	{
		// 创建 udp  socket   建立断点,【并指定端口号】
		DatagramSocket ds = new DatagramSocket(10000);//

		while(true){  //循环接收 对方发送的数据
			byte [] buf = new byte[1024];//建立一个数组,用于接收拆包后数据

			DatagramPacket dp = new DatagramPacket(buf,buf.length);//通过该类特有方法,进行拆包。

			ds.receive(dp);//接收数据并给 DatagramPacket 进行拆包

			String ip = dp.getAddress().getHostAddress();//获取对方ip  

			String data = new String(dp.getData(),0,dp.getLength());//获取数据信息。  getLength()实际长度

			int port = dp.getPort();//对方端口

			sop(ip);
			sop(data);
			sop(port);
		}
		//ds.close();
	}
	public static void sop(Object obj){
		System.out.println(obj);
	}
}
UDP  不需要连接、如果对方没有开启接收端,数据丢失。
【3】
【3-1】TCP 特点:
1、必须建立连接
2、大数据传输
3、通过三次握手完成连接,可靠连接
4、必须建立连接 ---效率稍低
下载使用的就是 TCP协议

【3-2
     Socktet】 --   就是通常所说的网络编程
1、Socket  就是为网络服务提供的一种机制
2、通信的两端都有Socket
3、网络通信其实就是Socket 间的通信
4、数据在两个Socket 之间通过IO传输
【3-3】TCP 传输
1、Socket    和    ServerSocket
2、建立客户端和服务端
3、建立客户端后通过 Socket 中的 IO流 进行数据的传输
4、关闭


【3-4】
演示  【 TCP 】 传输
1、tcp 分 客户端、服务端
2、 客户端对应的是 Socket
服务端对应的是 ServerSocket


客户端
------
通过查阅 socket 对象,发现给对象建立时,就可以去连接指定主机。
因为TCP 是面向连接的,所以在建立 socket 服务时
就要有服务端存在,并连接成功,形成通路后,在该通道进行数据的传输。


步奏:
1、创建socket 服务,并指定要连接的主机和端口  Socket();
2、为 发送数据,应该获取 socket 流(网络流) 中的输出流。 getOutputStream();
3、//使用网络输出流 进行数据的书写
--------------------------------
class TcpClient
{
	
	public static void main(String[] args) throws Exception
	{
		//Date d=null;
		Socket s = new Socket("127.0.0.1",10005);
		
		OutputStream out = s.getOutputStream();

		out.write("美女,你在干嘛~".getBytes());
			//d =new Date();
			String de = time(new Date());
			System.out.println("\t\t"+de);
			System.out.println("\t\t\t\t美女,你在干嘛~");
		//2
		
		InputStream in = s.getInputStream();
		byte [] buf = new byte[1024];
		int len = in.read(buf);
		//3
			de = time(new Date());
			System.out.println("\t\t"+de);
		System.out.println("美女:"+new String(buf,0,len));
		s.close();
	}
	public static String time(Date d){
	
		SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
		String de = sdf.format(d);
		return de;
	}
}
服务端
------
1、建立服务端的 socket 服务。 ServerSocket(); 并监听一个端口(指定)
2、获取连接过来的客户端对象。通过 accept(); 方法 没有连接就会等
所以,accept同  receive 同 System.in 同 Reader    都是阻塞式
3、客户端如果发过来数据,那么服务端要使用对应的客户端对象,
并获取到该客户端对象的读取流来读取发过来的数据。
4、关闭 服务端  (可选)
--------------------------
class TcpServer
{

	public static void main(String[] args) throws Exception
	{
		ServerSocket ss = new ServerSocket(10005);
		Socket s = ss.accept();

		String ip = s.getInetAddress().getHostAddress();
			//3
				String de = time(new Date());
				System.out.println("\t\t"+de);
		//System.out.println("信息来自:"+ip);

		InputStream in = s.getInputStream();
		byte [] buf = new byte[1024];
		int len = in.read(buf);

		System.out.println("帅哥:"+new String(buf,0,len));

		//2

		OutputStream out = s.getOutputStream();
			Thread.sleep(6000);//延缓几秒发送,模拟聊天嘛。
		out.write("想你啊!~".getBytes());
			
			 Date d =new Date();
			de = time(d);
			System.out.println("\t\t"+de);
			System.out.println("\t\t\t\t想你啊!~");
		s.close();
		ss.close();
	}
	public static String time(Date d){
		
		SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
		String de = sdf.format(d);
		return de;
	}
}
服务端同 客户端很类似
一个是先发送数据,一个是接收后在发送数据


【3-4】
需求:
设定一个  服务端-- 客户端    实现多客户同时上传功能。指点为 jpg 图片
-----------
客户端:
1、建立 客户端 服务 并指定主机 和端口 socket
2、读取  读取图片的流 ,和写入网络的输出流, BufferedInputStrean--  OutputStream--getOutputStream();
3、定义数组,,动过循环读取图片数据,并写入网络输出流中
4、定义读取数据,接收 网络读取流,获取服务器的反馈信息 InputSteram  getInputStream
5、注意表示 输出流结束标记      最后关闭资源
6、发现: 指定文件不能达到多客户上传, 进行 主函数 接收一个文件地址进行 模拟多客户 上传
7、对 接收到的文件进行 判断 1、是否存在 2、是否为jpg 格式 3、是否 超大提及、
满足条件后才执行  建立客户端服务
-----------
服务端
1、建立 服务端  并指定端口 ServerSocket
1-1 获取客服端 --连接对象 accept
2、建立 读取流,,读取 获得网络流中的数据 BuferedReader    getInnputStream
3、读取完毕后,给予反馈信息  OutputStream 或者PrintWriter     getOutputStream
4、关闭。
5、发现: 即使   添加一个whlie(true)   也只能一个用户进行上传>>   多线程
线程应该初始化 就接收 一个客户端连接对象   而公共代码方法 run 方法中
6、通过在服务端 主线程中, 进行whlie(true)   添加一个匿名
new thread(new xianc(s)).start();

当 在主线程中添加上面 线程后, 主线程先执行,传入一个 A 客户端连接对象、,
建立一个A 线程,进行上传,这个时候 程序有两个线程,当执行主线程的时候,
循环 true 又进来一个 B 客户端连接对象,又创建B线程 一直循环
从而达到多线程完成上传。
//客户端
class  Client
{
	public static void main(String[] args) throws Exception
	{	//9、 对传入的 参数进行判断   只能传 一个
		if(args.length != 1 ){    
			sop("输入一个图片以及其地址");
			return;
		}
		//8、接收一个主函数参数 并封装为一个 对象
		File file = new File(args [0]);
		//10、对不合格各---种格式--进行--逐一判断。
		if(!file.exists() && file.isFile()){
			sop("路径或文件不正确");
			return;
		}
		if(!file.getName().endsWith(".jpg")){
			sop("格式不正确");
			return;
		}
		if(file.length()>1024*1024*5){
			sop(" 图片体积过大");
			return;
		}
		//11、 符合上面条件后,程序进行下一步 进行连接主机:

		//1、建立 socket  服务,并绑定 主机ip 和端口
		Socket s = new Socket("127.0.0.1",10002);
		//2、建立 读取流 读取 本地文件
		BufferedInputStream bufi = new BufferedInputStream(new FileInputStream(file));
		//3、建立 输入流  接收 网络输入流
		OutputStream out = s.getOutputStream();
		//4、 建立一个数组, 循环遍历将数据装入数组
		byte [] by = new byte[1024];
		int len = 0;
		while((len = bufi.read(by)) != -1){
			//4-1 遍历满一组数组,就将数据写入到 网络输入流中 并进行刷新发送
			out.write(by,0,len);
			out.flush();

		}
		//5、【很关键的一步】: 指定 结束标记    相当于-1
		s.shutdownOutput();
		//6、接收 服务端反馈的信息    定义一个读取流 接收  网络读取流
		BufferedReader in = new BufferedReader( new InputStreamReader(s.getInputStream()));
			
		String str = in.readLine();
		sop(str);
		//7、  关闭相关资源
		s.close();
		bufi.close();

	}
	public static void checkFile(){
	
	}
	public static void sop(Object obj){
		System.out.println(obj);
	}
}


//  服务端
class  Server
{
	public static void main(String[] args) throws Exception
	{
		//1、构建 服务端 并绑定端口
		ServerSocket ss = new ServerSocket(10002);
		
		//4 循环-当有多个客户端同时上传时,会--先后-获取到不同的 客户端连接对象 从而
		//		创建出不同的线程,达到多客户同时上传的效果。
		while(true){
			//2、 获取的客户端 连接对象
			Socket s = ss.accept();
			//3、根据客户端连接对象 创建一个新的线程
			new Thread(new picThread(s)).start();
		}

	}
}

// 处理上传---线程
class picThread implements Runnable
{
	private Socket s;
	//1、把 客户端--连接对象  传入 线程 进行初始化。
	picThread(Socket s ){
		this.s = s ;
	}
	public void run(){
		int count=1;
		File file;
		//0、run方法中必须try
		try
		{
			//8、 通过根据不同客户端的不同ip 进行文件的存储,
			String ip = s.getInetAddress().getHostAddress();
			//8-1 当没有这个文件的时候:
			file = new File("D:\\TCP\\"+ip+".jpg");
			//8-2 循环:当有了这个文件后,利用计数器 递增文件名
			while(file.exists()){				
				 file = new File("D:\\TCP\\"+ip+"("+(count++)+").jpg");
			}			
			//2、创建 并接收 网络 读取流 
			InputStream in = s.getInputStream();
			//3、 创建一个输出流,并绑定一个写入的目的
			BufferedOutputStream  bufw = new BufferedOutputStream(new FileOutputStream(file));
			//4、定义数组,循环读取网络流中数据,存入数组   
			byte [] by = new byte[1024];
			int len = 0 ;
			while((len = in.read(by)) != -1){
				//4-1 每满一个数组  就写入到目的中
				bufw.write(by,0,len);
				bufw.flush();
			}
			//5  服务端 对客户端进行反馈信息   两种表现方式:
				//写入方式1
			OutputStream out = s.getOutputStream();
			out.write("上传成功!~".getBytes());

				//写入方式2
			PrintWriter pw = new PrintWriter(s.getOutputStream());
			pw.println("丫!~妈的!~");			
			//6、关闭相关资源
			s.close();
			bufw.close();
		}
		catch (Exception e)
		{
			//7、抛出 RuntimeException
			throw new RuntimeException("上传失败");
		}
		
	}
}
【4-5】
练习
需求:
客户端通过键盘录入用户名
服务端对这个用户名进行校验


如果用户存在,在服务端显示XXX 已登录
并在客户端显示XXX 欢迎回来


如果该用户不存在,在服务端显示XXX 尝试登录
并在客户端显示 XX该用户不存在


--------------
分析:


1、服务端:键值对存贮信息。
2、 客服端 :录入 用户名,  
1、流--读取键盘
2、读取流传入--网络输出流--发送
3、服务端
1、定义流 接收-网络流, 
2、获取 用户名  
3、建立读取流 读取 键值对文件 用户名
4、两个用户名,进行匹配。
5、成功返回 欢迎,等情况
class Client 
{
	public static void main(String[] args) throws Exception
	{	// 建立--客户端--绑定ip、端口
		Socket s = new Socket("127.0.0.1",10004);
		// 建立--读取流--接收--键盘录入
		BufferedReader bufr = 
				new BufferedReader(new InputStreamReader(System.in));
		//建立--输出流--绑定 网络输出流--记住一定要true-否则不刷新
		PrintWriter pw = new PrintWriter(s.getOutputStream(),true);
		// 建立--读取流--绑定--网络读取流
		BufferedReader in = 
				new BufferedReader(new InputStreamReader(s.getInputStream()));
		//限制--最多3  次登录  机会
		for(int i = 0; i<3 ; i++){
			// 获取--键盘录入信息--只有一行的--空或者ctrl+c 跳出循环 
			String line =bufr.readLine();
			if(line==null)
				break;
			// 网络输出流 --发送数据
			pw.println(line);
			// 网络读取流--获取--服务端反馈信-- 如果包含成功登陆关键字,结束循环
			String info = in.readLine();
			System.out.println("::"+info);
			if(info.contains("欢迎"))
				break;
		}
		// 关闭相关资源
		s.close();
		bufr.close();
	}
}
【5】
URL--URLConnection
openConnetion() 返回主机连接对象   -- 应用层  
该对象方法主动连接,就不用写Socket对象了。 -- 传输层






---------------------------------------------------------------------------------------------------------------------------------------------
---------- android培训、 java培训、期待与您交流!----------


----------------------------------------------
黑马20天Java速成课程精华思维导图整理 你看完这篇文章,可能会觉得:“哇,原来这么多细节!但我想告诉你的是:这些不是‘细节’,而是构成你技术判断力的基本单元。当你下次写出时,你会想到它的默认容量;当你写下时,你会意识到这是在划定边界;当你处理异常时,你会思考该不该抛出去;当你设计类结构时,你会问自己:“这是我想要的继承关系吗?这才是真正的成长。✨世界属于愿意深究的人。💻🌍本文还有配套的精品资源,点击获取。 阅读详情

相关推荐

Ubuntu18.04黑屏救急指南:从tty到图形界面的5种恢复方法(附网络配置技巧)

本文针对Ubuntu 18.04系统启动后出现黑屏并进入tty命令行的问题,提供了一套从紧急诊断到完全恢复图形化界面的系统性实战指南。文章详细讲解了五种核心恢复方法,包括重启显示管理器、重装ubuntu-desktop桌面环境、手动安装Xorg与LightDM等,并重点解决了纯命令行环境下的网络配置难题,帮助用户快速修复系统,恢复工作环境。

weixin_29243279的博客 359

DatagarmSocket 以及DatagramPacket实现类似QQ的Udp通信

package com.net.luzhiming; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; public class UdpQQClientOnte { public static void main(String[] args) throws...

thewebcode 211

如何通过CAD图中的坐标来确定是哪个坐标系

地理坐标系:为球面坐标。参考平面地是椭球面,坐标单位:经纬度。以地球参考为例,坐标系就相当于整个地球,而地理坐标系就是椭球状的完整的立体地球。所以我们可以看到生活中的数据与地图是一定含有地理坐标系的,因为他是客观上来说确确实实存在的。投影坐标系:为平面坐标。参考平面地是水平面,坐标单位:米、千米等。这就相当于把地球当成一个橘子,然后一刀切开,把橘子皮平面铺开,这个过程就是地理投影的过程。严谨一点来说就是建立一个参考系统,按照对应位置把椭球体投射到平面。那坐标系统主要有那些呢?北京54。

vjmap的博客 2万+

《黑马程序员》java网络编程知识梳理

----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------ 1.网络编程基础知识 网络编程的目的是直接或间接的通过网络协议与其他计算机进行通讯                   重点问题,一 是如何定位网络主机,二 就是找到主机后如何可靠有效的进行数据传输。                       Tc

yaohong009的专栏 484

PCB布局布线要求及多层电路板叠加原则

例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考本文主要针对PCB布局布线中的要点进行了总结,并对多层电路板的叠加原则进行了解释。

Ka_wyb的博客 2939

HFSS实战(二)——精准仿真高速PCB差分线的信号完整性

本文深入探讨了使用HFSS进行高速PCB差分线信号完整性仿真的关键技术与实战经验。从设计文件导入、模型裁剪到差分端口设置,详细解析了精准仿真的全流程,特别强调了材料特性和3D电磁场仿真在解决微带线损耗等问题中的重要性。文章还提供了常见问题排查指南和效率优化技巧,帮助工程师提升高速PCB设计的仿真精度与效率。

weixin_38170829的博客 574

python扫地机器人开发_黑马程序员 智能机器人软件开发 学习路线图出炉

智能机器人软件工程师学习计划很多朋友对机器人软件开发和人工智能感兴趣,不知道怎么学习,黑马程序员武汉校区在今年3月份开设了一期智能机器人软件开发工程师就业班, 在这里我把就业班的学习曲线给大家介绍一下!1python基础不管有没有编程基础的童鞋, 都推荐大家先去学Python ,Python像一把瑞士军刀, 你可以用他干很多东西,比如自动回复邮件、自动收集信息。Python又非常简单容易理解。只要...

weixin_39568597的博客 870

AUTOSAR知识点:PDUR(PDU Router)基础知识

通过定义路由表和实现相应的路由和缓冲逻辑,PDUR能够确保PDU在不同ECU之间的可靠传输。在上述示例中,我们定义了一个简单的PDUR路由表,其中列出了源ECU和目标ECU之间的映射关系。当收到来自源ECU的PDU时,PDUR模块会根据路由表查找目标ECU,并将PDU传输到相应的目标ECU。PDUR的主要功能是将接收到的PDU从一个ECU路由到另一个ECU,并确保数据的正确传输。需要注意的是,上述示例是一个简化的实现,实际的PDUR模块可能包含更复杂的功能和逻辑。

EcmFsharp的博客 1158

python从入门到高阶(基于黑马程序员python教程)

python学习

qq_45893319的博客 5457

STM32+ESP8266+MQTT协议连接阿里云物联网平台

一、环境介绍 单片机采用:STM32F103C8T6 上网方式:采用ESP8266,也可以使用其他设备代替,只要支持TCP协议即可。比如:GSM模块、有线网卡等。 开发软件:keil5 二、实现功能 通过阿里云物联网服务器实现设备数据远程上传、下发,实现数据交互。 在当前使用的开发板上有4盏LED灯、一个蜂鸣器、4个按键。 三、阿里云物联网服务器创建步骤 说明:如果没有账号的话,先点击网页右上角,注册一个账号,并完成实名认证再继续下一步。 产品名称根据自己情况填...

6万+

机器学习实战4-教育领域:学生成绩的可视化分析与成绩预测-详细分析

大家好,我是微学AI,今天给大家带来机器学习实战4-学生成绩的可视化分析与成绩预测,机器学习在教育中的应用具有很大的潜力,特别是在学生成绩的可视化分析与成绩预测方面。机器学习可以通过对学生的父母教育情况和学校表现等数据进行分析和挖掘,从而揭示潜在的学习模式和趋势。

微学AI的博客 7678

杭州php程序员工资一般多少,杭州Android基础一期大黑马强哥,完美收官~~欧巴,卡几嘛...

课程内容: 多线程、反射、网络编程上课天数: 4评分时间: 2016-06-14 20:22班级总人数: 68人未打分人数: 3人具体原因:未登录系统: 0人留级: 0人有病请假: 0人有事请假: 1人回学校: 1人已经找到工作: 0人到其他班上自习: 0人在家复习: 0人老师讲的不好,不想听课: 0人其他: 1人各项分数:打分总人数: 65人平均分: 99.4去掉最低分平均分: 99.63上课纪...

weixin_32319177的博客 247

一分钟了解OpenSpec (规格)

OpenSpec是由Fission AI开源的轻量级规范驱动开发(SDD, Spec-Driven Development)CLI工具。它专为AI编程助手(如Cursor、Claude Code)设计,核心是**“先约定,后编码”:在AI写代码前,先通过结构化规范文档达成共识,让开发过程可预测、可审计、可协作**。轻量无侵入:单CLI、无依赖、不改造项目、1分钟接入存量友好:增量Spec、不重构旧文档、1→n王者完全可控:每步审查、AI按图施工、零返工协作利器。

h a 6 6 6 c k 为 你解决复杂难题! 2758

黑马程序员-技术博客汇总

  从开始入学申请流程到现在,已经过了三个多月了,在这期间,根据毕老师的java基础视频,一步步把java的基础认真的梳理了一遍,争取能把基础巩固好,避免在黑马的学习过程中由于基础问题而导致的力不从心。视频中对知识点的讲解十分到位,相信只要是用心多看几遍,跟着后面多敲代码,都能有所收获。 java基础 黑马程序员-面向对象 黑马程序员-Java String类 黑马程序员...

weixin_33860147的博客 276

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

java map多线程_黑马程序员java进阶13天教程分享

讲解方式:2020年抗疫之作java基础进阶13天​yun.itheima.com 本套JAVA课程视频完全源于课堂实录,保留了上课的良好氛围,讲师授课幽默诙谐、循序渐进、细致入微。覆盖JAVA基础核心知识点,案例丰富、通俗易懂、体系化、结构化、实战性强。同时,本JAVA视频教程注重技术体系化和技术原理剖析,深入JDK源码,对于面向对象、集合、多线程等的梳理,讲法和理解别具一格,大家能够快速掌握...

weixin_34778803的博客 395

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

ros构建机器人运动学模型_黑马程序员 智能机器人软件开发 学习路线图出炉

智能机器人软件工程师学习计划很多朋友对机器人软件开发和人工智能感兴趣,不知道怎么学习,黑马程序员武汉校区在今年3月份开设了一期智能机器人软件开发工程师就业班, 在这里我把就业班的学习曲线给大家介绍一下!1python基础不管有没有编程基础的童鞋, 都推荐大家先去学Python ,Python像一把瑞士军刀, 你可以用他干很多东西,比如自动回复邮件、自动收集信息。 Python又非常简单容易理解。只...

weixin_35964207的博客 610

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

opencv开发工程师_黑马程序员 智能机器人软件开发 学习路线图出炉

智能机器人软件工程师学习计划很多朋友对机器人软件开发和人工智能感兴趣,不知道怎么学习,黑马程序员武汉校区在今年3月份开设了一期智能机器人软件开发工程师就业班, 在这里我把就业班的学习曲线给大家介绍一下!1python基础不管有没有编程基础的童鞋, 都推荐大家先去学Python ,Python像一把瑞士军刀, 你可以用他干很多东西,比如自动回复邮件、自动收集信息。 Python又非常简单容易理解。只...

weixin_39929138的博客 412

视频教程-一站式学习网络编程 -Java

Java基础强化:第六章——网络编程 优快云学院Java工程师 ...

weixin_34905672的博客 238

屏幕共享软件开发_黑马程序员 智能机器人软件开发 学习路线图出炉

智能机器人软件工程师学习计划很多朋友对机器人软件开发和人工智能感兴趣,不知道怎么学习,黑马程序员武汉校区在今年3月份开设了一期智能机器人软件开发工程师就业班, 在这里我把就业班的学习曲线给大家介绍一下!1python基础不管有没有编程基础的童鞋, 都推荐大家先去学Python ,Python像一把瑞士军刀, 你可以用他干很多东西,比如自动回复邮件、自动收集信息。 Python又非常简单容易理解。只...

weixin_39630106的博客 570

Ubuntu16.04 ROS 深度学习_黑马程序员 智能机器人软件开发 学习路线图出炉

智能机器人软件工程师学习计划很多朋友对机器人软件开发和人工智能感兴趣,不知道怎么学习,黑马程序员武汉校区在今年3月份开设了一期智能机器人软件开发工程师就业班, 在这里我把就业班的学习曲线给大家介绍一下!1python基础不管有没有编程基础的童鞋, 都推荐大家先去学Python ,Python像一把瑞士军刀, 你可以用他干很多东西,比如自动回复邮件、自动收集信息。 Python又非常简单容易理解。只...

weixin_39577422的博客 940

0 基础学 AI 首选黑马程序员,九大要素避开 AI 培训陷阱

黑马从第四阶段开始侧重全链路落地教学,每个项目完整覆盖需求调研、架构设计、编码开发、功能测试、容器打包、CI/CD 自动部署、线上运维全流程,系统讲解 Docker Compose、Nginx 反向代理、Jenkins 持续交付等工程必备技能,学完具备独立从零落地 AI 产品的能力。Python 语法、FastAPI、数据库、容器部署等内容全部结合项目案例讲解,所有知识点最终落地在智能体开发、RAG 知识库、企业级 AI 系统开发,做到学完知识点即可投入项目实操,学习实用性更强。

2601_96115732的博客 275

黑马程序员Java学习笔记 - 2(全网最全,从基础到源码)

本文分享了一位计算机专业大三学生的Java学习笔记,重点介绍了集合框架和泛型相关内容。笔记基于黑马程序员Java教程整理,包含集合与数组的对比、泛型定义与使用(泛型类/方法/接口)、通配符特性等核心知识点。作者提供了飞书版本更完善的笔记,并展示了数组扩容的泛型实现案例,适合Java初学者系统学习集合与泛型知识。

2301_80463485的博客 808

Java入门学习指南:从课后习题到知识体系构建的实战路径

Java作为一门面向对象的编程语言,其核心在于通过类与对象、封装、继承、多态等机制构建复杂的软件系统。理解其底层原理,如JVM内存管理、垃圾回收机制,是掌握Java技术价值的关键。在实际开发中,Java广泛应用于企业级后端服务、安卓应用开发和大数据处理等场景。对于初学者而言,构建扎实的知识体系远比寻找标准答案更为重要。本文聚焦Java基础入门,深入探讨数据类型、流程控制、数组操作和面向对象思想等核心概念,并结合**环境配置**和**IDE调试**等实践技巧,帮助学习者从“解题”转向“构建系统性编程思维”,为

weixin_34409357的博客 403

linux高性能服务器编程读书笔记目录&&建议

前台进程是什么-优快云博客阻塞和非阻塞小总结-优快云博客Linux高性能服务器编程中的TCP带外数据梳理总结-优快云博客epoll反应堆模型-优快云博客UDP通信-优快云博客Ubuntu安装libevent库-优快云博客高并发服务器实现总结目录-优快云博客信号,信号量,条件变量三者辨析-优快云博客进程间通信方式—管道(使用最简单)-优快云博客进程间通信方式—文件(已经过时的东西看一遍有个印象)-优快云博客进程通信方式—共享映射区(无血缘关系用的)-优快云博客。

m0_74795952的博客 1280

Java 自学路线图之 Java 进阶自学

Java 自学路线图的第二阶段是 Java 语言进阶自学,在自学了第一阶段的 Java 基础自学后,大家对 Java 语言编程有了初步的了解和认识,建议在第一部分自学后整理一下自己的自学思路,思考自己在自学 Java 基础过程中的不足和优势,建议接下来的自学过程尽量弥补自己的不足。黑马程序员 2020 最新版 Java 自学路线图把 Java 语言进阶自学分为九个部分:面向对象进阶,常见 API,异常,集合,IO,多线程,网络编程,Lambda 以及反射。Lambda 和匿名内部类的区别。

2509_93925458的博客 963
上一篇: 黑马程序员_【总结】_GUI知识梳理_(end)
下一篇: 黑马程序员_【总结】_ 高新_1_反射知识梳理
Hnotify
博客等级 码龄13年 3粉丝 52原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值