??xml version="1.0" encoding="utf-8" standalone="yes"?> 一Q技术换q股 淘宝|是个好东东Q当个掌柜就可以赚钱Q当淘宝掌柜赚了(jin)钱干什么呢Q最好是做个自己的网站,把淘宝店当宣传和门市(jng)Q把自己的网站当资Q耕耘升倹{?/span> E序员的机遇在于Q?span style="font-family: Times New Roman;">99%的淘宝掌柜自己做不了(jin)一个成长性强可维护的独立|站Q如果有人给?span style="font-family: Times New Roman;">10%的股份请你编E,你就可以想买权证一P赌它一把,最坏是零蛋Q最好是VCW一轮进入,你就套现?/span> E序员要在心(j)态上把徏|站当成炒权证,一分钱的现金都不要Ҏ(gu)的,p股䆾Q这P那天?j)情不爽了(jin),或者那个掌柜干的事没戏Q立d散伙Q没有一分钱的心(j)理压力?/span> 捷径二:(x)技术换 董\博客火吧Q可董\为啥没象徐静(rn)蕾一栯己做个鲜花村的网站呢Q不是不惻I肯定是没技?span style="font-family: Times New Roman;">+不愿意花钱操?j)去弄?/span> 如果你帮董\免费弄一个呢Q一分钱不要Q一个百分点的股份也不要Q就要他的网站下面有一行字Q本站由董\_丝E序员小X公益制作l护Q联p邮?span style="font-family: Times New Roman;">…. E序员不可能都去h癑ֺ拿上期权{套玎ͼ人家已经规范?jin),要想发?ch)Q就要搭上潜力企业,怎么搭上潜力企业?span style="font-family: Times New Roman;">CEO呢? Ҏ(gu)SNS六度I间理论Q名人的_丝最杂,你帮名h的忙Q一定有名h的粉丝帮你一把?/span> 眼光不用太高Q比董\?span style="font-family: Times New Roman;">100L(fng)Q某行业的名Z很用,你要是给你们家乡的县长弄个网站,保证你们家h一定受益,当然Q前提是要落实清楚,Y是不是个马上双规的贪官?/span> 捷径三:(x)技术换?jng)?/strong> E序员最Ҏ(gu)犯的错误是盲目自信地l自q产品定义用户?/span> q些日子闹腾最凶的新浪搜狐腾讯博客互相搬家是典型Q大安嚷嚷自己有个博客搬家工具Q恶狠狠地把自己的程序品功能定义成Qؓ(f)从某处搬家到我这里的博客用户服务?/span> 其实Q博客的_丝们才最需要这样一个工P(x) 【博客珍藏工兗?/span> 把你最喜欢的博客,全部下蝲C的硬盘,全部Word文档、保存全部链接和评论Q你可以随时看,也可以随便把q些博客整理分nl你的好朋友?/span> 如果新浪肯出q样一个工P贫僧一定把当年明月的博客都珍藏下来Q然后,闲着没事的时候,到处转脓(chung)?/span> 如果博客的粉丝们都用新浪的【博客珍藏工兗到处下载搜狐和腾讯?span style="font-family: Times New Roman;">Blogbus的博客,那新的【博客珍藏工兗岂不就可以LPK那个搜狗输入法的影响力了(jin)Q?/span> SoQ程序员应该惛_某个应用Q就开发一个小E序Q然后免费给大家随便用,让用戯己去定义它能做什么,E序员唯一的回报是Q品牌市(jng)场的口碑营销?/span> 如果Q你真做?jin)一个万能的【博客珍藏工兗?/span> 张朝阌你去他的游艇上谈谈收购,也不是没可能的,只要是品真有用Q真好Q就不怕张朝阳不担?j)万一新浪专用?jin),搜狐又落后挨打很操蛋?/span> 1. Java中的异常处理机制的简单原理和应用?nbsp; 当JavaE序q反?jin)Java的语义规则时QJava虚拟机就?x)将发生的错误表CZؓ(f)一个异常。违反语义规则包?U情c(din)一U是Javacd内置的语义检查。例如数l下标越??x)引发IndexOutOfBoundsException;讉Knull的对象时?x)引发NullPointerException。另一U情况就是Java允许E序员扩展这U语义检查,E序员可以创q异常Qƈ自由选择在何时用throw关键字引发异常。所有的异常都是java.lang.Thowable的子cR?nbsp; 2. Java的接口和C++的虚cȝ相同和不同处?nbsp; ׃Java不支持多l承Q而有可能某个cL对象要用分别在几个cL对象里面的方法或属性,现有的单l承机制׃能满求。与l承相比Q接口有更高的灵zL,因ؓ(f)接口中没有Q何实C码。当一个类实现?jin)接口以后,该类要实现接口里面所有的Ҏ(gu)和属性,q且接口里面的属性在默认状态下面都是public static,所有方法默认情况下是public.一个类可以实现多个接口?nbsp; 3. 垃圾回收的优点和原理。ƈ考虑2U回收机制?nbsp; Java语言中一个显著的特点是引入?jin)垃圑֛收机Ӟ使c++E序员最头疼的内存管理的问题q刃而解Q它使得JavaE序员在~写E序的时候不再需要考虑内存理。由于有个垃圑֛收机ӞJava中的对象不再?#8220;作用?#8221;的概念,只有对象的引用才?#8220;作用?#8221;。垃圑֛收可以有效的防止内存泄露Q有效的使用可以使用的内存。垃圑֛收器通常是作Z个单独的低别的U程q行Q不可预知的情况下对内存堆中已经M的或者长旉没有使用的对象进行清除和回收Q程序员不能实时的调用垃圑֛收器Ҏ(gu)个对象或所有对象进行垃圑֛收。回收机制有分代复制垃圾回收和标记垃圑֛Ӟ增量垃圾回收?nbsp; 4.U程同步的方法?nbsp; wait():使一个线E处于等待状态,q且释放所持有的对象的lock?nbsp; sleep():使一个正在运行的U程处于睡眠状态,是一个静(rn)态方法,调用此方法要捕捉InterruptedException异常?nbsp; notify():唤醒一个处于等待状态的U程Q注意的是在调用此方法的时候,q不能确切地唤醒某一个等待状态的U程Q而是由JVM定唤醒哪个U程Q而且不是按优先?nbsp; Allnotity():唤醒所有处入等待状态的U程Q注意ƈ不是l所有唤醒线E一个对象的锁,而是让它们竞争?nbsp; 5. Error与Exception有什么区别? Error表示pȝU的错误和程序不必处理的异常Q?nbsp; Exception表示需要捕捉或者需要程序进行处理的异常?nbsp; 6. 在java中一个类被声明ؓ(f)finalcdQ表CZ(jin)什么意思? 表示该类不能被承,是顶U类?br> 栈是一U线形集合,其添加和删除元素的操作应在同一D完成。栈按照后进先出的方式进行处理。堆是栈的一个组成元素?/p>
8谈谈final, finally, finalize的区别?/p>
final—修饰符Q关键字Q如果一个类被声明ؓ(f)finalQ意味着它不能再z出新的子c,不能作ؓ(f)父类被ѝ因此一个类不能既被声明?abstract的,又被声明为final的。将变量或方法声明ؓ(f)finalQ可以保证它们在使用中不被改变。被声明为final的变量必d声明时给定初|而在以后的引用中只能dQ不可修攏V被声明为final的方法也同样只能使用Q不能重载?nbsp; 9 Anonymous Inner Class (匿名内部c? 是否可以extends(l承)其它c,是否可以implements(实现)interface(接口)? 匿名的内部类是没有名字的内部cR不能extends(l承) 其它c,但一个内部类可以作ؓ(f)一个接口,由另一个内部类实现? 11 &?amp;&的区别?nbsp; 12 HashMap和Hashtable的区别?/p>
都属于Map接口的类Q实C(jin)惟一键映到特定的g?nbsp; 13 Collection ?Collections的区别?/p>
Collection是个java.util下的接口Q它是各U集合结构的父接口? 14 什么时候用assert?/p>
断言是一个包含布?yu)(dng)表辑ּ的语句,在执行这个语句时假定该表辑ּ?true?nbsp; 15 GC是什? Z么要有GC? (基础)?/p>
GC是垃圾收集器。Java E序员不用担?j)内存管理,因?f)垃圾攉器会(x)自动q行理。要h垃圾攉Q可以调用下面的Ҏ(gu)之一Q? 16 String s = new String("xyz");创徏?jin)几个String Object? 两个对象Q一个是“xyz”,一个是指向“xyz”的引用对象s?/p>
17 Math.round(11.5){於多少? Math.round(-11.5){於多少? Math.round(11.5)q回QlongQ?2QMath.round(-11.5)q回QlongQ?11; 18 short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错? short s1 = 1; s1 = s1 + 1;有错Qs1是short型,s1+1是int?不能昑ּ转化为short型。可修改为s1 =(short)(s1 + 1) 。short s1 = 1; s1 += 1正确?/p>
19 sleep() ?wait() 有什么区? 搞线E的最?/p>
sleep()Ҏ(gu)是ɾU程停止一D|间的Ҏ(gu)。在sleep 旉间隔期满后,U程不一定立x复执行。这是因为在那个时刻Q其它线E可能正在运行而且没有被调度ؓ(f)攑ּ执行Q除?a)“醒来”的线E具有更高的优先U?(b)正在q行的线E因为其它原因而阻塞?nbsp; 20 Java有没有goto? 21 数组有没有length()q个Ҏ(gu)? String有没有length()q个Ҏ(gu)Q?/p>
数组没有length()q个Ҏ(gu)Q有length的属性?nbsp; 22 Overload和Override的区别。Overloaded的方法是否可以改变返回值的cd? Ҏ(gu)的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父cM子类之间多态性的一U表玎ͼ重蝲Overloading是一个类中多态性的一U表现。如果在子类中定义某Ҏ(gu)与其父类有相同的名称和参敎ͼ我们说该Ҏ(gu)被重?Overriding)。子cȝ对象使用q个Ҏ(gu)Ӟ调用子cM的定义,对它而言Q父cM的定义如同被“屏蔽”?jin)。如果在一个类中定义了(jin)多个同名的方法,它们或有不同的参C数或有不同的参数cdQ则UCؓ(f)Ҏ(gu)的重?Overloading)?nbsp; 23 Set里的元素是不能重复的Q那么用什么方法来区分重复与否? 是用==q是equals()? 它们有何区别? Set里的元素是不能重复的Q那么用iterator()Ҏ(gu)来区分重复与否。equals()是判M个Set是否相等?equals()?=Ҏ(gu)军_引用值是否指向同一对象equals()在类中被覆盖Qؓ(f)的是当两个分ȝ对象的内容和cd盔R的话Q返回真倹{?nbsp; 24最常见到的runtime exception?/p>
ArithmeticException, ArrayStoreException, BufferOverflowException, BufferUnderflowException, CannotRedoException, CannotUndoException, ClassCastException, CMMException, ConcurrentModificationException, DOMException,EmptyStackException, IllegalArgumentException, IllegalMonitorStateException, IllegalPathStateException, IllegalStateException,ImagingOpException, IndexOutOfBoundsException, MissingResourceException, NegativeArraySizeException, NoSuchElementException, NullPointerException, ProfileDataException, ProviderException, RasterFORMatException, Secur 25 error和exception有什么区? error 表示恢复不是不可能但很困隄情况下的一U严重问题。比如说内存溢出。不可能指望E序能处理这L(fng)情况?nbsp; 26 List, Set, Map是否l承自Collection接口? ListQSet?nbsp; 声明Ҏ(gu)的存在而不d现它的类被叫做抽象类Qabstract classQ,它用于要创徏一个体现某些基本行为的c,qؓ(f)该类声明Ҏ(gu)Q但不能在该cM实现该类的情c(din)不能创建abstract cȝ实例。然而可以创Z个变量,其类型是一个抽象类Qƈ让它指向具体子类的一个实例。不能有抽象构造函数或抽象?rn)态方法。Abstract cȝ子类为它们父cM的所有抽象方法提供实玎ͼ否则它们也是抽象cMؓ(f)。取而代之,在子cM实现该方法。知道其行ؓ(f)的其它类可以在类中实现这些方法?nbsp; 28 abstract的method是否可同时是static,是否可同时是nativeQ是否可同时是synchronized? 都不?/p>
29 接口是否可承接? 抽象cL否可实现(implements)接口? 抽象cL否可l承实体c?concrete class)? 接口可以l承接口。抽象类可以实现(implements)接口Q抽象类可承实体类Q但前提是实体类必须有明的构造函数?/p>
30 启动一个线E是用run()q是start()? 启动一个线E是调用start()Ҏ(gu)QɾU程所代表的虚拟处理机处于可运行状态,q意味着它可以由JVM调度q执行。这q不意味着U程׃(x)立即q行。run()Ҏ(gu)可以产生必须退出的标志来停止一个线E?br> 31 构造器Constructor是否可被override? 构造器Constructor不能被承,因此不能重写OverridingQ但可以被重载Overloading?/p>
32 是否可以l承Stringc? StringcLfinalcL不可以ѝ?/p>
33 当一个线E进入一个对象的一个synchronizedҎ(gu)后,其它U程是否可进入此对象的其它方? 不能Q一个对象的一个synchronizedҎ(gu)只能׃个线E访问?/p>
33 try {}里有一个return语句Q那么紧跟在q个try后的finally {}里的code?x)?/p>
?x)被执行Q什么时候被执行Q在return前还是后? 34 ~程? 用最有效率的Ҏ(gu)出2乘以8{於? 2 << 3 35 两个对象值相?x.equals(y) == true)Q但却可有不同的hash codeQ这句话对不? 不对Q有相同的hash code?/p>
36 当一个对象被当作参数传递到一个方法后Q此Ҏ(gu)可改变这个对象的属性,q可q回变化后的l果Q那么这里到底是g递还是引用传? 是g递。Java~程语言只由g递参数。当一个对象实例作Z个参数被传递到Ҏ(gu)中时Q参数的值就是对该对象的引用。对象的内容可以在被调用的方法中改变Q但对象的引用是永远不会(x)改变的?/p>
37 swtich是否能作用在byte上,是否能作用在long上,是否能作用在String? switchQexpr1Q中Qexpr1是一个整数表辑ּ。因此传递给 switch ?case 语句的参数应该是 int?short?char 或?byte。long,string 都不能作用于swtich?nbsp; Hashtablel承自Dictionaryc,而HashMap是Java1.2引进的Map interface的一个实?nbsp;
跨越防火墙的通信 如果你的应用E序有成千上万的用户Q而且他们都分布在世界各地Q那么客L(fng)和服务器之间的通信是一个棘手的问题。那是因为客L(fng)和服务器之间通常都会(x)有防火墙或者代理服务器。在q种情况下,你想使用DCOM׃是那么简单了(jin)Q而且Q通常你也不愿意把你的客户端程序发布到如此庞大数量的每一个用h中。于是,你最l选择?jin)用览器作为客L(fng)Q写下一堆ASP面Q把应用E序的中间层暴露l最l用戗结果呢Q运气好的话Q只是开发难度大?jin)一些,q气不好的话Q就?x)得C个根本无法维护的应用E序?/p>
惌一下你应该怎么在你的应用程序里面加入一个新的页面:(x)你必d建立好用L(fng)?Web面)Q以?qing)在q个面后面Q包含相应商业逻辑的中间层lg。这q不够,你还要再建立臛_一个ASP面Q用来接受用戯入的信息Q调用中间层lgQ把l果格式化ؓ(f)HTML形式Q最后还要把"l果?送回览器。要是客L(fng)代码不再如此依赖于HTML表单Q客L(fng)的编E不q单多?jin)吗Q还有,建立ASP面的那一步可以省略掉吗? 当然。如果你的中间层lg是Web service的话Q你完全可以从用L(fng)面直接调用中间层lgQ从而省掉徏立ASP面的那一步。要调用Web serviceQ你可以直接使用Microsoft SOAP Toolkit?NETq样的SOAP客户端,也可以用你自己开发的SOAP客户端,然后把它和你的应用程序连接v来。这样做Q不仅可以羃短开发周期,q可以减代码的复杂度,q增强整个应用程序的可维护性。同Ӟ你的应用E序也不再需要在每次调用中间层组件时Q都跌{到相应的"l果??jin)? 以我的经验来看,在一个用L(fng)面和中间层有较多交互的应用程序中Q用Web serviceq种l构Q可以轻杄节省花在用户界面~程上的20%的开发时间。这样做q有另一个好处,是你将得到一个由Web servicel成的中间层Q这一层是完全可以在应用程序集成或其他场合下被重用的。最后,通过Web service把你的应用程序的逻辑和数据暴露出来,q可以让其它q_上的客户重用你的应用E序?/p>
应用E序集成 企业U的应用E序开发者都知道Q企业里l常都要把用不同语言写成的在不同q_上运行的各种E序集成hQ而这U集成将p很大的开发的力量。你的应用程序经帔R需要从q行在古老的IBML上的E序中获取数据;或者再把数据发送到L或UNIX应用E序中去。即使是在同一个^CQ不同的软g厂商生的各UY件也常常需要集成v来。通过Web serviceQ应用程序可以用标准的方法把功能和数据暴露出来,供其它的应用E序使用?/p>
例如Q你有一个订单登录程序,用于d从客h的新订单Q包括客户信息、发货地址、数量、h(hun)格和付款方式{信息。同Ӟ你还有一个订单执行程序,用于实际货物发送的理。这两个E序是来自不同Y件厂商的。一份新订单q来之后Q订单登录程序需要通知订单执行E序发送货物。通过在订单执行程序上面增加一层Web serviceQ订单执行程序可以把"AddOrder"函数暴露出来。这P每当有新订单到来Ӟ订单dE序可以调用这个函数来发送货物了(jin)。进而通过Web service集成应用E序 B2B的集?/p>
用Web service集成应用E序Q可以你公司内部的商务处理更加自动化。但当交易跨了(jin)你的供应商和客户Q突破了(jin)公司的界U时又会(x)怎么样呢Q跨公司的商务交易集成通常叫做B2B集成?/p>
Web service是B2B集成成功的关键。通过Web serviceQ你的公司可以把关键的商务应用暴露给指定的供应商和客戗例如,把你的电(sh)子下单系l和?sh)子发票pȝ暴露出来Q你的客户就可以以电(sh)子的方式向你发送购货订单,而你的供应商则可以以?sh)子的方式把原料采购的发发送给你。当?dng)qƈ不是一个新的概念:(x)?sh)子文档交?EDI)早就是这样了(jin)。Web service和EDI之间的主要区别在于,W(xu)eb service的实现要比EDI单得多,而且Web service是运行在Internet上的Q在世界M地方都可L实现Q这样其q行成本q对较低。不q,W(xu)eb serviceq不像EDI那样Q是文档交换或B2B集成的一套完整的解决Ҏ(gu)。Web service只是B2B集成的一个关键部分,q需要许多其它的部分才能完成q个集成?/p>
用Web service来实现B2B集成的最大好处在于可以轻易实C操作性。只要把你的商务逻辑暴露出来Q成为Web serviceQ你可以让M指定的合作伙伴轻杄调用你的商务逻辑Q而不他们的pȝ在什么^Cq行Q用的是什么开发语a。这样就大大减少?jin)花在B2B集成的上的时间和成本。这L(fng)低成本让许多原本无法承受EDI的投资成本的中小企业也能实现B2B集成?/p>
软g重用 软g重用是一个很大的主题Q它有很多的形式和程度。最基本的Ş式是源代码模块或者类一U的重用。另一UŞ式是二进制Ş式的lg重用。当前,像表格控件或用户界面控gq样的可重用软glg在市(jng)Z都占有很大的份额。但q类软g的重用都有一个很严重的限Ӟ(x)重用仅限于代码,而数据不能被重用。原因在于你可以很轻易的发布lg甚至源代码,但要发布数据没那么Ҏ(gu)?jin),除非那些数据都是不?x)l常变化的静(rn)态数据? 而W(xu)eb service允许你在重用代码的同Ӟ重用代码后面的数据。用Web serviceQ你不再像以前那P要先从第三方购买、安装Y件组Ӟ再从你的应用E序中调用这些组件。你只需要直接调用远端的Web service可以了(jin)。D个例子,你想在你的应用程序中认用户输入的邮件地址Q那么,你只需把这个地址直接发送给相应的Web serviceQ这个Web service ׃(x)帮你查阅街道地址、城?jng)、省区和邮政~码{信息,认q个地址的确在相应的邮政~码区域。Web service 的提供商可以按时间或使用ơ数来对q项服务q行收费。这L(fng)服务要通过lg重用来实现是不现实的Q因为那L(fng)话你必须下蝲q安装好包含街道地址、城?jng)、省区和邮政~码{信息的数据库,而且q个数据库还是不能实时更新的?/p>
另一UY仉用的情况是把好几个应用程序的功能集成h。例如,你想要徏立一个局域网上的门户站点应用Q让用户既可以查询他们的联邦快递包裹,察看股市(jng)行情Q又可以理他们的日E安排,q可以在U购买电(sh)q。现在Web上有很多应用E序供应商,都在其应用中实现?jin)上面的q些功能。一旦他们把q些功能都通过Web service 暴露出来Q你可以非常轻易地把所有这些功能都集成C的门L(fng)点中Qؓ(f)用户提供一个统一的、友好的界面?br>用Web service来集成各U应用中的功能,为用h供一个统一的界?br>许多应用E序都会(x)利用Web serviceQ把当前Zlg的应用程序结构扩展ؓ(f)lg和W(xu)eb service 的合结构。你也可以在应用E序中用第三方的Web service 提供的功能。你q可以把你自q应用E序的功能通过Web service 提供l别人。所有这些情况下Q你都可以重用代码和代码后面的数据。MQW(xu)eb service 是软g重用的一U非常有力的形式?/p>
什么时候不应该使用Web Service 一个对Web service的完整介l还应该包括什么时候不该用Web service。经q前面的介绍Q我们知道了(jin)Web service 在通过Webq行互操作或q程调用的时候是最有用的。不q,q有许多情况QW(xu)eb serviceҎ(gu)不能l你带来M好处?/p>
单机应用E序 目前Q我们还有很多桌面应用程序是供商用和个h使用的。其中一些只需要与q行在本Z的其他程序通信。在q种情况下,我们最好就不要再用Web service Q只要用本地的API可以了(jin)。COM非常适合于在q种情况下工作,因ؓ(f)它既又快。运行在一台服务器上的服务器Y件也是这P(x)最好直接用COM或其他本地的API来进行应用程序间的调用。当然Web service 也能用在q些情况下,但那样不仅消耗太大,而且不会(x)l你带来M好处?/p>
局域网上的同构应用E序 在许多应用中Q你所有的E序都是用VB或VC开发的Q都在Windowsq_下用COMQ都q行在同一个局域网上。例如,你有两个服务器应用程序需要相互通信Q或者你有一个Win32或WinForm的客L(fng)序要q接到局域网上的另一个服务器E序。在q些E序里用DCOM?x)比SOAP/HTTP有效的多。类似的Q如果你的一?NETE序要连接到LAN上的另一?NETE序Q那么你应该使用.NET remoting。有的是,?NET remoting中,你也可以指定使用SOAP/HTTP来进行W(xu)eb service 调用。不q最好还是直接通过TCPq行RPC调用Q那样会(x)有效得多。MQ只要你从应用程序结构的角度看来Q有别的Ҏ(gu)比Web service 更有效,更可行,那就不要再用Web service?/p>
ȝ Web service是创建可互操作的分布式应用程序的新^台。Web service 的主要目标是跨^台的可互操作性。ؓ(f)?jin)达到这一目标QW(xu)eb service 是完全基于XML、XSD{独立于q_、独立于软g供应商的标准的? Web service在应用程序跨q_和跨|络q行通信的时候是非常有用的。Web service适用于应用程序集成、B2B集成、代码和数据重用Q以?qing)通过Webq行客户端和服务器的通信的场合? 当然QW(xu)eb service也不是万能的Q你不能到处滥用Web service。在有些情况下,W(xu)eb service ?x)降低应用程序的性能Q而不?x)带来Q何好处。例如,一台机器或一个局域网里面q行的同构应用程序就不应该用Web service q行通信?/p>
]]>
7 heap和stack有什么区别?/p>
finally—异常处理时提供 finally 块来执行M清除操作。如果抛Z个异常,那么相匹配的 catch 子句׃(x)执行Q然后控制就?x)进?finally 块(如果有的话)(j)?nbsp;
finalize—方法名。Java 技术允怋?finalize() Ҏ(gu)在垃圾收集器对象从内存中清除出M前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对q个对象调用的。它是在 Object cM定义的,因此所有的c都l承?jin)它。子c覆?finalize() Ҏ(gu)以整理系l资源或者执行其他清理工作。finalize() Ҏ(gu)是在垃圾攉器删除对象之前对q个对象调用的?
10 Static Nested Class ?Inner Class的不?
Nested Class Q一般是C++的说法)(j)QInner Class (一般是JAVA的说?。Java内部cMC++嵌套cL大的不同在于是否有指向外部的引用上?
注:(x) ?rn)态内部类QInner ClassQ意味着1创徏一个static内部cȝ对象Q不需要一个外部类对象Q?不能从一个static内部cȝ一个对象访问一个外部类对象 .
&是位q算W?amp;&是布?yu)(dng)逻辑q算W?nbsp;
HashMap cL有分cL者排序。它允许一?null 键和多个 null 倹{?nbsp;
Hashtable cM?HashMapQ但是不允许 null 键和 null 倹{它也比 HashMap 慢,因ؓ(f)它是同步的?/p>
Collections是个java.util下的c,它包含有各种有关集合操作的静(rn)态方法?/p>
如果表达式计ؓ(f) falseQ那么系l会(x)报告一?Assertionerror。它用于调试目的Q?nbsp;
assert(a > 0); // throws an Assertionerror if a <= 0
断言可以有两UŞ式:(x)
assert Expression1 ;
assert Expression1 : Expression2 ;
Expression1 应该L产生一个布?yu)(dng)倹{?nbsp;
Expression2 可以是得Z个值的L表达式。这个值用于生成显C更多调?nbsp;
信息?String 消息?nbsp;
断言在默认情况下是禁用的。要在编译时启用断言Q需要?source 1.4 标记Q?
javac -source 1.4 Test.java
要在q行时启用断aQ可使用 -enableassertions 或?-ea 标记?nbsp;
要在q行旉择用断言Q可使用 -da 或?-disableassertions 标记?nbsp;
要系l类中启用断aQ可使用 -esa 或?-dsa 标记。还可以在包的基上启用或者禁用断a?nbsp;
可以在预计正常情况下不会(x)到达的Q何位|上攄断言。断a可以用于验证传递给U有Ҏ(gu)的参数。不q,断言不应该用于验证传递给公有Ҏ(gu)的参敎ͼ因ؓ(f)不管是否启用?jin)断aQ公有方法都必须(g)查其参数。不q,既可以在公有Ҏ(gu)中,也可以在非公有方法中利用断言试后置条g。另外,断言不应该以M方式改变E序的状态?nbsp;
System.gc()
Runtime.getRuntime().gc()
wait()是线E交互时Q如果线E对一个同步对象x 发出一个wait()调用Q该U程?x)暂停执行,被调对象q入{待状态,直到被唤醒或{待旉到?nbsp;
Goto—java中的保留字,现在没有在java中用?/p>
String有有length()q个Ҏ(gu)?
Overloaded的方法是可以改变q回值的cd?
ityException, SystemException, UndeclaredThrowableException, UnmodifiableSetException, UnsupportedOperationException
exception 表示一U设计或实现问题。也是_(d)它表C如果程序运行正常,从不?x)发生的情况?/p>
Map不是
27 abstract class和interface有什么区?
接口QinterfaceQ是抽象cȝ变体。在接口中,所有方法都是抽象的。多l承性可通过实现q样的接口而获得。接口中的所有方法都是抽象的Q没有一个有E序体。接口只可以定义static final成员变量。接口的实现与子cȝ|除了(jin)该实现类不能从接口定义中l承行ؓ(f)。当cd现特D接口时Q它定义Q即程序体l予Q所有这U接口的Ҏ(gu)。然后,它可以在实现?jin)该接口的类的Q何对象上调用接口的方法。由于有抽象c,它允怋用接口名作ؓ(f)引用变量的类型。通常的动态联~将生效。引用可以{换到接口cd或从接口cd转换Qinstanceof q算W可以用来决定某对象的类是否实现?jin)接口?nbsp;
?x)执行,在return前执行?/p>
38 Hashtable和HashMap
HashMap允许null作ؓ(f)一个entry的key或者valueQ而Hashtable不允?
q有是QHashMap把Hashtable的containsҎ(gu)L?jin),?gu)containsvalue和containsKey。因为containsҎ(gu)Ҏ(gu)让h引v误解?
最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是Q在
多个U程讉KHashtableӞ不需要自׃ؓ(f)它的Ҏ(gu)实现同步Q而HashMap必Mؓ(f)之提供外同步?nbsp;
Hashtable和HashMap采用的hash/rehash法都大概一P所以性能不会(x)有很大的差异?br>
]]>
一只狼C(jin)q来Q问Q?#8220;兔子啊,你在q什么?”
{曰Q?#8220;写文章?#8221;问:(x)“什么题目?”{曰Q?#8220;《浅谈兔子是怎样吃掉狼的》?#8221;
狼哈哈大W,表示不信Q于是兔子把狼领q山z?
q了(jin)一?x),兔子独自走出山洞Ql写文章?
一只野猪走?jin)过来,问?x)“兔子你在写什么?”{:(x)“?章?#8221;问:(x)“题目是什么?”
{:(x)“《浅谈兔子是如何把野猪吃掉的》?#8221;野猪不信Q于是同L(fng)事情发生?
最后,在山z里Q一只狮子在一堆白骨之_(d)满意的剔着牙读着兔子交给它的文章Q?
题目Q《一只动物,能力大小关键要看你的老板是谁?
q只兔子有次不小?j)告诉?jin)他的一个兔子朋友,q消息逐渐在森林中传播Q?
狮子知道后非常生气,他告诉兔子:(x)“如果q个星期没有食物q洞Q我吃你?#8221;
于是兔子l箋在洞口写文章
一只小鹿走q来Q?#8220;兔子Q你在干什么啊Q?#8221;
“写文?#8221;“什么题?#8221;““《浅谈兔子是怎样吃掉狼的?#8221;
“哈哈Q这个事情全林都知道啊Q你别胡弄我?jin),我是不?x)q洞?#8221;
“我马上要退休了(jin)Q狮子说要找个h替我,N你不惌文章的兔子变成鹿?#8221;
鹿想了(jin)惻Il于忍不住诱惑,跟随兔子走进z里?
q了(jin)一?x),兔子独自走出山洞Ql写文章
一只小马走q来Q同h事情发生?jin)?
最后,在山z里Q一只狮子在一堆白骨之_(d)满意的剔着牙读着兔子交给它的文章
题目是:(x)《如何发展下U动物ؓ(f)老板提供食物?/span>
随着旉的推U,狮子长大Q兔子的食物已远q不能填p子?
一日,他告诉兔子:(x)“我的食物量要加倍,例如Q原?天一只小鹿,现在?天一只,如果一周之内改变不?jin)局面我吃你?
于是Q兔子离开z口Q跑q森林深处,他见C只狼
“你相信兔子能L吃掉狼吗”
狼哈哈大W,表示不信Q于是兔子把狼领q山z?
q了(jin)一?x),兔子独自走出山洞Ql进入森林深?
q回他碰C只野?---“你相信兔子能L吃掉野猪?#8221;
野猪不信Q于是同L(fng)事情发生?jin)?
原来林深处的动物ƈ不知道兔子和狮子的故?
最后,在山z里Q一只狮子在一堆白骨之_(d)满意的剔着牙读着兔子交给它的文章
题目是:(x)《如何实现由坐商到行商的转型板提供更多的食??/strong>
旉飞快Q{g_(d)兔子在森林里的名气越来越?
因ؓ(f)大家都知道它有一个很历害的老板
q只兔开始横行霸道,ZZQ没有动物敢?
它时时想起和乌龟赛跑的羞?
它找C龟说Q?#8220;三天之内Q见我老板Q?#8221;扬长而去
乌龟难过的哭?
q时却碰C(jin)一位猎?
乌龟把这事告诉了(jin)?
猎h哈哈大笑
于是林里发生了(jin)一仉大事?
猎h披着狮子皮和乌龟一起在吃兔子火?
C丢了(jin)半张U片歪歪扭扭的写着Q山外青山楼外楼Q强中还有强中手啊!Q?
在很长一D|间里林里恢复了(jin)往日的宁静(rn)Q兔子吃狼的故事g快要被大家忘C(jin)
不过一只年ȝ老虎在听说了(jin)q个故事后,被激发了(jin)灉|
于是他抓住了(jin)一只羚,对羚说Q如果你可以象以前的兔子那样为我带来食物那我׃吃你?
于是Q羚无奈的{应?jin)老虎Q而老虎也?zhn)然自得的q了(jin)山洞?
可是三天q去?jin),也没有见羊领一只动物进z。他实在憋不住了(jin)Q想出来看看情况?
羊早已不在?jin),他异常愤怒。正在他暴蟩如雷的时候突然发C(jin)羊写的一文?
题目是:(x)《想要做好老板先要懂得怎样留住员工?/strong>
]]>
]]>
JSP 中究竟采用绝对\径还是采用相对\径随着所采用技术的来复杂,q个问题也变得越来越难以解决?/span>
Q)(j) 采用相对路径遇到的问?/span>
l 相对路径固然比较灉|Q但如果惛_刉面内的代码却变得比较困难Q因Z同的面h不同的相对\径,复制后必MҎ(gu)一个连接的路径?/font>
l 如果面被多于一个的面所包含Q那么被包含面中的相对路径是不正的?/font>
l 如果采用 Struts ?/span> Action q回面Q那么由于页面\径与 Action 路径不同Q得浏览器无法正确解释面中的路径Q如面?/span> /pages/cust/cust.jsp Q图片所有目录ؓ(f) /images/title.gif Q这时在 /pages/cust/cust.jsp 中的所用的路径?/span> ?./../images/title.gif?/font> Q但是如果某一?/span> Action ?/span> Forward 指向q个 JSP 文gQ而这?/span> Action 的\径ؓ(f) /cust/manage.do Q那么页面内容中 ?./../images/title.gif?/font> ׃再指向正的路径?jin)?/span>
解决以上问题g只有使用l对路径?jin)?/font>
Q)(j) 采用l对路径遇到的问?/span>
l 随着不同?/span> Web 应用发布方式Q绝对\径的g不同。如 Web 应用发布?/span> MyApp Q则路径 ?MyApp/images/title.gif?/font> 是正的Q但发布为另一应用时如 MyApp2 Q这个\径就不对?jin),也许q个情况比较?yu),但?/span> default 方式发布 Web 应用时以上绝对\径也不同Q?/span> ?images/title.gif?/font> ?/span>
Q)(j) 采用l对路径Q但Z(jin)解决不同部v方式的差别,在所有非 struts 标签的\径前?/span> ${pageContext.request.contextPath} Q如原\径ؓ(f)Q?/span>
?images/title.gif?/font> Q改?/span>
?{pageContext.request.contextPath}/images/title.gif?/font> ?/span>
代码 ?${pageContext.request.contextPath}?/font> 的作用是取出部v的应用程序名Q这样不如何部|Ԍ所用\径都是正的?/span>
~点Q?/span>
操作不便Q其他工h法正解?/span> ${pageContext.request.contextPath}
Q)(j) 采用相对路径Q在每个 JSP 文g中加?/span> base 标签Q如Q?/span>
<base href="http://${header['host']}${pageContext.request.contextPath}/pages/cust/relation.jsp" />
q样所有的路径都可以用相对\径?/font>
~点Q?/span>
对于被包含的文g依然无效?/font>
真正使用旉要灵zd用1Q和Q)(j)Q写出更加健壮的代码?/span>
=================================================================================
1.基本概念的理?/p>
l对路径Q绝对\径就是你的主上的文件或目录在硬盘上真正的\径,(URL和物理\?例如Q?br />C:\xyz\test.txt 代表?jin)test.txt文g的绝对\径?a >http://www.sun.com/index.htm也代表了(jin)一?br />URLl对路径?/p>
相对路径Q相对与某个基准目录的\径。包含Web的相对\径(HTML中的相对目录Q,例如Q在
Servlet中,"/"代表Web应用的跟目录。和物理路径的相对表C。例如:(x)"./" 代表当前目录,
"../"代表上目录。这U类似的表示Q也是属于相对\径?/p>
另外关于URIQURL,URN{内容,请参考RFC相关文档标准?/p>
RFC 2396: Uniform Resource Identifiers (URI): Generic Syntax,
(http://www.ietf.org/rfc/rfc2396.txt)
2.关于JSP/Servlet中的相对路径和绝对\径?/p>
2.1服务器端的地址
服务器端的相对地址指的是相对于你的web应用的地址Q这个地址是在服务器端解析?br />Q不同于html和javascript中的相对地址Q他们是由客L(fng)览器解析的Q也是说这时?br />在jsp和servlet中的相对地址应该是相对于你的web应用Q即相对?a >http://192.168.0.1/webapp/的?
其用到的地方有:(x)
forwardQservlet中的request.getRequestDispatcher(address);q个address?br />在服务器端解析的Q所以,你要forward到a.jsp应该q么写:(x)
request.getRequestDispatcher(?user/a.jsp?q个/相对于当前的web应用webappQ?br />其绝对地址是Q?a >http://192.168.0.1/webapp/user/a.jsp?
sendRedirectQ在jsp?lt;%response.sendRedirect("/rtccp/user/a.jsp");%>
2.22、客L(fng)的地址
所有的html面中的相对地址都是相对于服务器根目?http://192.168.0.1/)的,
而不?跟目录下的该Web应用的目?http://192.168.0.1/webapp/的?
Html中的form表单的action属性的地址应该是相对于服务器根目录(http://192.168.0.1/)的,
所以,如果提交到a.jsp为:(x)actionQ?/webapp/user/a.jsp"或action="<%=request.getContextPath()%>"/user/a.jspQ?br /> 提交到servlet为actiomQ?/webapp/handleservlet"
Javascript也是在客L(fng)解析的,所以其相对路径和form表单一栗?
因此Q一般情况下Q在JSP/HTML面{引用的CSS,Javascript.Action{属性前面最好都加上
<%=request.getContextPath()%>,以确保所引用的文仉属于Web应用中的目录?br />另外Q应该尽量避免用类?.","./","../../"{类似的相对该文件位|的相对路径Q这?br />当文件移动时Q很Ҏ(gu)出问题?/p>
3. JSP/Servlet中获得当前应用的相对路径和绝对\?br />3.1 JSP中获得当前应用的相对路径和绝对\?br /> 根目录所对应的绝对\?request.getRequestURI()
文g的绝对\径 ? :application.getRealPath(request.getRequestURI());
当前web应用的绝对\?:application.getRealPath("/");
取得h文g的上层目?new File(application.getRealPath(request.getRequestURI())).getParent()
3.2 Servlet中获得当前应用的相对路径和绝对\?br /> 根目录所对应的绝对\?request.getServletPath();
文g的绝对\径 ?:request.getSession().getServletContext().getRealPath
(request.getRequestURI())
当前web应用的绝对\?:servletConfig.getServletContext().getRealPath("/");
(ServletContext对象获得几种方式Q?br /> javax.servlet.http.HttpSession.getServletContext()
javax.servlet.jsp.PageContext.getServletContext()
javax.servlet.ServletConfig.getServletContext()
)
4.java 的Class中获得相对\径,l对路径的方?br />4.1单独的JavacM获得l对路径
Ҏ(gu)java.io.File的Doc文挡Q可?
默认情况下new File("/")代表的目录ؓ(f)QSystem.getProperty("user.dir")?br /> 一下程序获得执行类的当前\?br />package org.cheng.file;
import java.io.File;
public class FileTest {
public static void main(String[] args) throws Exception {
System.out.println(Thread.currentThread().getContextClassLoader().getResource(""));
System.out.println(FileTest.class.getClassLoader().getResource(""));
System.out.println(ClassLoader.getSystemResource(""));
System.out.println(FileTest.class.getResource(""));
System.out.println(FileTest.class.getResource("/")); //Class文g所在\径?
System.out.println(new File("/").getAbsolutePath());
System.out.println(System.getProperty("user.dir"));
}
}
4.2服务器中的Javac获得当前\径(来自|络Q?br />(1).Weblogic
WebApplication的系l文件根目录是你的weblogic安装所在根目录?br />例如Q如果你的weblogic安装在c:\bea\weblogic700.....
那么Q你的文件根路径是c:\.
所以,有两U方式能够让你访问你的服务器端的文gQ?br />a.使用l对路径Q?br />比如你的参数文件放在c:\yourconfig\yourconf.propertiesQ?br />直接使用 new FileInputStream("yourconfig/yourconf.properties");
b.使用相对路径Q?br />相对路径的根目录是你的webapplication的根路径Q即WEB-INF的上一U目录,你的参数文件放
在yourwebapp\yourconfig\yourconf.propertiesQ?br />q样使用Q?br />new FileInputStream("./yourconfig/yourconf.properties");
q两U方式均可,自己选择?/p>
(2).Tomcat
在类中输出System.getProperty("user.dir");昄的是%Tomcat_Home%/bin
(3).Resin
不是你的JSP攄相对路径,是JSP引擎执行q个JSP~译成SERVLET
的\径ؓ(f)?比如用新建文件法试File f = new File("a.htm");
q个a.htm在resin的安装目录下
(4).如何ȝ对\径哪Q?/p>
在Java文g中getResource或getResourceAsStream均可
例:(x)getClass().getResourceAsStream(filePath);//filePath可以?/filename",q里?代表web
发布根\径下WEB-INF/classes
默认使用该方法的路径是:(x)WEB-INF/classes。已l在Tomcat中测试?/p>
5.d文g时的相对路径Q避免硬~码和绝对\径的使用。(来自|络Q?br />5.1 采用Spring的DI机制获得文gQ避免硬~码?br /> 参考下面的q接内容Q?br /> http://www.javajia.net/viewtopic.php?p=90213&
5.2 配置文g的读?br /> 参考下面的q接内容Q?br /> http://dev.csdn.net/develop/article/39/39681.shtm
5.3 通过虚拟路径或相对\径读取一个xml文gQ避免硬~码
参考下面的q接内容Q?br /> http://club.gamvan.com/club/clubPage.jsp?iPage=1&tID=10708&ccID=8
6.Java中文件的常用操作Q复ӞUdQ删除,创徏{)(j)Q来自网l)(j)
常用 java File 操作c?
http://www.easydone.cn/014/200604022353065155.htm
Java文g操作大全QJSP中)(j)
http://www.pconline.com.cn/pcedu/empolder/gj/java/0502/559401.html
java文g操作详解QJava中文|)(j)
http://www.51cto.com/html/2005/1108/10947.htm
JAVA 如何创徏\删除\修改\复制目录?qing)文?br /> http://www.gamvan.com/developer/java/2005/2/264.html
ȝQ?br /> 通过上面内容的用,可以解决在Web应用服务器端Q移动文Ӟ查找文gQ复?br /> 删除文g{操作,同时Ҏ(gu)务器的相对地址Q绝对地址概念更加清晰?br />参考URI,的RFC标准文挡。同时对Java.io.File. Java.net.URI.{内容了(jin)解透彻
对其他方面的理解可以更加深入和透彻?br />==================================================================================
参考资?
java/docs/
java.io.File
java.io.InputStream
java.io.OutputStream
java.io.FileInputStream
java.io.FileReader;
java.io.FileOutputStream
java.io.FileWriter;
java.net.URI
java.net.URL
l对路径与相对\径祥?br />http://www.webjx.com/htmldata/2005-02-26/1109430310.html
[『J道习(fn)l』]JSP和Servlet中的l对路径和相对\?br />http://w3china.org/blog/more.asp?name=pcthomas&id=9122&commentid=12376
JSP,Servlet,Class获得当前应用的相对\径和l对路径
http://cy.lzu.edu.cn/cy/club/clubPage.jsp?ccStyle=0&tID=886&ccID=77
如何获得当前文g路径
http://www.matrix.org.cn/resource/article/44/44113_java.html
通过Spring注入机制Q取得文?br />http://www.javajia.net/viewtopic.php?p=90213&
配置文g的读?
http://dev.csdn.net/develop/article/39/39681.shtm
d配置文g,通过虚拟路径或相对\径读取一个xml文gQ避免硬~码Q?
http://club.gamvan.com/club/clubPage.jsp?iPage=1&tID=10708&ccID=8
常用 java File 操作c?br />http://www.easydone.cn/014/200604022353065155.htm
Java文g操作大全
http://www.pconline.com.cn/pcedu/empolder/gj/java/0502/559401.html
Java文g操作详解
http://www.51cto.com/html/2005/1108/10947.htm
前提Q假设你?/span>
Http
地址?/span>
http://192.168.0.1/
你的
web
应用?/span>
webapp
Q那么你?/span>
web
应用
URL
?/span>
http://192.168.0.1/webapp/
web
应用的目录结构:(x)
webapp/
web-inf/
classes/
lib/
web.xml
<servlet-mapping>
<servlet-name>handleservlet</servlet-name>
<url-pattern>/handleservlet</url-pattern>
此映是相对于当?/span>
web
应用?/span>
</servlet-mapping>
user/
a.jsp
b.jsp
images/
css/
js/
所有相对\径都是由?/span>
/
”开头的。如Q?/span>
/image/a.gif
Q?/span>
/user/main.jsp
Q大家知道在
html
中的相对路径是这L(fng)Q?/span>
有个
html
文gQ?/span>
a.html
Q其中有
<link href="one.css" rel="stylesheet" type="text/css">
Q其?/span>
href
属性表C引用的
css
文g的\径?/span>
one.css
Q表C?/span>
one.css
?/span>
a.hmtl
处于同一个目?/span>
user/one.css
Q表C?/span>
one.css
处于
a.html
所在目录的子目?/span>
user
中?/span>
../one.css
Q表C?/span>
one.css
位于
a.hmtl
上一U目录下Q?/span>
../../one.css
Q表C?/span>
one.css
位于
a.hmtl
上一U目录的上一U目录下Q?/span>
./
Q表C和
a.hmtl
同一目录
我们UCq相对\径ؓ(f)
html
相对路径
1?/font>
服务器端的地址
服务器端的相对地址指的是相对于你的
web
应用的地址Q这个地址是在服务器端解析的(不同?/span>
html
?/span>
javascript
中的相对地址Q他们是由客L(fng)览器解析的Q也是说这时候在
jsp
?/span>
servlet
中的相对地址应该是相对于你的
web
应用Q即相对?/span>
http://192.168.0.1/webapp/
的?/span>
其用到的地方有:(x)
forwarder
Q?/span>
servlet
中的
request.getRequestDispatcher(address);
q个
address
是在服务器端解析的,所以,你要
forwarder
?/span>
a.jsp
应该q么写:(x)
request.getRequestDispatcher(?user/a.jsp?
q个
/
相对于当前的
web
应用
webapp
Q其l对地址是Q?/span>
http://192.168.0.1/webapp/user/a.jsp
?/span>
sendRedirect
Q在
jsp
?/span>
<%response.sendRedirect("/rtccp/user/a.jsp");%>
2?/font>
客户端的地址
所有的
html
中的相对地址都是相对?/span>
http://192.168.0.1/
的,而不?/span>
http://192.168.0.1/webapp/
的?/span>
Html 中的 form 表单?/span> action 属性的地址应该是相对于 http://192.168.0.1/ 的,所以,如果提交?/span> a.jsp 为:(x) action Q?/span> ?webapp/user/a.jsp?/font> Q提交到 servlet ?/span> action Q?/span> ?webapp/handleservlet?o:p>
Javascript
也是在客L(fng)解析的,所以其相对路径?/span>
form
表单一栗?/span>
3?/font>
站点根目录和
css
路径问题
我们U类DL(fng)相对路径
/webapp/?
为相对于站点根目录的相对路径?/span>
当在
jsp
中引?/span>
css
Ӟ如果其相对\径相对于当前
jsp
文g的,而在一个和q个
jsp
的\径不一L(fng)
servlet
?/span>
forwarder
q个
jsp
Ӟ׃(x)发现q个
css
样式Ҏ(gu)没有起作用。这是因为在
servlet
中{发时
css
的\径就是相对于q个
servlet
的相对\径而非
jsp
的\径了(jin)。所以这时候不能在
jsp
中用q样的\径:(x)
<link href="one.css" rel="stylesheet" type="text/css">
或?/span>
<link href="../../one.css" rel="stylesheet" type="text/css">
cM
href="one.css"
?/span>
../../one.css
?/span>
html
相对路径是相对于引用q个
css
的文件的相对路径。而在
servlet
中{发时是相对于这?/span>
servlet
的相对\径了(jin)Q因?/span>
jsp
路径?/span>
servlet
路径是不一L(fng)Q所以这L(fng)引用肯定是出错的?/span>
所以这个时候,要用站点根目录,是相对?/span>
http://192.168.0.1/
的目录,以?/span>
/
”开头?/span>
因此上述错误应更正ؓ(f)
href=?webapp/one.css?/font>
cM的站Ҏ(gu)目录的相对目录。这样在
servlet
转发后和
jsp
中都是相对于站点根目录的相对路径Q就能正用所定义?/span>
css
样式?jin)?/span>
说了(jin)q么多,不知道你?jin)解没,有什么问题留aQ大家一块交!