当前位置:首页 » 编程语言 » java程序员考试

java程序员考试

发布时间: 2022-09-28 03:45:13

java程序员考试都需要什么证书没有

有。目前Java是甲骨文公司(Oracle)的编程语言产品,公司为此设置了4个官方的证书,从初级到高级依次是:

1、Oracle Certified Associate:需要掌握后续证书都要用到的基础Java编程知识。

2、 Oracle Certified Professional:分为“移动应用开发”和“商业组件开发”两大内容。

3、Oracle Certified Expert:分为“企业级JavaBean开发”,“Java持久化开发”,“Web服务开发”,“Web组件开发”四大内容。

4、Oracle Certified Master:需要掌握Java企业级架构和企业级开发。

这四个证书是官方出的,所以具有绝对的权威性,当然价格也不便宜。

但是,如果想找到好工作,建议还是磨练自己的技术和经验,就算你有了证书,在面试的时候还是要考察你的基本功和知识面,所以个人觉得认证证书最大的用处是让简历好看一些。

(1)java程序员考试扩展阅读

Java认证考试的特点分述:

1、SCJP(Sun Certified Java Programmer):测试 Java程序设计的观念和能力,内容偏重于 Java 语法和 JDK 内容。共 59 题复选及填充,时间 2 小时,答对 61% 是及格标准。

2、SCWD(Sun Certified Web Component Developer for J2EE Platform):内容涵盖 Servlet 与 JSP。考题为 60 题复选及填充,时间 2 小时,答对 70% 是及格标准。

3、SCJD(Sun Certified Java Developer):测试 Java 软件开发的进阶技能,考试分成两阶段,第一阶段是程序设计题,时间无限制,答对 80% 以上就可以进入第二阶段应试。第二阶段是 5-10 题简答题,时间 90 分钟,答对 70% 以上即可得到 SCJD 认证。

4、SCAJ(Sun Certified Enterprise Architect for J2EE):测试对于 J2EE 架构的熟悉程度以及系统整合的能力。本考试分成三个阶段,第一个阶段是 48 题复选题,时间 75 分钟,答对 68% 以上方可进入下阶段。第二阶段是系统设计专题,无时间限制,答对 70% 以上方可进入下一阶段。第三阶段是四题申论题,应试时间 90 分钟。

Ⅱ 问编程的人士JAVA的考试证书叫什么啊有几级啊

