??xml version="1.0" encoding="utf-8" standalone="yes"?>欧美激情五月,亚洲国产另类久久精品,亚洲国产中文在线二区三区免http://www.aygfsteel.com/java2java/世界Javazh-cnSun, 04 May 2025 08:43:59 GMTSun, 04 May 2025 08:43:59 GMT60JAVAq行时的产间错误http://www.aygfsteel.com/java2java/archive/2008/03/01/183079.htmljava2javajava2javaSat, 01 Mar 2008 01:55:00 GMThttp://www.aygfsteel.com/java2java/archive/2008/03/01/183079.htmlhttp://www.aygfsteel.com/java2java/comments/183079.htmlhttp://www.aygfsteel.com/java2java/archive/2008/03/01/183079.html#Feedback1http://www.aygfsteel.com/java2java/comments/commentRss/183079.htmlhttp://www.aygfsteel.com/java2java/services/trackbacks/183079.html1.错误提示内容QCan‘t find class HelloworldApp

  解释Q(当键?u>java HelloWorldApp时发生该错误。)(j)

  pȝ找不到名为HelloWorldApp的类文g。一般地Q该错误意味着cd拼写和源文g名不一Ppȝ创徏filename.class文g时用的是类定义的名字,q且区分大小写?/p>

  例如Q?/p>

  class HelloWorldappQ?#8230;Q?/p>

  l?u>~译后将创徏HelloWorldapp.classcR执行时Q也要用这个名字。发生这个错误时Q可以用文件查看命令Is或dir看看当前目录下是否存在相应的文gQƈ(g)查文件名的大写?/p>

  2.错误提示内容QIn class HelloWorldAppQmain must be public and static

  解释Q如果mainQ)(j)Ҏ(gu)的左侧缺static或publicQ会(x)发生q个错误。前面已l解释过对mainQ)(j)Ҏ(gu)前面的修饰符有特D的要求?/p>

  3.文g中含有的cM数错?/p>

  解释Q按照Java规则Q在一个源文g中最多只能定义一个公有类Q否则会(x)发生q行旉误。如果一个应用系l中有多个公有类Q则要把它们分别攑֜各自不同的文件中。文件中非公有类的个C限?/p>

  4.层次错误

  解释Q一个。java源文件可以含有三?#8220;层”元素Q这三个元素是:(x)

  Q?Q一个包说明Q即package语句Q包说明是可选的?/p>

  Q?QQ意多个引入语句,即import语句?/p>

  Q?Q类和接口说明?/p>

  q些语句必须按一定的ơ序出现Q即Q引入语句必d现在所有的c说明之前,如果使用?jin)包说明Q则它必d现在c说明和引入语句之前?/p>

  例如Q下面是正确的语句序列:(x)

  package TransportationQ?/p>

  import jaya.awt.Graphics

  import jays.applet.AppletQ?/p>

  下面是两例错误的语句序Q?/p>

  import java.aWt.Graphics

  import java.applet.AppletQ?/p>

  package TransportationQ?/p>

  该例中在包说明语句之前含?u>其他语句?/p>

  package TransportationQ?/p>

  package HouseQ?/p>

  import java.applet.AppletQ?/p>

  该例中含有两个包说明语句?a >HP0-345 HP0-634

1.错误提示内容QCan‘t find class HelloworldApp

  解释Q(当键?u>java HelloWorldApp时发生该错误。)(j)

  pȝ找不到名为HelloWorldApp的类文g。一般地Q该错误意味着cd拼写和源文g名不一Ppȝ创徏filename.class文g时用的是类定义的名字,q且区分大小写?/p>

  例如Q?/p>

  class HelloWorldappQ?#8230;Q?/p>

  l?u>~译后将创徏HelloWorldapp.classcR执行时Q也要用这个名字。发生这个错误时Q可以用文件查看命令Is或dir看看当前目录下是否存在相应的文gQƈ(g)查文件名的大写?/p>

  2.错误提示内容QIn class HelloWorldAppQmain must be public and static

  解释Q如果mainQ)(j)Ҏ(gu)的左侧缺static或publicQ会(x)发生q个错误。前面已l解释过对mainQ)(j)Ҏ(gu)前面的修饰符有特D的要求?/p>

  3.文g中含有的cM数错?/p>

  解释Q按照Java规则Q在一个源文g中最多只能定义一个公有类Q否则会(x)发生q行旉误。如果一个应用系l中有多个公有类Q则要把它们分别攑֜各自不同的文件中。文件中非公有类的个C限?/p>

  4.层次错误

  解释Q一个。java源文件可以含有三?#8220;层”元素Q这三个元素是:(x)

  Q?Q一个包说明Q即package语句Q包说明是可选的?/p>

  Q?QQ意多个引入语句,即import语句?a >HP0-645 HP0-661

  Q?Q类和接口说明?/p>

  q些语句必须按一定的ơ序出现Q即Q引入语句必d现在所有的c说明之前,如果使用?jin)包说明Q则它必d现在c说明和引入语句之前?/p>

  例如Q下面是正确的语句序列:(x)

  package TransportationQ?/p>

  import jaya.awt.Graphics

  import jays.applet.AppletQ?/p>

  下面是两例错误的语句序Q?/p>

  import java.aWt.Graphics

  import java.applet.AppletQ?/p>

  package TransportationQ?/p>

  该例中在包说明语句之前含?u>其他语句?/p>

  package TransportationQ?/p>

  package HouseQ?/p>

  import java.applet.AppletQ?/p>

  该例中含有两个包说明语句?/p>



java2java 2008-03-01 09:55 发表评论
]]>
JAVA JSP servlet取\径问题ȝ.... http://www.aygfsteel.com/java2java/archive/2008/01/10/174221.htmljava2javajava2javaThu, 10 Jan 2008 03:35:00 GMThttp://www.aygfsteel.com/java2java/archive/2008/01/10/174221.htmlhttp://www.aygfsteel.com/java2java/comments/174221.htmlhttp://www.aygfsteel.com/java2java/archive/2008/01/10/174221.html#Feedback0http://www.aygfsteel.com/java2java/comments/commentRss/174221.htmlhttp://www.aygfsteel.com/java2java/services/trackbacks/174221.html一 JAVA cM
1。取出指定所在类的\?

class A {
String getPath() {
     return this.getClass().getClassLoader().getSystemResource("A").getPath();
    }
}

2。取出类ClassLoader的开始\径(执行路径Q?br /> //String preUri=this.getClass().getClassLoader().getResource("").getPath();

比如WebApp的项目,以下的指令得出的l果是

/D:/project/crFj163Web/web/exploded/WEB-INF/classes/

比如你是Ujava的程序,是你执行java指o(h)的当前\?/p>

3。取出jdk所在的bin目录

//得到当前用户路径Q执行\?System.getProperty(”user.dir”)

其中user.dir是一个参敎ͼ更多参数L(fng)q里

二、jsp/servlet 中的取\?/p>

以前我们常用getRealPath(),不过q个Ҏ(gu)已经不推荐用?jin)。但我们可以使用request.getContextPath().另外q有request.getRequestURL() 或者request.getRequestURI()。下面D例,以徏立一个app1的webappZ

1。request.getContextPath()打印出来的是

/app1

2。request.getRequestURL() 打印出来的是

http://localhost:8080/app1/index.jsp

3。request.getRequestURI() 打印出来的是

/app1/index.jsp

转蝲Q?nbsp; 190-721 000-746 Q?/div>

java2java 2008-01-10 11:35 发表评论
]]>
Java操作Oracle数据库(Q插数据Q删除)(j)http://www.aygfsteel.com/java2java/archive/2008/01/10/174209.htmljava2javajava2javaThu, 10 Jan 2008 02:54:00 GMThttp://www.aygfsteel.com/java2java/archive/2008/01/10/174209.htmlhttp://www.aygfsteel.com/java2java/comments/174209.htmlhttp://www.aygfsteel.com/java2java/archive/2008/01/10/174209.html#Feedback0http://www.aygfsteel.com/java2java/comments/commentRss/174209.htmlhttp://www.aygfsteel.com/java2java/services/trackbacks/174209.html import java.sql.*;

public class Create {
public Create() {
}
public static void main(String[] args){
String url = "jdbc:oracle:thin:@10.0.1.3:1521:SDCDB";
String query = "CREATE TABLE MYFIRST" + "(id INT,name CHAR(10))";
String sql="insert into MYFIRST values(''1'',''liming'')";
String sql1="insert into MYFIRST values(''2'',''mm'')";
String sql2="delete MYFIRST where id=2";
try
{
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn = DriverManager.getConnection(url, "test", "test");
Statement stmt = conn.createStatement();
stmt.executeUpdate(query);
stmt.executeUpdate(sql);
stmt.executeUpdate(sql1);
stmt.executeUpdate(sql2);
System.out.println("Create Success!");
stmt.close();
conn.close();
}
catch(java.lang.ClassNotFoundException e){
System.err.print(e.getMessage());
}
catch(SQLException ex){
System.out.println("\n***SQLException caught ***\n");
}
}
}

