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
iOS-基础篇
Redis
基础篇
-002 初识Redis
1、认识NoSQL1.1概念NoSQL是一个非关系型数据库。常见的NoSQL有:Redis、MongoDB1.2NoSQL与SQL的区别类别SQLNoSQL数据结构结构化非结构化数据关联关联非关联查询方式SQL非SQL事务特性ACIDBASE存储方式磁盘内存扩展性垂直水平使用场景1)数据结构固定2)相关业务对数据安全性、一致性要求较高1)数据结构不固定2)对一致性、安全性要求不高3)对性能要求2、
HainesFreeman
·
2023-12-21 07:46
Redis
java
redis
数据库
缓存
MySQL——
基础篇
spm_id_from=333.999.0.0&vd_source=619f8ed6df662d99db4b3673d1d3ddcb前言✴️
基础篇
——MySQL概述、SQL、函数、约束、多表查询、事务进阶篇
小鱼0135
·
2023-12-21 06:27
MySQl
mysql
数据库
JAVA
基础篇
——网络通信
十八、网络编程实现网络通讯,设备中的程序与网络中其他设备中的程序进行数据交互java.net.*1.前置知识基本的通信架构:CS(Client客户端/Server服务端)、BS架构(Browser浏览器/Server服务端)CS:客户端需要程序员开发,用户需要安装;服务端也是需要程序员开发;二者要实现相互通信BS:客户端没有不需要开发,安装浏览器就行;服务端就需要程序员开发,在浏览器中访问注:都需
小鱼0135
·
2023-12-21 06:57
JAVA基础篇
java
开发语言
JAVA
基础篇
——JAVA高级(与框架有关的知识)
十九、JAVA高级1.单元测试针对最小的功能单元(方法),编写测试代码对其进行正确性测试。main方法进行单元测试的问题:只能在main里面调用别的方法进行测试无法自动化测试,一个方法失败会影响其他方法的测试无法获得测试报告,需要程序员自己去观察测试是否成功Junit单元测试框架第三方公司开源,开发工具已集成一键自动化测试生成测试报告Junit使用步骤导入Junit的jar包到项目(IDEA已集成
小鱼0135
·
2023-12-21 06:57
JAVA基础篇
java
开发语言
JAVA
基础篇
——集合
十三、集合1.概述存放数据的集合,底层是数组、链表或红黑树实现。因为应用场景的需求,Java提供了不同的接口以及实现类。集合中存储的是元素的地址信息。2.CollectionCollection是泛型接口,其集合体系如下图有序:元素存入顺序和取出顺序一致重复:可以放入相同元素在不同位置索引:能否通过索引操作集合中的元素publicclassCollectionTest1{publicstaticv
小鱼0135
·
2023-12-21 06:56
JAVA基础篇
java
开发语言
python第三方库有哪些常用的、请列举15个-你想要的Python面试都在这里了【315+道题】...
第一部分Python
基础篇
(80题)1、为什么学习Python?
weixin_37988176
·
2023-12-21 03:29
基础篇
-项目配置
关于Quarkus配置配置数据源,quarkus.datasource.参考:Datasources-Quarkus配置日志,quarkus.log.参考:Logging-Quarkus配置授权,quarkus.http.auth.参考:Authentication-Quarkus关于QuarkusDIQuarkusDI使用ArC,需要引用quarkus-arc,实现了大部分CDI标准,实现CDI
jimmyz81
·
2023-12-21 00:49
【
基础篇
】YOLO系列之数据划分和数据格式转换篇(全网最详细教程)
数据集选择在选择改进实验数据集时需要注意的一些关键点:数据集质量和准确性:确保数据集中的标签和边界框信息是准确的。错误的标签会导致模型学习不准确,难以泛化到新数据。⭐数据平衡⭐:尽量保持数据集中各个类别的样本数量平衡。不平衡的数据集可能导致模型对某些类别的性能较差。⭐领域适应⭐:如果您想要做小目标检测相关的实验,那需要选择VisDrone2019等小目标占比较多的公开数据集,确保数据集与目标领域相
w94ghz
·
2023-12-20 23:22
YOLOv8改进系列
YOLO改进系列
YOLO
python
人工智能
深度学习
【
基础篇
】YOLO系列之玩转数据集增强(平移、翻转、噪声、cutout、亮度)篇
数据增强数据增强(dataaugmentation)是在训练神经网络时对原始数据进行一系列变换操作以产生新的样本的技术。它在深度学习中具有重要的意义和重要性,主要体现在以下几个方面:扩充数据集:数据增强通过对原始数据应用不同的变换操作,可以生成更多、更多样化的训练样本。这样可以有效扩充原始数据集,增加训练样本的多样性和数量,从而减轻模型的过拟合问题。提高模型泛化能力:数据增强可以在不改变数据标签的
w94ghz
·
2023-12-20 23:52
YOLOv8改进系列
YOLO改进系列
YOLO
人工智能
深度学习
python
【Python
基础篇
】Python中运行shell 命令方法
在使用Python编写自动化脚本的时候,难免会需要执行一些基本的shell命令,而Python执行shell命令的方式有好几种,如果根据需要选择最适合的方式显得非常重要,这篇文章就来总结和对比一下几种常见的Python运行shell命令的方式。方法一:os.system()os.system()可以说是最为基本的运行shell命令的方式了,这个方法的特点就是直接运行命令,并将运行之后的状态值返回码
那么菜
·
2023-12-20 21:14
python
Java多线程核心技术一-多线程基础其他内容
接上篇:Java多线程核心技术一-
基础篇
synchronzied同步方法Java多线程核心技术一-
基础篇
synchronzied同步语句块1String常量池特性与同步问题JVM具有String常量池的功能
geminigoth
·
2023-12-20 14:39
java
java
开发语言
【Java
基础篇
】Java 图书管理系统详解
介绍图书管理系统是一种用于管理图书信息、借阅记录、用户信息等的软件系统。它可以帮助图书馆、书店或个人管理和组织图书资源,提供了方便的借阅和查询功能。在这篇博客中,我们将详细介绍如何使用Java编程语言创建一个简单的图书管理系统。功能需求在设计图书管理系统之前,我们首先需要明确系统应该具备的功能需求。以下是一个简单的功能列表:添加图书:管理员可以添加新的图书信息,包括书名、作者、出版社、ISBN号等
繁依Fanyi
·
2023-12-20 03:29
Java
进击高手之路
java
开发语言
数据库
python
windows
数据结构
eclipse
Python 图形化界面
基础篇
:使用弹出窗口和对话框
Python图形化界面
基础篇
:使用弹出窗口和对话框引言弹出窗口和对话框的用途使用Tkinter创建弹出窗口步骤1:导入Tkinter步骤2:创建主窗口步骤3:创建弹出窗口函数步骤4:添加按钮步骤5:启动主事件循环使用弹出窗口获取用户输入步骤
挣扎的蓝藻
·
2023-12-20 02:08
Python图形化界面基础篇
python
开发语言
图像化界面
Tkinter
大数据生态架构:探索未来科技的无限可能。
数据采集技术框架数据存储技术框架数据处理技术框架数据分析技术框架数据可视化技术框架数据安全技术框架数据治理技术框架数据应用技术框架数据服务技术框架2、大数据学习路线大数据生态学习路线图可以大体划分为七个阶段:第一阶段是入门知识学习,你需要掌握
基础篇
的知识体系
知识分享小能手
·
2023-12-19 22:54
大数据
架构
数据库
大数据
sql
学习
STM32Cube高效开发教程<
基础篇
>(十二)----ADC
本专栏博客参考《STM32Cube高效开发教程(
基础篇
)》,有意向的读者可以购买正版书籍辅助学习,本书籍由王维波老师、鄢志丹老师、王钊老师倾力打造,书籍内容干货满满。
致虚守静~归根复命
·
2023-12-19 20:09
stm32
单片机
嵌入式硬件
ADC
CubeMX
如何评价-Google-的-Fuchsia、Android、
iOS-
跨平台应用框架-Flutter
RN是一套概念/设计理念跨越两个平台,具体到实际平台上去还要去适配和桥接差异性(这其中有巨大的工程成本和性能牺牲,比如做动画,js就绝对不能用,用了性能就差了)。Flutter至少做到了一套代码(不涉及平台api层面的UI及纯事件响应可以完全一样)。Flutter相对来说是做到了跨平台。RN更适合称为:将一种设计理念延展到两个平台,不能称其为“一套代码,自动部署多平台”的跨平台方案。3.对未来的适
wqwq_22
·
2023-12-19 18:12
程序员
架构
移动开发
android
自学雅思
基础篇
有出国工作的打算,所以要考语言也就是雅思,还没有付诸实践,这篇文章主要是弄清楚雅思的一些基本情况。什么是雅思首先搜索“雅思”,发现雅思中国官网(https://www.chinaielts.org/),找到“什么是雅思”了解关于雅思的基本信息。在此之前,我对雅思的印象就是通常去美国留学的学生考托福,去英联邦留学的考雅思。查询之后才知道雅思有三类考试,雅思考试;用于英国移民及签证的雅思考试和雅思生活
charlie_hao
·
2023-12-19 17:36
【go语言实践】
基础篇
- 流程控制
if语句go里面if不需要括号将条件表达式包含起来,这与python也有点类似if条件表达式{}ifnum>18{//...}elseifnum>20{//...}else{//...}需要注意的是go支持在if的条件表达式中直接定义一个变量,变量的作用域只在if范围内,如:ifnum:=20;num>5{//...}这让我们一些场景可以便捷地存储中间变量switch语句go语言的switch分支
小蜜蜂爱编程
·
2023-12-19 12:29
go/golang基础及实践
golang
【go语言实践】
基础篇
-- go语言“包“的操作及函数基本格式
go语言包的概念所谓包,就是在不同的文件夹创建不同的go源文件,go的每一个文件都属于一个包,go是以包来管理文件和项目的。总结下来包主要有三个作用:区分相同名字的变量和函数当程序文件很多时可以很好地管理项目控制函数、变量等访问范围打包的语法:package+包名,也就是说,我们是在go文件中将本文件声明要打包packageutilfuncCalc(num1int,num2int)int{//..
小蜜蜂爱编程
·
2023-12-19 12:29
golang
开发语言
后端
Qt 文字描边(
基础篇
)
项目中有时需要文字描边的功能1.基础的绘制文字使用drawtext处理voidMainWindow::paintEvent(QPaintEvent*event){QPainterpainter(this);painter.setRenderHint(QPainter::Antialiasing,true);painter.setRenderHint(QPainter::SmoothPixmapTr
DaGod123
·
2023-12-19 07:24
qt
qt
开发语言
iOS底层学习之 —— objc4-781源码配置、编译流程
iOS底层学习之——objc4-781源码配置、编译流程暂时先推荐一篇大神的博客:
iOS-
底层原理03:objc4-781源码编译&调试
誓言_cf35
·
2023-12-19 07:22
Keil5软件使用-进阶工程配置篇
一、概述 本文面向已经懂得软件基本操作的职业老手,如果是未使用过该软件的小鲜肉,请移步
基础篇
。这里以STM32芯片为例对工具进行讲解,其他品牌的芯片在工程配置上可能存在差异。
iiCube
·
2023-12-19 04:52
STM32
单片机
stm32
嵌入式硬件
掌握iText:轻松处理PDF文档-
基础篇
关于iTextiText是一个强大的PDF处理库,可以用于创建、读取和操作PDF文件。它支持PDF表单、加密和签署等操作,同时支持多种字体和编码。maven的中央仓库中的最新版本是5.X,且iText5不是完全免费的,但是基础能力是免费使用的,不过需要遵循AGPLv3协议。iText7是iText5的后继版本,相比之下有更好的性能和更全面的PDF支持。在实际开发中,可以根据需求选择不同的iText
凡夫贩夫
·
2023-12-19 03:53
Java核心技术
Java
iText
pdf文档读写
iOS-
动画
iOS中实现动画效果的方法有很多,主要分为两类:uikit和coreanimation。今天先看uikit相关动画:一、block块动画最简单最基础的块动画+animateWithDuration:animations:若干参数的块动画时长、延迟动画时间、动画块、完成块+animateWithDuration:delay:options:animations:completion://1.常规动画
温柔vs先生
·
2023-12-18 19:38
回溯算法专栏一《理论
基础篇
》
什么是回溯法回溯法也可以叫做回溯搜索法,它是一种搜索的方式。回溯法通常以递归的方式实现,可以说回溯是递归的副产品,只要有递归就会有回溯。在递归的过程中,会不断地尝试各种选择,然后根据问题的要求进行条件判断,从而决定是继续向下探索还是进行回溯。当所有的选择都被尝试过,或者已经找到问题的解决方案时,回溯过程结束。回溯法的效率回溯法的性能如何呢,这里要和大家说清楚了,虽然回溯法很难,很不好理解,但是回溯
编程小猹
·
2023-12-18 15:34
数据结构与算法
算法
回溯法
树形结构
看完阿里技术官最新总结12W字Java面试宝典,简直吊打面试官!!!
有想获取完整版JAVA面试宝典的小伙伴看文末详细内容
基础篇
JVM篇多线程&并发篇Spring篇
阿里官方架构师
·
2023-12-18 10:23
Java
程序人生
java
面试
尚硅谷Docker笔记-
基础篇
B站视频:https://www.bilibili.com/video/BV1gr4y1U7CY1.Docker简介解决了运行环境和配置问题的软件容器方便做持续集成并有助于整体发布的容器虚拟化技术容器与虚拟机比较Docker容器是在操作系统层面上实现虚拟化,直接复用本地主机的操作系统,而传统虚拟机则是在硬件层面实现虚拟化。与传统的虚拟机相比,Docker优势体现为启动速度快、占用体积小。比较Doc
Shinka-深深
·
2023-12-18 10:17
Docker
docker
笔记
容器
iOS开发逆向之循环选择指针(上)
本文的主要目的是理解汇编中全局变量、常量的存储,以及如何将if、while等汇编代码还原成高级代码全局变量在这之前首先需要了解内存的分区,对这块不是特别清晰的,建议看看
iOS-
底层原理:内存五大区,下面进行一个简单的汇总说明代码区
iOS鑫
·
2023-12-18 02:28
20180926_help
1.认识这个词(
基础篇
)词:help英英释义:tomakeasituationbetter,easier,orlesspainful例句:Governmentsubsidycannotsolvetheproblem
依然良生
·
2023-12-18 01:30
深度学习
基础篇
之Batch_Size
1.Batch_size、epoch、iteration之间的关系?2.为什么需要batch_size?整个数据集训练的话,损失肯定是最稳定的,但是数据太大时内存显存大小无法满足要求,计算得到的梯度差别较大,无法找到一个全局的学习率满足所有的梯度的变化3.如何选取batch_size?对于小数据集而言,可以采用全数据集,训练稳定,都是整体的梯度下降方向,但是不同的梯度值差别较大,难以获得一个全局学
qq_45692660
·
2023-12-18 00:59
深度学习面经
深度学习
深度学习
基础篇
之标准化与归一化
1.为什么需要归一化?加快网络的收敛,避免出现梯度弥散2.归一化与标准化的区别?同:都是一种线性变化,都是按照比例在进行缩放与偏移不同:归一化是将数据归一化到[-1,1]或者[0,1]的分布,由变量的极值决定其缩放。标准化是将数据转化为均值为零当差为1的正态分布3.为什么需要进行归一化或者是标准化?加速训练(结合激活函数及其梯度进行阐述),0与100与0与10之间的区别,转换到相同的特征空间4.归
qq_45692660
·
2023-12-18 00:59
深度学习基础
深度学习面经
深度学习
docker
基础篇
-----04-----命令添加容器数据卷、dockerfile添加容器数据卷、容器间数据卷共享(--volumes-from)
参考文章:【学习笔记】尚硅谷周阳老师的Docker教程学习笔记。一容器数据卷1.容器数据卷(1)什么是容器数据卷容器删除后数据自然也就没有了,所以用卷来保存数据。容器数据卷功能是持久化和数据共享。卷就是目录或文件,存在于一个或多个容器中,由docker挂载到容器,但不属于联合文件系统,因此能够绕过UnionFileSyste提供一些用于持续存储或共享数据的特性。(2)容器数据卷的特点1)数据卷可以
Mango酱
·
2023-12-18 00:17
docker
docker
容器
运维
【MySQL学习之
基础篇
】多表查询
文章目录1.多表关系1.1.一对多1.2.多对多1.3.一对一2.多表查询概述2.1.数据准备2.2.概述3.查询的分类3.1.内连接查询3.2.外连接查询3.3.自连接3.3.1.自连接查询3.3.2.联合查询3.4.子查询3.4.1.概述3.4.2.标量子查询3.4.3.列子查询3.4.4.行子查询3.4.5.表子查询3.4.6.多表查询案例摘要:之前在讲解SQL语句的时候,讲解了DQL语句,
Cpdr
·
2023-12-17 19:39
MySQL学习
mysql
学习
【MySQL学习之
基础篇
】实务
文章目录1.事务简介2.事务操作2.1.未控制事务2.2.控制事务一2.3.控制事务二3.事务四大特性4.并发事务引发的问题5.事务隔离级别1.事务简介 事务是一组操作的集合,它是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败。 就比如:张三给李四转账1000块钱,张三银行账户的钱减少1000,而李四银行账户的钱
Cpdr
·
2023-12-17 19:39
MySQL学习
mysql
学习
android
蓝桥杯真题——01背包问题(java详解)
动态规划算法详解
基础篇
-CSDN博客动态规划算法详解进阶篇-CSDN博客01背包问题例题引入有N件物品和一个容量是V的背包。每种物品只有一件。第i件物品的体积是V[i],价值是W
王木木很酷_
·
2023-12-17 17:34
leetcode刷题练习
蓝桥杯
算法
java
数据结构
开发语言
01背包问题
[引擎开发] 深入GPU和渲染优化(
基础篇
)
GPU/渲染优化是引擎开发中非常重要的一个环节,实际上在工程中做任何渲染相关的内容,都需要考虑到背后的原理和性能。另一方面,GPU/渲染优化是一个非常宽泛的课题,它不仅涉及到针对底层GPU的架构做出的相关优化,图形API的设计和使用的优化,也会涉及到CPU中渲染数据准备的优化,或者shader编写的优化等多方面的内容。[本文大纲]基础概念GPU架构概述带宽ALUSIMD显存流程控制像素填充率IMR
ZJU_fish1996
·
2023-12-17 16:48
引擎
[引擎开发] 深入GPU和渲染优化(进阶篇)
[引擎开发]深入GPU和渲染优化(
基础篇
)_quadoverdraw-CSDN博客在上述的
基础篇
中,我们对各种概念做了一个简单的介绍,在此篇文章中,我们将做更进一步的讲解。
ZJU_fish1996
·
2023-12-17 16:45
引擎
图形渲染
Day110-embark on
1.认识这个词(
基础篇
)词:embarkon英英释义:tostartanewprojectoractivity,usuallyonethatwillbedifficultandwilltaketime例句
jiangyuxuan
·
2023-12-17 09:26
今天面了个腾讯拿 38K 出来的,让我见识到了基础的天花板
这份总结内容涵盖极广,包含了14个技术栈:
基础篇
JVM篇多线程&并发篇Spring篇My
沅沅说python
·
2023-12-17 09:57
2.electron之纯原生js/jquery的桌面应用程序(应用篇)
在上一篇文章《electron之纯原生js/jquery的桌面应用程序(
基础篇
)》中,Mac上运行Ele
前端加油站
·
2023-12-17 08:03
electron
javascript
electron
桌面应用
1.electron之纯原生js/jquery的桌面应用程序(
基础篇
)
如果可以实现记得点赞分享,谢谢老铁~Electron是一个使用JavaScript、HTML和CSS构建桌面应用程序的框架。Electron将Chromium和Node.js嵌入到了一个二进制文件中,因此它允许你仅需一个代码仓库,就可以撰写支持Windows、macOS和Linux的跨平台应用。一.准备工作1.确保已在您的开发环境中安装了Node.js和npm(Node.js包管理器)。2.创建一
前端加油站
·
2023-12-17 08:31
electron
javascript
electron
桌面应用
Java面试题1:Java
基础篇
1、什么是面向对象?面向对象和面向过程的区别?答:面向对象是一种万物皆对象的编程思想,任何物体都可以归为一类事物,而一个个个体都是一类事物的实例。面向对象的编程是以对象为中心,以消息为驱动的。区别:①编程思路不同:面向过程以实现功能的函数开发为主,面向对象是首先抽象出类、属性及其方法,然后通过实例化、执行方法来完成功能。②封装性:都具有封装性,但是面向过程是封装的是功能,而面向对象封装的是数据和功
程序员洲洲
·
2023-12-17 06:24
Java
java
面试
c#
这一篇就够了!全套SpringBoot教程02
SpringBoot运维实用篇
基础篇
发布以后,看到了很多小伙伴在网上的留言,也帮助超过100位小伙伴解决了一些遇到的问题,并且已经发现了部分问题具有典型性,预计将有些问题在后面篇章的合适位置添加到本套课程中
即兴小索奇
·
2023-12-17 04:36
java
笔记
java
java-ee
spring
springboot
全套SpringBoot讲义01
hello,我是小索奇,全套SpringBoot教程~一起来学习叭文章目录SpringBoot文档更新日志前言课程内容说明课程前置知识说明SpringBoot
基础篇
JC-1.快速上手SpringBootJC
即兴小索奇
·
2023-12-17 04:34
java
笔记
mybatis
java
java-ee
spring
目标检测YOLO系列从入门到精通技术详解100篇-【目标检测】机器视觉(
基础篇
)(十三)
目录前言几个高频面试题目人工智能,机器学习,计算机视觉之间的关系知识储备计算机视觉、计算机图像学、图像处理基础知识光学棱镜
格图素书
·
2023-12-17 04:03
目标检测
YOLO
人工智能
Python超详细
基础篇
全文分为两大部分,分别是Python基础语法和面向对象。第一部分Python基础语法看完这篇文章,你的Python基础就差不多了(一)第一部分Python基础语法1.认识Python1.1Python简介Python的创始人为吉多·范罗苏姆(GuidovanRossum)。Python的设计目标:一门简单直观的语言并与主要竞争者一样强大开源,以便任何人都可以为它做贡献代码像纯英语那样容易理解适用于
zhangtaishan1
·
2023-12-17 03:26
2、Opencascade基础类分析(含代码示例)【
基础篇
】
Opencascade基础类分析(含代码示例)一基础类概述1.1根类组件根类是基本的数据类型和类,其他所有类都根据此建立的.根类在Standard和MMgt两个包中实现。基本类型(C++中的基本类型)动态对象的安全处理(自动析构不再使用的对象)可设置的内存优化管理器(改善常用动态对象的程序性能)run-time类型信息扩展机制异常管理C++中流的封装1.2串类组件用于处理动态大小的字符序列,可以通
sswai
·
2023-12-17 02:22
OpenCasCade
c++
算法
开发语言
通识教育
今天我在618买的书《吴军数学通史讲义》已经到了,价格比较贵99元一本,如果没打折我估计不会舍得买,看了一下目录分
基础篇
,数字篇,几何篇,代数篇,微积分篇,概率和数理统计篇及终篇。看目录
干柠檬
·
2023-12-17 00:35
掌握iText:轻松处理PDF文档-高级篇-添加水印
掌握iText:轻松处理PDF文档-
基础篇
掌握iText:轻松处理PDF文档-进阶篇需求描述可能你会经常遇到类似的场景,为了保护敏感信息和版权,需要在PDF文件上添加水印,在类
凡夫贩夫
·
2023-12-16 23:20
Java核心技术
iText
添加水印
pdf文档
java
元数据写入与读取
后端
pdf文档处理
『App自动化测试之Appium
基础篇
』| Desired Capabilities详解与使用
App自动化测试之Appium
基础篇
』|DesiredCapabilities详解与使用1关于appiumdriver2安装appiumdriver3安装AppiumPythonClient4安装测试对象
虫无涯
·
2023-12-16 22:56
#
Appium
appium
移动端自动化测试
app自动化
上一页
14
15
16
17
18
19
20
21
下一页
按字母分类:
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
其他