对于当今有志从事计算机行业的人而言,最重要的一件事情就是:学习Java!那么对于应试Java程序员和Java开发员,应如何学习,如何参加考试,考试时应注意哪些事宜呢? 在IT业迅猛发展的今天,获得权威认证为个人发展提供了越来越多的良好契机。Sun公司的Java认证共有以下三种:Java程序员,Java开发员和Java2企业级设计师。目前国内开展的Java认证考试仅为前两种。其中,Java程序员的认证考试以Sun公司指定的JavaSL-275为教材,考试号为310-025;Java开发员的认证考试以Sun指定的JavaSL-285为教材,机考部分的考试号为310-027。 ■Java程序员认证 一、怎样可以获得Sun公司的Java认证? 如果你希望取得Sun公司Java认证,那么必须通过Java程序员(SCJP)的考试。授权培训中心所开设的Java程序员课程可以帮助你在短期内掌握Java编程的知识和技巧,并准确地把握考点。 二、Java认证培训针对什么样的群体? 经常有人咨询:自己对Java语言比较陌生,对程序设计也没有什么基础,怎样做才可以取得Java程序员的认证?还有些专门从事程序开发甚至Java开发的人,也常常在犹豫,是不是可以不接受培训直接参加考试?其实,从原则上讲,培训和考试是完全独立的,可以直接报名参加认证考试。但是,由于Java认证考试的考点和别的学科并没有任何相似性,而且也完全不同于我们日常的Java编程,所以仅仅自学或依靠自己的编程"底子"都是比较盲目的。而在Java程序员的培训课程中,讲师将针对考试中可能遇到的各种题型,有的放矢,更好地帮助学员迅速准确地抓住考试要点。如果学员在短期内不能很好地掌握所学内容,可以免费重听。 三、Java认证培训能提供什么样的服务? 为了满足广大学员的培训需求,让大家更快更及时地掌握知识并获得认证,讲师将使用Sun公司指定教材,系统、完整、全面地讲述课程的内容,并根据各知识点所需要掌握的深度,有层次、有重点、有目的地指导学员的学习。同时,对各种题型的分析和讲解更能帮助学员直观、准确地了解认证考试。 四、如何参加Java程序员的认证考试? 在有了充分的准备后,就可以着手参加考试了。首先需要提前2天到考试中心注册考生ID,并和考试中心的工作人员预约考试时间。考生必须按时参加考试,并携带本人身份证。考试结束即可看到考试结果。Sun公司颁发的证书将在考试之后的2个月内以信件方式发到考生注册的地址处。 五、Java程序员认证的考点有哪些? Java程序员的认证考试以Sun公司的SL-275英文原版教材为标准,需要掌握并作为考试内容的知识点有:声明和权限控制,流控制和异常处理,垃圾回收机制,基本语法,操作数和符号,重载、覆盖、运行类型和面向对象,线程等;此外,还有Java。awt、Java。lang、Java。util、Java。io包中的常用类等。 六、Java认证考试有哪些注意事项? JavaSL-275的考试共有试题59道,通过分数为61分(答对36道题即可)。时间为120分钟,在提交试卷前的任何时候,都可以看到任意一道试题。题型分为单选和多选题(可根据单选框或多选框来判断),多选题在题目中将指明该题有几个正确答案。 七、有哪些资料可以帮助学员学习? 市面上有很多Java教程的相关书籍,有些可以辅助学员更好地学习和掌握Java程序员所应掌握的知识点,如《Java宝典》、《精通Java》、《Java语言程序设计大全》等。但有时这些书籍上的某些内容会跟Sun公司指定的教材有些出入,这时,我们应当以教材的提法为准。当然,无论是教材还是自己购买的书籍都只是对Java语言的系统性的讲述,要抓住考试的要点和难点,还应当以培训课程讲师讲述的内容为准。 ■Java开发员认证 在获得程序员的认证后,可以继续学习取得Java开发员(SCJD)的认证。相对于Java程序员的认证来说,开发员的知识掌握和证书取得要更难些。也正因为如此,开发员的证书对个人能力的标识和个人择业更具价值。下面将对Java开发员认证考试的相关事宜做一些必要的介绍。 一、Java开发员认证课程 讲授Java开发员认证课程的讲师均是具有开发经验、博学广识的。在5天的培

Ⅲ Java有哪些可考的证书

Java高级工程师,Java可靠的证书有SCJP。 sun certificated java programmer对于是Java程序员认证,一种Java认证考试。


知识扩展:

Java自1995年问世以来,因其卓越的通用性、高效性、平台移植性 和安全性等特性,成为全球范围内应用范围最广的开发语言,而且即使历经二十余年发展仍然在行业内保持着“常青树”的地位。Java软件工程师是指运用Java这种开发语言去完成软件产品的软件程序设计、开发、测试、维护升级等工作的人员。

sun certificated java programmer (SCJP)对于是Java程序员认证,一种Java认证考试。Java程序设计员,Sun推出两项认证:SunCertificatedJavaProgrammer(SCJP)和SunCertificatedJavaDeveloper(SCJD)。

相对于SCJD来说,SCJP更侧重于测验您的Java程序设计概念及能力,内容偏重于Java语法及JDK的内容。其对应的最主要的学习课程是SL-275。SCJP 的学习/考试过程是相对相对比较明确的,首先学员参加SL-275的培训课程(标准费用大致在2600人民币,包括考试券、教材费),也可以单独购买考试券(Certification Voucher,费用现在是1250元),然后在Prometric考试中心参加考试。通过后获得Sun颁发的SCJP认证证书。

Ⅳ java程序员的认证考试怎么考

有。目前Java是甲骨文公司(Oracle)的编程语言产品,公司为此设置了4个官方的证书,从初级到高级依次是:
1. Oracle Certified Associate:需要掌握后续证书都要用到的基础Java编程知识
2. Oracle Certified Professional:分为“移动应用开发”和“商业组件开发”两大内容
3. Oracle Certified Expert:分为“企业级JavaBean开发”,“Java持久化开发”,“Web服务开发”,“Web组件开发”四大内容
4. Oracle Certified Master:需要掌握Java企业级架构和企业级开发

Ⅳ 关于java程序员应聘机试