java2java 2008-01-10 10:54 发表评论
]]>
Java认证考试介绍http://www.aygfsteel.com/java2java/archive/2008/01/07/173249.htmljava2javajava2javaMon, 07 Jan 2008 02:11:00 GMThttp://www.aygfsteel.com/java2java/archive/2008/01/07/173249.htmlhttp://www.aygfsteel.com/java2java/comments/173249.htmlhttp://www.aygfsteel.com/java2java/archive/2008/01/07/173249.html#Feedback2http://www.aygfsteel.com/java2java/comments/commentRss/173249.htmlhttp://www.aygfsteel.com/java2java/services/trackbacks/173249.html
   JavaE序?
   概述Q本评使学员掌握如何用标准Java Development kitQJDKQ开发应用程序和applets。在本课E中(zhn)将学会(x)Java语言的语法。如何用Java来创建图形用h口(GUIQ,事g处理机制Q例外处理,通过设计与开发各UJavaE序来获得实际的~程l验。?zhn)也将学到文g输入/输出QI/OQ,多线E和|络的知识?

   目标Q本评完成后,(zhn)将具备以下能力Q?
   使用Java~程语言创徏Java应用E序和applets
   定义和描q垃圾搜集,安全性和Java虚拟机(JVMQ?
   描述和用Java语言面向对象的特点;开发图形用h口(GUIQ?
   利用Java支持的多U布局理
   描述和?Java的事件处理模?
   使用Java语言的鼠标输入,文本Q窗口和菜单H口部g
   使用Java的例外处理来控制E序执行和定义用戯q例外事g
   使用Java语言的先q的面向对象特点Q包括方法重载,Ҏ(gu)覆盖Q抽象类Q接口,finalQstatic和访问控Ӟ实现文g的输入输出(I/OQ?
   使用Java语言内在的线E模式来控制多线E?
   使用Java的Sockets机制q行|络通信
   预备知识Q熟(zhn)DOS操作Q用qWINDOWSq能用C或C++~程?

   Java开发员
   概述Q本评提供给学员设计资料服务器应用法的实际设计方法,学员用Java声音、图形、网l通讯{接口,~写与服务器相连接的Java应用E度Q通过本课E学员还能学到如何在JavaE序中调用本机用其它计算a~写的程?117-102 117-301 190-721 ?

   本课E是为熟(zhn)Java语言l构?qing)语法的E序员而设立的。以便他们能在本评中获得开发复杂的、品的Java应用技术?
   目标Q在学完本课E后Q学员将能够Q?
   设计和开发Java GUI
   设计和开发动画Java应用E序
   掌握?jin)Java|络~程技?
   懂得?jin)JDBC-API的基本结?
   知道UNIX与Windows NT互连有哪些技术问?
   能够解释在JavaE序中调用其它语a所~写的程序的Ҏ(gu)与步?

   Sun认证JavaE序员考试QJDK1.1Q由一门考试l成Q可以用来测试考生对Java语言的掌握程度。考生可以使用考试大纲Qexam objectivesQ作为准备考试的工兗?
   Z(jin)保证Sun客户使用的是Sun的最新技术,Sun Educational Services已经把Sun认证JavaE序员考试更新为JDK1.1?

   考试l则
   考试名称Q?
   The Sun Certified Java Programmer for JDK 1.1
   考试P(x)
   310-022QIBM考生除外Q,310-023Q只对IBM考生Q?
   推荐教材Q?
   SL-275 “Java ProgrammingQUNIXQ?#8221;
   SL-276“Java ProgrmmingQWindows 95Q?#8221;
   JTL-SL-275“Java Tutor:Java Programming Library”
   题数Q?0
   考题cdQ多?{?
   通过分数Q?70%
   考试旉Q?2时
   考试费用Q?$150

java2java 2008-01-07 10:11 发表评论
]]>
Java学习(fn)之\Q不走弯路,是捷径 http://www.aygfsteel.com/java2java/archive/2008/01/07/173248.htmljava2javajava2javaMon, 07 Jan 2008 02:09:00 GMThttp://www.aygfsteel.com/java2java/archive/2008/01/07/173248.htmlhttp://www.aygfsteel.com/java2java/comments/173248.htmlhttp://www.aygfsteel.com/java2java/archive/2008/01/07/173248.html#Feedback3http://www.aygfsteel.com/java2java/comments/commentRss/173248.htmlhttp://www.aygfsteel.com/java2java/services/trackbacks/173248.html   软g开发之路是充满荆棘与挑战之?也是充满希望之\。JAVA学习(fn)也是如此Q没有捷径可走。梦惛_《天龙八部》中虚竹一栯无崖子醍醐灌而轻松获得一甲子功力Q是很不现实的。每天Ԓ天大?天神啊,误l我一本葵花宝典吧"Q殊不知即你获得了(jin)葵花宝典Q除?jin)受自宫其n之苦外,你也不一定成得了(jin)"东方不|"Q倒是?西方p|"的几率高一炏V?
  "不走弯\Q就是捷?Q佛(jng)l说的不无道理?
  1Q如何学?fn)程序设计?
  JAVA是一U^収ͼ也是一U程序设计语aQ如何学好程序设计不仅仅适用于JAVAQ对C++{其他程序设计语a也一L(fng)用。有~程高手认ؓ(f)QJAVA也好C也好没什么分别,拿来q。ؓ(f)什么他们能辑ֈ如此境界Q我x因ؓ(f)~程语言之间有共通之处,领会(x)?jin)编E的_NQ自然能够做C通百通。如何学?fn)程序设计理所当然也有许多共通的地方?
  1.1 培养兴趣
  兴趣是能够让你坚持下ȝ动力。如果只是把写程序作生的手段的话Q你?x)活的很累,也太对不赯׃?jin)。多兛_(j)一些行业趣事,多想想盖茨。不是提倡天天做白日梦,但h要是没有?jin)梦惻I你觉得有味道吗?可能像许多深x地农民一P打打dQ喝喝功夫茶Q拜拜胦(ch)爷Q每个月有几万十几万甚x多的q帐Q凭I多Z"食利阶层"。你认ؓ(f)Q这h味道吗?有空多到一些程序员论坛转{Q你?x)发玎ͼ他们其实很乐观幽默,时不时?x)冒出智慧的火花?
  1.2 慎选程序设计语a
  h入错行Q女怕嫁错郎。初学者选择E序设计语言需要}慎对待。Y件开发不仅仅是掌握一门编E语a?jin)事Q它q需要其他很多方面的背景知识。Y件开发也不仅仅局限于某几个领域,而是已经渗透到?jin)各行各业几乎每一个角落?
  如果你对g比较感兴,你可以学?fn)C语言/汇编语言Q进入硬件开发领域。如果你对电(sh)信的行业知识?qing)网l比较熟(zhn),你可以在C/C++{之上多花时_(d)以期q入?sh)信软g开发领域。如果你Ҏ(gu)作系l比较熟(zhn),你可以学?fn)C/Linux{等,为Linux内核开?驱动E序开?嵌入式开发打基础。如果你想介入到应用范围最q泛的应用Y件开发(包括?sh)子商务电(sh)子政务pȝQ的话,你可以选择J2EE?NETQ甚至LAMPl合。每个领域要求的背景知识不一栗做应用软g需要对数据库等很熟(zhn)。MQ你需要根据自q特点来选择合适你的编E语a?
  1.3 要脚t实?快餐式的学习(fn)不可?
  先分享一个故事?
  有一个小朋友Q他很喜Ƣ研I生物学Q很想知道那些蝴蝶如何从蛹壳里出来,变成蝴蝶便会(x)飞?nbsp; 有一ơ,他走到草原上面看见一个蛹Q便取了(jin)回家Q然后看着Q过?jin)几天以后,q个蛹出?jin)一条裂痕,看见里面的蝴蝶开始挣扎,x破蛹壳飞出来?nbsp; q个q程达数时之久Q蝴蝶在蛚w面很辛苦地拼命挣扎,怎么也没法子走出来。这个小孩看着看着不忍?j),想不如让我帮帮它吧Q便随手拿v剪刀在蛹上剪开Q蝴蝶破蛹而出?nbsp; 但蝴蝶出来以后,因ؓ(f)膀不够力,变得很臃肿,飞不h?
  q个故事l我们的启示是:(x)Ʋ速则不达?
  躁是现代h最普遍的心(j)态,能怪谁Q也许是贫穷落后?jin)这么多q的~故Q就像当q的大跃q一P都想大步跨入׃MC会(x)。现在的软g公司、客戗政府、学校、培训机构等{到处I漫着躁之气。就拿笔者比较熟(zhn)的深圳IT培训行业来说吧,居然有的打广告U?参加培训Q?00%׃"Q居然报名的学生不少Q简直是藐视天下E序员。社?x)环境如是,我们不能改变Q只能改变自?闹市(jng)中的安宁QI珍c(din)许多初学者C++/JAVA没开始学Q立马用VC/JBuilder,?x)用VC/JBuilder开发一个Hello  WorldE序Q就忙不q的向世界宣告,"我会(x)软g开发了(jin)"Q简历上也大a不惭地写?_NVC/JAVA"。结果到软g公司面试时要么被三两下打发走?jin),要么被驳的体无完肤,无地自容。到处碰壁之后才知道捧v《C++~程思想》《JAVA~程思想》仔l钻研,早知如此何必当初呀?
  "你现在讲I简单方便,你以后的路就长了(jin)"Q好象也是佛(jng)l中的劝戒?
  1.4 多实?快实?
  彭端淑的《ؓ(f)学一首示子侄》中有穷和尚与富和尚的故事?
  从前Q四川边境有两个和尚Q一个IP一个有钱。一天,I和对富和说Q?我打去南v朝圣Q你看怎么P"富和说Q?q里dh几千里远Q你靠什么去呢?"I和说Q?我只要一个水钵,一个饭就够了(jin)?富和ؓ(f)隑֜_(d)(x)"几年前我打买条船dP可至今没LQ你q是别去吧!"  一q以后,富和还在ؓ(f)U赁船只{wQ穷和尚却已l从南v朝圣回来?jin)?
  q个故事可解Mؓ(f)QQ何事情,一旦考虑好了(jin)Q就要马上上路,不要{到准备周全之后Q再d事情。假如事情准备考虑周全?jin)再上\的话Q别人恐怕捷_M(jin)。Y件开发是一门工E学U,注重的就是实践,"君子动口不动?对Y件开发h员来讲根本就是错误的Q他们提?动手至上"Q但别害怕,他们大多温文?dng)雅Q没有暴力們֐Q虽然有时候蓬头垢面的一?比尔盖茨"栗有前辈高h认ؓ(f)Q学?fn)编E的U诀是:(x)~程、编E、再~程Q笔者深表赞同。不仅要多实践,而且要快实践。我们在看书的时候,不要{到你完全理解了(jin)才动手敲代码Q而是应该在看书的同时敲代码,E序q行的各U情况可以让你更快更牢固的掌握知识点?
  1.5 多参考程序代?
  E序代码是Y件开发最重要的成果之一Q其中渗透了(jin)E序员的思想与灵。许多h被《仙剑奇侠传》中凄美的爱情故事感?(zhn)剧的结局更有一U缺憄。ؓ(f)什么要以?zhn)剧结?据说是因为写《仙剑奇侠传》的E序员失恋而安排了(jin)q样的结局Q他把自q感觉融入到游戏中Q却让众多的仙剑qh腕叹息?
  多多参考代码例子,对JAVA而言有参考文献[4.3],有APIcȝ源代?JDK安装目录下的src.zip文g)Q也可以研究一些开源的软g或框架?
  1.6 加强英文阅读能力
  对学?fn)编E来_(d)不要求英?  但不能一点不?。最L(fng)像JAVA  API文(参考文献[4.4])q些东西q是要能看懂?q猜带懵都可以;旁边再开启一?金山词霸"。看多了(jin)׃(x)来熟l。在学JAVA的同时学?fn)英文,一双雕多好。另外好多Y仉要到英文|站下蝲Q你要能够找到它们,q些是最基本的要求。英语好对你学习(fn)有很大的帮助。口语好的话更有Z(x)q入理层,q而可以成为剥削程序员?周扒??
  1.7 万不得已才请教别?
  W者在ChinaITLab|校的在U辅导系l中解决学生问题时发玎ͼ大部分的问题学生E做思考就可以解决。请教别Z前,你应该先回答如下几个问题?
  你是否在google中搜索了(jin)问题的解军_法?
  你是否查看了(jin)JAVA  API文Q?
  你是否查找过相关书籍Q?
  你是否写代码试q?
  如果回答都是"?的话Q而且q没有找到解军_法,再问别h不迟。要知道独立思考的能力对你很重要。要知道E序员的旉是很宝贵的?
  1.8 多读好书
  书中自有颜如玉。比?盖茨是一个饱ȝ书的人。虽然没有读完大学,但九(ji)岁的时候比?盖茨已l读完了(jin)所有的癄全书Q所以他_N天文、历双Ӏ地理等{各cdU,可以说比?盖茨不仅是当今世界上金钱的首富,而且也可以称得上是知识的巨富?
  W者在l学生上评时候经怼(x)l他们推荐书c,到后来学生实在忍无可忍开始抱怨,"天呐Q这么多书到什么时候才能看完了(jin)"Q?学Y件开发,感觉上了(jin)D"。这时候,我的回答一般是Q?别着急,什么时候带你们ȝ看我的书房,到现在每月花在技术书c上的钱400元,q在软g开发h员之中还只能够算是中{的"Q学生当场晕倒。(注:(x)q一部分学生是刚学Y件开发的Q?
  对于在JAVA开发领域的好书在笔者另外一文章中?x)专门点评。该文章可作为本文的姊妹?
  1.9 使用合适的工具
  工欲善其事必先利其器。Y件开发包含各U各L(fng)zdQ需求收集分析、徏立用例模型、徏立分析设计模型、编E实现、调试程序、自动化试、持l集成等{,没有工具帮忙可以说是寸步难行。工具可以提高开发效率,使Y件的质量更高BUG更少。组合称手的武器。到飞花摘叶皆可伤h的境界就很高?jin),无招胜有招,手中无剑心(j)中有剑q样的境界几乎不可企?qing)。在W者另外一文章中?x)专门阐q如何选择合适的工具Q该文章也可作ؓ(f)本文的姊妹篇Q?
  2QY件开发学?fn)\U?
  两千多年的儒家思想孔孟之道Q中庸的思想透入骨髓Q既不冒q也不保守ƈ非中怹道,而是扑֯学习(fn)软g开发的正确路线与规律?
  从Y件开发h员的生(dng)规划来讲Q我们可以大致分Z个阶D,软g工程?#8594;软g设计?#8594;架构设计师或目理师。不惛_元帅的士兵不是好士兵Q不惛_架构设计师或目理师的E序员也不是好的E序员。我们应该努力往上走。让我们先整理一下开发应用Y仉要学?fn)的主要技术?
  AQ基理论知识Q如操作pȝ、编译原理、数据结构与法、计机原理{,它们q不重要。如不想成ؓ(f)计算机科学家的话Q可以采?用到的时候再来学"的原则?
  BQ一门编E语aQ现在基本上都是面向对象的语aQJAVA/C++/C#{等。如果做WEB开发的话还要学?fn)HTML/JavaScript{等?
  CQ一U方法学或者说思想Q现在基本都是面向对象思想QOOA/OOD/设计模式Q。由此而衍生的Zlg开发CBD/面向斚w~程AOP{等?
  DQ一U关pd数据库,ORACLE/SqlServer/DB2/MySQL{等
  EQ一U提高生产率的IDE集成开发环境JBuilder/Eclipse/VS.NET{?
  FQ一UUML建模工具Q用ROSE/VISIO/钢笔q行建模?
  GQ一UY件过E,RUP/XP/CMM{等Q通过软gq程来组lY件开发的众多zdQ开发流E专业化规范化。当然还有其他的一些Y件工E知识?
  HQ项目管理、体pȝ构、框架知识?
  正确的\U应该是QB→C→E→F→G→H?
  q需要补充几点:(x)
  1Q.对于A与C要补充的是,我们应该在实践中逐步领?zhn)~程理论与编E思想。新技术虽然不断涌玎ͼ更新速度令hD燎ؕN看花Q但万变不离其宗Q编E理Z~程思想的变化却很慢。掌握了(jin)~程理论与编E思想你就?x)有拨云见日之感。面向对象的思想在目前来讲是相当关键的,是强势技术之一Q在上面需要多投入旉Q给你的回报也会(x)让你惊喜?
  2Q.对于数据库来说是独立学习(fn)的,q个时机q你来军_吧?
  3Q.~程语言作ؓ(f)学习(fn)软g开发的ȝQ而其余的作ؓ(f)辅线?
  4Q.软g工程师着重于B、C、E?nbsp; DQY件设计师着重于B、C、E?nbsp; D、FQ架构设计师着重于C、F、H?
  3Q如何学?fn)JAVA?
  3.1  JAVA学习(fn)路线
  3.1.1  基础语法?qing)JAVA原理
  基础语法和JAVA原理是地基,地基不牢靠,犹如沙地上徏摩天大厦Q是相当危险的。学?fn)JAVA也是如此Q必要有扎实的基础Q你才能在J2EE、J2ME领域游刃有余。参加SCJPQSUN公司认证的JAVAE序员)(j)考试不失Z个好Ҏ(gu)Q原因之一是ؓ(f)?jin)对得v你交?200大洋考试费,你会(x)更努力学?fn),原因之二是SCJP考试能够让你把基打得很牢靠,它要求你跟JDK一L(fng)(zhn)JAVA基础知识Q但是你千万不要认ؓ(f)考过?jin)SCJP有多了(jin)不vQ就能够获得软g公司的青睐,p够获取高薪,q样的想法也是很危险的。获?真正"的SCJP只能证明你的基础q过得去Q但d际开发还有很长的一D\要走?
  3.1.2  OO思想的领(zhn)?
  掌握?jin)基语法和JAVAE序q行原理后,我们可以用JAVA语言实现面向对象的思想?jin)。面向对象,是一U方法学;是独立于语言之外的编E思想;是CBDZlg开发的基础;属于强势技术之一。当以后因工作需要{到别的面向对象语a的时候,你会(x)感到特别的熟(zhn)亲切,学v来像喝凉水这么简单?
  使用面向对象的思想q行开发的基本q程是:(x)
  ●调查收集需求?
  ●徏立用例模型?
  ●从用例模型中识别分析类?qing)类与类之间的?rn)态动态关p,从而徏立分析模型?
  ●细化分析模型到设计模型?
  ●用具体的技术去实现?
  ●测试、部|Ӏȝ?
  3.1.3  基本API的学?
  q行软g开发的时候,q不是什么功能都需要我们去实现Q也是l典名言所说的"不需要重新发明轮?。我们可以利用现成的cR组件、框架来搭徏我们的应用,如SUN公司~写好了(jin)众多cdC些底层功能,以及(qing)我们下蝲q来的JAR文g中包含的c?我们可以调用cM的方法来完成某些功能或承它。那么这些类中究竟提供了(jin)哪些Ҏ(gu)l我们用?Ҏ(gu)的参C数及(qing)cd是?cȝ构造器需不需要参敎ͼM可能SUN公司的工E师打国际长途甚至飘?gu)z过h告诉你他~写的类该如何用吧。他们只能提供文给我们查看QJAVA  DOC文Q参考文?.4Q就是这L(fng)文Q它可以说是E序员与E序员交的文档?
  基本API指的是实C(jin)一些底层功能的c,通用性较强的APIQ如字符串处?输入输出{等。我们又把它成ؓ(f)cd。熟(zhn)API的方法一是多查JAVA  DOC文档Q参考文?.4Q,二是使用JBuilder/Eclipse{IDE的代码提C功能?
  3.1.4  特定API的学?
  JAVA介入的领域很q泛Q不同的领域有不同的APIQ没有h熟?zhn)所有的APIQ对一般h而言只是熟?zhn)工作中要用到的API。如果你做界面开发,那么你需要学?fn)Swing/AWT/SWT{APIQ如果你q行|络游戏开发,你需要深入了(jin)解网lAPI/多媒体API/2D3D{;如果你做WEB开发,需要熟(zhn)Servlet{API啦。MQ需要根据工作的需要或你的兴趣发展方向去选择学习(fn)特定的API?
  3.1.5  开发工L(fng)用法
  在学?fn)基语法与基本的面向对象概念Ӟ从锻Da熟练E度的角度考虑Q我们推荐用的工具是Editplus/JCreator+JDK,q时候不要急于上手JBuilder/Eclipse{集成开发环境,以免q于xIDE的强大功能而分散对JAVA技术本w的注意力。过?jin)这一阶段你就可以开始熟(zhn)IDE?jin)?
  E序员日常工作包括很多活动,~辑、编译及(qing)构徏、调试、单元测试、版本控制、维持模型与代码同步、文档的更新{等Q几乎每一Ҏ(gu)动都有专门的工具Q如果独立用这些工L(fng)话,你将?x)很痛苦Q你需要在堆满工具的Q务栏上不断的切换Q效率很低下Q也很容易出错。在JBuilder、Eclipse{IDE中已l自动集成编辑器、编译器、调试器、单元测试工具JUnit、自动构建工具ANT、版本控制工具CVS、DOC文档生成与更新等{,甚至可以把UML建模工具也集成进去,又提供了(jin)丰富的向导帮助生成框架代码,让我们的开发变得更L。应该说IDE发展的趋势就是集成Y件开发中要用到的几乎所有工兗?
  从开发效率的角度考虑Q用IDE是必l之路,也是从一个学生到一个职业程序员转变的里E碑?
  JAVA开发用的IDE主要有Eclipse、JBuilder、JDeveloper、NetBeans{几U;而Eclipse、JBuilder占有的市(jng)Z额是最大的。JBuilder在近几年来一直是JAVA集成开发环境中的霸主,它是由备受程序员敬的Borland公司开发,在硝烟I漫的JAVA  IDE大战?以其快速的版本更新击|IBM的Visual  Age  for  JAVA{而成׃番伟业。IBM在Visual  Age  for  JAVA上已l无利可图之下,q脆之贡献l开源社区,成ؓ(f)Eclipse的前w,真所?x花明又一?。ʎ火重生的Eclipse以其开攑ּ的插件扩展机制、免费开源获得广大程序员Q包括几乎所有的骨灰U程序员Q的青睐Q极具发展潜力?
  3.1.6  学习(fn)软g工程
  对小型项目而言Q你可能认ؓ(f)软g工程没太大的必要。随着目的复杂性越来越高,软g工程的必要性才?x)体现出来。参?软g开发学?fn)\U?节?
  3.2学习(fn)要点
  立的学?fn)\U之后,我们q需要ȝ一下JAVA的学?fn)要点,q些要点在前文多多少提到过Q只是笔者觉得这些地方特别要注意才对它们q行汇总,不要嫌我婆婆妈妈啊?
  3.2.1勤查API文
  当程序员~写好某些类Q觉得很有成感,x它A(ch)献给各位苦难的同行。这时候你要?javadoc"工具Q包含在JDK中)(j)生成标准的JAVA  DOC文档,供同行用。J2SE/J2EE/J2ME的DOC文档是程序员与程序员交流的工P几乎人手一份,除了(jin)菜鸟之外。J2SE  DOC文官方下蝲地址Q?a target="_blank">http://java.sun.com/j2se/1.5.0/download.jspQ你可以到google搜烦(ch)CHM版本下蝲。也可以在线查看Q?a target="_blank">http://java.sun.com/j2se/1.5.0/docs/api/index.html ?br />   对待DOC文档要像毛主席语录,早上起床念一遍,吃饭睡觉前念一遍?
  当需要某功能的时候,你应该先查相应的DOC文看看有没有现成的实现Q有的话׃必劳费?j)?jin)直接用就可以?jin),找不到的时候才考虑自己实现。用步骤一般如下:(x)
  ●找特定的包Q包一般根据功能组l?
  ●找需要用类Q类命名规范的话我们q的名字可猜出一二?
  ●选择构造器Q大多数使用cȝ方式是创建对象?
  ●选择你需要的Ҏ(gu)?
  3.2.2  查书/google->写代码测?>查看源代?>h别h
  当我们遇到问题的时候该如何解决Q?
  q时候不要急着问别人,太简单的问题Q没l过思考的问题Q别Z(x)因此而瞧不v你。可以先找找书,到google中搜一下看看,l大部分问题基本p决了(jin)。而像"某些c?Ҏ(gu)如何使用的问?QDOC文是{案。对某些知识Ҏ(gu)疑惑是,写代码测试一下,?x)给你留下深ȝ印象。而有的问题,你可能需要直接看API的源代码验证你的x。万不得已才去请教别人?
  3.2.3学习(fn)开源Y件的设计思想
  JAVA领域有许多源代码开攄工具、组件、框ӞJUnit、ANT、Tomcat、Struts、Spring、Jive论坛、PetStore宠物店等{多如牛毛。这些可是前辈给我们留下的瑰宝呀。入宝山而空手归Q你?j)甘吗?对这些工兗框架进行分析,领会(x)其中的设计思想Q有朝一日说不定你也能写一个XXX框架什么的Q风光一把。分析开源Y件其实是你提高技术、提高实战能力的便捷Ҏ(gu)?
  3.2.4  规范的重要?
  没有规矩Q不成方圆。这里的规范有两层含义。第一层含义是技术规范,多到http://www.jcp.org下蝲jsrxxx规范Q多读规范,q是最权威准确最新的教材。第二层含义是编E规范,如果你用了(jin)大量的独特算法,富有个性的变量?qing)方法的命名方式Q同Ӟ没给E序作注释,以显CZ的编E功底是多么的深厚。这L(fng)代码别h看v来像天书Q要理解谈何Ҏ(gu)Q更不用说维护了(jin)Q必然会(x)被无情地扫入垃圾堆。java~码规范到此查看或下?http://java.sun.com/docs/codeconv/Q中文的也有Q啊Q还要问我在哪,请参?.2.2节?
  3.2.5  不局限于JAVA
  很不q,很幸q,要学?fn)的东西q有很多。不q的是因学的东西太多且多变,没时间陪老婆家h或女朋友Q导致n?j)疲惫,严重者甚臛_致抑郁症。幸q的是别抢你饭碗l非易事Q他们或她们需要付出很多才能达成心(j)ѝ?
  JAVA不要孤立地去学习(fn)Q需要综合学?fn)数据结构、OOP、Y件工E、UML、网l编E、数据库技术等知识Q用横向U向的比较联想的方式d?fn)?x)更有效。如学习(fn)JAVA集合的时候找数据l构的书看看Q学JDBC的时候复?fn)数据库技术;采取的依然是"需要的时候再?的原?000-834 000-861 ?
  4Q结束语
  需要强调的是,学习(fn)软g开发确实有一定的隑ֺQ也很辛苦,需要付出很多努力,但千万不要半途而废。本文如果能对一直徘徊在JAVA殿之外的朋友有所帮助的话Q笔者也ƣ慰?jin)。哈哈,怎么听v来老气横秋呀Q没办法Q在?sh)脑的长期辐之下,都快变成老头?jin)。最后奉劝各位程序员其是MME序员,完成工作后赶快远ȝ(sh)脑,据《胡播ؕ报》报道,?sh)脑辐射会(x)在白皙的皮肤上面点~一些小黑点Q看h鲜艳无比……


