Java编程的特点是什么呢
发布网友
发布时间:2022-02-28 14:24
我来回答
共10个回答
热心网友
时间:2022-02-28 15:53
Java编程的特点是什么呢?
Java由美国SUN公司(被oracle公司收购)发明于1995年,是目前业界应用最广泛、使用人数最多的语言,连续多年排名世界第一,可以称之为“计算机语言界的英语”。
那么Java这么高的评价它的特点有哪些,下面我来为题主解答:
一、跨平台/可移植性
这是Java的核心优势。Java在设计时就很注重移植和跨平台性。比如:Java的int永远都是32位。不像C++可能是16,32,可能是根据编译器厂商规定的变化。这样的话程序的移植就会非常麻烦。
Java首先利用文本编辑器编写 Java源程序,源文件的后缀名为.java;再利用编译器(javac)将源程序编译成字节码文件,字节码文件的后缀名为.class; 最后利用虚拟机(解释器,java)解释执行。如下图所示:
二、安全性
Java适合于网络/分布式环境,为了达到这个目标,在安全性方面投入了很大的精力,使Java可以很容易构建防病毒,防篡改的系统。比如Java取消了强大但又危险的指针。由于指针可进行移动运算,指针可随便指向一个内存区域,而不管这个区域是否可用,这样做是危险的。
三、面向对象
面向对象是一种程序设计技术,非常适合大型软件的设计和开发。由于C++为了照顾大量C语言使用者而兼容了C,使得自身仅仅成为了带类的C语言,多少影响了其面向对象的彻底性!Java则是完全的面向对象语言。
四、简单性
Java就是C++语法的简化版,我们也可以将Java称之为“C++-”。跟我念“C加加减”,指的就是将C++的一些内容去掉;比如:头文件,指针运算,结构,联合,操作符重载,虚基类等等。同时,由于语法基于C语言,因此学习起来完全不费力。
五、高性能
Java最初发展阶段,总是被人诟病“性能低”;客观上,高级语言运行效率总是低于低级语言的,这个无法避免。Java语言本身发展中通过虚拟机的优化提升了几十倍运行效率。比如,通过JIT(JUST IN TIME)即时编译技术提高运行效率。 将一些“热点”字节码编译成本地机器码,并将结果缓存起来,在需要的时候重新调用。这样的话,使Java程序的执行效率大大提高,某些代码甚至接近C++的效率。
因此,Java低性能的短腿,已经被完全解决了。业界发展上,我们也看到很多C++应用转到Java开发,很多C++程序员转型为Java程序员。
六、分布式
Java是为Internet的分布式环境设计的,因为它能够处理TCP/IP协议。事实上,通过URL访问一个网络资源和访问本地文件是一样简单的。Java还支持远程方法调用(RMI,Remote Method Invocation),使程序能够通过网络调用方法。
七、多线程
多线程的使用可以带来更好的交互响应和实时行为。 Java多线程的简单性是Java成为主流服务器端开发语言的主要原因之一。
八、健壮性
Java是一种健壮的语言,吸收了C/C++ 语言的优点,但去掉了其影响程序健壮性的部分(如:指针、内存的申请与释放等)。Java程序不可能造成计算机崩溃。即使Java程序也可能有错误。如果出现某种出乎意料之事,程序也不会崩溃,而是把该异常抛出,再通过异常处理机制加以处理。
以上几种特性你了解到啦吗? 记得给个赞!
热心网友
时间:2022-02-28 17:11
Java语言的特性:
简单性:
* Java语言的语法特性类似于C++(有没有C++基础没关系,各有各得好处);
* Java语言摒弃了C++中容易引发错误的地方,例如指针和内存管理等;
* Java 提供了非常丰富的类库供我们使用(丰富不代表包罗万象,很多时候都需要自己写新的类库,我觉得Java更像是给我们提供了丰富的沙子和水泥,想要房子?好啊,你设计吧,设计完了自己盖。如果和C#比较一下,C#就像是地产商,想要房子?我这里有两居室、三居室和花园洋房,马上就能交钥匙,要哪个?)。
安全性:
* 不会引起致命的错误;
* 到目前为止,没有任何一种Java病毒(记得参加SUN公司的JavaOne大会,主持人跑出来非常兴奋的告诉大家:“到目前为止,还没有出现Java病毒。”);
* 基于网络的安全管理机制;
可移植性:
* Java是一种跨平台的开发语言(就像是金鱼要生活在鱼缸中,鱼缸却能放在不同的家中,金鱼跨平台了吗?没有,跨平台的是鱼缸。相同的道理,Java运行于虚拟机JVM上,JVM有Windows版、Linux版、Unix版等,所以Java就跨平台了)。
面向对象性:
* Java是一种纯面向对象OOP的编程语言(近年来OOP如日方中,其中Java起到了很大的推动作用,但Java不是第一个,也不是最后一个OOP语言)。有这么一句经典的,最令初学者头痛的概念:“万物皆为对象”,我在初学的时候就被这句话(忽悠)了一个月。
健壮性:
* 没有指针使Java 减少了内存出错的可能;
* 实现了真数组,避免数据覆盖;
* 异常管理机制。
多线程性:
* Java为我们提供了强大的多线程机制。
体系结构中立:
* Java是一种不带平台特点的语言(将Java编译成一种.class文件,可以在任何安装有JVM的机器上运行);
解释执行与高性能:
* Java 解释器能直接运行目标代码指令(评价:够用、绝对够用)。
分布式:
Java 有强大的基于网络的类库供我们使用(有很多著名的支持分布式运算的软件都是使用Java开发)。
动态性:
* 准确的讲Java不能称为动态语言(动态语言是指程序在运行时可以改变其结构),然而Java的反射机制赋予了它对类动态加载调用的能力,所以很多朋友都称Java为准动态语言。
热心网友
时间:2022-02-28 18:46
Windows是非常受人们欢迎的操作系统,它是微软立足于软件界的根本所在;Java是非常受人们欢迎的编程语言,它是SUN公司的心血之作,Java最大特点是:一次编写,可以适应于任何平台, 包括IBM的大型机,SUN公司的服务器,装有Windows的PC机,甚至还包括手机这样的终端设备。1996年,微软遇到了SUN,两者一拍即合,微软利用Java开发出IE浏览器,它们携手打败了网景的浏览器,然而,此后发生的事情打碎了SUN的美好幻想。
Java曾经是Windows的亲密战友
事情还得从80年代说起,当时借PC机东风,微软与英特尔组成的Wintel联盟所向披靡,它们踩在蓝色巨人IBM的肩上发达起来,微软生产的Windows操作系统一度控制着整个PC市场,获得巨大成功,但是它却忽略了互联网的发展,被另外一家以生产浏览器软件而闻名的网景公司(Netscape)抢占了先机,它先于微软推出浏览器软件。当时,SUN公司以生产UNIX服务器为主,这种服务器可以用于网站建设,所以它始终坚持"网络就是电脑"(The Network Is the Computer)的信条。当时,SUN公司也尝试设计一种名为Java的程序语言,一开始准备将其用在家用电器市场的,Java代码灵活小巧,可移植性强,并能够跨平台操作,不局限于某种操作系统,1995年,互联网大行其道,SUN立刻意识到这是一个机会!因为Java语言结构新颖、可实时操作、而且安全性强,适合用于编写浏览器软件。由于SUN当时对开发软件产品尚缺乏信心,所以它免费将Java放在网上,任由人们使用,没有想到此举使Java获得极大的成功和好评。SUN公司的CEO斯科特?麦克尼利从此将自己称做是"JavaMan"。
微软为了打败网景(Navigator浏览器),跟SUN达成某项交易,SUN允许微软使用Java言来开发IE浏览器,当IE成功问世时,微软将IE*进操作系统中,使得很多电脑用户不得不使用IE作为缺省的浏览器软件。网景受到强烈的冲激,1996年春,网景(Navigator浏览器)拥有87%的市场占有率,1998年就降到40%,最后它也不得不免费供用户使用,终于在1998年11月,网景(Navigator浏览器)被美国在线(AOL)收购。
那么原本是亲密战友的SUN与微软是如何翻脸无情?以至Java最后也被Windows无情地抛弃呢?
Java成了Windows中不受欢迎的客人
1996年9月的某个星期日,微软资深的软件工程师艾达姆.波茨瓦斯在几经考量之后,提笔给时任微软CEO的比尔.盖茨写了一封信,波茨瓦斯当时是微软浏览器部门的主管,在信中,他非常恳切地提醒比尔.盖茨注意一个正在形成的威胁,这个威胁不是来自别人,正是其盟友SUN公司创建的一种编程语言--Java,这种语言允许编程者一次性编写程序代码、就可以在多个不同的操作系统上运行(如从IBM的大型机到Sun公司的Unix服务器,再到WindowsPC机都能运行,甚至在手机平台上也可以);而不需要针对每个计算机硬件和操作系统配置的不同而改动程序代码,并且这种语言在网络上是安全的。在信中,他写到:"必须意识到Java不仅仅是一种语言,如果它仅只是一种语言,对微软是不会造成威胁的。我们愿意并且能够容易地为它建立最佳的表现形式,事情可以*解决了。但是事实上,Java绝不仅仅是一种语言,它是COM的替代者。"--而COM恰恰是Windows基于的编程模型。然后,波茨瓦斯用大约1000字解释了使用Java编程是多么容易,相反,当程序需要执行许多任务时,使用C++编程语言则要用到相当多的复杂的代码,这比Java麻烦得多。波茨瓦斯也提出了一些对抗Java的方法,其中一条是悄悄地为Java提供承├┱梗�沟糜肑ava编写的程序能够在Windows中工作得更好,但是在其它平台上却不能运行。他警告说这项工作应当以诱导而不是冲突的方式来进行,最重要的是微软必须意识到Java的力量,"我们首先必须承认Java正在与COM相竞争,然后想出对策,而不只是把头埋在沙子中逃避问题。"
盖茨在收到这封信时,正是他准备"闭关清修"的前几天,原来比尔.盖茨每年都要抽出一点时间来考虑微软长期发展战略,人称"思考周计划"。盖茨显然被这封信吓坏了,他第二天就回信了:"这可把我吓坏了。我不清楚微软的操作系统要为Java的客户应用程序代码提供什么样的东西,而这些东西将足够让它来取代我们的市场地位。了解这一点非常重要,是应该最优先考虑的事情。"(没想到,这封信成为几年后司法部针对微软的反托拉斯案的呈堂证供。)
于是,Java成了Windows中不受欢迎的客人,微软开始对其进行清扫,SUN又岂是好惹的?一场针尖对麦芒的好戏就开场了。
Java与Windows的殊死斗争
作为一对死对头,微软和SUN一直官司不断。1997年,Sun公司以歧视使用Java软件,旨在维持其视窗操作系统的垄断地位,违反反垄断法为由起诉微软,2001年1月,SUN胜诉,根据双方达成的和解协议,微软不得对Windows操作系统中包含的Java语言作任何改动,并获赔2000万美元。这是SUN首次与微软的正面交锋,谁想这为日后微软拒绝支持Java语言埋下了伏笔,因为理由很正当,既然你SUN不准我对Java进行改动,而随着操作系统的发展,不改动Java是适应不了新的形势,那只能弃用Java了。
然而,有关Java的事情还不算完,2001年年底,微软在推出新版操作系统Windows XP和新版IE时,故意不安装Java软件,2002年的3月8日,SUN公司向美国加州地区法庭提出起诉,称此举造成它直接经济损失高达10亿美元。根据反垄断法,原告可以要求被告支付实际损失三倍的赔偿,因此SUN如果打赢了这场官司,也许最多可以得到30亿美元的经济赔偿,看来SUN这回动真格的了!微软岂能甘心,干脆一不做二不休,开始了新一轮的报复,2002年6月,微软称从2004年起,微软的Windows操作系统将不再支持Java语言,并解释这样做的原因是考虑到安全问题。2002年7月,微软关闭了一个自动向Windows XP用户提供Java软件的站点,据微软称,此举是因为Sun公司声称微软没有权利通过在线方式发行Java软件,为了避免产生纠纷,只好停止此项服务。就在双方口水战日益升级之际,迎来了有关SUN诉微软案的第一次听证会。
SUN起诉微软的听证会被安排在2002年12月的第一周,当时,在巴尔的摩市下了近三年来最大的一场雪。整个城市几乎都停止运转。但是弗雷德里克?摩兹法官坚持要求开庭,并且要求几十位与案件有关的律师到场出席;据审判时一位目击者说,为了保证早上能够到庭,法官他自己在会议室中睡了一晚。
几周后,也就是2002年12月23日,摩兹法官发布了那份长达42页的判决书,他裁定微软公司必须在其Windows操作系统和IE中发布与其竞争的Java编程语言。这份裁定书可谓是司法界的一部力作,在平实的、以第一人称的叙述中,摩兹法官回顾了SUN和微软之间关于Java斗争的历史,充分展示了双方各自的论据,相当艺术地解释了为什么要求在Windows操作系统中提供对Java的支持是对相关各方最好的选择。从过去的情况来看,每当涉及复杂技术的诉讼时,法官经常在面对着术语时显得无所适从。但是,摩兹法官给人的印象却是对Java和.NET相当熟悉,而且他表现出强烈的支持SUN的立场,但是他那对微软不利的判决是有技术和商业上的事实作为基础的。
简而言之,摩兹法官的意见是:在微软的垄断下,Java拥有一个并不健全的市场,比如说,大部分PC上所安装的Java软件要么就是旧版本,要么就是仅适用于Windows的版本,这使得其它软件开发者对Java平台产生了厌恶的情绪,这些都是因为微软反竞争行为的结果,看来微软已经利用Windows的垄断地位来破坏SUN对Java的销售渠道。树立市场正义的唯一方法是纠正微软的所作所为,"阻止微软从它过去的错误中获得将来的利益!"
拉锯战仍在继续
虽然2002年12月,法官已经作出对SUN有利的判决,并且再一次召集双方律师,举行了特别听证会,2003年1月15日,摩兹法官下令微软必须在120天完成在其视窗软件中加载Java的工作。
2003年2月21日,微软正式提出反诉,称此案有违公平,微软公司在其上诉请求中声称,即使微软不在Windows系统中发布Java技术,Sun公司也不会马上就面临任何"不可挽回的伤害"。Sun公司则声称说,在Windows系统中发布Java技术是一个时间敏感性的问题,一再推迟可能会给Sun公司及其技术带来损害。美国第四巡回*已经宣布将在今年4月3日举行初步庭审,以此看来,此案究竟如何了结,还是一个未知数。
Java作为一个跨平台水平,一经问世就受到人们的欢迎,据统计,全世界目前有200多万Java程序员。但即使Java获胜,也仍然耽误了最好的发展时机,希望微软早已经推.NET战略,并且C#语言就是专门针对Java开发出来的语言,微软的各种软件在市场上的占有率都很高,即使最终的裁决对Java有利,也不会改变微软目前雄踞软件世界的局面。
以微软、SUN的财力物力,对付诉讼的经验来看,一场拉锯战仍然是在所难免的了。
热心网友
时间:2022-02-28 20:37
Java语言共有十大特点,分别为:简单性、面向对象、分布性、编译和解释性、稳健性、安全性、可移植性、高性能、多线索性、动态性。
热心网友
时间:2022-02-28 22:45
JAVA。。。
呃我也是初学,我来说说我的看法吧
JAVA是一种纯面向对象的语言,不支持函数,所有的过程都是封装在类里面,JAVA提供的类非常多,比如像高精度类,排序都已经做好了,是一个非常成熟而且有效率的编程语言
注意我所说的效率不是指程序的执行效率而是程序员写程序的效率
JAVA正是因为太高级,所以程序的执行效率比不上C++,更比不上C,要占用相对较多的内存,所以要斟酌使用~
热心网友
时间:2022-03-01 01:10
JAVA语言的10大特点:
1.简单性
2.面向对象
3.分布性
4.鲁棒性
5.可移植性
6.安全性
7.结构中立
8.高性能
9.多线程
10.动态性
热心网友
时间:2022-03-01 03:51
Java是一种优秀的程序设计语言,它具有令人赏心悦目的语法和易于理解的语义。不仅如此,Java还是一个由一系列计算机软件和规范形成的技术体系,这个技术体系提供了完整的用于软件开发和跨平台部署的支持环境,并广泛应用于嵌入式系统、移动终端、企业服务器、大型机等各种场合。顺便说一下,JavaScript和Java没有任何关系,最开始JavaScript叫liveScript,当时Java太火了,于是乎 liveScript更名为JavaScript借势宣传了一波。
随便搜搜近几年的编程类语言排行榜,Java绝对都是当之无愧的老大哥。那么,Java究竟有什么特性能获得 广大程序员的一致青睐呢? 在此列出java的11个特性:
1.简单性
Java语法是C++语法的一个“纯净版本”。这里没有头文件,指针运算(甚至指针语法),结构,联合,操作符重载,虚基类等等。不仅如此,Java开发环境远远超出大多数其他编程语言的开发环境。
2.面向对象
什么是面向对象?用木匠打一个比方,一个“面向对象”的木匠始终关注的是所制作的椅子,第二位才是所使用的工具;而一个“非面向对象”木匠首先考虑的是所使用的工具。
在Java的世界里,一切皆对象。
Java的面向对象特性与C++旗鼓相当,与C++不同的点在于多重继承。在Java中,取而代之的是更简单的接口概念。而且与C++想比,Java提供了更丰富非运行时自省功能。
3.分布式(微服务)
Java有丰富的例程库,用于处理HTTP和FTP之类的TCP/IP协议。Java应用程序能够通过URL打开和访问网络上的对象,其便捷程度就好像访问本地文件一样。
4.健壮性
Java与C++最大的不同在于Java使用的指针模型可以消除重写内存和损坏数据的可能性(对于曾经花费几个小时来检查由于指针bug而引起内存冲突的人来说,一定很喜欢Java的这一特性)。不仅如此,Java编译器能够检测许多在其他语言中仅在运行时才能够检测出来的问题。
5.安全性
Java适用于网络/分式式环境。为了达到这个目标,在安全性方面投入了大量的精力。使用Java可以构建防病毒,防篡改的系统。
从一开始,Java就设计出能够防范常见的各种攻击:
(1)运行时堆栈溢出。蠕虫和病毒常用的攻击手段。
(2)破坏自己进程空间之外的内存。
(3)未经授权读写文件。
6.体系结构中立
编译器生成一个体系结构中立的目标文件格式,这是一种编译过的代码,只要有Java运行时系统,这些编译后的代码就可以在许多处理器上运行。Java编译器通过生成与特定计算机体系结构无关的字节码指令来实现这一特性。精心设计的字节码不仅可以很容易的在任何机器上解释执行,而且还可以动态地翻译成本地机器代码。
7.可移植性
与C/C++不同,Java规范中没有“依赖具体实现的地方”。基本数据类型的大小以及有关运算都做了明确的说明。例如,Java中的int永远是32位的整数,二在C/C++中,int可能是16位整数,32位整数,也可能是编译器提供商指定的其他大小。在Java中,数据类型具有固定的大小,这消除了代码代码移植时令人头疼的主要问题。
8.解释型
Java解释器可以再任何移植了解解释器的机器上执行Java字节码。由于链接是一个增量式且轻量级的过程。所以开发过程也变得更加快捷,更加具有探索性。
9.高能性
尽管对解释后的字节码性能已经比较满意,但是在某些场合下可能需要更加高效的性能。字节码可以(在运行时刻)动态的翻译成对应运行这个应用的特定CPU的机器码。
10.多线程
Java在当时很超前,他是第一个支持并发程序设计的主流语言,多线程可以带来更好的交互影响和实时行为。并发程序设计绝非易事,但是Java在这方面表现出色,可以很好的管理这个工作。
11.动态性
Java与C/C++相比更具有动态性。它能够适应不断发展的环境。库中可以自由的添加新方法和实例变量,而对客户端没有任何影响。在Java中找出运行时类型信息十分简单。
热心网友
时间:2022-03-01 06:49
Java语言的特性:
简单性:
*Java语言的语法特性类似于C++(有没有C++基础没关系,各有各得好处);
* Java语言摒弃了C++中容易引发错误的地方,例如指针和内存管理等;
* Java 提供了非常丰富的类库供我们使用(丰富不代表包罗万象,很多时候都需要自己写新的类库,我觉得Java更像是给我们提供了丰富的沙子和水泥,想要房子?好啊,你设计吧,设计完了自己盖。如果和C#比较一下,C#就像是地产商,想要房子?我这里有两居室、三居室和花园洋房,马上就能交钥匙,要哪个?)。
安全性:
* 不会引起致命的错误;
* 到目前为止,没有任何一种Java病毒(记得参加SUN公司的JavaOne大会,主持人跑出来非常兴奋的告诉大家:“到目前为止,还没有出现Java病毒。”);
* 基于网络的安全管理机制;
可移植性:
* Java是一种跨平台的开发语言(就像是金鱼要生活在鱼缸中,鱼缸却能放在不同的家中,金鱼跨平台了吗?没有,跨平台的是鱼缸。相同的道理,Java运行于虚拟机JVM上,JVM有Windows版、Linux版、Unix版等,所以Java就跨平台了)。
面向对象性:
* Java是一种纯面向对象OOP的编程语言(近年来OOP如日方中,其中Java起到了很大的推动作用,但Java不是第一个,也不是最后一个OOP语言)。有这么一句经典的,最令初学者头痛的概念:“万物皆为对象”,我在初学的时候就被这句话(忽悠)了一个月。
健壮性:
* 没有指针使Java 减少了内存出错的可能;
* 实现了真数组,避免数据覆盖;
* 异常管理机制。
多线程性:
* Java为我们提供了强大的多线程机制。
体系结构中立:
* Java是一种不带平台特点的语言(将Java编译成一种.class文件,可以在任何安装有JVM的机器上运行);
解释执行与高性能:
* Java 解释器能直接运行目标代码指令(评价:够用、绝对够用)。
分布式:
Java 有强大的基于网络的类库供我们使用(有很多著名的支持分布式运算的软件都是使用Java开发)。
动态性:
* 准确的讲Java不能称为动态语言(动态语言是指程序在运行时可以改变其结构),然而Java的反射机制赋予了它对类动态加载调用的能力,所以很多朋友都称Java为准动态语言
热心网友
时间:2022-03-01 10:04
面向对象:其实是现实世界模型的自然延伸。现实世界中任何实体都可以看作是对象。对象之间通过消息相互作用。另外,现实世界中任何实体都可归属于某类事物,任何对象都是某一类事物的实例。如果说传统的过程式编程语言是以过程为中心以算法为驱动的话,面向对象的编程语言则是以对象为中心以消息为驱动。用公式表示,过程式编程语言为:程序=算法+数据;面向对象编程语言为:程序=对象+消息。
所有面向对象编程语言都支持三个概念:封装、多态性和继承,Java也不例外。现实世界中的对象均有属性和行为,映射到计算机程序上,属性则表示对象的数据,行为表示对象的方法(其作用是处理数据或同外界交互)。所谓封装,就是用一个自主式框架把对象的数据和方法联在一起形成一个整体。可以说,对象是支持封装的手段,是封装的基本单位。Java语言的封装性较强,因为Java无全程变量,无主函数,在Java中绝大部分成员是对象,只有简单的数字类型、字符类型和布尔类型除外。而对于这些类型,Java也提供了相应的对象类型以便与其他对象交互操作。
可移植性:就是在这个系统上作的程序经过一次编译后可以移植到别的系统上解释执行,只要经过简单的粘贴和复制就行了,不影响程序的效果
安全性:在
iSeries
服务器上运行的大多数
Java(TM)
程序是应用程序,而不是
applet,所以“砂箱”安全性模型对它们不起*作用。从安全性的观点看,Java
应用程序所受的安全性*与
iSeries
服务器上的任何其它程序相同。要在
iSeries
服务器上运行
Java
程序,您必须对集成文件系统中的类文件具有权限。程序一旦启动,它就在该用户权限控制下运行。
您可以使用沿用权限来访问具有运行程序的用户的权限和程序拥有者权限的对象。沿用权限临时地将用户原先无权访问的对象的权限授予用户。
并发性:JAVA支持多线程技术,就是多个线程并行机制,多线程是Java的一个重要方法,特别有利于在程序中实现并发任务.Java提供Thread线程类,实现了多线程的并发机制.然而,程序的并发执行必定会出现多个线程互斥访问临界资源的局面,因而并发系统解决的关键就是对临界资源的管理和分配问题,而在进行临界资源分配时有两方面需要考虑,即安全性和公平性.文中首先讨论了多线程并发系统中的安全性与公平性问题,指出安全性与公平性在并发系统中访问临界资源时的重要性.并通过火车行驶单行隧道的实例,演示各种条件下的行驶情况来进一步说明该问题.
可视化:不好说,像vb这样的也是可视话的编成程序。
我借鉴了一些朋友的答案,还有一些是自己找啊,希望能给你带来帮助
热心网友
时间:2022-03-01 13:35
一个字 好