我是刚找到了一个java程序员的工作,现在我告诉你一些具体的问题;
他们首先回让你自我介绍1-3分钟,这其中,可能你就要谈到,你对java的了解吧。然后问你曾经做过那些关于java的项目(或者自己编写),他们会问你对bean是否了解,然后会问,你对j2ee了解多少,问这个的目的,对数是想问你,对ejb有多少了解,然后会问你对应用服务器,比如weblogic和websphere了解多少。因为你面试的是java程序员,还可能让你做一份java人证的考试题(1-20道),最后可能会问你关于数据库的知识在最后,可能就是问你的薪资方面的要求了。
就这些了,这是我面试所经历的一切。

Ⅵ java有哪些证书考啊

sun公司推出的java认证包括scjp,scjd,scwcd,scea等等很多认证
其中scjp(java程序员)是最基础的认证,考其他级别的java认证都需要先考过scjp认证。
scwcd(web组件开发员)和scjd(java开发员)属于高于scjp一个等级的认证。
scea(企业级架构师)是java认证的最高等级也就是第三级认证。

Ⅶ 做java开发的,想考试软件水平考试,考哪一种工程师,好呢

考J2EE比较好,学习这个框架内,很快就能学会折叠出什么样的框架,这是一种知识产权的成熟和完善的软件工程师,想要学习java开发,当属千锋教育最值得推荐。

java开发工程师考试分高、中、初3个级别。
(一)高级资格:信息系统项目管理师、系统分析师、系统规划与管理师、系统构架设计师、网络规划设计师;
(二)中级资格:软件设计师、网络工程师、信息系统监理师、系统集成项目管理工程师、嵌入式系统设计师、电子商务设计师、数据库系统工程师、软件评测师、信息系统管理工程师、信息安全工程师、多媒体应用设计师;
(三)初级资格:程序员、信息系统运行管理员、网络管理员、信息处理技术员(上机考试)。

想要了解更多java开发的相关信息,推荐咨询千锋教育。千锋励精图治,不改教育初心。十一年来,千锋以政策为引导,不断完善国内特色现代职业教育体系建设,充分发挥教研师资队伍使命,构建品质教育,加大创新型人才培养力度,为经济发展提供智力人才和智力支撑,成为新时期职业教育发展的新方向,在同行业中有很高的美誉度。

Ⅷ Java开发程序员考取哪些证书有用

包括下列三种: Java认证考试 关于Java方面,Sun推出七项认证:
Sun Certified Java Programmer for the Java 2 Platform、
Sun Certified Developer for the Java 2 Platform
Sun Certified Web Component Developer for the Java 2 Platform, Enterprise Edition 1.4
Sun Certified Business Component Developer for the Java 2 Platform, Enterprise Edition
Sun Certified Web Services Developer for the Java 2 Platform, Enterprise Edition
Sun Certified Enterprise Architect for the Java 2 Platform, Enterprise Edition
Sun Certified Mobile Application Developer for the Java 2 Platform, Micro Edition
Solaris系统管理认证考试
Sun 公司为用户提供支持 Solaris 10 操作系统的高品质培训和认证服务,可帮助企业最大限度地快速实现该创新操作系统的重要价值。

Ⅸ 关于Java软件工程师应该考取什么认证

关于Java软件工程师应该考取JAVA软件工程师。

完成软件的设计、开发、测试、修改bug等工作,包括业务需求的沟通,功能模块详细设计,业务功能实现与单元测试,系统维护;参与产品构思和架构设计;撰写相关的技术文档;支持售前技术服务;支持项目对产品的应用服务。

SunJava认证分为两个级别:Sun 认证Java程序员和Sun 认证Java开发员。Sun 认证Java程序员考试内容涉及Java所有相关知识、编程概念及applet开发技巧。

Sun认证Java开发考试旨在考察您通过应用软件分配进行复杂编程的能力。之后还要测试您完成编程所需的知识。每次考试都包括65道以上的多项选择题,时间大约为90分钟。考试合格后由Sun公司颁发的国际通用的Java程序员证书。

以上内容参考:网络-Java认证考试

Ⅹ JAVA初级程序员要考哪些内容

JAVA初级程序员
现在有 SCJP 这个比较权威点(SUN 公司的)~~~在这个考试费用是 1250元 如果你是在大学
还可能享受优惠 只要 450 元
考点:
Section 1 Declarations and Access Control
目标1, 创建数组
采用不同的格式来编写任一基本数据类型数组的声明,构造及初始化的代码。