java2java 2008-01-07 10:09 发表评论
]]>
JavaE序的加密和反加?/title><link>http://www.aygfsteel.com/java2java/archive/2008/01/03/172532.html</link><dc:creator>java2java</dc:creator><author>java2java</author><pubDate>Thu, 03 Jan 2008 09:51:00 GMT</pubDate><guid>http://www.aygfsteel.com/java2java/archive/2008/01/03/172532.html</guid><wfw:comment>http://www.aygfsteel.com/java2java/comments/172532.html</wfw:comment><comments>http://www.aygfsteel.com/java2java/archive/2008/01/03/172532.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.aygfsteel.com/java2java/comments/commentRss/172532.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/java2java/services/trackbacks/172532.html</trackback:ping><description><![CDATA[<p>首先我们来看看JavaE序的反加密Q也是通常所说的Crackq程Q只有明白了(jin)q个q程Q我们才能有效的Ҏ(gu)们的E序q行加密?/p> <p>通常我们得到的JavaE序的Crack包有两种Q一U属于KeyGenQ注册码生成器)(j)、一U属于替换修改;</p> <p>我们先看W一U,当我们找C个应用程序的KeyGen的时候我们L很佩服那个做出KeyGen的hQ觉得他很厉宻I但是你仔l分析一下,Z么他能做出KeyGen呢?只有<br /> 他对q个JavaE序的加密算法了(jin)解的非常清楚Q这Uh有哪些呢Q一个是那个公司里面的hQ那不可能,除非内讧Q还又呢Q就是猜惻I反推Q这个可能吗Q呵呵,更不可能Q那q个法从哪里来呢?呵呵Q往往泄漏U密的就是秘密本w?#8230;…回过头来xQJava应用E序怎么知道你输入的注册码是否正呢Q呵呵,那你p从应用程序入?#8230;…<br /> 得到的它的加密算法,自然KeyGen׃在话下了(jin)……Q但是这也有列外Q如果它是用的公钥秘钥对加密的,没有办法喽Q只能用W二U方法。)(j)</p> <p>q种办法只适合对付只要一个注册号Q别的什么都不要的情况,l典代表Borland JBuilder & Optimizeit Suite</p> <p>再看W二U,Z么要用替换修改?我们是修改了(jin)那部分呢Q不用想Q肯定是License验证的部分,Z么我们不像上面的Ҏ(gu)那样扑֊密算法呢Q原因有两种Q(1Q用上面的办法搞不定;Q?QJavaE序不仅要KeyQ还有其他的License配置Q遇到这U情况,我们只要扑ֈ用于License验证的类Q进行修Ҏ(gu)换就行了(jin)?/p> <p>q种办法使用于Q何情况,l典代表BEA WebLogic</p> <p>l过上面的分析,我们的问题就集中?jin),关键是怎么扑ֈ用于License验证的部分或加密法的部分,我们需?个工P(x)一个是Sun公司提供的标准JVMQ)(j)Q一个是?br /> 的耐心(j)和细?j)?x)Q,一个是JadQ经典Java反编译工P(j)?/p> <p>W一步是定位Q这也是最关键的一步,我们q里以Together For JBuilder EditionZQ启动TogetherQ先看看长什么样子?喔,上来问我要LicenseQOkQ?br /> 每关p,退出;扑ֈTogether的启动Bat文gQ找到它的启动命令:(x)java .....QOKQ在Java启动的时候给一个参敎ͼ(x)“ -Xrunhprof:cpu=times”Q保存,在启动,q是?br /> LicenseQ退出,q个时候,我们可以发现Q在q个目录下多?jin)一?#8220;java.hprof.txt”文gQ打开一看,是我要的JVM的Dump文gQ好多内容啊Q没关系Q慢慢看来?/p> <p>我们可以看见q个文g里面有好多熟(zhn)的东西啊:(x)java.*/com.sun.*/javax.*{等Q但q个不是我们兛_(j)的,我们要的是com.togethersoft.*或者是一些没有包名的zd.d{等。(q里插一句,几乎所有的Java应用E序都会(x)h的,其实h的原理也很简单,我们后面再说。)(j)先找找有没有License有关的,Serach一下,嘿嘿Q果?dng)?74行:(x)com.togethersoft.together.impl.ide.license.LicenseSetup.execute([DashoPro-V2-050200]:Unknown line)QOk上那堆classpath中的Jar包里面找一下吧Q推荐用WinRARQ,扑ֈ?jin)之后用Jad反编译,一看,q个没有hQ但是用?jin)一个zae的类Q这个看名字q道؜淆过?jin),先不理它Q再看看下面一句IdeLicenseAccess.setLicense(zae1)QOk接着扑ֈIdeLicenseAccessQ哈哈,p点名堂,所有的License验证都是走的q个c,面向对象的思想不错Q呵呵:(x)Q?/p> <p>定位定完?jin),接下来的事情是按猜想的?gu)修改q两个类Q屏蔽掉LicenseSetup里面executeҎ(gu)的实际内容,修改IdeLicenseAccessQ让多有的验证都q回trueQ然后编译,替换Q不要高兴太早,q还没有完呢Q要有责d(j)Q!启动TogetherQ果?dng)q下不要License?jin),有启动画面,q去?jin),但是一片灰Ԍ怎么回事Q一看控制台Q一堆错Q没关系Q就怕不出错Q查找根源,q有一个IdeLicenseUtilcd?jin)问题,再反~译Q修改,替换Q这下搞定了(jin)。再启动Q测试一下,OK <a >MB7-222</a> <a >70-210</a> <a >1Y0-327</a> ?/p> <p>pP一个Java应用E序搞定?jin)。看看其实也很简单?/p> <p>再来说说hQ大家可能都知道没有l过h的Java的Class反编译回来连Ҏ(gu)和变量的名字都不?x)变Q这是什么原因呢Q这pq述到Class文g的结构了(jin)Q简单来_(d)Class文gU包含又一个常数池Qconstant poolQ这个里面就存放?jin)变量和?gu)的名U等一下和Class相关的东西,我们通常所说的h是用一U工hq个常数池里面的东东弄的胡涂一点,q样p骗过反编译器和你Q呵呵:(x)Q这是Z么有时候反~译回来的东西编译不q去的原因?/p> <p>再回q头来说说JavaE序的加密;从上面的两种Ҏ(gu)来看QJavaE序g是没有什么完的办法q行加密的,其实不然Q我们必遵循一些原则,才能有效的保护你的品?/p> <p>原则一Q尽量用公钥和U钥对进行加密;<br /> 原则二,不要在加密验证的部分使用面向对象思想Q)(j)把验证的Ҏ(gu)写在E序的各个角落,q标注ؓ(f)private final voidQ让~译器替你处理成内联Ҏ(gu)Q?br /> 原则三,可能的大幅度؜淆:(x)Q找个好点的h?/p> <img src ="http://www.aygfsteel.com/java2java/aggbug/172532.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/java2java/" target="_blank">java2java</a> 2008-01-03 17:51 <a href="http://www.aygfsteel.com/java2java/archive/2008/01/03/172532.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java中的易؜问题攉 http://www.aygfsteel.com/java2java/archive/2008/01/03/172530.htmljava2javajava2javaThu, 03 Jan 2008 09:50:00 GMThttp://www.aygfsteel.com/java2java/archive/2008/01/03/172530.htmlhttp://www.aygfsteel.com/java2java/comments/172530.htmlhttp://www.aygfsteel.com/java2java/archive/2008/01/03/172530.html#Feedback1http://www.aygfsteel.com/java2java/comments/commentRss/172530.htmlhttp://www.aygfsteel.com/java2java/services/trackbacks/172530.html
W一Qfinal, finally, finalize的区?

