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
WebBrowser使用详解
SpringBoot - @ConditionalOnProperty注解
使用详解
写在前面在开发基于SpringBoot框架的项目时,会用到下面的条件注解,有时会有需要控制配置类是否生效或注入到Spring上下文中的场景,可以使用@ConditionalOnProperty注解来控制@Configuration的注解是否生效。实现原理@ConditionalOnProperty通过havingValue与配置文件中的值进行对比,如果对比值返回TRUE则配置类生效,反之失效。Sp
cloneme01
·
2023-10-16 02:45
SpringBoot
spring
boot
java
Jmeter之Bean shell
使用详解
一、什么是BeanShellBeanShell是一种完全符合Java语法规范的脚本语言,并且又拥有自己的一些语法和方法;BeanShell是一种松散类型的脚本语言(这点和JS类似);BeanShell是用Java写成的,一个小型的、免费的、可以下载的、嵌入式的Java源代码解释器,具有对象脚本语言特性,非常精简的解释器jar文件大小为175k。BeanShell执行标准Java语句和表达式,另外包
软件测试曦曦
·
2023-10-15 22:03
自动化测试
软件测试工程师
软件测试
jmeter
自动化测试
软件测试
功能测试
职场和发展
程序人生
c语言下标运算符的概念,C语言下标运算符([])
所以能不能将对MavenC++partition_copy(STLpartition_copy)算法
使用详解
//Usingpartition_copy()tofindvaluesabove
懒惰的胖达
·
2023-10-15 17:05
c语言下标运算符的概念
前端基础二:fromData
使用详解
介绍把属性和属性值进行数组结合,高效传输FormData的主要用途有两个:1、将form表单元素的name与value进行组合,实现表单数据的序列化,从而减少表单元素的拼接,提高工作效率。2、异步上传文件(想了解为什么常用formData传输文件的原因,请移步常用Formdata对象来上传图片的原因)1、创建一个空对象://通过FormData构造函数创建一个空对象varformdata=newF
码路老默007
·
2023-10-15 16:22
vue
前端基础
工作
前端
Linux查看网络连接情况ss,Linux网络状态工具netstat和ss
使用详解
Netstat简介Netstat可用于列出系统所有的网络套接字连接信息,包括处于监听状态的套接字信息。语法netstat[--tcp|-t][--udp|-u][--raw|-w][--listening|-l][--all|-a][--numeric|-n][--extend|-e[--extend|-e]][--program|-p]常用选项-t:tcp协议相关;-u:udp协议相关;-w:r
要努力的子健
·
2023-10-15 13:09
Linux查看网络连接情况ss
Hive基础和
使用详解
文章目录一、启动hive1.hive启动的前置条件2.启动方式一:hive命令3.方式二:使用jdbc连接hive二、Hive常用交互命令1.hive-help命令2.hive-e命令3.hive-f命令4.退出hive窗口5.在hive窗口中执行dfs-ls/;三、Hive语法1.DDL语句1.1创建数据库1.2两种方式查询数据库1.3显示数据库信息1.4切换数据库1.5修改数据库配置信息1.6
三月枫火
·
2023-10-15 12:03
Linux
大数据
hive
大数据
hadoop
【微服务】springboot整合neo4j
使用详解
一、前言在上一篇我们详细了解了neo4j的使用,从搭建到相关的语法操作,本篇紧接着之前的内容,来详细聊聊如何在springboot应用中集成和使用neo4j。二、SpringDataNeo4j和很多其他的中间件类似,都提供了类似jpa的方式与springboot进行集成,比如大家熟悉的springdata-jpa,操作es的jpa,操作mongo的jpa等,而Neo4j也提供了与springboo
逆风飞翔的小叔
·
2023-10-15 12:00
图数据库
微服务架构与设计
neo4j
spring整合neo4j
java使用neo4j
hive 函数
使用详解
一、前言在任何一种编程语言中,函数可以说是必不可少的,像mysql、oracle中,提供了很多内置函数,或者通过自定义函数的方式进行定制化使用,而hive作为一门数据分析软件,随着版本的不断更新迭代,也陆续出现了很多函数,以满足日常数据查询与分析的各种场景。二、hive函数概述Hive内建了不少函数,用于满足用户不同使用需求,提高SQL编写效率,查看hive的函数,可以通过下面的方式:1、show
逆风飞翔的小叔
·
2023-10-15 12:59
大数据
运维工具
hive入门到精通
hive函数使用详解
hive内置函数
hive自定义函数
hive聚合函数
hive中各类函数使用
【大数据Hive】hive select 语法
使用详解
目录一、前言二、Hiveselect完整语法树三、Hiveselect操作演示3.1数据准备3.1.1创建一张表3.1.2将数据load加载到t_usa_covid19表3.1.3再创建一张分区表3.1.4使用动态分区插入数据3.2select常用语法3.2.1查询所有字段或者指定字段3.2.2查询匹配正则表达式的所有字段3.2.3查询当前数据库3.2.4查询使用函数3.2.5使用函数3.3dis
逆风飞翔的小叔
·
2023-10-15 12:57
大数据
微服务架构与设计
hive查询语法使用
hive查询总结
hive
关联查询
hive查询语法总结
hive查询
C语言sizeof与数组中的
使用详解
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、sizeof常见的使用方法:二、sizeof在数组的
使用详解
:总结前言提示:以下是本篇文章正文内容,下面案例可供参考一、sizeof
被生活无数次按在地上摩擦
·
2023-10-15 09:14
C语言sizeof函数
c语言
c#
c++
ADB安装及
使用详解
(非常详细)从零基础入门到精通,看完这一篇就够了
一、ADB简介1、什么是adbADB全称为AndroidDebugBridge,起到调试桥的作用,是一个客户端-服务器端程序。其中客户端是用来操作的电脑,服务端是Android设备。ADB也是AndroidSDK中的一个工具,可以直接操作管理Android模拟器或者真实的Android设备。2、为什么要用adb运行设备的shell(命令行)管理模拟器或设备的端口映射计算机和设备之间上传/下载文件可
程序员_大白
·
2023-10-15 08:38
程序员
网络安全
互联网
adb
sql case when用法
CASEWHEN条件表达式函数常用场景场景1:简单条件使用场景2:多目标字段统计场景3:经典行转列,并配合聚合函数做统计场景4:CASEWHEN中使用子查询场景5:结合max聚合函数CASEWHEN函数语句多条件下
使用详解
简单
ps酷教程
·
2023-10-15 05:20
#
mysql
mysql
RabbitMQ底层原理及安装
使用详解
1.RabbitMQ原理概述2.RabbitMQ安装和管理3-1.Direct(直接交换器)4.消息发布时的权衡5.消息消费时的权衡6.消息消费的拒绝
MOOKA程序媛
·
2023-10-14 21:08
MQ
rabbitmq
java
erlang
中间件
分布式
python简单的病毒编程代码,如何用python做恶搞病毒
fromctypesimport*import
webbrowser
importtkinterastkimportrandomimportthreadin
小发猫
·
2023-10-14 15:19
小发猫
Lambda 表达式
使用详解
,一篇文章手把手教会你
目录1.Lambda表达式有什么用?2.匿名内部类举例3.Lambda表达式的标准格式与使用4.Lambda表达式使用注意点5.什么是函数式接口?6.Lambda表达式的省略写法7.Lambda表达式省略写法简单展示1.Lambda表达式有什么用?Lambda表达式在实际开发中主要目的往往是用来简化匿名内部类的书写。我们知道,有些方法中的参数需要传递接口的实现类对象,假如说我们为了传递类对象而单独
程序猿ZhangSir
·
2023-10-14 13:28
排序算法
java
算法
CSS Modules - CSS模块化
参考文章:CSSModules用法教程-阮一峰cssmodulecss模块化及CSSModules
使用详解
背景-CSS模块化CSS模块化的解决方案有很多,但主要有两类:一类是彻底抛弃CSS,使用JS或JSON
嘻嘻嘿嘿哈哈
·
2023-10-14 12:16
#
CSS
css
webpack
javascript
通过
webbrowser
获取网页中的超链接地址
c#通过
webbrowser
获取网页中的超链接地址[新浪ViVi][百度搜藏][QQ书签][作者:佚名|点击数:1075|时间:2010-2-1]【大中小】代码如下stringlink_url=
webBrowser
1
wq1282
·
2023-10-14 09:03
webbrowser
string
object
command
function
文档
vb获取网页的所有元素
2008-12-1122:20vb获取网页的所有元素原来获取网页的所有元素是这么简单:DimtheHTMLAsNewHTMLDocumentSettheHTML=wb.document'wb=ActiveX
WebBrowser
'theHTML.All
wq1282
·
2023-10-14 09:33
VB源码
vb
webbrowser
string
microsoft
function
object
WebBrowser
打印设置,打印预览,去页眉和页脚
WebBrowser
是IE内置的浏览器控件,无需用户下载.一、
WebBrowser
控件二、WebBrowder控件的方法//打印
WebBrowser
1.ExecWB(6,1);//打印设置
WebBrowser
1
ok060
·
2023-10-14 07:17
前端
第四篇Android--TextView
使用详解
TextView是View体系中的一员,继承自View,用于在界面中展示文字。基本用法:1.设置点击事件:findViewById(R.id.textview).setOnClickListener(v->{Toast.makeText(getApplicationContext(),"click",Toast.LENGTH_SHORT).show();});2.设置文字颜色1):android:
niuyongzhi
·
2023-10-14 07:13
Android开发从基础到高级
android
Android Studio中的EditText控件
使用详解
,android开发前景
运行应用就会看到如下的效果:看看吧,简洁明了还不用新增一个TextView说明,也不影响用户操作。上面列出了空白时的提示文字,有的人说了,我不想要这个灰色的提示文字,和我的应用整体风格不协调,那也行啊,我们可以换颜色,怎么换呢,就是通过android:textColorHint属性设置你想要的颜色。修改main.xml如下:Xml代码运行程序效果如下:看到了吧,颜色已经变了。。还有一个比较实用的功
m0_64382868
·
2023-10-14 07:12
程序员
面试
android
移动开发
Android Studio中的EditText控件
使用详解
,整理几个重要的Android知识
二:EditText简介EditText是一个非常重要的组件,可以说它是用户和Android应用进行数据传输窗户,有了它就等于有了一扇和Android应用传输的门,通过它用户可以把数据传给Android应用,然后得到我们想要的数据。EditText是TextView的子类,所以TextView的方法和特性同样存在于EditText中,具体的TextView的介绍可以参考上一节Android系列教程
m0_64604178
·
2023-10-14 07:12
程序员
面试
移动开发
android
Android Studio中的EditText控件
使用详解
注意看软键盘,已经变成拨号专用的啦.有时候我们只想输入数字,不想输入字母,EditText为我们提供了android:numeric来控制输入的数字类型,一共有三种分别为integer(正整数)、signed(带符号整数)和decimal(浮点数)。这里以signed类型的为例,修改main.xml如下:Xml代码运行效果如下:注意这里的软键盘变成“数字键盘”的变化.五:为文本指定特定的软键盘类型
Android高级
·
2023-10-14 07:12
Android
经验分享
面试
android
EditText
使用详解
-EditText基础说明
一:新建HelloEditText工程新建一个Helloworld详细步骤可以参见Android教程之三:第一个Android应用,HelloWorld创建设置如下:Projectname:HelloEditTextBuildTarget:android2.2Applicationname:HelloEditTextPackagename:com.flysnowcreateActivity:Hel
郭风朴
·
2023-10-14 07:06
Android常用类总结
android
EditText
详解
必看
基础
Vue:关于Vue.prototype、Vue.component和Vue.use的
使用详解
目录Vue.prototype1.基本示例2、为实例prototype设置作用域3、注册和使用全局`变量`4.原型方法的上下文5.应用示例5.1引入axiosVue.component(注册或获取全局组件)1、局部组件1.1写组件文件1.2局部引入组件并使用1.3小结2、全局组件Vue.use(plugin)(使用插件)1、参数为函数2、参数为对象3、Vue.use()的源码三者的区别1、Vue.
Litt_White
·
2023-10-14 00:24
Vue
vue.js
javascript
前端
最全的jquery--datatables--API
使用详解
分别导入css和js文件加载Html代码$(document).ready(function(){$('#example').dataTable();});表单Html代码FirstnameLastnameCityDate问题:有时提示找不到datatable方法原因window.onload必须等到页面内包括图片的所有元素加载完毕后才能执行。$(document).ready()是DOM结构绘制
weixin_30484247
·
2023-10-13 22:21
json
javascript
php
ViewUI
最全的jquery datatables api
使用详解
分别导入css和js文件加载$(document).ready(function(){$('#example').dataTable();});表单FirstnameLastnameCityDate问题:有时提示找不到datatable方法原因window.onload必须等到页面内包括图片的所有元素加载完毕后才能执行。$(document).ready()是DOM结构绘制完毕后就执行,不必等到加
和代码去流浪
·
2023-10-13 22:12
#
前端框架--js与jquery
jquery
datatables
api
调整
WebBrowser
的默认浏览器内核版本
原文出自:https://my.oschina.net/Tsybius2014/blog/492107注:这个是写.net控件,其实delphi是一样的。作者已经写的比较全面了,我只是做了一点修改当前浏览器使用的内核,可以通过访问下面这个网站获取:http://ie.icoa.cn/我的IE版本为IE8,在使用IE登录页面的时候,使用的内核是IE8,登录该网站的截图如下:但是当我用WebBrows
weixin_30483013
·
2023-10-13 17:58
WebBrowser
控件默认使用IE9,IE10的方法
最近为了抓取淘宝的成交数据,用C#的
WebBrowser
控件开发了一个简单的程序.发现
WebBrowser
控件默认使用的版本是IE7的兼容模式.而淘宝的宝贝详细页居然对IE7的支持不是很好.成交记录无法显示
朱朱朱先森的博客
·
2023-10-13 17:21
Delphi
SpringBoot自带模板引擎Thymeleaf
使用详解
②
目录一、条件判断和迭代遍历1.1条件判断2.2迭代遍历二、获取域中的数据和URL写法2.1获取域中的数据2.2URL写法三、相关配置一、条件判断和迭代遍历1.1条件判断语法作用th:if条件判断准备数据model.addAttribute("sex","男");使用实例这是女生这是男生运行结果:当然还有th:case也是相当于Java中的switch添加数据model.addAttribute("
会洗碗的CV工程师
·
2023-10-13 15:46
SpringBoot
spring
boot
后端
java
thymeleaf
php和js调试,JS调试
使用详解
这次给大家带来JS调试
使用详解
,JS调试的注意事项有哪些,下面就是实战案例,一起来看一下。试想一下:出现了某个bug,有人用几分钟就搞定了,有人用了半天或者一天都找不到原因所在。
大涛讲软考
·
2023-10-13 14:21
php和js调试
【实训日志】Django中urls.py的
使用详解
URL是Web服务的入口,用户通过浏览器发送过来的任何请求,都是发送到一个指定的URL地址,然后被响应。在Django项目中编写路由,就是向外暴露我们接收哪些URL的请求,除此之外的任何URL都不被处理,也没有返回。通俗地理解,不恰当的形容,URL路由是你的Web服务对外暴露的API。Django奉行DRY主义,提倡使用简洁、优雅的URL,没有.php或.cgi这种后缀,更不会单独使用0、2097
syahfozy
·
2023-10-13 11:56
实训日志
python aiohttp_python aiohttp的
使用详解
1.aiohttp的简单使用(配合asyncio模块)importasyncio,aiohttpasyncdeffetch_async(url):print(url)asyncwithaiohttp.request("GET",url)asr:reponse=awaitr.text(encoding="utf-8")#或者直接awaitr.read()不编码,直接读取,适合于图像等无法编码文件pr
weixin_39581945
·
2023-10-13 09:55
python
aiohttp
validator库的
使用详解
目录基本使用前言请求模型的定义编写接口及测试翻译校验错误提示信息自定义错误提示信息的字段名自定义校验规则常见的参数校验字段基本使用前言在做API开发时,需要对请求参数的校验,防止用户的恶意请求。例如日期格式,用户年龄,性别等必须是正常的值,不能随意设置。以前会使用大量的if判断参数的值是否符合规范,现在可以使用validator库来进行参数校验。我们只需要在结构体的Tag中添加validator标
N-1-萘乙基二胺盐酸盐
·
2023-10-13 04:09
Go语言
gin框架
validator
go语言
后端
java jni 手册_Java中JNI的
使用详解
第二篇:JNIEnv类型和jobject类型的解释
上一篇说的是一个简单的应用,说明JNI是怎么工作的,这一篇主要来说一下,那个本地方法sayHello的参数的说明,以及其中方法的使用首先来看一下C++中的sayHello方法的实现:JNIEXPORTvoidJNICALLJava_com_jni_demo_JNIDemo_sayHello(JNIEnv*env,jobjectobj){coutFindClass("java/lang/String
发条粽子
·
2023-10-12 13:07
java
jni
手册
[UE C++] Delegate
使用详解
[UEC++]Delegate
使用详解
前言:本文介绍了Delegate的使用方法,内容我认为比较全面,认真读完绝对会有收获,但并没有对其实现原理进行深入剖析,读者可以查阅这些文章对Delegate的原理进行深入了解一文理解透
MustardJim
·
2023-10-12 09:58
UE
C++
基础内容
c++
ue4
ue5
Sentry 监控 - Snuba 数据中台架构(Data Model 简介)
Sentry-CLI-创建版本快速使用Docker上手Sentry-CLI-30秒上手SourceMapsSentryForReact完整接入详解SentryForVue完整接入详解Sentry-CLI
使用详解
为为少
·
2023-10-12 09:50
数据库
大数据
java
python
编程语言
Sentry 监控 - Snuba 数据中台架构(Query Processing 简介)
Sentry-CLI-创建版本快速使用Docker上手Sentry-CLI-30秒上手SourceMapsSentryForReact完整接入详解SentryForVue完整接入详解Sentry-CLI
使用详解
为为少
·
2023-10-12 09:50
数据库
python
java
大数据
mysql
2023全网最全requests库和requests模块
使用详解
(建议收藏)
一、requests简介#简介:使用requests可以模拟浏览器的请求,比起之前用的urllib,requests模块的api更加便捷(本质就是封装了urllib3)#注意:requests库发送请求将网页内容下载下来以后,并不会执行js代码,这需要我们自己分析目标站点然后发起新的request请求#安装:pip3installrequests#各种请求方式:常用的就是requests.get(
自动化测试老司机
·
2023-10-11 17:24
安全测试
软件测试
自动化测试
python
压力测试
安全性测试
功能测试
测试工具
软件测试
Vue中axios
使用详解
一:axios定义axios是什么:axios它是基于promise的http库,可运行在浏览器端和node.js中,然后作者尤雨溪也是果断放弃了对其官方库vue-resource的维护,直接推荐axios库axios的作用:axios主要是用于向后台发起请求的,还有在请求中做更多是可控功能。具备以下特征:a.从浏览器中创建XMLHttpRequestb.从node.js发出http请求c.支持P
samllplum
·
2023-10-11 13:55
Vue基础
Oracle impdb和expdb命令
使用详解
1、创建目录查询目录:SELECT*FROMdba_directories;创建目录:createdirectorydump_diras'D:\backup';2、给命名空间授权GRANTREAD,WRITEONDIRECTORYDUMP_DIRtogeobase;3、impdb和expdb命令语法#2、expdp导出2.1、按用户导出expdpsystem/system@orcldirector
druigang
·
2023-10-11 12:35
Oracle
Java并发工具CountDownLatch
使用详解
本文目录1、使用场景2、使用介绍3、使用案例4、Thread.join()和CountDownLatch的区别1、使用场景通过使用CountDownLatch可以使当前线程阻塞,等待其他线程完成给定任务。可以类比旅游团导游要等待所有的游客到齐后才能去下一个景点。CountDownLatch主要应用场景:一个线程等待多个线程完成给定任务后,然后执行后续的操作的场景。2、使用介绍CountDownLa
warybee
·
2023-10-11 09:13
JavaSE
java
CountDownLatch
KeilC51
使用详解
:第四章 Keil C51高级编程
第四章KeilC51高级编程本章讨论以下内容:l绝对地址访问lC与汇编的接口lC51软件包中的通用文件l段名转换与程序优化第一节绝对地址访问C51提供了三种访问绝对地址的方法:1.绝对宏:在程序中,用“#include”即可使用其中定义的宏来访问绝对地址,包括:CBYTE、XBYTE、PWORD、DBYTE、CWORD、XWORD、PBYTE、DWORD具体使用可看一看absacc.h便知例如:r
conanyang
·
2023-10-11 07:36
--
51单片机
====
知识库
====
--
开发工具
====
软件库
====
c
编程
汇编
initialization
优化
编译器
ios开发---URL Schemes
使用详解
-app协议
用原生iOS的人分两种,懂URLSchemes的和不懂的。前者是「魔法师」,后者是「麻瓜」。URLSchemes应用在iOS上已经很久了。对于使用者来说,在沙盒机制下的iOS中,如果想做到一定程度上的自动化就不可避免地要用到URLSchemes。但因为URLSchemes的使用方式不像传统iOS使用者接触到的图形界面那样可以直观地点来点去,造成了对它有兴趣的人(尤其是对英文有恐惧的人)一定程度上理
liu__software
·
2023-10-11 02:41
互联网
app协议
idea启动项目提示windows找不到chrome,请确认文件路径解决方案
1.在桌面找到对应浏览器,右键属性,复制目标地址2.打开IDEA依次选择file--settings--tools---
webbrowser
s3.路径后输入第一步复制的目标地址,确定即可
indulge敻
·
2023-10-11 02:23
windows
idea
chrome
Python图形界面框架PyQt5
使用详解
概要使用Python开发图形界面的软件其实并不多,相对于GUI界面,可能Web方式的应用更受人欢迎。但对于像我一样对其他编程语言比如C#或WPF并不熟悉的人来说,未必不是一个好的工具。常见GUI框架PyQt5:Qt是一个跨平台的C++图形用户界面库。QT一度被诺基亚拥,后出售给芬兰的软件公司DigiaOyj。PyQt5是基于Digia公司Qt5的Python接口,由一组Python模块构成。PyQ
Rocky006
·
2023-10-10 22:04
python
qt
开发语言
【C++】获取当前文件所在绝对路径 && GetCurrentDirectory()函数
使用详解
1编写的工程项目有如下需求:获取当前工程所在目录的绝对路径2使用中的GetCurrentDirectory方法实现,单独编写验证程序如下:#include#includeusingnamespacestd;intmain(void){charbuf[1000];GetCurrentDirectory(1000,buf);cout函数原型:DWORDGetCurrentDirectory([in]D
悄敲敲
·
2023-10-10 19:44
C++学习笔记
c++
windows
Android 使用HttpURLConnection发送HTTP请求
http://blog.csdn.net/tongsiyuaichidami/article/details/79229539Android中HttpURLConnection
使用详解
带头部解析:http
runrun117
·
2023-10-10 16:26
Android知识
Logback日志框架
使用详解
以及如何Springboot快速集成
Logback简介日志系统是用于记录程序的运行过程中产生的运行信息、异常信息等,一般有8个级别,从低到高为Allpropertyproperty是configuration的子标签,有两个属性name和value:name变量的名称,value变量的值。loggerlogger节点,可选节点,作用是指明具体的包或类的日志输出级别,以及要使用的;name:必写属性,指定具体包或类,被指定的包或类中的
凡夫贩夫
·
2023-10-10 15:58
Springboot
logback
spring
boot
后端
日志框架
logback-spring
Ora2Pg命令行
使用详解
以下是Ora2pg所有可用的命令行参数:-a|--allowstr:配置允许导出的对象列表,通过逗号分隔不同对象。可与SHOW_COLUMN一起使用-b|--basedirdir:设置默认输出目录,用于存储导出的文件-c|--conffile:指定配置文件,默认为/etc/ora2pg/ora2pg.conf.-d|--debug:开启更详细的输出-D|--data_typeSTR:允许自定义类型
不会画画的画师
·
2023-10-10 11:00
#
Postgres
ora2pg
oracle
postgresql
上一页
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
其他