数组是一连串对象或基本数据,它们必须同型,并以一个标识符封装在一起。数组好象一个对象,通过new关键字来创建。
声明数组
数组的声明并不能为数组分配内存。声明时数组不能有大小信息,也就是说编译器并不允许你告诉它究竟数组有多大,它只是一个reference(引用),并没有对应的空间。声明数组的方式有: int[] a1; int a1[]两种,int num[5]是错误的数组声明方式。

声明并创建数组
声明一个数组并同时为它分配内存。
Int num[] =new int[5];

声明并初始化数组
声明一个数组并同时进行初始化。
Int num[]=new int[]{0,1,2,3,4};
Int num[]=new int[5]{0,1,2,3,4}; //!错误

数组知道自己的大小
与c++不同,数组知道自己的大小,当数组越界时,会抛出异常。数组具有length属性(不是length()方法),它能告诉你数组的大小。

多维数据
int m[][] ; int [] m[]; int[][] m;

数组的缺省值
与其它的变量不同,不论数组在向处创建,它总是使用可以使用缺省值。

目标2 声明类与变量
声明类,内部类,方法,实例变量,静态变量,自动变量(局部变量),正确使用各种修饰符(public , private , static ,final, abstract)。

在JAVA中万事万物皆对象,即使JAVA程序本身也是对象。
类的定义和对象的生成
public class MyClass{ //类定义
int i;
float f; //类数据成员
void amethod(){ //方法
int i; // 局部变量
}
}

MyClass aClass =new MyClass(); //创建类的一个实例(对象)

修饰符说明
private
被了变量所在的类,其它任何类都不可以访问这个成员。

无访问修饰符
所谓的包访问权限,同一个包内的其它类可以访问这个成员。

Protected
与无访问修饰符具有权限外,还允许子类访问这个成员。

Public
具有全局可视性,任何其它类都可以访问这个成员。

Static
Static变量称为类变量,类的所有对象共享这个变量。
Static方法称为类方法,它只能访问static变量。静态方法不能被子类overriding为非静态方法,但静态方法可以被子类静态方法所Hided.

Native
只用于方法,指明方法体是由其它编程语言编写的。它以;结尾不是以{}结尾。
Public native void fastcalc();

Abstract
Abstract修饰符可用于类与方法前,在用于方法前时表明方法不具备方法体。只支类中包括了抽象方法则它必须声明为抽象类。如果一个类实现一个接口时,它没有为接口中所有的方法提供实现时,也必须声明为抽象类。

Final
Final修饰符可用于类,方法和变量,fianl类不能被继承,所有final类中的方法都是教学final方法。Final变量的值必须在创建时设定并具不能被修改。

Synchronized
防止多个线程同时访问相同的代码段。

Transient
表明类序列化时,变量不必序列化。

Volatile
表明变量由于线程可能异步修改。

目标3 缺省构造器
结定一个类,确定是否有缺省构造器

构造器是与类名相同的方法,并具没有返回值。缺省构造器是一个不具有任何参数的构造器。在你没有提供构造器的条件下,编译器为自动化为你提供一个缺省的构造器,但一旦你定义了任何一个构造器,编译器就不会为你提供缺省构造器。在这种条件下,如果你使用不具有参数的构造器将有错误。
构造器可以有访问修饰符,但不能有native,abstract,static,synchronized和final修饰符。

目标4 重载与覆写
为所有在自己或父类中的相关方法声明有效的返回值,
相同类中的方法
当在同一个类中有多个方法具有相同的名称时,这个方法就被重载了。只有参数的次序和类型是区分重载方法的依据,而返回值和参数的名称对区分重载方法没有贡献,所以,不能以返回值的不同来重载方法。

子类中的方法
可以在子类中重载父类的方法,只要新的重载方法具有不同的参数次序或类型。当你在子类中的方法具有于父类中的方法相同的signature,则称子类覆写了父类的方法。注意:子类覆写父类方法,它的访问修饰符可以不同,但子类要具有比父类更加严格的访问权限。
静态方法不能被覆写只能被HIDED。

基本类型为参数的重载
基本类型可以自动进行窄化转型(narrowing conversion),在没有相应数据类型的重载方法,它的数据类型向上晋升。

Section 2 Flow control and exception Handling

目标1 if 和switch语句
使用if和switch编写代码并能区分有效的参数类型

if的条件语句中只能是boolean型的数据。
Int k=1;
If(k ) System.out.println(k); // 错误
If(k==1) System.out.println(k); // 正确