final 修饰W(关键字)(j)如果一个类被声明ؓ(f)finalQ意味着它不能再z出新的子c,不能作ؓ(f)父类被ѝ因此一个类不能既被声明?abstract的,又被声明为final的。将变量或方法声明ؓ(f)finalQ?strong>可以保证它们在用中不被改变。被声明为final的变量必d声明时给定初|而在以后的引用中只能dQ不可修攏V被声明为final的方法也同样只能使用Q不能重?

finally 再异常处理时提供 finally 块来执行M清除操作。如果抛Z个异常,那么相匹配的 catch 子句׃(x)执行Q然后控制就?x)进?finally 块(如果有的话)(j)?
finalize Ҏ(gu)名。Java 技术允怋?finalize() Ҏ(gu)在垃圾收集器对象从内存中清除出M前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对q个对象调用的。它是在 Object cM定义的,因此所有的c都l承?jin)它。子c覆?finalize() Ҏ(gu)以整理系l资源或者执行其他清理工作。finalize() Ҏ(gu)是在垃圾攉器删除对象之前对q个对象调用的?

W二QAnonymous Inner Class (匿名内部c? 是否可以extends(l承)其它c,是否可以implements(实现)interface(接口)?

匿名的内部类是没有名字的内部cR不能extends(l承) 其它c,但一个内部类可以作ؓ(f)一个接口,由另一个内部类实现?

W三QStatic Nested Class ?Inner Class的不同,说得多好
Nested Class Q一般是C++的说法)(j)QInner Class (一般是JAVA的说?。Java内部cMC++嵌套cL大的不同在于是否有指向外部的引用上。具体可见http: //www.frontfree.net/articles/services/view.asp?id=704&page=1
注:(x) ?rn)态内部类QInner ClassQ意味着1创徏一个static内部cȝ对象Q不需要一个外部类对象Q?不能从一个static内部cȝ一个对象访问一个外部类对象

