- Kotlin 数据类与密封类
lly202406
开发语言
Kotlin数据类与密封类引言在编程语言中,数据类和密封类是两种非常有用的特性,特别是在Kotlin中。数据类用于创建不可变的数据持有类,而密封类则用于限制类的继承结构。本文将详细介绍Kotlin中的数据类与密封类,包括它们的定义、使用场景以及它们在Kotlin中的优势。数据类定义数据类在Kotlin中用于创建不可变的值对象,它自动提供构造函数、getter、toString、equals、has
- Spring boot定义LocalDateTime序列化
梦幻D开始
工作记录技术杂记springboot后端java
刚刚开通了一个公众号,会分享一些技术博客和自己觉得比较好的项目,同时会更新一些自己使用的工具和图书资料,后面会整理一些面试资料进行分享,觉得有兴趣的可以关注一下。文章目录前言解决打完收工!前言在开发需求过程中,定义字段为LocalDateTime,返回的序列化字段是按照LocalDateTime.toString返回的,返回的字符串带一个’T’,在application.properties里面统
- el-input输入框输入金额时限制输入位数
萬千
vue.js前端javascript
使用正则进行判断匹配,将校验过的值赋值给v-model绑定的属相我这的需求是不算小数点共9位数,其中小数点前7位,小数点后2位页面模板:方法:formatNum(val){lettemp=val.toString()//清除除了数字、小数点和负号以外的所有字符temp=temp.replace(/[^\d.-]/g,'')//截取小数点前最多7位,小数点后最多2位constparts=temp.s
- HarmonyOs反射调用报错java.lang.UnsatisfiedLinkError: No implementation found for
RAINSUMMIT
#harmonyOs问题处理
出问题代码片段如下:Classcls=null;try{cls=Class.forName("ohos.system.version.SystemVersion");Stringstring=cls.getMethod("getApiVersion",newClass[0]).invoke(cls,newObject[0]).toString();Toast.makeText(this,strin
- JAVA-常用类
安宁#
Java基础学习java面试
文章目录常用类-串讲1.Object类1.inthashCode():2.ClassgetClass()3.toString()4.booleanequals(Objectobj)5.Objectclone()和voidfinalize()2.String类1.构造方法2.判断功能3.获取功能4.转换功能5.其他功能3.StringBuffer(StringBuilder)1.构造方法2.添加功能
- JUC并发编程之集合类线程安全问题
xzystart
JUC并发编程java集合线程安全多线程并发编程
在并发条件下,由于多数集合没有同步控制所以这些集合具有线程不安全性线程不安全的集合线程不安全用例(ArrayList为例)示例publicclassMainTest{publicstaticvoidmain(String[]args){ArrayListarrayList=newArrayList{arrayList.add(UUID.randomUUID().toString());System
- 回溯算法leetcode.22
路Louis
算法总结算法javaleetcode剪枝数据结构
publicListgenerateParenthesis(intn){Setset=newHashSetset,intm,intn,StringBuffers){if(m>=n)//m为s的层数,n为总层数,因为s初始为一层,所以m初始为1set.add(s.toString());else{//每找到一个‘(’,则插入“()”,进入下一层,之后删除插入的括号,继续寻找'('或者达到s末尾for
- 使用toFixed四舍五入?
aqiu~
cocoscreatorcocos
有一个显示金额的地方需要对大数字进行kbmt转换即1249.63→1.24K使用了已有方法,但发现结果和预想不同(1249.63/1000).toFixed(2)=1.25查了下toFixed并不是严格的仅保留小数,也不是严格的四舍五入(这篇)解决方法:(Math.floor((1249.63/1000)*Math.pow(10,2))/Math.pow(10,2)).toString()=1.2
- node.js Buffer 与字符编码
M_adg2341
node.js
Buffer实例一般用于表示编码字符的序列,比如UTF-8、UCS2、Base64、或十六进制编码的数据。通过使用显式的字符编码,就可以在Buffer实例与普通的JavaScript字符串之间进行相互转换。constbuf=Buffer.from('runoob','ascii');//输出72756e6f6f62console.log(buf.toString('hex'));//输出cnVub
- JavaScript 类型转换的意外
神明木佑
javascript开发语言ecmascript
在JavaScript中,类型转换是将一个数据类型转换为另一个数据类型的过程。它可以是显式的,即通过使用特定的转换函数或操作符来实现,也可以是隐式的,即由JavaScript引擎自动完成。以下是JavaScript中的一些常见类型转换规则:字符串转换:使用String()函数或toString()方法可以将其他类型的值转换为字符串类型。varnum=42;varstr=String(num);//
- 【c#】object to string 转换的注意事项及string的空和null判断
鐵血柔情��
c#
c#objecttostring转换的注意事项及string的空和null判断一、objecttostring1、.ToString()2、System.Convert.ToString(str)3、?.null检查运算符二、string的null和empty判断一、objecttostring1、.ToString()使用.ToString()是非常简单方便的。但如果是null的话无法对null
- C#如何将目标格式转换为字符串
Luxhalo
c#开发语言
在C#中,将目标格式转换为字符串通常意味着将某个对象或值转换成它的字符串表示形式。这里有几种常见的方法来实现这一目标:使用ToString()方法:所有C#中的类型都继承自System.Object类,该类提供了一个ToString()方法,用于返回对象的字符串表示。示例:intnumber=123;stringnumberAsString=number.ToString();使用字符串插值:字符
- 在 C# 中,T 类型和 string 类型相互转换
TammyTX
C#c#javac++
将T类型转换为string类型使用ToString方法,将T类型转换为string类型。例如,假设存在以下类:classPerson{publicstringName{get;set;}publicintAge{get;set;}}要将Person类型的对象转换为string类型,可以使用以下代码:Personperson=newPerson{Name="Alice",Age=30};string
- 安卓基础(持续更新的笔记)
奶龙牛牛
android笔记java
为什么要这样://创建请求体RequestBodybody=RequestBody.create(MediaType.parse("application/json;charset=utf-8"),jsonObject.toString());jsonObject就包含了一个JSON数据,它其实就是:{"name":"张三","age":10}所以,jsonObject.toString()会把我
- LeetCode热题100(Hot100) 每日题目记录)_JavaScript实现_2022-4-24 周末总结
Papper_Shark
力扣热题100javascriptleetcode
2022-4-24周末总结方法:模拟LeetCode思路出现1的时候就记录1的索引,然后和之前出现1的索引位置进行比较,遍历完的最大值就是要找的值。代码实现/***@param{number}n*@return{number}*/constbinaryGap=function(n){lettemp=n.toString(2)letres=0for(leti=0,preIndex=0;in则说明末尾
- Kotlin 2.1.0 入门教程(十五)继承、重写、派生类初始化顺序
xvch
Kotlinkotlinandroid
继承所有类都有一个共同的超类Any,对于没有声明超类型的类来说,Any是其默认的超类://隐式继承自Any。classExampleAny有三个方法:equals()、hashCode()和toString()。因此,所有类都定义了这些方法。默认情况下,类是final的,即它们不能被继承。若要使一个类可被继承,需使用open关键字标记它://该类可被继承。openclassBase要声明一个显式的
- nodejs中xmldom的使用方法
jedi-knight
webjavascript前端node.js
xmldom的使用方法xmldom是nodejs下读取xml文件的优秀模块。使用npm安装,命令行如下npminstallxmldom使用步骤:(1)将字符串转换为可操作的对象const{DOMParser}=require('xmldom')vardoc=newDOMParser().parseFromString(xmlData.toString(),//这里是xml字符串,可以从文件中读取'
- python-爬虫基础-lxml.etree(2)
Aldeo
Pythonpythonlxml.etree
(5)元素包含文本文本包含元素中间文本和末尾文本,例如,中间的文本为中间文本,之后的文本为元素末尾文本。root=etree.Element("root")root.text="TEXT"print(root.text)print(etree.tostring(root))#加html节点html=etree.Element("html")#加body节点body=etree.SubElement
- lombok常用注解
后端
lombok常用注解lombok依赖org.projectlomboklombok1.16.18providedlombok注解@Getter/@Setter:作用类上,生成所有成员变量的getter/setter方法;作用于成员变量上,生成该成员变量的getter/setter方法@ToString:作用于类,覆盖默认的toString()方法,可以通过of属性限定显示某些字段,通过exclud
- c#字符串正则表达式部分
村服猪八戒
c#正则表达式mysql
正则表达式部分例子stringstr="s45645465";stringstr1="dfeafafaf";stringstr2="1212121";stringstr3="121g";//一个\d代表一个数字,后面加*代表0个或多个前面的字符(比如这里是代表0个或多个数字)MessageBox.Show(Regex.IsMatch(str,@"\d").ToString()+""+Regex.I
- c#基础知识笔记
-厚德载物-
c#随笔c#开发语言
目录1、变量类型2、CamelPascal3、运算符4、c#中的语法结构5、常量7、所有的类型都能够转换成string类型,调用ToString()。8、结构3、方法的功能一定要单一。4、高级参数out、ref、params1)、out参数。2)、ref参数3)、params可变参数5、方法的重载6、方法的递归12、return1、变量类型C#常用的数据类型包括:整型(Integer):一共有8个
- 7.2 jmu-Java-06异常-02-使用异常机制处理异常输入
包小包.
java开发语言
目录main方法:输入样例:输出样例:代码实现:对处理异常的理解总结:异常处理的核心思想是以下几点:异常处理的五个关键字Last使用异常处理输入机制,让程序变得更健壮。main方法:输入n,创建大小为n的int数组。输入n个整数,放入数组。输入时,有可能输入的是非整型字符串,这时候需要输出异常信息,然后重新输入。使用Arrays.toString输出数组中的内容。输入样例:512ab453输出样例
- 如何将boolean值转换为字符串
final.TD
Javajava开发语言
要将boolean值转换为字符串,可以使用以下方法之一:1.使用String.valueOf()方法:该方法接受布尔值作为参数,并返回其对应的字符串表示。例如:booleanb=true;Stringstr=String.valueOf(b);2.使用布尔值的文字表示:可以直接使用布尔值的文字表示来创建字符串。例如:booleanb=false;Stringstr=Boolean.toString
- MVC中一个简单的自动生成
呆懵小生
MVC
//控制器//通过获取当前时间publicActionResultXXXXX(){varstr=DateTime.Now.ToString("yyyyMMddHHmmss");returnJson(str,JsonRequestBehavior.AllowGet);}//页面上调用$.post("XXXXX",function(data){$("#input").val(data);//需要生成的
- 大侠,你真的了解JS中的toString&toLocaleString方法吗?
不做超级小白
web前端javascript前端开发语言
toString()与toLocaleString()的区别:你需要了解的JavaScript字符串化方法在JavaScript中,toString()和toLocaleString()都是对象转换为字符串的常用方法。虽然它们的功能看似相似,但实际上它们有着不同的用途和行为。本文将详细解析这两者的区别,帮助开发者更好地理解并选择适合的字符串化方法。1.toString()方法:目的:toStrin
- Lombok 在 IntelliJ IDEA 中的使用步骤
阿乾之铭
intellij-ideajavaide
Lombok是一个非常流行的Java库,它通过注解简化Java类的开发,特别是在处理POJO(PlainOldJavaObjects)类时,如生成getter、setter、toString等常用方法。Lombok在减少样板代码(boilerplatecode)方面非常有用。在IntelliJIDEA中使用Lombok插件,可以极大简化开发过程。1.安装Lombok插件要在IntelliJIDEA
- lxml.etree模式使用(一)
卫生纸不够用
python爬虫python前端javascript
fromlxmlimportetreefromcopyimportdeepcopydefprettyprint(element,**kwargs):print("/")xml=etree.tostring(element,pretty_print=True,**kwargs)print(xml.decode(),end='')#1.创建元素root=etree.Element("root")#2.
- 【3-4】《Java面向对象高级知识》——继承、重写和重载、final关键字、抽象类、接口、多态、Object类、内部类、包装类、可变参数、递归
美少女降临人世间
【Java精华笔记】已完结抽象类final关键字重写和重载Java面向对象内部类
文章目录一、继承格式二、子类实例化内存分析三、super详解四、重写1、重写的概念2、重写和重载的区别五、final关键字六、抽象类1、抽象类的概念2、抽象类常见问题3、抽象类和普通类的区别七、接口1、面向接口编程思想2、接口的编写3、接口和抽象类的区别八、多态1、多态的体现2、instanceof九、Object类概述1、toString2、equals十、内部类概述1、成员内部类(了解)2、局
- lombok常见注解概述,部分简单注解示例
小哇666
项目构建/代码管理lombok
Lombok常用的注解:注解描述@Getter/@Setter可以作用在类上和属性上,放在类上,会对所有的非静态(non-static)属性生成Getter/Setter方法,放在属性上,会对该属性生成Getter/Setter方法。并可以使用该注解中的AccessLevel属性来指定Getter/Setter方法的访问级别。@ToString生成toString方法,默认情况下,会输出类名、所有
- leetcode 66 :加一【JavaScript/JS解法】
yuri.css
算法leetcode算法javascript
还是先上题给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位,数组中每个元素只存储单个数字。你可以假设除了整数0之外,这个整数不会以零开头。看完题之后感受就是join和split来回跳return(Number(digits.join(""))+1n).toString().split("");然后出现两个问题:1存在[0,0]这样的输入,如果直接转换为零
- 解线性方程组
qiuwanchi
package gaodai.matrix;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner scanner = new Sc
- 在mysql内部存储代码
annan211
性能mysql存储过程触发器
在mysql内部存储代码
在mysql内部存储代码,既有优点也有缺点,而且有人倡导有人反对。
先看优点:
1 她在服务器内部执行,离数据最近,另外在服务器上执行还可以节省带宽和网络延迟。
2 这是一种代码重用。可以方便的统一业务规则,保证某些行为的一致性,所以也可以提供一定的安全性。
3 可以简化代码的维护和版本更新。
4 可以帮助提升安全,比如提供更细
- Android使用Asynchronous Http Client完成登录保存cookie的问题
hotsunshine
android
Asynchronous Http Client是android中非常好的异步请求工具
除了异步之外还有很多封装比如json的处理,cookie的处理
引用
Persistent Cookie Storage with PersistentCookieStore
This library also includes a PersistentCookieStore whi
- java面试题
Array_06
java面试
java面试题
第一,谈谈final, finally, finalize的区别。
final-修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为 abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能
- 网站加速
oloz
网站加速
前序:本人菜鸟,此文研究总结来源于互联网上的资料,大牛请勿喷!本人虚心学习,多指教.
1、减小网页体积的大小,尽量采用div+css模式,尽量避免复杂的页面结构,能简约就简约。
2、采用Gzip对网页进行压缩;
GZIP最早由Jean-loup Gailly和Mark Adler创建,用于UNⅨ系统的文件压缩。我们在Linux中经常会用到后缀为.gz
- 正确书写单例模式
随意而生
java 设计模式 单例
单例模式算是设计模式中最容易理解,也是最容易手写代码的模式了吧。但是其中的坑却不少,所以也常作为面试题来考。本文主要对几种单例写法的整理,并分析其优缺点。很多都是一些老生常谈的问题,但如果你不知道如何创建一个线程安全的单例,不知道什么是双检锁,那这篇文章可能会帮助到你。
懒汉式,线程不安全
当被问到要实现一个单例模式时,很多人的第一反应是写出如下的代码,包括教科书上也是这样
- 单例模式
香水浓
java
懒汉 调用getInstance方法时实例化
public class Singleton {
private static Singleton instance;
private Singleton() {}
public static synchronized Singleton getInstance() {
if(null == ins
- 安装Apache问题:系统找不到指定的文件 No installed service named "Apache2"
AdyZhang
apachehttp server
安装Apache问题:系统找不到指定的文件 No installed service named "Apache2"
每次到这一步都很小心防它的端口冲突问题,结果,特意留出来的80端口就是不能用,烦。
解决方法确保几处:
1、停止IIS启动
2、把端口80改成其它 (譬如90,800,,,什么数字都好)
3、防火墙(关掉试试)
在运行处输入 cmd 回车,转到apa
- 如何在android 文件选择器中选择多个图片或者视频?
aijuans
android
我的android app有这样的需求,在进行照片和视频上传的时候,需要一次性的从照片/视频库选择多条进行上传
但是android原生态的sdk中,只能一个一个的进行选择和上传。
我想知道是否有其他的android上传库可以解决这个问题,提供一个多选的功能,可以使checkbox之类的,一次选择多个 处理方法
官方的图片选择器(但是不支持所有版本的androi,只支持API Level
- mysql中查询生日提醒的日期相关的sql
baalwolf
mysql
SELECT sysid,user_name,birthday,listid,userhead_50,CONCAT(YEAR(CURDATE()),DATE_FORMAT(birthday,'-%m-%d')),CURDATE(), dayofyear( CONCAT(YEAR(CURDATE()),DATE_FORMAT(birthday,'-%m-%d')))-dayofyear(
- MongoDB索引文件破坏后导致查询错误的问题
BigBird2012
mongodb
问题描述:
MongoDB在非正常情况下关闭时,可能会导致索引文件破坏,造成数据在更新时没有反映到索引上。
解决方案:
使用脚本,重建MongoDB所有表的索引。
var names = db.getCollectionNames();
for( var i in names ){
var name = names[i];
print(name);
- Javascript Promise
bijian1013
JavaScriptPromise
Parse JavaScript SDK现在提供了支持大多数异步方法的兼容jquery的Promises模式,那么这意味着什么呢,读完下文你就了解了。
一.认识Promises
“Promises”代表着在javascript程序里下一个伟大的范式,但是理解他们为什么如此伟大不是件简
- [Zookeeper学习笔记九]Zookeeper源代码分析之Zookeeper构造过程
bit1129
zookeeper
Zookeeper重载了几个构造函数,其中构造者可以提供参数最多,可定制性最多的构造函数是
public ZooKeeper(String connectString, int sessionTimeout, Watcher watcher, long sessionId, byte[] sessionPasswd, boolea
- 【Java命令三】jstack
bit1129
jstack
jstack是用于获得当前运行的Java程序所有的线程的运行情况(thread dump),不同于jmap用于获得memory dump
[hadoop@hadoop sbin]$ jstack
Usage:
jstack [-l] <pid>
(to connect to running process)
jstack -F
- jboss 5.1启停脚本 动静分离部署
ronin47
以前启动jboss,往各种xml配置文件,现只要运行一句脚本即可。start nohup sh /**/run.sh -c servicename -b ip -g clustername -u broatcast jboss.messaging.ServerPeerID=int -Djboss.service.binding.set=p
- UI之如何打磨设计能力?
brotherlamp
UIui教程ui自学ui资料ui视频
在越来越拥挤的初创企业世界里,视觉设计的重要性往往可以与杀手级用户体验比肩。在许多情况下,尤其对于 Web 初创企业而言,这两者都是不可或缺的。前不久我们在《右脑革命:别学编程了,学艺术吧》中也曾发出过重视设计的呼吁。如何才能提高初创企业的设计能力呢?以下是 9 位创始人的体会。
1.找到自己的方式
如果你是设计师,要想提高技能可以去设计博客和展示好设计的网站如D-lists或
- 三色旗算法
bylijinnan
java算法
import java.util.Arrays;
/**
问题:
假设有一条绳子,上面有红、白、蓝三种颜色的旗子,起初绳子上的旗子颜色并没有顺序,
您希望将之分类,并排列为蓝、白、红的顺序,要如何移动次数才会最少,注意您只能在绳
子上进行这个动作,而且一次只能调换两个旗子。
网上的解法大多类似:
在一条绳子上移动,在程式中也就意味只能使用一个阵列,而不使用其它的阵列来
- 警告:No configuration found for the specified action: \'s
chiangfai
configuration
1.index.jsp页面form标签未指定namespace属性。
<!--index.jsp代码-->
<%@taglib prefix="s" uri="/struts-tags"%>
...
<s:form action="submit" method="post"&g
- redis -- hash_max_zipmap_entries设置过大有问题
chenchao051
redishash
使用redis时为了使用hash追求更高的内存使用率,我们一般都用hash结构,并且有时候会把hash_max_zipmap_entries这个值设置的很大,很多资料也推荐设置到1000,默认设置为了512,但是这里有个坑
#define ZIPMAP_BIGLEN 254
#define ZIPMAP_END 255
/* Return th
- select into outfile access deny问题
daizj
mysqltxt导出数据到文件
本文转自:http://hatemysql.com/2010/06/29/select-into-outfile-access-deny%E9%97%AE%E9%A2%98/
为应用建立了rnd的帐号,专门为他们查询线上数据库用的,当然,只有他们上了生产网络以后才能连上数据库,安全方面我们还是很注意的,呵呵。
授权的语句如下:
grant select on armory.* to rn
- phpexcel导出excel表简单入门示例
dcj3sjt126com
PHPExcelphpexcel
<?php
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
if (PHP_SAPI == 'cli')
die('This example should only be run from a Web Brows
- 美国电影超短200句
dcj3sjt126com
电影
1. I see. 我明白了。2. I quit! 我不干了!3. Let go! 放手!4. Me too. 我也是。5. My god! 天哪!6. No way! 不行!7. Come on. 来吧(赶快)8. Hold on. 等一等。9. I agree。 我同意。10. Not bad. 还不错。11. Not yet. 还没。12. See you. 再见。13. Shut up!
- Java访问远程服务
dyy_gusi
httpclientwebservicegetpost
随着webService的崛起,我们开始中会越来越多的使用到访问远程webService服务。当然对于不同的webService框架一般都有自己的client包供使用,但是如果使用webService框架自己的client包,那么必然需要在自己的代码中引入它的包,如果同时调运了多个不同框架的webService,那么就需要同时引入多个不同的clien
- Maven的settings.xml配置
geeksun
settings.xml
settings.xml是Maven的配置文件,下面解释一下其中的配置含义:
settings.xml存在于两个地方:
1.安装的地方:$M2_HOME/conf/settings.xml
2.用户的目录:${user.home}/.m2/settings.xml
前者又被叫做全局配置,后者被称为用户配置。如果两者都存在,它们的内容将被合并,并且用户范围的settings.xml优先。
- ubuntu的init与系统服务设置
hongtoushizi
ubuntu
转载自:
http://iysm.net/?p=178 init
Init是位于/sbin/init的一个程序,它是在linux下,在系统启动过程中,初始化所有的设备驱动程序和数据结构等之后,由内核启动的一个用户级程序,并由此init程序进而完成系统的启动过程。
ubuntu与传统的linux略有不同,使用upstart完成系统的启动,但表面上仍维持init程序的形式。
运行
- 跟我学Nginx+Lua开发目录贴
jinnianshilongnian
nginxlua
使用Nginx+Lua开发近一年的时间,学习和实践了一些Nginx+Lua开发的架构,为了让更多人使用Nginx+Lua架构开发,利用春节期间总结了一份基本的学习教程,希望对大家有用。也欢迎谈探讨学习一些经验。
目录
第一章 安装Nginx+Lua开发环境
第二章 Nginx+Lua开发入门
第三章 Redis/SSDB+Twemproxy安装与使用
第四章 L
- php位运算符注意事项
home198979
位运算PHP&
$a = $b = $c = 0;
$a & $b = 1;
$b | $c = 1
问a,b,c最终为多少?
当看到这题时,我犯了一个低级错误,误 以为位运算符会改变变量的值。所以得出结果是1 1 0
但是位运算符是不会改变变量的值的,例如:
$a=1;$b=2;
$a&$b;
这样a,b的值不会有任何改变
- Linux shell数组建立和使用技巧
pda158
linux
1.数组定义 [chengmo@centos5 ~]$ a=(1 2 3 4 5) [chengmo@centos5 ~]$ echo $a 1 一对括号表示是数组,数组元素用“空格”符号分割开。
2.数组读取与赋值 得到长度: [chengmo@centos5 ~]$ echo ${#a[@]} 5 用${#数组名[@或
- hotspot源码(JDK7)
ol_beta
javaHotSpotjvm
源码结构图,方便理解:
├─agent Serviceab
- Oracle基本事务和ForAll执行批量DML练习
vipbooks
oraclesql
基本事务的使用:
从账户一的余额中转100到账户二的余额中去,如果账户二不存在或账户一中的余额不足100则整笔交易回滚
select * from account;
-- 创建一张账户表
create table account(
-- 账户ID
id number(3) not null,
-- 账户名称
nam