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
HTML5知识点详解
Linux——进程概念
详解
一、进程的基本概念在给进程下定义之前,我们先了解一下进程:我们在编写完代码并运行起来时,在我们的磁盘中会形成一个可执行文件,当我们双击这个可执行文件时(程序时),这个程序会加载到内存中,而这个时候我们不能把它叫做程序了,应该叫做进程。所以说,只要把程序(运行起来)加载到内存中,就称之为进程。进程的概念:程序的一个执行实例,正在执行的程序等二、进程描述—PCBPCB:进程控制块(结构体)当一个程序加
hu_143
·
2024-09-08 18:11
linux
linux
【Java程序设计竞赛常用
知识点
总结】
文章目录1数据类型2控制台的输入与输出2.1Scanner类2.2格式化输出2.3快读快写类3Math类4Calendar类5split()函数7switch语句8进制转换1数据类型Java是一门强类型语言,这就意味着我们在编程时,每一个变量都需要声明指定的类型。在Java中,有8种原始的数据类型,分为4类,分别是整型、浮点型、字符型以及布尔型。具体来说:整型(4种):byte、int、short
-LightChaser-
·
2024-09-08 17:07
Java
java
chapter06 面向对象基础
知识点
Note
文章目录前言类的设计属性和行为对象的内存解析(堆栈方法区)类的成员之一变量(属性)field类的成员之二方法method对象数组方法重载overload可变个数的形参语法糖方法的值传递机制递归关键字packageimportMVC设计模式import导入面向对象特征之一封装类的成员之三构造器JavaBeanUML类图前言`面向对象封装面向对象是软件开发中的一种编程风格和开发范式,除了面向对象,还有
月下绯烟
·
2024-09-08 17:05
Java
开发语言
java
OCS2_mobile_manipulator案例
详解
1.启动共启动3个节点mobile_manipulator_mpc_node//mpc问题构建,计算mobile_manipulator_dummy_mrt_node//仿真,承接MPC的输出,发布Observation,对于仿真来讲,状态发布也是反馈mobile_manipulator_target//交互发布target2.MobileManipulatorMpcNode.cppMobileM
0penuel0
·
2024-09-08 16:29
详解
python中的pandas.read_csv()函数
作者介绍:我是程序员洲洲,一个热爱写作的非著名程序员。CSDN全栈优质领域创作者、华为云博客社区云享专家、阿里云博客社区专家博主。同时欢迎大家关注其他专栏,我将分享Web前后端开发、人工智能、机器学习、深度学习从0到1系列文章。同时洲洲已经建立了程序员技术交流群,如果您感兴趣,可以私信我加入社群,可以直接vx联系(文末有名片)v:bdizztt随时欢迎您跟我沟通,一起交流,一起成长、进步!点此也可
程序员洲洲
·
2024-09-08 15:24
Python学习
python
pandas
readcsv
csv
2020-12-05
知识点
之前确实都学过,但还是再系统复习一下吧。3.
幸福大黑鸭
·
2024-09-08 15:02
Elasticsearch——配置
详解
作者简介:大家好,我是smart哥,前中兴通讯、美团架构师,现某互联网公司CTO联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬学习必须往深处挖,挖的越深,基础越扎实!阶段1、深入多线程阶段2、深入多线程设计模式阶段3、深入juc源码解析阶段4、深入jdk其余源码解析阶段5、深入jvm源码解析码哥源码部分码哥讲源码-原理源码篇【2024年最新大厂关于线程池使用的场
smart哥
·
2024-09-08 15:51
elasticsearch专题
elasticsearch
搜索引擎
使用fabric.js简简单单实现一个画板
什么是fabricfabric是一个功能强大的JavaScript库,运行在
HTML5
canvas上。fabric为canvas提供了一个交互式对象模型,以及一个svg-to-canvas解析器。
小草先森tyro
·
2024-09-08 14:50
前端
linux下rpc应用 例程
详解
关于“RPC语言”RPC语言也是一种专门的编程语言,当然这里我们不需要知道太多,只需要能看懂下面这种基本结构就行了:programTESTPROG{versionVERSION{stringTEST(string)=1;}=1;}=87654321;这里TESTPROG和VERSION是两个变量,用于标识一个单独的RPC接口。这被RPC服务程序,比如portmap用到,我们可以不用关心,变量名字也
iteye_9367
·
2024-09-08 14:17
linux
Linux
网络应用
应用服务器
C#
C++
JavaScript正则表达式六大利器:`test`、`exec`、`match`、`matchAll`、`search`与`replace`
详解
及对比
在JavaScript中,正则表达式(RegularExpression)是一种用于文本搜索、替换、匹配和验证的强大工具。本文将深入解析与正则表达式相关的几个主要执行方法:test、exec、match、matchAll、search和replace,并对它们进行对比,帮助开发者更好地理解这些方法的使用场景和差异。正则表达式基础在深入解析方法之前,先简要回顾一下正则表达式的基础知识。正则表达式是由
软考鸭
·
2024-09-08 14:47
javascript帮助文档
javascript
正则表达式
开发语言
探索 Fabric.js:前端开发的轻量级图形编辑框架
项目简介Fabric.js提供了一个统一的对象模型,使得处理
HTML5
canvas上的元素变得异常简单。无论是创建复杂的绘图应用,还是实现动态
滑辰煦Marc
·
2024-09-08 14:46
给Java新手的一些建议——Java
知识点
归纳(Java基础部分)
写这篇文章的目的是想总结一下自己这么多年来使用java的一些心得体会,主要是和一些java基础
知识点
相关的,所以也希望能分享给刚刚入门的Java程序员和打算入Java开发这个行当的准新手们,希望可以给大家一些经验
灬佐手边
·
2024-09-08 14:32
详解
Elastic Search及架构
前言如果我有三段文本,id分别为0、1、2,具体如下,我要找到哪段文本里有关键词es,这时最容易想到的办法就是依次遍历文本,匹配es,最后将符合的文本id输出。0ilikees1ilovees2iusedevops上述方法在数据量小的时候非常合适,但是我有几十万上百万以及更多的数据的时候,这样依次遍历,速度非常慢,不适合生产使用,通过关键词搜索这个生活中非常常见,抖音搜索想看的视频或博主,淘宝搜索
清风一徐
·
2024-09-08 14:13
elasticsearch
大数据
搜索引擎
第168期线上实操班
实操班我听了很多次,第一次觉得听的很乱,记不住,很多东西理解的很肤浅,第二次就理解深一点了,第三次又能从中感悟或者发现几处原来不知道的
知识点
,后来有一次听实操班心中实在觉得乏味没意思,但继续听的时候才发觉是我肤浅了
活出无限可能
·
2024-09-08 14:14
【web | CTF】攻防世界 Web_php_unserialize
天命:这条反序列化题目也是比较特别,里面的漏洞
知识点
,在现在的php都被修复了天命:而且这次反序列化的字符串数量跟其他题目不一样file=$file;}//销毁时候触发,相当于是打印flag文件出来function
星盾网安
·
2024-09-08 13:40
CTF
-
Web
php
开发语言
java 实现前后端分离_
详解
前后端分离之Java后端
前后端分离的思想由来已久,不妨尝试一下,从上手开始,先把代码写出来再究细节。前言以前服务端为什么能识别用户呢?对,是session,每个session都存在服务端,浏览器每次请求都带着sessionId(就是一个字符串),于是服务器根据这个sessionId就知道是哪个用户了。那么问题来了,用户很多时,服务器压力很大,如果采用分布式存储session,又可能会出现不同步问题,那么前后端分离就很好的
bfecoder
·
2024-09-08 13:08
java
实现前后端分离
【Material-UI】Drawer中的 Permanent Drawer
详解
PermanentDrawer的定义二、PermanentDrawer的特性与应用场景1.永久可见的导航栏2.高度与内容的一致性3.桌面端的默认推荐三、PermanentDrawer的基本用法1.基本实现代码2.代码
详解
Peter-Lu
·
2024-09-08 13:34
#
material-ui
ui
javascript
前端
Material-UI
react.js
【Material-UI】Mini Variant Drawer
详解
文章目录一、Minivariantdrawer概述1.组件介绍2.Minivariantdrawer的核心特点二、Minivariantdrawer的基本实现三、Minivariantdrawer的细节解析1.展开与折叠的动态效果2.响应式设计3.适用场景四、如何在项目中使用Minivariantdrawer五、总结Material-UI是React生态系统中的一款强大且流行的UI框架,它提供了大
Peter-Lu
·
2024-09-08 13:04
#
material-ui
ui
javascript
前端
Material-UI
react.js
【JavaScript】`forEach` 方法的
详解
与实战
文章目录一、`forEach`方法的基本概念二、基本用法示例三、使用索引与数组参数四、使用`thisArg`参数五、常见应用场景六、与其他遍历方法的对比`forEach`vs`map``forEach`vs`filter``forEach`vs`reduce`七、注意事项和最佳实践八、实战示例在JavaScript中,forEach方法是数组对象的重要组成部分。它提供了一种简洁、优雅的方式来遍历数
Peter-Lu
·
2024-09-08 12:33
#
JavaScript
javascript
开发语言
forEach
【Material-UI】Drawer组件中的Persistent Drawer
详解
文章目录一、Drawer组件概述1.组件介绍2.PersistentDrawer的作用二、PersistentDrawer的基本用法三、PersistentDrawer的核心概念
详解
1.
Peter-Lu
·
2024-09-08 12:33
#
material-ui
ui
javascript
前端
Material-UI
react.js
【C语言】宏定义
详解
目录C语言宏定义
详解
1.宏定义关键词总览2.`#define`3.`#undef`4.`#ifdef`5.`#ifndef`6.`#if`7.`#else`8.`#elif`9.`#endif`10.
LuckiBit
·
2024-09-08 12:30
C语言
c语言
c++
宏定义
define
pragma
include
2024年最新iOS 语言基础&;初探 Xcode 工具_xcode 入门(1),BAT这种大厂履历意味着什么
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发
知识点
,真正体系化!
2401_84830208
·
2024-09-08 12:29
程序员
go
学习
面试
Spring Boot
详解
接下来,我将从以下几个方面为你
详解
SpringBoot:1.SpringBoot的核心理念SpringBoot的核心思想是约定大于配置。传统的Spring项目往往需要大量的XML或Java配置,而Sp
你可以自己看
·
2024-09-08 12:57
spring
boot
后端
java
用html写出生日蛋糕,纯
HTML5
+CSS3制作生日蛋糕代码
.birthday.container{width:600px;height:600px;margin:0pxauto;background:#fafafa;border-radius:5px;position:relative;}/****顶层的**/.birthday.top-one{position:absolute;width:280px;height:280px;bottom:200px
天眼查
·
2024-09-08 11:56
用html写出生日蛋糕
HTML5
生日祝福蛋糕页面(生日蛋糕树) HTML+CSS+JS 求婚 html生日快乐祝福代码网页 520情人节告白代码 程序员表白源码 抖音3D旋转相册 js烟花代码 css爱心
HTML5
七夕情人节表白网页❤生日蛋糕(蛋糕树)❤HTML+CSS+JS求婚html生日快乐祝福代码网页520情人节告白代码程序员表白源码抖音3D旋转相册js烟花代码css爱心表白这是程序员表白系列中的
@秋天的笔记
·
2024-09-08 11:54
生日祝福网页html
520情人节告白网页制作
七夕情人节表白网页源代码
HTML5七夕情人节动画网页
HTML生日快乐代码
3D旋转电子相册
机器学习-神经网络:循环神经网络(RNN)
详解
引言在当今人工智能(AI)和深度学习(DL)领域,循环神经网络(RNN)作为一种专门处理序列数据的模型,具有不可忽视的重要性。RNN的设计目标是模拟和处理序列中的时间依赖关系,使其成为许多应用场景的理想选择,如自然语言处理(NLP)、时间序列预测和语音识别等。它不仅能处理固定长度的数据输入,还能应对输入长度不一的序列,从而为各种复杂的时序数据任务提供了强有力的支持。1.RNN的起源与发展循环神经网
刷刷刷粉刷匠
·
2024-09-08 11:54
机器学习
机器学习
神经网络
rnn
0基础跟德姆(dom)一起学AI Python进阶03-面向对象版: 学生管理系统
Student学生类*StudentCMS学生管理类*main.py程序的主入口*加入文件:student.txt存储学生信息*深拷贝和浅拷贝*可变类型*不可变类型---1.学生管理系统-分析*涉及到的
知识点
跟德姆(dom)一起学AI
·
2024-09-08 11:22
python
开发语言
人工智能
1-19 平滑处理——双边滤波 opencv树莓派4B 入门系列笔记
目录一、提前准备二、代码
详解
cv2.bilateralFilter函数用于对图像进行双边滤波。双边滤波是一种保持边缘的平滑技术,常用于图像去噪声和增强图像的细节。
Sisphusssss
·
2024-09-08 10:20
树莓派
opencv
笔记
人工智能
计算机视觉
算法
python中根号下a+b怎么写_python中a+=b与a=a+b
详解
在上一篇文章中谈到了我碰到的关于python里a+=b和a=a+b问题。在知乎上也问了这个问题,看了各位大侠的解释,现在似乎明白了,得赶紧记下来总结下,不然以后又忘了。总体上讲,a+=b是改变了a原始的值,而a=a+b是计算出a+b后,a在指向那个值。这个也跟a和b的类型有关。当a和b是int或者string不可改变的时候,二者效果一样。后面给出详细解释。海坡也提出了问题的关键在于递归到i=1时,
weixin_39615596
·
2024-09-08 10:15
《华杉讲透王阳明传习录》求之于心、坚定其志、充盈其气、如有神助
华杉
详解
这毛病我们都常有,就是把自己的喜怒加之于别人,特别是怒和怨。加给谁呢?往往是加之于离自己最近的亲人。因为你加之于别人,别人也不接招啊,只有亲人之间,才会互相伤害。王阳明反对徐爱记录时说的。
微微微微神
·
2024-09-08 10:14
泽宇读书会,如何读好书
1:读首先我们看一本,不要一目了然,这样会得不到效果,所以我们要只字不差的大声朗读出来,我们可以按一个星期读完一本,如果有200页,可以每天读30页,你得到的信息量比你一目了然的
知识点
要多,要时刻提醒自己不要跳跃读
心语_1fd1
·
2024-09-08 09:29
《灵魂摆渡》系列
详解
1:赵吏的前世今生(上)
image01整个《灵魂摆渡》系列里,最具有故事性和传奇性的人物便是赵吏了。在单篇故事写完以后,最先想要写的便是他了。想要了解赵吏,就得先了解赵吏成为灵魂摆渡人之前的经历,毕竟赵吏这个名字是冥王取得。关于赵吏的前世今生,还要从他还是人类,名为无名时说起。五公子曾说过,第一次见赵吏时,是在五胡乱华时期,那时候的赵吏还是一个人类。那时候,他叫无名,是个僧人,也是个修行者。无名天生慧根,年纪轻轻便已大德
颜书影
·
2024-09-08 09:26
c++ 类的继承
详解
在C++中,类的继承是一种面向对象编程(OOP)的特性,允许创建一个新的类(派生类)从一个已有的类(基类)派生。通过继承,派生类可以重用基类的属性和行为,并且可以扩展或修改这些行为。继承是一种代码重用和扩展的机制,使得派生类能够继承基类的特性并添加或修改特性。1.继承的基本语法classBase{//基类的成员};classDerived:publicBase{//派生类的成员};在上面的示例中,
黄卷青灯77
·
2024-09-08 09:39
c++
开发语言
类的继承
兴成长,新启航
现在已经开学两周了,在教学中应用到了很多在这次培训课中学到的应用,用到最多的就是思维导图,可以很清晰明了地把
知识点
罗列出来,老师讲的清楚,学生听得明白,也按照培训课中老师交给
miss玥
·
2024-09-08 09:38
Java 并发集合:阻塞队列集合介绍
与此同时,本专栏的所有文章,也都会准备充足的代码示例和完善的
知识点
梳理,因此也十分适合零基础的小白和要准备工作面试的同
栗筝i
·
2024-09-08 09:38
栗筝i
的
Java
技术栈
#
Java
基础
栗筝i
的
Java
技术栈
Java基础
Java
并发
Java
集合
阻塞队列
线性代数 第五讲:线性方程组_齐次线性方程组_非齐次线性方程组_公共解同解方程组_
详解
线性方程组文章目录线性方程组1.齐次线性方程组的求解1.1核心要义1.2基础解系与线性无关的解向量的个数1.3计算使用举例2.非齐次线性方程的求解2.1非齐次线性方程解的判定2.2非齐次线性方程解的结构2.3计算使用举例3.公共解与同解3.1两个方程组的公共解3.2同解方程组4.方程组的应用5.重难点题型总结5.1抽象齐次线性方程组的求解5.1含有系数的非齐次线性方程组的求解及有条件求全部解问题5
小徐要考研
·
2024-09-08 08:36
线性代数
线性代数
线性方程组
机器学习
输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。
最小的K个数时间限制:1秒空间限制:32768K热度指数:585563本题
知识点
:数组高级算法算法知识视频讲解题目描述输入n个整数,找出其中最小的K个数。
Zorione
·
2024-09-08 08:33
算法题
剑指offer
算法
IPv4和IPv6组播MAC地址生成
详解
IPv4组播MAC地址(不包含IPv6组播,协议使用组播等),换算公式:高24位为0X01005e,第25位为0,后23位为IPv4组播地址的低23位。Eg:224.0.1.1对应组播MAC为:01-00-5e-00-01-01224.0.1.1000000000000000100000001=01-00-5e-00-01-01000101Eg:239.128.137.36100000001000
哈哈哈学习日记
·
2024-09-08 07:28
组播
网络
【关于车载测试的基础知识的认知
详解
】
目录一、目前车企的趋势1.电动化:2.自动驾驶技术:3.车联网(ConnectedCars):4.智能化和数字化:5.安全性:6.轻量化:7.个性化和定制化:8.供应链和制造创新:9.法规和政策:10.竞争格局变化:二、汽车域控的介绍1.动力域(PowertrainDomain):2.底盘域(ChassisDomain):3.车身域(BodyDomain):4.座舱域(CockpitDomain)
@逝水流年轻染尘@
·
2024-09-08 07:24
门控循环单元
车载系统
汽车
51单片机
无人机飞手执照:模拟训练技术
详解
随着无人机技术的飞速发展,其在航拍、农业、物流、救援等多个领域的应用日益广泛,对无人机飞手的技能与安全意识要求也随之提高。为了确保无人机操作的安全性与效率,获取无人机飞手执照成为专业从业者不可或缺的步骤。模拟训练作为执照考取过程中的重要环节,不仅能够降低真实飞行中的风险,还能有效提升飞手的操控技能与应急处理能力。本文将详细解析无人机飞手执照模拟训练的关键技术,涵盖模拟器选择与设置、基本飞行技能练习
无人机技术圈
·
2024-09-08 06:21
无人机技术
无人机
无人车搭载无人机技术
详解
无人车搭载无人机技术,是近年来智能交通与无人机技术深度融合的产物,旨在通过集成两者的优势,实现更加灵活、高效的作业能力。该技术将无人机作为无人车的一个可移动、多功能的传感器平台或执行器,通过协同工作,扩展无人车的信息获取范围、增强环境感知能力,并在复杂环境中执行精准的任务操作。该技术的实现依赖于高度集成的软硬件系统、高效的通信机制、先进的数据处理算法以及协同控制策略。通信机制无人车与无人机之间的有
无人机技术圈
·
2024-09-08 06:51
无人机技术
无人机
无人机电子调速器
详解
!!!
电子调速器是无人机动力系统中的关键组件,主要负责将电池提供的直流电转换为交流电,并精确控制电机的转速,从而实现对无人机飞行状态的精确控制。以下是对无人机电子调速器的详细解析:一、基本功能与原理功能:直流到交流的转换:将电池提供的直流电转换为电机所需的交流电。转速控制:根据飞行控制器的指令,精确调节电机的转速,实现无人机的加速、减速、悬停等飞行动作。保护功能:具备过流保护、过热保护等安全功能,防止电
云卓SKYDROID
·
2024-09-08 06:50
无人机
云卓科技
高科技
安全
Kafka高性能揭秘 —— sequence IO、PageCache、SendFile的应用
详解
大家都知道Kafka是将数据存储于磁盘的,而磁盘读写性能往往很差,但Kafka官方测试其数据读写速率能达到600M/s,那么为什么Kafka性能会这么高呢?首先producer往broker发送消息时,采用batch的方式即批量而非一条一条的发送,这种方式可以有效降低网络IO的请求次数,提升性能。此外这些批次消息会"暂存"在缓冲池中,避免频繁的GC问题。批量发送的消息可以进行压缩并且传输的时候可以
大数据学习与分享
·
2024-09-08 05:12
Kafka
kafka
大数据
java
网课被质疑2022-03-22
学生角度:希望马上学到新的与课程相关的
知识点
教师角度:希望学到终身受益的
知识点
反应问题:知识要在第一时间展开,在开课的关键时刻将关键内容。
通往幸福之路
·
2024-09-08 05:56
Modbus 协议
详解
1什么是modbus包含的内容?Modbus是一种通信协议,相当于机器之间经过一定规范的一种语言,它属于一种串行通信协议。包含三种协议modbus-RTU;modbus-ASCII;modbus-TCP大部分硬件都支持modbus-RTU协议,对数据在传输过程和接收过程格式的规定2modbus是用来干什么就是用来通信的,如果没有协议,发送一些数据例如0106,接收方不知道这些数据是干啥用的,所以协
念璐
·
2024-09-08 05:40
网络
TCP协议关于速率的优化机制-滑动窗口
详解
在上一章中,我们讲述了TCP协议在传输过程中的可靠性http://t.csdnimg.cn/BsImO,这里衔接上一篇文章继续讲,TCP协议的特性,TCP协议写完之后就写,Http和Https等内容吧1.滑动窗口这里的滑动窗口不是指算法里面的双指针那个滑动窗口,这个滑动窗口是为了在TCP协议传输过程中提高传输效率的。但是有了滑动窗口这个特性,也只是略微提高一下传输效率,因为TCP协议的可靠性已经注
渡月真白
·
2024-09-08 05:38
网络协议
tcp/ip
java-ee
Python制作快递查询系统,再一次感受到了Python的强大!_python开发快递小程序(1)
一、Python所有方向的学习路线Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的
知识点
汇总,它的用处就在于,你可以按照上面的
知识点
去找对应的学习资源,保证自己学得较为全面。
2401_84140302
·
2024-09-08 04:07
程序员
python
学习
面试
记录-小程序720°VR(跳转H5页面实现)
它使用
HTML5
、CSS3、JavaScript和WebGL构建,没有插件。)
久违的小技巧
·
2024-09-08 04:05
小程序
小程序
vr
javascript
详解
神策数据银行对公业务数字化运营解决方案
4.0时代,数字银行的转变主要体现在系统支持、数据管理、客户感知三个维度,希望通过改善业务体系、整合业务数据,从而为客户提供更好的服务。当前,多数银行已经拥有了较好的数据基础,但却并没有形成数据全生命周期的闭环,导致价值化数据占比较低,无法作为关键生产要素为企业注入新动能。在此背景下,数据全生命周期的闭环体系成为银行数字化运营的引擎,发挥数据中台和业务中台相辅相成、相互支撑的作用,构建以客户数据为
汪功校
·
2024-09-08 04:34
大数据
Docker的前世今生
核心
知识点
:1.Docker的构想:对应用的封装、分发、部署、运行的生命周期的管理,一次封装到处运行2.Docker的优点:一站式解决方案3.Docker由LXC演变而来,迟迟没有集成到Linux主流内核中阻碍了它的发展
weixin_30267697
·
2024-09-08 04:03
运维
操作系统
数据库
上一页
6
7
8
9
10
11
12
13
下一页
按字母分类:
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
其他