W四Q?amp;?amp;&的区别?/font>

&是位q算W?amp;&是布?yu)(dng)逻辑q算W?

W五QHashMap和Hashtable的区别?/font>

都属于Map接口的类Q实C(jin)惟一键映到特定的g?
HashMap cL有分cL者排序。它允许一?null 键和多个 null 倹{?
Hashtable cM?HashMapQ但是不允许 null 键和 null 倹{它也比 HashMap 慢,因ؓ(f)它是同步的?

W六QCollection ?Collections的区别?/font>
Collections是个java.util下的c,它包含有各种有关集合操作的静(rn)态方法?
Collection是个java.util下的接口Q它是各U集合结构的父接口?

W七Q什么时候用assert?
断言是一个包含布?yu)(dng)表辑ּ的语句,在执行这个语句时假定该表辑ּ?true。如果表辑ּ计算?falseQ那么系l会(x)报告一?Assertionerror。它用于调试目的Q?
assert(a > 0); // throws an Assertionerror if a <= 0
断言可以有两UŞ式:(x)
assert Expression1 ;
assert Expression1 : Expression2 ;
Expression1 应该L产生一个布?yu)(dng)倹{?
Expression2 可以是得Z个值的L表达式。这个值用于生成显C更多调试信息的 String 消息?
断言在默认情况下是禁用的。要在编译时启用断言Q需要?source 1.4 标记Q?
javac -source 1.4 Test.java
要在q行时启用断aQ可使用 -enableassertions 或?-ea 标记?
要在q行旉择用断言Q可使用 -da 或?-disableassertions 标记?
要系l类中启用断aQ可使用 -esa 或?-dsa 标记。还可以在包的基上启用或者禁用断a?
可以在预计正常情况下不会(x)到达的Q何位|上攄断言。断a可以用于验证传递给U有Ҏ(gu)的参数。不q,断言不应该用于验证传递给公有Ҏ(gu)的参敎ͼ因ؓ(f)不管是否启用?jin)断aQ公有方法都必须(g)查其参数。不q,既可以在公有Ҏ(gu)中,也可以在非公有方法中利用断言试后置条g。另外,断言不应该以M方式改变E序的状态?

W八QGC是什? Z么要有GC? (基础)?/font>

GC是垃圾收集器。Java E序员不用担?j)内存管理,因?f)垃圾攉器会(x)自动q行理。要h垃圾攉Q可以调用下面的Ҏ(gu)之一Q?
System.gc()
Runtime.getRuntime().gc()

W九(ji)QString s = new String("xyz");创徏?jin)几个String Object?

两个对象Q一个是“xyx”,一个是指向“xyx”的引用对象s?

