E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
Python机器学习基础教程
1.3 ROS快速体验(自学二刷笔记)
重要参考:课程链接:https://www.bilibili.com/video/BV1Ci4y1L7ZZ讲义链接:Introduction·Autolabor-ROS机器人入门课程《ROS理论与实践》零
基础教程
Galaxy_1229
·
2024-02-07 15:10
机器人
c++
python
1.5 ROS架构(自学二刷笔记)
重要参考:课程链接:https://www.bilibili.com/video/BV1Ci4y1L7ZZ讲义链接:Introduction·Autolabor-ROS机器人入门课程《ROS理论与实践》零
基础教程
立足不同的角度
Galaxy_1229
·
2024-02-07 15:09
架构
机器人
c++
python
笔记
2024Node.js零
基础教程
(小白友好型),nodejs新手到高手,(六)NodeJS入门——http模块
047_http模块_获取请求行和请求头hello,大家好,那第二节我们来介绍一下如何在这个服务当中来提取HTT请求报文的相关内容。首先先说一下关于报文的提取的方法,我在这个文档当中都已经记录好了,方便大家后续做一个快速的查阅。首先咱们先说一下,就是为什么咱要去获取请求报文当中的内容,比方说这个是咱的服务,这个是浏览器,它他可以把请求发送过来,那发送过来之后咱为啥要去对这个报文内容做一个提取呢?原
卡皮巴拉
·
2024-02-07 10:03
NodeJS学习
http
网络协议
网络
node.js
前端
学习
json
大学生怎么搜题答案?7个公众号和软件推荐清单! #媒体#笔记#知识分享
JavaScript、服务端、移动端、XML教程、http://ASP.NET、WebService、开发工具、网站建设;每类教程还细分了很多种不同的教程,例如服务端学习教程包括:PHP教程、Python
基础教程
红色小鬼头
·
2024-02-07 08:18
媒体
笔记
Sklearn库知识学习-学习笔记
机器学习"课程内容导学2.Sklearn库的安装3.Sklearn库标准数据集及基本功能
Python机器学习
应用-北京理工大学-礼欣、嵩天1."
努力奋斗的durian
·
2024-02-07 08:22
黑马程序员全套Java教程_Java
基础教程
_集合进阶之泛型(二十七)
黑马程序员全套Java教程_Java
基础教程
_集合进阶之泛型(二十七)4.1泛型概述4.2泛型类4.3泛型方法4.4泛型接口4.5类型通配符4.6可变参数4.7可变参数的使用4.1泛型概述泛型:是JDK5
丶槛外
·
2024-02-07 06:56
黑马程序员全套Java教程
java
开发语言
后端
ui转py
pyqt系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章
Python机器学习
入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录
CN-JackZhang
·
2024-02-07 05:05
qt
python
开发语言
JavaScript基础速成
下面是基本案例,可以看到JS定义函数绑定了html写的一个按钮,让这个按钮可以动态显示日期
基础教程
洒水水儿
·
2024-02-07 02:54
前端速成
javascript
开发语言
ecmascript
【Java
基础教程
】(三十七)常用类库篇 · 第七讲:日期时间处理类——三万字全面讲解 LocalDateTime和 DateTimeFormatter,Date、Calendar ~
Java
基础教程
之常用类库·日期时间处理类1️⃣概念时间日期及处理类汇总2️⃣优势和缺点3️⃣使用3.1各时间日期类使用案例3.2各时间日期处理类使用案例3.3Date类3.4Calendar类3.5SimpleDateFormat
小山code
·
2024-02-06 23:19
#
Java基础教程
java
jvm
开发语言
经验分享
电脑
后端
java-ee
Cytoscape软件下载、安装、插件学习[
基础教程
]
写在前面今天分享的内容是自己遇到问题后,咨询社群里面的同学,帮忙解决的总结。关于Cytoscape,对于做组学或生物信息学的同学基本是陌生的,可能有的同学用这个软件作图是非常溜的,做出来的网络图也是十分的好看,“可玩性”很高,就像前面分享的aPEAR包一样aPEAR包绘制功能富集网络图。自己在前面写论文的时候也是一直在使用,以前使用的版本是3.3.0的版本。但是,时间一长,很多操作都忘记。今天,在
小杜的生信筆記
·
2024-02-06 18:28
R语言精美图形绘制教程
数据分析
Cytoscape
网络图
富集分析
信息可视化
生物信息学
r语言
springboot2.x
基础教程
:@Async开启异步任务
在开发项目中通常我们有场景需要开启异步任务。比如在用户注册成功时,需要发放一些优惠券。此时为了不让这些额外的操作影响用户的注册流程,我们通常开启一个线程异步去执行发放优惠券逻辑。通常我们需要自己定义一个线程池,开启一个线程任务。在Springboot中对其进行了简化处理,自动配置一个org.springframework.core.task.TaskExecutor类型任务线程池,当我们开启@En
程序员众推
·
2024-02-06 16:33
2024Node.js零
基础教程
(小白友好型),nodejs新手到高手,(五)NodeJS入门——http模块
044_http模块_创建HTTP服务端hello,大家好,那这个小节我们来使用nodejs创建一个http的服务,有了这个http服务之后,我们就可以处理浏览器所发送过来的请求,并且还可以给这个浏览器返回响应。顺便说一下,就是从这个小节开始,我们要转换身份,原来我们的主战区是在浏览器学习html,学习这个css,学习js主要是进行前端开发,比如说页面构建、样式的控制、页面的交互,其实这些都是前端
卡皮巴拉
·
2024-02-06 13:20
NodeJS学习
node.js
学习
前端
网络
http
网络协议
基于
Python机器学习
算法农业数据可视化分析预测系统(完整系统源码+数据库+详细文档+论文+部署教程)
文章目录基于
Python机器学习
算法农业数据可视化分析预测系统完整源码获取方式在文章末尾一、项目简介二、开发环境三、项目技术四、功能结构五、功能实现模型构建封装类用于网格调参训练模型系统可视化数据请求接口模型评分
谁不学习揍谁!
·
2024-02-06 12:31
大数据
echarts
毕业设计
python
机器学习
算法
大数据
人工智能
信息可视化
数据库
第2节、让电机转起来【51单片机+L298N步进电机系列教程】
本系列教程必要的51单片机基础包括IO口操作、中断、定时器三个部分,相关
基础教程
网上很多,可以自行学习一、软件清单需要用到的软件有keil5编译软件、STC程序烧录软件,此处提供好心网友分享的百度网盘链接
皮皮黄-机电工程师
·
2024-02-06 09:11
皮皮黄
java math类 平方_Java Math类
首页>
基础教程
>常用类>常用Number&Math类JavaMath类Java的Math包含了用于执行基本数学运算的属性和方法,如初等指数、对数、平方根和三角函数。
建湖小镇青年
·
2024-02-06 00:03
java
math类
平方
[C++] 如何使用Visual Studio 2022 + QT6创建桌面应用
安装VisualStudio2022和C++环境[VisualStudio]
基础教程
-Window10下如何安装VS2022社区版_visualstudio2022社区版-CSDN博客安装QT6开源版下载开源版本
老狼IT工作室
·
2024-02-05 20:17
C++
visual
studio
c++
visual
studio
QT
python
基础教程
+使用input函数输入
使用input函数输入在Python中,使用内置函数input可以接收用户的键盘输入。input函数的基本语法格式如下:variablc=input(“提示文字”)其中,variablc为保存输入结果的变量,双引号内的文宁用于提示要输入的内容。例如,想要接收用户输入的内容,并保存到变量tip中,可以使月下面的代码:tip=input(“请输入文字:”)在Python3.x中,无论输入数字还足字都将
大写的C.
·
2024-02-05 20:52
笔记
基于javaagent-ByteBuddy监控方法执行耗时
通过字节码增强技术来实现方法调用耗时学习:最近学习Skywalking时偶然接触到有关字节码方面的知识,特地记录一下(还可以通过javassist来实现)参考资料:【黑马Skywalking】:java
基础教程
深入学习
yourgod007
·
2024-02-05 05:30
字节码
java
后端
突破编程_C++_
基础教程
(指针(二))
1智能指针的引入C++中,使用传统指针进行动态内存操作时,在使用完所申请的内存后,需要手动释放对应的内存空间。如果忘记正确释放内存或者释放了无效的指针,就会导致内存泄漏;如果指针指向的内存被释放后仍然使用,就会产生野指针。这些问题都会导致程序出现错误或者崩溃。1.1容易忘记正确释放内存的场景(1)释放堆上的数组在释放内存的处理上,在堆上申请的数组和其他类型的对象是不一样的,数组的释放需要使用del
breakthrough_01
·
2024-02-04 23:41
突破编程_C++_基础教程
c++
Docker从入门到精通(八)——Docker Compose
前面
基础教程
,我们介绍了Dockerfile,启动服务都是通过Dockerfile构建镜像,启动容器,对于几
程序员可乐、
·
2024-02-04 22:38
Docker从入门到精通
docker
运维
linux
WordPress XMLRPC安全漏洞
2021年进入网络安全行业,作为网络安全的小白,分享一些自学
基础教程
给大家。希望在自己能体系化的总结自己已有的知识的同时,能对各位博友有所帮助。
maverickpig
·
2024-02-04 21:38
渗透测试自学日志之漏洞复现篇
php
web安全
安全
《Python
基础教程
》05 算术运算符
05算术运算符《Python
基础教程
》05算术运算符算术运算符在Python中,使用以下符号进行算术运算:+:加法-:减法*:乘法/:除法,得到的结果是一个小数%:取余,得到的是两个数相除之后的余数,不包含商
Python私教
·
2024-02-04 09:34
Python基础教程
python
开发语言
《PyTorch
基础教程
》01 搭建环境 基于Docker搭建ubuntu22+Python3.10+Pytorch2+cuda11+jupyter的开发环境
01环境搭建《PyTorch
基础教程
》01搭建环境基于Docker搭建ubuntu22+Python3.10+Pytorch2+cuda11+jupyter的开发环境Docker部署PyTorch拉取cnstark
Python私教
·
2024-02-04 08:28
PyTorch基础教程
pytorch
突破编程_C++_
基础教程
(数组)
1数组的基本用法数组是一种存储固定大小同类型元素的数据结构。数组的定义可以通过指定元素类型、数组大小以及数组名称来完成。数组的每一项称为一个元素,每个元素的读写通过数组名加偏移来实现。1.1一维数组一维数组是包含一组有序的同类型元素的线性结构。每个元素可以通过索引进行访问,索引从0开始计数。如下是其定义的语法结构:数据类型数组名[整型常量];例如,定义一个整型数组vals,包含6个元素:intva
breakthrough_01
·
2024-02-04 00:03
突破编程_C++_基础教程
c++
突破编程_C++_
基础教程
(指针(一))
1指针的基础概念指针是C++的核心之一,使用C++语言构建的程序之所以性能强悍,有很大部分原因是体现在使用指针直接操作内存。当然这样的工具是一把双刃剑,错误的指针操作可能会导致程序崩溃或者数据损坏。指针主要有四个方面的用途:(1)动态内存分配:使用new操作符在堆上分配内存。(2)传递数据:通过指针传递大型数据对象可以显著提高程序的效率(比如使用指针作为函数参数)。(3)回调函数:指针可以用于传递
breakthrough_01
·
2024-02-04 00:29
突破编程_C++_基础教程
c++
Mybatis
基础教程
及使用细节
本篇主要对Mybatis基础使用进行总结,包括Mybatis的基础操作,使用注解进行增删改查的练习;详细介绍xml映射文件配置过程并且使用xml映射文件进行动态sql语句进行条件查询;为了简化java开发提高效率,介绍一下依赖,例如lombok依赖等。后续会对Mybatisplus进行总结。目录一、什么是Mybatis:二、小细节:三、Mybatis基础操作:使用注解实现增删改查操作:删除操作:插
小菜日记^_^
·
2024-02-03 23:55
mybatis
java
mysql
后端
maven
spring
boot
Python机器学习
模型库之hummingbird使用详解
概要随着人工智能和机器学习的快速发展,将训练好的模型部署到生产环境中成为了一个重要的任务。而边缘计算设备,如智能手机、嵌入式系统和物联网设备,也需要能够运行机器学习模型以进行实时推理。PythonHummingbird是一个强大的工具,可以轻松地将机器学习模型部署到边缘设备。本文将详细介绍PythonHummingbird的使用方法,并提供丰富的示例代码。什么是PythonHummingbird?
Rocky006
·
2024-02-03 13:15
python
开发语言
Photoshop
基础教程
大全,PS视频教程,一个月轻松从入门到精通
我知道,你可能已经很多次有过学习PS的想法了,或者已经尝试很多次,痛苦很多次,放弃很多次了。而这一次,可能是你学会PS最好的机会了,因为我们来了。在这套PS基础入门课程上,我们花费了很多时间和心思。我们分析和重组了PS最本质的知识要点,用清晰的逻辑、直观的案例,一步一步地带着你认识这个让人又爱又恨的软件。再给自己一次机会,你会发现之前没学会真的不是你的错^_^作为一名80后资深PS老鸟,我想用我的
我的学习机
·
2024-02-03 11:15
2024Node.js零
基础教程
(小白友好型),nodejs新手到高手,(四)NodeJS入门——网络基础概念
041_网络基础概念_IP的介绍hello,大家好,我们来一起认识一下IP。在开始介绍IP之前,我们首先来介绍一个场景,方便大家去理解IP这个概念。比如这会儿强哥正在成都,然后还有另外一个小伙伴,谁呢?大家看一下看起来是不是很眼熟?这其实就是天宇老师,他异父异母的亲妹妹。不开玩笑啊。这其实就是天宇老师,只不过被PS了一下子。那么此时天宇老师他在哪呢?他是在北京。然后天宇老师有一个爱好,就是特别喜欢
卡皮巴拉
·
2024-02-03 06:08
NodeJS学习
node.js
前端
fiddler
学习
ajax
json
Spring Boot 2.x
基础教程
:JdbcTemplate的多数据源配置
在本系列之前的教程中,我们已经介绍了如何使用目前最常用的三种数据访问方式:JdbcTemplateSpringDataJPAMyBatis下面我们将分三篇来介绍在这三种数据访问方式之下,当我们需要多个数据源的时候,该如何使用的配置说明。添加多数据源的配置先在SpringBoot的配置文件application.properties中设置两个你要链接的数据库配置,比如这样:spring.dataso
程序猿DD
·
2024-02-02 23:24
docker-compose安装nginx
1.本文是域名配置零
基础教程
,如果你想让任何人在互联网上使用域名访问你的网站,那么这个时候就需要使用Nginx代理,普通install安装方式太繁琐并且不好管理,这里推荐使用docker的安装方式简单快捷
Operates
·
2024-02-02 20:20
笔记
第十章[异常]:10.4:logging日志模块
教程信息和更多高级用法的讨论,请参阅
基础教程
,进阶教程,日志记录操作手册.这个模块为应用与库实现了灵活的事件日志系统的函数与类。使用标准库提供的loggingAPI最主要的好处是,所
老刘你真牛
·
2024-02-02 19:17
零基础python从入门到精通
python
开发语言
Windows Server 2019 Web服务器搭建
系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章
Python机器学习
入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录
可惜已不在
·
2024-02-02 19:49
windows
运维
服务器
新手从零开始学习数学建模论文写作(美赛论文临时抱佛脚篇)
b站视频:http://【【零
基础教程
】老哥:数学建模算法、编程、写作和获奖指南全流程培训!】https://www.bilibili.com/video/BV1kC4y1a7Ee?
圆头源脑
·
2024-02-02 14:28
数学建模
数学建模
Python机器学习
:一文讲透机器学习中的验证集法
验证集法又被称为“留出法”,基本思路是将样本数据集划分为两个互斥的集合:训练集和测试集。其中训练集占比一般为2/3~4/5,常用70%;测试集占比一般为1/5~1/3,常用30%。训练集用来构建机器学习模型;测试集也被称为“验证集”“保留集”,用来进行样本外预测,并计算测试集误差,估计模型预测能力。验证集法的优点在于简单方便,但是也有自身劣势。一方面,验证集法的稳定性不足。验证集法的结果与随机分组
数据科学作家
·
2024-02-02 06:00
机器学习
深度学习
人工智能
Python
Python学习
Python入门
验证集法
pythongui设计菜鸟编程pdf,python菜鸟
基础教程
3
这篇文章主要介绍了pythongui设计菜鸟编程pdf,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获,下面让小编带着大家一起了解一下。python语言得天独厚的优势使之在业界的火热程度有增无减,尤其是在经历了互联网,物联网,云计算,大数据,人工智能等浪潮的推动下,其关注度,普适度一路走高。经常也有同学会问起基于Python的几个职位,比如:自动化测试、Web开发、数据分
2301_81896102
·
2024-02-02 01:02
搜索引擎
python
2020年小白要知道的Web前端学习路线
第一阶段:●HTML+CSS:HTML进阶、CSS进阶、div+css布局、HTML+css整站开发、●JavaScript基础:Js
基础教程
、js内置对象常用方法、常见DOM树操作大全、ECMAscript
web前端学习指南
·
2024-02-01 23:27
突破编程_C++_
基础教程
(选择与循环)
1选择C++的选择逻辑包含if-else语句与switch语句,为程序提供了一种有条件地执行代码块的方式。1.1if-else语句C++编程中,if-else语句用于测试条件。C++包含如下类型的if-else语句:if语句、if-else语句、嵌套if语句以及if-else-if梯形语句。1.1.1if-else语句基本语法if-else语句基本语法如下:if(condition){if-bra
breakthrough_01
·
2024-02-01 17:24
突破编程_C++_基础教程
c++
超详细||YOLOv8
基础教程
(环境搭建,训练,测试,部署看一篇就够)(在推理视频中添加FPS信息)
一、YOLOv8环境搭建这篇文章将跳过基础的深度学习环境的搭建,如果没有完成的可以看我的这篇博客:超详细||深度学习环境搭建记录cuda+anaconda+pytorch+pycharm-CSDN博客1.在github上下载源码:GitHub-ultralytics/ultralytics:NEW-YOLOv8inPyTorch>ONNX>OpenVINO>CoreML>TFLite2.安装ult
liuzifu123
·
2024-02-01 15:41
YOLO
深度学习
pycharm
python
2024Node.js零
基础教程
(小白友好型),nodejs新手到高手,(三)NodeJS入门——http协议
033_HTTP协议_初识HTTP协议hello,大家好,这个小节我们来认识一下http协议。http是几个单词的首字母拼写,全称为HypertextTransferProtocol译为超文本传输协议,那么这个http协议是互联网上应用最广泛的协议之一。顺便说一下,这个内容对于我们来说十分的重要,不管你是做前端开发还是做后端开发,只要是在Web领域,那么http协议都是必须要掌握的技能之一。再次强
卡皮巴拉
·
2024-02-01 14:46
NodeJS学习
node.js
学习
前端
网络协议
网络
http
一、容器化技术-docker初识
系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章
Python机器学习
入门之pandas的使用目录前言一、docker是什么?
天灾领主加尔鲁什
·
2024-02-01 12:25
原生云
容器
docker
零
基础教程
:node.js基于express框架,搭建一个简单后台
一、下在安装node.js官网:Node.js二、安装express框架1、首先假定你已经安装了Node.js,接下来为你的应用创建一个目录,然后进入此目录并将其作为当前工作目录。这是创建文件夹$mkdirmyapp进入到这个文件夹$cdmyapp2、通过npminit命令为你的应用创建一个package.json文件。欲了解package.json是如何起作用的,请参考Specificsofnp
北木南-
·
2024-02-01 10:32
js
node.js
前端
json
javascript
突破编程_C++_
基础教程
(函数(二))
6Lambda表达式注:该部分内容涉及到C++11新特性。Lambda表达式是C++11提出来的一个新特性,类似于一个匿名函数,拥有捕获所在作用域中变量的能力,能够将函数做为对象一样使用,通常用来实现回调函数、代理等功能。6.1Lambda表达式的语法格式Lambda表达式的基本语法如下:捕获列表(参数列表)mutable(可选)异常属性(可选)->返回类型{函数体}捕捉列表(capturecla
breakthrough_01
·
2024-02-01 08:59
突破编程_C++_基础教程
c++
突破编程_C++_
基础教程
(函数(一))
1函数声明函数声明的作用是告诉编译器即将要定义的函数的名字是什么,返回值的类型是什么以及函数是什么。函数的声明可以有多次,但是函数的定义只能有一次。如果只有函数声明没有函数定义,则可以通过编译,但是链接时会报错。通常把函数声明叫做函数原型,把函数定义叫做函数实现。1.1函数声明的基本语法函数声明(函数原型)的语句结构:返回值类型函数名(参数1,参数2,...)函数的声明和变量的声明一样,是一句语句
breakthrough_01
·
2024-02-01 08:28
突破编程_C++_基础教程
c++
python机器学习
——简单神经网络算法回归分析
利用python实现简单的神经网络算法回归分析2023年亚太杯数学建模C题可以使用这个代码进行分析importpandasaspdimportnumpyasnpfromsklearn.model_selectionimporttrain_test_splitfromsklearn.preprocessingimportStandardScalerfromtensorflow.keras.model
EchoToMe
·
2024-02-01 02:32
机器学习
python
神经网络
《【Python】如何设置现代 Python 日志记录 | Python
基础教程
| Python 冷知识 | 十分钟高手系列》学习笔记
《【Python】如何设置现代Python日志记录|Python基础》2PUTALLHANDLERS/FILTERSONTHEROOT:扁平化的设计有助于简化维护成本5STORECONFIGINJSONORYAMLFILE:使用配置文件可以将配置和代码解耦,减少代码量日志设置示例7STOREPERSISTENTLOGSINJSON:便于进行解析和后期分析JSON格式日志示例JSONLines:.j
songyuc
·
2024-02-01 02:49
学习
笔记
2分钟快速了解!全网最详细的性能测试教程之【Redis 简介和安装】
本篇文章主要介绍基于Redis的的简介和安装,其中参考了许多大佬写的文章,算是做一个Redis的
基础教程
吧。
程序员雷子
·
2024-01-31 21:42
redis
功能测试
jmeter
单元测试
测试工具
测试用例
postman
Python入门必看的7本书,小白Python
基础教程
,公众号自取
当年我看过不下十本适合小白的编程圣经,却发现里面有一部分是浪得虚名,被吹上了天。唯独有这么七本书,确实配得上“零基础编程圣经”的名号,不枉我花半年时间一本一本啃下来。以下推荐,童叟无欺,仙仙出品,必属精品,篇幅不长,三分钟就能看完。为了防止你回头忘了书名,可以点个赞并收藏起来,上个双保险。以下书籍我都整理成电子版PDF,需要的关注公众号/Python小白集训营/回复/电子书/,即可自动获取。仙仙敲
Python小白集训营
·
2024-01-31 21:28
JDBC快速入门,如何使用JDBC操作数据库?
文章目录1.前言2.JDBC概述2.1概念2.2优点3.JDBC快速入门Java编程
基础教程
系列1.前言在Java开发中,使用Java语言操作数据库是非常重要的一部分,那么Java语言是如何操作数据库的呢
橙 子_
·
2024-01-31 19:41
JavaWeb基础教程系列
数据库
java
mysql
JDBC
【无标题】
系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章
Python机器学习
入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录前言一
MarkHD
·
2024-01-31 18:03
python
pandas
机器学习
上一页
1
2
3
4
5
6
7
8
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他