Switch的条件语句中只能是int数据类型,或int的窄化数据类型也就是byte, char, short
Long i;
Switch(i){ //错误
Case 1: .. break;
Case 2: … break;
Default: ..
}
case语句的break的使用,在switch块中只有遇到break语句时,块才跳出。
Default语句不必总安排在switch语句的最后,但default语句不在最后时,要使用break.

三元操作符 ?:

目标2 循环,break和continue
编写各种(不)具有label的break和continue的循环语句。明确循环开始与结束时,循环记数器的值。

For 循环
语法:
for(initialization; conditional expression;increment)

逗号运算符
它只能用于for的控制表达式中。
for(int i=1,j=i+10;i<5;i++,j=i*2)
do-while与while的区别在开do-while中的语句至少执行一次。

Goto与break,continue
虽然goto是java的保留字,但java而不使用它。Java中的跳跃功能由break与continue提供。在java中,惟一一个放置lable而能够产生效益的地点就是恰恰放在迭代语句前。一般而论,break与continue只会中断当前的循环,而与label搭配,可以中断多层循环。
Label1:
Outeriteration{
Inneriteration{

break; //1

continue; //2
….
Continue label1;//3
….
Break label1; //4
}
}
1中断内层迭代,回到外层迭代
2将执行点移至内层迭代的起始处
3同时中断内层迭代,再从外层迭代开始
4同时中断内外层迭代,不再进行任何迭代
务必记下。在java中使用label的惟一理由是跳过一个以上的嵌套层次。
目标3 try/catch语句与方法覆写
正确使用异常与异常处理语句(try,catch,finally)来编写代码,正确处理覆写方法的异常。

异常一词,意指“我对这件事有异议:我对这件事感到意外”。在问题发生点,你可能自己处理异常,有时,你可能不知道如向处理,就是说在当前的context并不具备中以修改问题的信息,你可将问题交付给高层的context的处理。

覆写有异常抛出的方法
覆写具的异常抛出的方法时,子类的方法只能抛出父类方法所抛出的异常或它的子异常。但是,子类方法可以抛出少于父类的异常或干脆就不抛异常。
方法声明的Throws子句
抛出子句意指当错误发生时,方法抛出这个异常而这个方法的调用者必须处理(catch)这个异常异常。
目标4 如时异常发生
认识代码段中异常发生的地方以它的影响。注意:异常可能是运行时异常,检测异常或错误。

错误无需捕捉
异常的出处:
Java标准库类抛出的异常
自己的类抛出的异常
执行期发生的任何意外
检测异常与非检测异常
检测异常你必须捕捉,而非检测异常你不必捕捉。
非检测异常发生后,缺省条件下会在控制台上打印一条消息。对某些非检测异常可用编码来避免。
public class GetArg{
public static void main(String argv[]){
if(argv.length ==0){
System.out.println("Usage: GetArg param");
}else{
System.out.println(argv[0]);
}
}
}
检测异常必须被捕捉,方法在调用某个抛出检测异常的的方法时,它或者捕捉它或抛出它。
public FileInputStream openFile(String filename)
throws FileNotFoundException{//抛出异常,自己不处理
FileInputStream fis = new FileInputStream(filename);
return fis;
}

public FileInputStream openFile(String filename) {
FileInputStream fis;
try{
fs= new FileInputStream(filename);
}catch(FileNotFoundException ex){
ex.printStackTrace();
}
return fis;
}

finally子句
finally子句总是会执行,即使try/catch中已有了return语句finally中的语句也会执行。但如果try/catch中有System.exit(0),finally语句不会执行。

Catch子句
Catch子句的捕捉异常的次序要与异常的层次结构相一致。也就是说子异常要先捕捉,父异常后捕捉。反之,编译器会抛出子异常已捕捉的信息。其它要注意是:异常被抛出后,异常处理根据捕捉的排列次序,寻找最近的处理程序。
目标5 使用断言
正确编写断言代码
assertion功能提供了一种在代码中进行正确性检查的机制,这种检查通常用于开发和调试阶段,到了软件完成部署后就可以关闭。这使得程序员可以在代码中加入调试检查语句,同时又可以在软件部署后关闭该功能而避免对软件速度和内存消耗的影响。基本上,assertion功能就是JAVA中的一种新的错误检查机制,只不过这项功能可以根据需要关闭。

断言的语法
assert somebooleatest

assert somebooleantest : someinformatinvemethod