W十QMath.round(11.5){於多少? Math.round(-11.5){於多少?

Math.round(11.5)q回QlongQ?2QMath.round(-11.5)q回QlongQ?11;

W十一Qshort 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正确?

W十二,sleep() ?wait() 有什么区? 搞线E的最?
sleep()Ҏ(gu)是ɾU程停止一D|间的Ҏ(gu)。在sleep 旉间隔期满后,U程不一定立x复执行。这是因为在那个时刻Q其它线E可能正在运行而且没有被调度ؓ(f)攑ּ执行Q除?a)“醒来”的线E具有更高的优先U?
(b)正在q行的线E因为其它原因而阻塞?
wait()是线E交互时Q如果线E对一个同步对象x 发出一个wait()调用Q该U程?x)暂停执行,被调对象q入{待状态,直到被唤醒或{待旉到?

W十三,Java有没有goto?
Goto java中的保留字,现在没有在java中用?

W十四,数组有没有length()q个Ҏ(gu)? String有没有length()q个Ҏ(gu)Q?/font>

数组没有length()q个Ҏ(gu)Q有length的属性?
String有有length()q个Ҏ(gu)?

W十五,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)。Overloaded的方法是可以改变q回值的cd?

W十六,Set里的元素是不能重复的Q那么用什么方法来区分重复与否? 是用==q是equals()? 它们有何区别?

Set里的元素是不能重复的Q那么用iterator()Ҏ(gu)来区分重复与否。equals()是判M个Set是否相等?
equals()?=Ҏ(gu)军_引用值是否指向同一对象equals()在类中被覆盖Qؓ(f)的是当两个分ȝ对象的内容和cd盔R的话Q返回真倹{?

W十七,l我一个你最常见到的runtime exception?/font>
ArithmeticException, ArrayStoreException, BufferOverflowException, BufferUnderflowException, CannotRedoException, CannotUndoException, ClassCastException, CMMException, ConcurrentModificationException, DOMException, EmptyStackException, IllegalArgumentException, IllegalMonitorStateException, IllegalPathStateException, IllegalStateException,
ImagingOpException, IndexOutOfBoundsException, MissingResourceException, NegativeArraySizeException, NoSuchElementException, NullPointerException, ProfileDataException, ProviderException, RasterFORMatException, SecurityException, SystemException, UndeclaredThrowableException, UnmodifiableSetException, UnsupportedOperationException  190-802 000-834 000-861 117-102 117-301 190-721

W十八,error和exception有什么区?
error 表示恢复不是不可能但很困隄情况下的一U严重问题。比如说内存溢出。不可能指望E序能处理这L(fng)情况?
exception 表示一U设计或实现问题。也是_(d)它表C如果程序运行正常,从不?x)发生的情况?

W十?ji),List, Set, Map是否l承自Collection接口?
ListQSet?

Map不是

W二十,abstract class和interface有什么区?

声明Ҏ(gu)的存在而不d现它的类被叫做抽象类Qabstract classQ,它用于要创徏一个体现某些基本行为的c,qؓ(f)该类声明Ҏ(gu)Q但不能在该cM实现该类的情c(din)不能创建abstract cȝ实例。然而可以创Z个变量,其类型是一个抽象类Qƈ让它指向具体子类的一个实例。不能有抽象构造函数或抽象?rn)态方法。Abstract cȝ子类为它们父cM的所有抽象方法提供实玎ͼ否则它们也是抽象cMؓ(f)。取而代之,在子cM实现该方法。知道其行ؓ(f)的其它类可以在类中实现这些方法?
接口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)接口?

W二十一Qabstract的method是否可同时是static,是否可同时是nativeQ是否可同时是synchronized?

都不?

W二十二Q接口是否可l承接口? 抽象cL否可实现(implements)接口? 抽象cL否可l承实体c?concrete class)?
接口可以l承接口。抽象类可以实现(implements)接口Q抽象类是否可承实体类Q但前提是实体类必须有明的构造函数?

W二十三Q启动一个线E是用run()q是start()?
启动一个线E是调用start()Ҏ(gu)QɾU程所代表的虚拟处理机处于可运行状态,q意味着它可以由JVM调度q执行。这q不意味着U程׃(x)立即q行。run()Ҏ(gu)可以产生必须退出的标志来停止一个线E?

W二十四Q构造器Constructor是否可被override? 构造器Constructor不能被承,因此不能重写OverridingQ但可以被重载Overloading?

W二十五Q是否可以承Stringc?
StringcLfinalcL不可以ѝ?

W二十六Q当一个线E进入一个对象的一个synchronizedҎ(gu)后,其它U程是否可进入此对象的其它方?
不能Q一个对象的一个synchronizedҎ(gu)只能׃个线E访问?

W二十七Qtry {}里有一个return语句Q那么紧跟在q个try后的finally {}里的code?x)不会(x)被执行Q什么时候被执行Q在return前还是后?

?x)执行,在return前执行?

W二十八Q编E题: 用最有效率的Ҏ(gu)出2乘以8{於?

有C背景的程序员特别喜欢问这U问题?

2 << 3

W二十九(ji)Q两个对象值相?x.equals(y) == true)Q但却可有不同的hash codeQ这句话对不?
不对Q有相同的hash code?

W三十,当一个对象被当作参数传递到一个方法后Q此Ҏ(gu)可改变这个对象的属性,q可q回变化后的l果Q那么这里到底是g递还是引用传?

是g递。Java ~程语言只由g递参数。当一个对象实例作Z个参数被传递到Ҏ(gu)中时Q参数的值就是对该对象的引用。对象的内容可以在被调用的方法中改变Q但对象的引用是永远不会(x)改变的?

W三十一Qswtich是否能作用在byte上,是否能作用在long上,是否能作用在String?

switchQexpr1Q中Qexpr1是一个整数表辑ּ。因此传递给 switch ?case 语句的参数应该是 int?short?char 或?byte。long,string 都不能作用于swtich?

W三十二Q编E题: 写一个Singleton出来?/font>

Singleton模式主要作用是保证在Java应用E序中,一个类Class只有一个实例存在?
一般Singleton模式通常有几U种形式:
W一UŞ? 定义一个类Q它的构造函Cؓ(f)private的,它有一个static的private的该cd量,在类初始化时实例话,通过一个public的getInstanceҎ(gu)获取对它的引?l而调用其中的Ҏ(gu)?
public class Singleton {
  private Singleton(){}
  //在自己内部定义自׃个实例,是不是很奇怪?
  //注意q是private 只供内部调用
  private static Singleton instance = new Singleton();
  //q里提供?jin)一个供外部讉K本class的静(rn)态方法,可以直接讉K  
  public static Singleton getInstance() {
    return instance;   
   }
}
W二UŞ?
public class Singleton {
  private static Singleton instance = null;
  public static synchronized Singleton getInstance() {
  //q个Ҏ(gu)比上面有所改进Q不用每ơ都q行生成对象Q只是第一ơ     
  //使用时生成实例,提高?jin)效率?
  if (instance==null)
    instanceQnew Singleton();
return instance;   }
}
其他形式:
定义一个类Q它的构造函Cؓ(f)private的,所有方法ؓ(f)static的?
一般认为第一UŞ式要更加安全?

W三十三 Hashtable和HashMap
Hashtablel承自Dictionaryc,而HashMap是Java1.2引进的Map interface的一个实?

HashMap允许null作ؓ(f)一个entry的key或者valueQ而Hashtable不允?

q有是QHashMap把Hashtable的containsҎ(gu)L?jin),?gu)containsvalue和containsKey。因为containsҎ(gu)Ҏ(gu)让h引v?strong>解?

最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是Q在
多个U程讉KHashtableӞ不需要自׃ؓ(f)它的Ҏ(gu)实现同步Q而HashMap
必Mؓ(f)之提供外同步?

Hashtable和HashMap采用的hash/rehash法都大概一P所以性能不会(x)有很大的差异?