断言的使用
断言的使用就好比注释的使用,注释向其它人表明其阅读的代码是正确的,而断言用于保证在程序执行过程中booleanTest的值一定是真。断言用于确保某些东西总是为真的。缺省条件下,断言功能是关闭的。
编译开启断言功能。
javac -source1.4 Myprog.java
运行开启断言功能
enableassertions的参数:
no arguments
Enables or disables assertions in all classes except system classes.
packageName...
Enables or disables assertions in the named package and any subpackages.
...
Enables or disables assertions in the unnamed package in the current working directory.
className
Enables or disables assertions in the named class
例如:
java –enableassertions:my.package… MyProg
java –ea Myprog

What should you assert to be true?
断言用于你认为某此东西必须是真的地方。例如:人的年龄必然大于0,又如你认为在一套if/else判定后,必然有判定成功的分支,就可在if/else后,插入断言。例如:
switch(lang){
case Language.java:
System.out.println("java");
break;
case Language.pascal:
System.out.println("pascal");
break;
case Language.csharp:
System.out.println("csharp");
break;
default:
assert false : lang;
}

断言使用的地方

应该使用的情形 不应该使用的情形
用于保证内部数据结构的正确 不用于保证命令行参数的正确
用于保证私有(private)方法参数的正确 不用于保证公共(public)方法参数的正确
用于检查任何方法结束时状态的正确 不用于检查外界对公共方法的使用是否正确
用于检查决不应该出现的状态 不用于保证应该由用户提供的信息的正确性
用于检查决不应该出现的状态,即使你肯定它不会发生 不要用于代替if语句
用于在任何方法的开始检查相关的初始状态 不要用做外部控制条件
用于检查一个长循环执行过程中的的某些状态 不要用于检查编译器、操作系统、硬件的正确性,除非在调试过程中你有充分的理由相信它们有错误
在不开启断言功能时的输出:
在开启断言功能时的输出:

Section 3 Garbage Collection
Objective 1,2 & 3
State the behaviour that is guaranteed by the garbage collection systemWrite code that explicitly makes objects eligible for garbage collection. Recognize the point in a piece of source code at which an object becomes eligible for garbage collection.

为什么要进行垃圾收集
当内存中的对象不再被利用时,系统就要回收内存。Java中不用担心垃圾收集,系统的垃圾收集器会自动回收没有引用的对象所占用的内存。注意:你能建议或鼓励 JVM进行垃圾收集但你不能强迫它。

确保的行为:finalization
Java确保在对象被收集调用finalize方法。垃圾回收器用于释放“对象内存”,由于java中所有的东西都是对象,所以finalize不用来回收释放内存。Finalize方法的使用时机是代码采用了native方法,它调用了非java的内存分配方式,所以你得在finalize方法中以native的方式释放内存。

对象被回收的时机
当垃圾收集机制认为对象上没有引用时,它调用垃圾收集器来回收对象。当垃圾收集是非确定性的,你不能预测它发生的时间,你也不能预测finalize方法准确的运行时间。

Note: Once a variable is no longer referenced by anything it is available for garbage collection.
You can suggest garbage collection with System.gc(), but this does not guarantee when it will happen

非可达
当对象非可达时,就是可能进行回收。非可达的原因为:对象明确被设置为null或指向它的引用数为0。

Section 4 Language Fundamentals
Objective 1, Packages, import, inner classes, interfaces
Identify correctly constructed package declarations, import statements, class declarations (of all forms including inner classes) interface declarations, method declarations (including the main method that is used to start execution of a class), variable declarations, and identifiers.

目标1 包,导入,内类与接口
正确的识别包声明,导入声明,类声明(包括内类),接口声明,方法声明(包括main方法),变量声明和修饰器。

包语句
包用于解决名字冲突,一般开发者以自己的internet域名的反序作为包名的第一部分。这样你就可以生成独一无二的包,这样包中的类就不会有名称上的冲突。例如:package cn.e.xjtu.scjp 这样就可以产生独一无二的类名:cn.e.xjtu.scjp.Question
注意: 包声明语句必须位于其它语句之前,除了注释语句

导入语句
导入语句位于包语句之后,其它语句之前。导入语句是为了方便代码编写,导入相应的包后,包中的类可以仅以局部名使用,而不以全限定名来使用。
Import cn.e.xjtu.scjp.*;
Question q=new Question();

cn.e.xjtu.scjp.Question q=new cn.e.xjtu.scjp.Question();
导入语句对性能的没有影响,它就好比DOS环境中设置路径。
注意:If a source file has a package statement, it must come before any other statement apart from comments

类与内类的声明
类声明
一个文件只能包含一个public类,但可以包含多个非public类。这些类在编译后将生成各自独立的.class文件。
内类,即定义在其它类之中的类。

接口定义
接口是纯粹的abstract class.它所定义的方法不包含方法主体。接口也可定义数据成员,但这些数据成员自然而然的成为了static和final. 接口中的方法即使没有声明为public,它们也会是public,所以实现接口时,必须将实现的方法定义为public。
例子:
interface Instrument{
int i=5;// static & final
void play(); // automatically public

}
class Wind implments Instrument{
public void play(){} //必须定义为public

}

main方法
main方法是程序运行的起点,方法的signature
public static void main(String argv[])
public:方法全局可见性 static:类方法 void: 无返回值 String[]:参数为字符串数组
main不是java的关键字,可以用它来定义变量。Main方法的参数是由命令行来提供的。
State the correspondence between index values in the argument array passed to a main method and command line arguments.
Java Aclass arg0 arg1 …

变量声明
变量的名称:它必须是一个合法的标识符。标识符以字母开头的Unicode字符串;不是关键字,布尔直接值(true,false)或保留字(null);它在作用范围内必须是唯一的。
合法的变量: _avariable, avariable$, (注:_,$可用于变量名)
数据类型:boolean-8/1 byte-8 -128~127
short-16 -32768~32767 int-32 long-64
float-32 double-65 char-16 0~65536

数据类型转型(casting operators)
在java中只有进行窄化转换(narrowing conversion)时才有风险,宽化转化(widening conversion )时就无需明确指示。
数据运算中的晋升(promotion)
在比int小的基本数据类型上进行任何数学运算或位运算时,运算之前会先晋升为int,其结果也会是int类型。如果你要将结果指给较小的类型时,要进行转型。

目标2 使用接口,
明确实现接口类,接口是Runnable或其它的用户自定义的接口

Interfaces -Programming by contract
接口是在类之间建立了一个协议(protocol),或者说合同编程。 意味一个开发者开发了接口其它开发者要守它的条件。接口的别一个用处是实现多重继承。Java中类只能继承一个非接口类,其余继承的来源得是接口。正确的写法是:
DeriveClass extends BaseClass implements interface1,interface2{}
接口合并时的名称冲突

Objective 3, Passing values from the command line
State the correspondence between index values in the argument array passed to a main method and command line arguments
运行一个例子就明白:
public class MyParm{
public static void main(String argv[]){
String s1 = argv[1];
System.out.println(s1);
}
}
java MyParm hello there
程序将输出there不是MyParm也不是hello
Objective 4, identify keywords

abstract boolean break byte case catch
char class const * continue default do
double else extends final finally float
for goto * if implements import instanceof
int interface long native new package
private protected public return short static
strictfp super switch synchronized this throw
throws transient try void volatile while

Objective 5, Unassigned variables
State the effect of using a variable or array element of any kind when no explicit assignment has been made to it.
Java保证变量绝对会在被使用前初始化。每个基本类型的数据成员都保证有初值(O)。而引用数据类型的数据成员的初值为null.
The default values for numeric types is zero, a boolean is false and an object reference is the only type that defaults to a null.
局部变量(在方法中定义的变量)不能缺省值,故使用前必须明确赋予初值。
数组总是可以设置缺省值的。Before initialization arrays are always set to contain default values wherever they are created.
Objective 6, The range and format of data types

Section 5 Operators and Assignments
Objective 1, Applying operators
Determine the result of applying any operator including assignment operators and instanceof to operands of any type class scope or accessibility or any combination of these.

目标1 使用运算符
操作符的分类
算术操作符 (+ , - , * , / , %,++,--)
一元操作符 (++, --, - , +)
关系和条件操作符 关系操作符(>,>=,<,<=,==,!=) 条件操作符(&&,||,!,&,|,^)
移位操作符(<<,>>,>>>) 位操作符(&,|,^,~)
赋值操作符(=)
其它操作符(?:,[],.,new,instanceof,(类型))
注:除了=,==,!=运算符外,其它运算符只能用于基本类型。String类支持+,+=操作符
例: String aStr=2+”hello”;
instanceof操作符用来检验某特殊对象是不是某类或该类的子类的实例,还可以检验某对象的类或子类是否实现了某接口。注意,数组也是对象,instanceof同样适合与数组。