java2java 2008-01-03 17:50 发表评论
]]>
Java技术与XML常见问题之JAX-RPChttp://www.aygfsteel.com/java2java/archive/2007/12/09/166441.htmljava2javajava2javaSun, 09 Dec 2007 06:47:00 GMThttp://www.aygfsteel.com/java2java/archive/2007/12/09/166441.htmlhttp://www.aygfsteel.com/java2java/comments/166441.htmlhttp://www.aygfsteel.com/java2java/archive/2007/12/09/166441.html#Feedback0http://www.aygfsteel.com/java2java/comments/commentRss/166441.htmlhttp://www.aygfsteel.com/java2java/services/trackbacks/166441.html   {? Java API for XML-Based RPCQJAX-RPCQ?Java 技术开发h员用基?XML ?RPC 功能构徏 Web 应用E序?Web 服务Q此功能遵@ SOAPQ简单对象访问协议,Simple Object Access ProtocolQ?.1 规范?br />   问题. JAX-RPC 如何使用 SOAP Q?
  {? 请参?JSR-101 ?
  问题. 什么是 RPCQ?
  {? RPC 代表q程q程调用Qremote procedure callQ,它是能客户端执行其他系l中E序的一U机制。RPC 机制常用于分布式客户?服务器模型。服务器服务定义ؓ(f)一pdq程Q可供远E客L(fng)调用?br />   问题. XML 如何?RPC 相关联?
  {? q程q程调用是由Z XML 的协议来表示的,比如 SOAP 。除?jin)定义信结构和~码规则之外QSOAP 规范q定义了(jin)q程q程调用和响应的表示惯例?br />   问题. 对于 Web 服务QJAX-RPC 必须做哪些工作?
  {? 一个基?XML ?RPC 服务器应用程序可以定义、描q和导出一个的 Web 服务Q如同基?RPC 的服务一栗WSDLQWeb 服务描述语言QW(xu)eb Service Description Language  HP0-922 Q定义了(jin)一U?XML 格式Q将服务描述Zl消息操作的端点集合。通过使用 JAX-RPC API Q开发h员可以用 WSDL 描述来实现客L(fng)和服务?br />   问题. 客户端与 JAX-RPC 服务之间采用什么交互模式?
  {? 有以下三U不同的模式Q?br />   1. 同步h-响应QSynchronous Request-ResponseQ:(x)客户端调用远E程序ƈdQ直到它收到一个返回值或异常?
  2. 单向 RPCQOne-Way RPCQ:(x)客户端调用远E过E,但自w不d或等待直到收C个返回倹{JAX-RPC 客户端的q行时系l可能会(x)抛出异常?
  3. 非阻?RPC 调用QNon-Blocking RPC Invocation 190-823 1Y0-614Q:(x)客户端调用远E过E,ql处理同一个线E的内容而不{待q回倹{此后,客户端通过d来接受返回值或轮询q回|以此来处理远E方法的q回?
  问题. q程Ҏ(gu)调用或响应能否传送服务内容信息?
  {? 是的。例如它可能?x)传送唯一的事务标识符或数字签名?br />   问题. Z?xrpcc 没有生成 WSDL 文gQ?
  {? xrpcc 工具实际上可以生?WSDL 文gQ但׃设计pQ如果不指定 –keep 选项Q该文g?x)同源文件一赯删除。?zhn)可以使?–keep 选项?xrpcc 不删?WSDL ?.java 源文件。如果?zhn)使?–s sourcepath 选项Q所有源文g被攄?sourcepath 目录中,然后(zhn)可以很Ҏ(gu)地删除它们?WSDL 文g被攄在当前目录或?–d 选项指定的目录中?

java2java 2007-12-09 14:47 发表评论
]]>
Java囑փ处理技巧四?/title><link>http://www.aygfsteel.com/java2java/archive/2007/11/26/163145.html</link><dc:creator>java2java</dc:creator><author>java2java</author><pubDate>Mon, 26 Nov 2007 05:47:00 GMT</pubDate><guid>http://www.aygfsteel.com/java2java/archive/2007/11/26/163145.html</guid><wfw:comment>http://www.aygfsteel.com/java2java/comments/163145.html</wfw:comment><comments>http://www.aygfsteel.com/java2java/archive/2007/11/26/163145.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.aygfsteel.com/java2java/comments/commentRss/163145.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/java2java/services/trackbacks/163145.html</trackback:ping><description><![CDATA[<p> 下面代码中用到的sourceImage是一个已l存在的Image对象 </p> <p>囑փ剪切<br /> 对于一个已l存在的Image对象Q要得到它的一个局部图像,可以使用下面的步骤:(x) </p> <p> //import java.awt.*; <br /> //import java.awt.image.*; <br /> Image croppedImage; <br /> ImageFilter cropFilter; <br /> CropFilter =new CropImageFilter(25,30,75,75); //四个参数分别为图像v点坐标和宽高Q即CropImageFilter(int x,int y,int width,int height)Q详l情况请参考API <br /> CroppedImage= Toolkit.getDefaultToolkit().createImage(new FilteredImageSource(sourceImage.getSource(),cropFilter));</p> <p><br /> 如果是在Component的子cM使用Q可以将上面的Toolkit.getDefaultToolkit().L。FilteredImageSource是一个ImageProducer对象?<br /> 囑փ~放 <br /> 对于一个已l存在的Image对象Q得到它的一个羃攄Image对象可以使用Image的getScaledInstanceҎ(gu)Q?</p> <p>Image scaledImage=sourceImage. getScaledInstance(100,100, Image.SCALE_DEFAULT); //得到一?00X100的图?<br /> Image doubledImage=sourceImage. getScaledInstance(sourceImage.getWidth(this)*2,sourceImage.getHeight(this)*2, Image.SCALE_DEFAULT); //得到一个放大两倍的囑փ,q个E序一般在一个swing的组件中使用Q而类Jcomponent实现?jin)图像观察者接口ImageObserverQ所有可以用this?<br /> //其它情况请参考API</p> <p><br /> 灰度变换<br /> 下面的程序用三U方法对一个彩色图像进行灰度变换,变换的效果都不一栗一般而言Q灰度变换的法是将象素的三个颜色分量用R*0.3+G*0.59QB*0.11得到灰度|然后之赋值给U绿蓝,q样颜色取得的效果就是灰度的。另一U就是取U绿蓝三色中的最大g为灰度倹{java核心(j)包也有一U算法,但是没有看源代码Q不知道具体法是什么样的,效果和上qC同?</p> <p> GrayFilter.java <br /> @author :<a >tiffanyin</a> <br /> email:cherami@163.netimport java.awt.image.*; <br /> public class GrayFilter extends RGBImageFilter { <br /> int modelStyle; <br /> public GrayFilter() { <br /> modelStyle=GrayModel.CS_MAX; <br /> canFilterIndexColorModel=true; <br /> } <br /> public GrayFilter(int style) { <br /> modelStyle=style; <br /> canFilterIndexColorModel=true; <br /> } <br /> public void setColorModel(ColorModel cm) { <br /> if (modelStyle==GrayModel <br /> else if (modelStyle==GrayModel <br /> } <br /> public int filterRGB(int x,int y,int pixel) { <br /> return pixel; <br /> } <br /> } <br />  GrayFilter.java <br /> @author:tiffanyin  <br /> email:cherami@163.net <br /> import java.awt.image.*; <br /> public class GrayModel extends ColorModel { <br /> public static final int CS_MAX=0; <br /> public static final int CS_FLOAT=1; <br /> ColorModel sourceModel; <br /> int modelStyle;</p> <p>public GrayModel(ColorModel sourceModel) { <br /> super(sourceModel.getPixelSize()); <br /> this.sourceModel=sourceModel; <br /> modelStyle=0; <br /> } </p> <p>public GrayModel(ColorModel sourceModel,int style) { <br /> super(sourceModel.getPixelSize()); <br /> this.sourceModel=sourceModel; <br /> modelStyle=style; <br /> }</p> <p>public void setGrayStyle(int style) { <br /> modelStyle=style; <br /> } </p> <p>protected int getGrayLevel(int pixel) { <br /> if (modelStyle==CS_MAX) { <br /> return Math.max(sourceModel.getRed(pixel),Math.max(sourceModel.getGreen(pixel),sourceModel.getBlue(pixel))); <br /> } <br /> else if (modelStyle==CS_FLOAT){ <br /> return (int)(sourceModel.getRed(pixel)*0.3+sourceModel.getGreen(pixel)*0.59+sourceModel.getBlue(pixel)*0.11); <br /> } <br /> else { <br /> return 0; <br /> } <br /> } </p> <p>public int getAlpha(int pixel) { <br /> return sourceModel.getAlpha(pixel); <br /> } </p> <p>public int getRed(int pixel) { <br /> return getGrayLevel(pixel); <br /> } </p> <p>public int getGreen(int pixel) { <br /> return getGrayLevel(pixel); <br /> } </p> <p>public int getBlue(int pixel) { <br /> return getGrayLevel(pixel); <br /> } </p> <p>public int getRGB(int pixel) { <br /> int gray=getGrayLevel(pixel); <br /> return (getAlpha(pixel)<<24)+(gray<<16)+(gray<<8)+gray; <br /> } <br /> }</p> <p><br /> 如果你有自己的算法或者想取得Ҏ(gu)的效果,你可以修改类GrayModel的方法getGrayLevel()?<br /> 色彩变换<br /> Ҏ(gu)上面的原理,我们也可以实现色彩变换,q样的效果就很多?jin)。下面是一个反转变换的例子Q?</p> <p><br /> /* ReverseColorModel.java*/ <br />   @author: <a >tiffanyin</a>  <br /> /*email:cherami@163.net*/ <br /> import java.awt.image.*; <br /> public class ReverseColorModel extends ColorModel { <br /> ColorModel sourceModel; <br /> public ReverseColorModel(ColorModel sourceModel) { <br /> super(sourceModel.getPixelSize()); <br /> this.sourceModel=sourceModel; <br /> } </p> <p>public int getAlpha(int pixel) { <br /> return sourceModel.getAlpha(pixel); <br /> } </p> <p>public int getRed(int pixel) { <br /> return ~sourceModel.getRed(pixel); <br /> } </p> <p>public int getGreen(int pixel) { <br /> return ~sourceModel.getGreen(pixel); <br /> } </p> <p>public int getBlue(int pixel) { <br /> return ~sourceModel.getBlue(pixel); <br /> }</p> <p>public int getRGB(int pixel) { <br /> return (getAlpha(pixel)<<24)+(getRed(pixel)<<16)+(getGreen(pixel)<<8)+getBlue(pixel); <br /> } <br /> } <br /> /* ReverseColorModel.java*/ <br /> /*@author:tiffanyin */ <br /> /*email:cherami@163.net*/ <br /> import java.awt.image.*; <br /> public class ReverseFilter extends RGBImageFilter { <br /> public ReverseFilter() { <br /> canFilterIndexColorModel=true; <br /> } </p> <p>public void setColorModel(ColorModel cm) { <br /> substituteColorModel(cm,new ReverseColorModel(cm)); <br /> } </p> <p>public int filterRGB(int x,int y,int pixel) { <br /> return pixel; <br /> } <br /> }</p> <p><br /> 要想取得自己的效果,需要修改ReverseColorModel.java中的三个Ҏ(gu)QgetRed、getGreen、getBlue?<br /> 下面是上面的效果的一个ȝ演示E序?</p> <p><br /> /*GrayImage.java*/ <br /> <a>/*@author</a>: <a >tiffanyin</a> */ <br /> /*email:cherami@163.net*/ <br /> import java.awt.*; <br /> import java.awt.image.*; <br /> import javax.swing.*; <br /> import java.awt.color.*; <br /> public class GrayImage extends JFrame{ <br /> Image source,gray,gray3,clip,bigimg; <br /> BufferedImage bimg,gray2; <br /> GrayFilter filter,filter2; <br /> ImageIcon ii; <br /> ImageFilter cropFilter; <br /> int iw,ih; </p> <p>public GrayImage() { <br /> ii=new ImageIcon(\"images/11.gif\"); <br /> source=ii.getImage(); <br /> iw=source.getWidth(this); <br /> ih=source.getHeight(this); <br /> filter=new GrayFilter(); <br /> filter2=new GrayFilter(GrayModel.CS_FLOAT); <br /> gray=createImage(new FilteredImageSource(source.getSource(),filter)); <br /> gray3=createImage(new FilteredImageSource(source.getSource(),filter2)); <br /> cropFilter=new CropImageFilter(5,5,iw-5,ih-5); <br /> clip=createImage(new FilteredImageSource(source.getSource(),cropFilter)); <br /> bigimg=source.getScaledInstance(iw*2,ih*2,Image.SCALE_DEFAULT); <br /> MediaTracker mt=new MediaTracker(this); <br /> mt.addImage(gray,0); <br /> try { <br /> mt.waitForAll(); <br /> } catch (Exception e) { <br /> } <br /> } </p> <p>public void paint(Graphics g) { <br /> Graphics2D g2=(Graphics2D)g; <br /> bimg=new BufferedImage(iw, ih, BufferedImage.TYPE_INT_RGB); <br /> Graphics2D srcG = bimg.createGraphics(); <br /> RenderingHints rhs = g2.getRenderingHints(); <br /> srcG.setRenderingHints(rhs); <br /> srcG.drawImage(source, 0, 0, null); <br /> ColorSpace graySpace=ColorSpace.getInstance(ColorSpace.CS_GRAY); <br /> ColorConvertOp op=new ColorConvertOp(graySpace,rhs); <br /> gray2=new BufferedImage(iw, ih, BufferedImage.TYPE_INT_RGB); <br /> op.filter(bimg,gray2); <br /> g2.drawImage(source,40,40,this); <br /> g2.drawImage(gray,80,40,this); <br /> g2.drawImage(gray2,120,40,this); <br /> g2.drawImage(gray3,160,40,this); <br /> g2.drawImage(clip,40,80,this); <br /> g2.drawImage(bigimg,80,80,this); <br /> } </p> <p>public void update(Graphics g) { <br /> paint(g); <br /> } </p> <p>public static void main(String args[]) { <br /> GrayImage m=new GrayImage(); <br /> m.setSize(400,400); <br /> m.setVisible(true); <br /> } <br /> }<br /> </p> <img src ="http://www.aygfsteel.com/java2java/aggbug/163145.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/java2java/" target="_blank">java2java</a> 2007-11-26 13:47 <a href="http://www.aygfsteel.com/java2java/archive/2007/11/26/163145.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java学习(fn)q程中应该理解的一些重点内?/title><link>http://www.aygfsteel.com/java2java/archive/2007/11/19/161554.html</link><dc:creator>java2java</dc:creator><author>java2java</author><pubDate>Mon, 19 Nov 2007 03:34:00 GMT</pubDate><guid>http://www.aygfsteel.com/java2java/archive/2007/11/19/161554.html</guid><wfw:comment>http://www.aygfsteel.com/java2java/comments/161554.html</wfw:comment><comments>http://www.aygfsteel.com/java2java/archive/2007/11/19/161554.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.aygfsteel.com/java2java/comments/commentRss/161554.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/java2java/services/trackbacks/161554.html</trackback:ping><description><![CDATA[数值类型:(x) <br /> <br /> 虽然是面向对象的语言Q但是在使用上数值类型还是必不可的Q如果在C的学?fn)中已经掌握了(jin)C的数D和转换规则Q那我想q里应该没有什么问题,只有两点需要注意:(x)1?4.0q样的Q点常量被认ؓ(f)是double型,只有加上f后缀才是float型的Q?、整数常量说h被认为是int型,但是在编译时Q可以认为编译器其看作能表C数的最数|因此byte b = 100;不会(x)报错?<br /> <br /> 引用cdQ?<br /> <br /> 其实所谓引用类型在C++中已有体玎ͼ是传参的时候有一U引用类型,从C来考虑Q它?yu)是一个指针,只不q,我们不能对它q行指针上的操作。所以这里的重点是:(x)1、Java里所有的对象都是在堆中生成的Q所以需要类似指针的东西指向它,那就是引用;2、我们通过引用操作的是引用所指向的对象,除了(jin)赋值操作外Q应该就没有什么操作是针对引用本n的了(jin)Q这一Ҏ(gu)C的指针与Java的引用区别所在?<br /> <br /> cd对象Q?<br /> <br /> q是一个大块,有很多东西,不展开说了(jin)Q就说几个重点:(x)1、类Ҏ(gu)、类属性与成员Ҏ(gu)、成员属性在加蝲、初始化、用上的异同;2、在构造函CQthis()和super()的用法;3、子cȝ加蝲q程、初始化q程和构造过E;4、方法的重蝲和覆写;5、覆写所引出的多态问题?注意Q多态之应用在方法上Q对属性没有作? <br /> <br /> 函数调用的参C递:(x) <br /> <br /> 如果把引用类型所记录的地址|q作是引用cd变量的值的话,那么QJava的所有方法调用的时候,都是采用的g??数值类型传数|引用cd传地址?<br /> <br /> IO:(x) <br /> <br /> 与C比v来,Java的输入输出,其是输入是非常ȝ(ch)的,也许是因为出于面向对象的考虑吧?不知道。Java提供?jin)很多的IO,但是我们q不必将各种IO都搞清楚Q我们只需要了(jin)解字节流与字W流各有什么功能,字符是如何在字节流之上构造的Q几乎所有的字符构造的时候都是徏立在一个已有的字节的基础上的Qƈ且它的这U设计得我们可以像套管子一PIO一节一节套hQ直到得到我们想使用的IO对象(例:(x)BufferedReader的?。在我们以后使用的时候,我们可以再去查APIQ主要要看的几个cLQFileReader、FileWriter、BufferedReaderQ再配合上System.out对象Q对于文本的输入、输出来_(d)p够用?jin),其他的没有必要看那么多,用的时候再看了(jin)?<br /> <br /> 容器Q?<br /> <br /> 个h认ؓ(f)Q这是Java~程的一大利器,常用的类是:(x)ArrayList(List)作ؓ(f)可变长数l、HashMap(Map)用来建立查找表,Set很少用,只在HashMap的用中q带用过一些。通过对这两个cȝ熟?zhn)Q能够将List、Set和Map三大cȝ基本用法掌握。另外它的几个辅助类要掌握:(x)Iterator和Collections。CollectionscL供容器的一些通用工具Q比如排序。而说到排序,q扯出?jin)比较器QComparator。能够熟l用Comparatorc,可以让你q需求和自己的类定制排序Ҏ(gu)?<br /> <br /> AWT和SWINGQ?<br /> <br /> 个h认ؓ(f)QJava在图形界面的制作上有着非常好的装性,我以前曾l试囑֭qMFCQMFC在生成图形界面的时候会(x)帮助你生成一些代码,然后让你在这些代码的指定位置d代码以实现功能,我这个h有个?fn)惯Q如果让我看C(jin)一些东西,那么我不搞清除ؓ(f)什么这么写Q就不会(x)往下走Q看到那许多代码Q自然就惛_清楚那些是什么,l果引出来好多知识,后来我才知道其中有些是调用WinAPIQ结果我到现在还是不?x)用MFC。这里ƈ不是贬低MFCQ我怿MFC有其qh之处Q只不过个h认ؓ(f)它的装性做得不好,暴露Z(jin)太多东西Q也许能够提高灵zL,不过Q可能我跟它无缘:(。在q方面Java做得不错,l你一个类Q你用就是了(jin)Q它?yu)图形界面的低层实现隐藏的很好,其作?f)一个对象给你,而你只需要在q个对象上修修改改,挺方便的?<br /> <br /> 作ؓ(f)初学者,我觉得AWT的重点在于它的几个Listener的用法,q有布局格式Q然后就是那许多的Component的用处和用法?<br /> <br /> 不过Q因为我个h使用的原因,所以至今AWT和SWING都用得很,所以这斚w也就不便多说?jin),抱歉。写q些q不是告诉大家怎么解决问题Q因为每一个都有很多可写,只是希望能给初学者一点参考,希望能够帮助初学者们有的攄地看? ( 转蝲<a >920-432</a> <a >920-553</a> )<br /> <img src ="http://www.aygfsteel.com/java2java/aggbug/161554.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/java2java/" target="_blank">java2java</a> 2007-11-19 11:34 <a href="http://www.aygfsteel.com/java2java/archive/2007/11/19/161554.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <a href="http://www.aygfsteel.com/" title="狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频">狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频</a> </div> </footer> վ֩ģ壺 <a href="http://" target="_blank">лͨ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ԭ</a>| <a href="http://" target="_blank">ʹ</a>| <a href="http://" target="_blank">ƽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">̩</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ī</a>| <a href="http://" target="_blank">żҽ</a>| <a href="http://" target="_blank">غ</a>| <a href="http://" target="_blank">ֽ</a>| <a href="http://" target="_blank">ͬ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ɽ</a>| <a href="http://" target="_blank">Ʊ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">˳</a>| <a href="http://" target="_blank">ȳ</a>| <a href="http://" target="_blank">̶</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">̫</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Ͽ</a>| <a href="http://" target="_blank">®</a>| <a href="http://" target="_blank">ͨ</a>| <a href="http://" target="_blank">ӱ</a>| <a href="http://" target="_blank">ƽ</a>| <a href="http://" target="_blank">פ</a>| <a href="http://" target="_blank">˷</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>