赋值操作符=
基本数据类型的赋值操作
boolean数据只能赋值于另一个boolean数据。不同于c和c++,java中的boolean值只能是true和false。
其它的数据类型可以自由的进行widening conversion(宽化转换)。而进行narrowing conversion(窄化转换)由于有精度的损失,必须进行强制转换。
Primitives may be assigned to "wider" data types, a boolean can only be assigned to another boolean
引用数据类型的赋值操作
引用数据类型的赋值,例如a=b,使得a和b引用指向相同的对象。引用数据类型的赋值可以向上转型。即一超类的引用可以被赋值一子类对象。但向下转型必须强制转换。
Object references can be assigned up the hierarchy from child to base.
++,--: 前序递增和前序递减(++a,--a)先进行运算然后才增赋值。后序递增和后序递减(a++,a--)先赋值然后才进行运算。
奇怪的++与--:
int a=1,b=5;
b+=b++-a--; (b=9)
b=b++;(b=9)
b=++b; (b=10)

关系操作符
关系操作符(<,>,<=,>=,==,!=)所产生的结果是boolean,==,!=可用于所有的内置的类型,其它运算符不能用于boolean.
奇怪的==(对于引用类型==比较两个对象的内存地址,这可不是我们想要的)
double d=12.0;
int i=12;
Integer i2=new Interger(12);
Double d2=new Double(12);
Integer i3=new Interger(12);
d==i ; true
i2==i3; false
i2.equals(i3); true
i2.equals(d2) ; false

逻辑操作符
逻辑运算符:&&,||,!只能用boolean值身上。位运算符:&,|,^,~:在两个操作数的相应位上进行逻辑代数运算。boolean数据不能~b而用!b。&和|和^即是逻辑的(逻辑与,逻辑或和逻辑非)也是位操作的运算符(按位与,按位或和按位异或)。
奇怪的&&与||(短路的&&和||)
当第一个操作数为flase时,如果用&&运算符时,则不检查第二个操作数就直接返回flase。
当第一个操作数为true时,如果用||运算符时,则不检查第二个操作数就直接返回true。

移位操作符
无符号右移位操作符>>>,它采用零扩展,高位插入0. 左移位运算符<< 能将运算符左边的运算对象向左移动运算符右侧指定的位数在低位补0。有符号右移位运算符>> 则将运算符左边的运算对象向右移动运算符右侧指定的位数,有符号右移位运算符使用了符号扩展。若值为正则在高位插入0,若值为负则在高位插入1。
注:int或<int的数据类型进行位移操作数先要进行mode 32运算所以对大于32的位移运算,先要进行mode 32运算,所以3>>>32的结果为3。Long数据类型在先要进行mode 64运算。
奇怪的>>>:小的负数进行>>>运算将得到一个大的正数
-1>>>1 : 2147483647
A unsigned right shift >>> by a positive amount of a small negative number will result in a large positive number returned.

操作数的优先级
优先级(胃溃疡患者是c程序员的写照 Ulcer Addicats Really Like C A lot)
U: ->Unary 一元运算符 ++, -- ,-,+,!,~
A: -> Arithmetic(shift) *,/,%,+,-,>>,>>>,<<
R: -> Relation >,<,>=,<=,instanceof,==,!=
L: -> Logic(bitwise) &,^,|,&&,||
C: -> 三元运算符
A:-> 赋值 = *=

Objective 2, the equals method
Determine the result of a

热点内容
安卓手机匹配为什么比ios厉害 发布:2024-12-26 15:22:20 浏览:674
android锁屏壁纸 发布:2024-12-26 15:02:26 浏览:332
pcsc编程 发布:2024-12-26 15:02:21 浏览:618
在线运行php 发布:2024-12-26 14:54:05 浏览:956
qtonandroid环境搭建 发布:2024-12-26 14:52:31 浏览:96
linuxraid驱动 发布:2024-12-26 14:49:03 浏览:217
vfp数据库程序 发布:2024-12-26 14:48:54 浏览:196
小悟云服务器 发布:2024-12-26 14:41:03 浏览:189
linux系统备份与还原 发布:2024-12-26 14:40:14 浏览:95
云服务器版本过高如何降低 发布:2024-12-26 14:35:27 浏览:340