java工程师个

2024-08-25

java工程师个(共8篇)

java工程师个 篇1

Java学习总结 16个亮点

1.八大基本数据类型

byte(字节型8)int(整型;32;程序中一般默认为int型)short(短整型 16)long(长整型 32)float(浮点型 32)double(双精度浮点型 64)char(字符型 16)boolean(布尔型 只有true和false)小范围内的整数类型可以通过赋值转化成大范围的数据类型.而大范围的数据类型要想转换为小范围的数据类型,则需要强制转换,使用”(数据类型)”进行强制转换

string不是java中的一种基本数据类型,它是一个特殊的类,它的对象是引用类型.2.类

类中定义了对象所共有的方法和属性,就像一个模板,可以通过类创建多个对象 类的定义:格式:public class 类名{}

在类中写方法和属性

属性的定义:private 数据类型 属性名;

主程序入口(主函数): public static void main(Sring args [ ]){}

创建类的对象: 类名 对象名= new 类名();

*都要注意大小写,类名要与class文件名相同

3.方法

1.一般方法

方法的定义格式:访问限制符 返回类型 方法名(参数类型 参数){} 方法的分类:1.有参无参 2.有返回值,无返回值

方法的调用: 对象名.方法名(参数);

*方法调用时,要根据定义方法时是否有参数来调用,若方法有参数,调用时也要加上相应的参数,也可以传入对象

方法的重载:方法名相同,而参数类型和参数的个数不同

2.构造方法

每个类都有一个默认的无参的构造方法

如果自己再定义一个构造方法,程序就会使用重新定义的构造方法,即构造方法的重载 主要用途:初始化对象的属性值

构造方法没有任何返回值类型,且必须与类名相同

访问限制符 方法名(参数类型 参数){}

4.this关键字

在类中用来指代当前对象 this.name =name;第一个name为属性值,第二个name为传入的参数值

5.值传递与引用传递

值传递传递的是变量中的内容,引用传递传递的是变量的首地址

6.类的继承

public class 子类名extends 父类名{}

使用extends关键字,子类自动具有父类的方法和属性,当子类调用方法时,是在调用父类中的方法,子类也可自己定义方法.子类中方法的重写:和父类的方法要一致,方法体不一样.*在java中子类只能继承一个父类

7.多态指的是一种不确定性,只有在运行之后才知道具体的内容

8.接口

子类重写父类飞的方法是必须要定义接口

接口的定义是interface,而不是class

接口默认的限制符是public

接口定义的规则:1.接口中定义的方法不能有任何方法体,只定义方法的返回值类型,方法名,参数,不能用任何的实现.2.不能直接使用接口创建对象

3.接口中可以定义属性,但这些属性定义后不可以在改变

接口的实现使用的是implements

public class 类名 implements 接口名{}

实现类中必须重写接口中的方法名(接口中方法没有方法体,类中要重写)

类和接口的关系和比较:

*继承的关键字不同,interface和extends

*一个类可以继承多个接口,而一个类只能继承一个父类,一个接口可以继承多个接口 *类通过extends继承类

类通过implements继承接口

接口通过extends继承接口

9.抽象类

抽像类定义使用abstract关键字。

抽象类的定义:修饰限制符 abstract class 类名{}

在抽象类中可以定义像接口中没有实现的方法,也可以定义实现了的方法,所以说抽象类是介于类的接口之间的定义抽象方法的格式:限制修饰符abstract void方法名();

*子类继承抽像类时,使用extends关键字,在子类中,必须实现抽象类中的抽象方法。子类只能同时继承一个抽象类,与接口不同

*抽象类也不能直接创建对象,与接口相同

10.关键字

1.可见性修饰关键字:

public:公有的,公开性最高。抽象类,接口的默认关键字

放在方法前,表示方法可以被其他包中的类调用

private:私有的。只能由类内部的方法或构造器来调用,属性一般定义为private的 protected:受保护的。类的默认关键字

2.static关键字:

static方法:使用static限定的方法称为静态方法

它与非静态方法的区别是:非静态方法的调用需要通过创建该类的对象来调用

静态方法直接使用类名。静态方法名()调用

static属性:可以在任何方法中直接使用,不创建类的对象

3.super:调用父类方法

4.final:最终的,表示不可改变,放在属性前表示不可更改,放在方法前,当子类继承时,不可以重写此方法

11.数组

一维数组的定义:数据类型 数组名 [ ] = new 数据类型[数组长度];

数据类型 数组名 [ ] = {值,……};

二维数组的定义:数据类型 数组名 [ ] [ ] = new 数据类型 [数组长度][数组长度];

数组排序的方法:冒泡法,插入排序,选择排序……

12.对列

队列可以像数组一样有序的存放对象,也可以自动增长

实现队列的思路:在实现类的内部,使用数组保存装入队列的对象,每次添加新的对象时,创建一个比原来数组长度大一的数组

泛型:定义接口时 接口名,相当于一个模板

在创建队列时,指定队列中存放对象的类型即可

13.集合框架:

Set:无序的List:相对有序的,以线性方式存储,没有特定的顺序,只有一个开头和结尾

Queue:有序的14.文件:

通过File对象的方法创建文件或目录,删除文件和获取列表目录下的文件

文件分类:真实文件,目录文件,虚拟文件

递归:是通过自己调用自己进行计算,关键是找好终止运算的条件,否则将陷入死循环

15.异常:

在程序运行的过程中,发生一些情况,导致程序可能出错(中断运行)

常见的异常:空指针异常,文件异常,IO异常

异常处理的一般方法:将异常往外抛

1.try{}catch(){}finally{}

2.throws

16.IO流:

流是java中输入输出的抽象

流的分类:按方向分:输入流(InputStream)和输出流(OutputStream)

按性质分:基础字节流,过滤流,基与具体数据类型的流,基与对象读写

InputStream/OutputStream子类:文件读写

FileInputStream:从文件中读取数据

FileOutputStream:写数据到文件

缓冲流:BufferedInputStream/BufferedOutputStream

使用流读写数据时,一般是一个字节一个字节的读取

经历的过程为:输入文件—>操作系统内存—>JVM内存—>代码变量—>操作系统内存—>输出文件而缓冲流则是开辟了一块一定大小的区域,使得每次传送缓冲区字节相对较多的字节,大大提高了效率

java工程师个 篇2

《国家中长期教育改革和发展规划纲要》指出, 要加快解决经济社会发展对高质量多样化人才需要与教育培养能力不足的矛盾。当前我国, 除少部分研究型大学 (如“985”大学) 主要定位于学术型人才 (其中仍然有应用型人才) 培养之外, 绝大多数高等院校一直以来都在强调培养理论与实践相结合的应用型人才。目前, 针对北京大学的教育改革, 也强调了部分专业理论与实践结合的人才培养方案。在计算机科学的培养方案中开设的关于数据库类的课程包括《数据库原理》、《数据库应用技术》、《web编程技术》等。目前常用的DBMS有:SQL SERVER、ORACLE、MY SQL等。实际应用中, 以Oracle所占的市场份额比重最高。

Oracle具有以下特点: (1) Oracle支持大型关系数据库;支持多种操作系统, 具有良好的跨平台性。 (2) 支持分布式数据库和分布处理, 将存放在多台计算机上的数据组合成一个逻辑数据库, 分布式系统的物理分布、逻辑整体、站点自治能力、透明性。 (3) 遵守数据存取语言、操作系统、用户接口和网络通信协议的工业标准。 (4) 完善的安全性控制和完整性控制, 具有可移植性、可兼容性和可连接性。

具体的实施过程, 需注意课程间接口, 如数据库原理SQL在Oracle中的实现, JDBC与后台数据库连接问题, 本文主要探讨java连接Oracle后台数据库的几个关键技术。

二、Java连接大型数据库Oracle的几个关键技术

Java数据库连接 (JDBC) API是一个能够让Java编程人员访问数据库的接口。教学中常用到oracle 10g及以上版本, 对于Oracle 10g, 要加载的驱动程序为classes12.jar (在Oracle安装目录中) , 该文件在Oracle目录中搜索即可得到。

(一) 后台数据库oracle监听的配置

java连接Oracle后台数据库, 需要关注两个配置文件 (linstener.ora和tnsnames.ora) 。监听器 (LISTENER) :主要用于监听客户端向数据库服务器端提出的连接请求, 其设置在服务器端完成。本地服务名 (Tnsname) :客户端与服务器端的连接是通过客户端发出连接请求, 由服务器端监听器进行检查, 如果连接请求有效, 则进行连接, 否则拒绝该连接。

本文中介绍的也是基于本地服务名的配置。检查监听文件linstener.ora和tnsnames.ora中的host的值是否为Oracle服务器所在计算机的名字, 如用的是本机, 则为当前计算机名称, 否则是服务器的IP地址, 另外注意监听器的端口port的值, 本例为1521。

(二) 后台监听服务的检查

除此之外, 需要查看后台的监听服务是否启动, 如果没有启动, 则通过控制面板—管理工具—服务, 查看监听是否启动, 或者通过net start命令启动, 如图1所示。

(三) 通过PL/SQL developer工具进入oracle的会话

实际上, 学生在实验中常常用到Oracle scott用户下的雇员表 (emp) 和部门表 (dept) , 默认情况下需登陆system用户给scott用户解锁, 如图2所示。解锁后, 当前会话是system, 需通过PL/SQL developer检验scott用户是否可用, 登陆时选择数据库名, 本文为ORCL1, 登陆后标题栏显示scott@orcl1, 而非scott, 至此后台数据库调通。

(四) java连接后台数据库oracle步骤

JDBC访问数据库, 需要加载数据库的驱动程序, 然后利用连接符号串实现连接, 创建连接对象, 再创建执行SQL的执行语句, 并实现数据库操作。其访问数据库的流程如下:

●注册驱动class.for Name ("Oracle.jdbc.driver.Oracle Driver") ;

●建立连接 (Connection) :Driver Manager.getConnection ("jdbc:oracle:thin:

●@192.168.8.1:1521:数据库名", "scott", "test") ;

●创建数据库操作对象用于执行SQL语句:Statement stm=conn.Creat Statement () ;

●执行语句:Result Setrs=stm.execute Query (select*from dept) ;

●处理执行结果 (Result Set) 后释放资源。

(五) 具体操作如下

1.先启动桌面上的tomcat工具 (myeclipse工具栏启动) 。

2.修改listener.ora和tnsnames.ora。

3.导入驱动程序文件classes12.jar (该文件在oracle目录下) , 请复制到c:下, 供导入时使用。Build path中选择Configure-Build-path。

4.选择add External Jars选项卡中的add external Jars———class12.jar即可 (从oracle目录中找) 。

5.整体程序和程序执行结果如图3所示, 该例为经scott/test连接Oracle后台数据库, 并取出该用户下部门表 (dept) 的部分数据 (部门号和部门地址) , 其执行结果如图3所示。

三、结语

计算机、网络、物联网等专业开设了《数据库原理》、《数据库应用技术 (Oralce版) 》、《web编程技术》等课程, 在具体的实施过程中, 要特别关注课程间的接口, 如JDBC连接后台Oracle。实践中, 大部分学生的问题出在对Oracle的掌控上, 本着各回各家的原则, 用到的对象属于哪个用户就连接那个用户。监听文件测试通, 前台代码主要关注class.forname和get connection, 另外, 本部分内容事件性比较强, 用到的学科比较多, 需要学生融会贯通才能达到学以致用的效果。

参考文献

[1]国家中长期教育改革和发展规划纲要 (2010-2020) http://www.china.com.cn/policy/txt/2010-07/30/content_20605477.htm

[2]干洪, 徐达奇.高素质工程应用型人才培养途径研究[J].高等工程教育研究, 2010, (11) :44-47.

[3]徐洪丽, 葛平俱.大学教育——博学与精深平衡之道[J].大学教育, 2013:45-46.

[4]王明芳.基于元认知策略的《Java程序设计》课堂教学研究[J].教育理论与实践, 2015, 35 (6) :52-53.

java工程师个 篇3

关键词:Java;CDIO;教学方法;教学实践

作者简介:李瑞生(1976-),男,甘肃白银人,甘肃政法学院公安技术学院,讲师;王秋云(1963-),女,甘肃兰州人,甘肃政法学院公安技术学院,教授。(甘肃兰州730070)

中图分类号:G642.0     文献标识码:A     文章编号:1007-0079(2012)10-0094-02

CDIO先进教育思想是麻省理工学院和瑞典皇家工学院等四所大学经过四年的探索形成的研究成果,国外和国内部分高校近年来先后将CDIO思想应用于教育教学实践并取得了良好的应用效果。[1]

CDIO即“构思—设计—实现—运作”的工程教育思想。其中包含12条重要的标准,[1-2]概括起來主要包括:教学中能否最大程度上体现和反映对软件开发的构思、设计、实施和运作的背景;在课程标准的制定上能否体现出对学生工程基础知识、个人能力、人际团队能力和工程系统能力的培养;培养计划是否包含不同能力层次的划分和实施;有没有保证CDIO培养模式开展和实施的工程实践场所;有没有将学科学习和工程职业训练融合在一起的综合性学习经历和主动学习经历;有没有具备实施CDIO思想的高素质师资;学生学习方式是否转变为主动学习和具备持续学习能力;对学生的考核和评价体系是否与CDIO的培养目标一致等。

针对计算机专业学生学习了“Java程序设计”课程后,独立分析和解决实际应用问题能力、团队协作、实际应用开发能力以及就业竞争力不强等问题,将CDIO思想引入到Java教学中,并对CDIO思想在Java教学过程中的应用和实践展开论述。

一、Java课程体系规划和实施

1.基于应用实践能力培养的Java课程体系规划

聘请有能力的软件开发企业中资深的Java项目人才与学校一起根据企业的需求制定人才培养方案和教学大纲,一方面及时了解前沿技术的变化,另一方面及时了解企业对用人需求的变化,根据这些变化及时调整课程体系并选择相关案例,满足企业现在和将来的用人需求。[3]

为了适应社会对高级Java EE、Java ME程序设计人才的迫切需求,必须设置合理的课程体系模块,体现完整的Java程序员的技术路线,在授课中时时处处体现实际应用需求,以进行实际应用项目开发为最终教学目的,将实际应用开发的环节、技术和知识点分布和渗透到课堂教学中。

因此,将“Java程序设计”课程体系划分为如图1所示,即在学习了Java SE程序设计后,针对不同的学生兴趣和不同的就业取向,开设Java EE或Java ME。

2.理论与实践教学环节的“阶段式”实施

以Java EE教学为例,按表1规划教学“知识点”、“知识单元”、“应用案例”及达到的“目标层次”。

按照如图2所示的学习情境创建—引入学习任务—讲授与互动的方法完成理论环节的教学任务。

传统的实验教学方式主要是教师针对课堂理论教学中的一个知识点的验证性实验。[4]这样进行的实验会导致以下问题:学生只练习了孤立的知识点,没有建立起知识点之间的联系,没有树立“所学知识是为开发应用项目服务的观念”;在完成试验后,不能体会和理解这些知识点如何运用到实际项目中;没有实际问题的驱动,学生缺乏对实验的兴趣、积极性和主动性。

因此,针对理论教学知识点和实际应用项目开发需求,以实际应用项目为出发点,将其分解为若干应用模块,每个模块相对独立构成一次实验教学内容,最后将单独的模块集成为完整系统的思路精心设计实验项目,引导和培养学生独立地、逐步地进入实际应用开发的殿堂。

将实践教学环节渗透到学生的整个培养计划的各个阶段,如图3所示。

二、培养学生实际应用项目开发能力的场所

1.创新实验室及专业实践基地的建设与运作

近年来,甘肃政法学院创办了计算机专业创新实验室,为保障CDIO工程教育思想在计算机专业教学中的贯彻实施提供了场所和仪器设备保障。创新实验室中Java项目开发团队在指导教师的带领下,由学生组成若干个开发小组,严格按照对实际应用项目“构思—设计—实现—运作”的思路,结合软件工程的开发流程,承揽和完成了一系列来自于校内或社会的实际项目开发。这部分从事过实际项目开发的学生毕业后,分别就职于全国各大中小城市以及地方的软件开发公司,跟踪调查显示,他们在各自的岗位上业务能力强,实践创新能力突出,得到用人单位的广泛认可。

为了方便交流和学习,建立了Java编程爱好者网站,以师生共建的方式提供大量的可共享的Java技术学习资料,形成师生共同探讨Java技术、互相推介Java最新技术和开发技巧的网络平台;邀请与学校有校企合作关系的Java工程师、已经从事Java相关开发工作的毕业生在其上开辟空间,给在校学习Java的学生提供一线开发的经验和技术支持。

为了调动学生对Java技术的兴趣,组建了Java编程爱好者社团,让学生共同学习、共同实践、共同提高。对于其中表现突出者,让其加入创新实验室参与实际应用项目的开发。形成高年级学生对低年级“传、帮、带”的传统,不断吸收新同学参与其中,保持社团旺盛的生命力。

2.让学生在实际应用项目开发中学习

CDIO工程化教育思想以工程项目从研发到运行的生命周期为载体,让学生以主动的、实践的、课程之间有机联系的方式学习工程。[2]因此,布置给学生的每个阶段的任务,如实验任务、课程设计任务、学年设计任务、毕业设计任务等,都以实际应用项目为背景,以软件工程方法中软件开发生命周期为指导,以提高学生自身应用开发能力、团队协作能力和工程能力为根本,锻炼学生主动学习,勇于实践,善于创新的良好习惯和开发实际软件应用项目的能力。

由主讲Java课程的教师团队牵头,走出学校,积极承接实际应用软件开发项目,组织学生开发团队进行实际软件项目开发。

积极与各软件开发企业保持长期合作机制,给学生创建稳定的Java实习基地,让学生走出去并深入到软件开发企业中进行项目实战的锻炼。

三、师资力量的强化

为了能够真正将CDIO思想贯彻落实在Java教学中,Java教师应同时具备Java软件工程师的能力。但目前由于主客观条件的限制,讲授“Java程序设计”的高校教师中,仍普遍存在着没有经过系统的项目开发培训和没有从事过完整大型项目开发经验积累的现象。

为了有利于“双师型”教师的培养,学校应鼓励教师走出去,从事软件工程师资质认证、项目开发培训和实战,并将这些经历纳入教师绩效考核和评定的条件。

加强校企合作,聘任软件开发企业中资深的Java项目工程师兼任技术顾问,对学生实际应用项目开发提供技术指导和评估。

四、学生学习方式的转变

Java教学的最终目的在于培养学生具备独立分析实际问题并运用Java开发技术创造性解决问题的能力。因此,让学生真正体现学生主体地位,将被动学习和无兴趣学习转变为主动学习和积极学习非常重要。

在Java教学中涉及的每个知识点、知识单元、项目案例都要以问题的形式呈现给学生,让学生意识到需要解决什么问题,让他们先考虑解决办法,再启发式地引导学生学习陌生的新知识和新方法。

引进企业的真实项目案例,采用多个小案例来驱动,先以需求和案例作为切入点,学生才有前进的目标,才会为这个目标奋斗,从而充分发挥学生的学习主动性。

五、改革学生课程考核方式

考核方式由单一的笔试或机试转变为以完成实际课程设计或应用开发项目的方式;采用“学生自评+学生互评+教师评价”等环节对学生的成绩进行综合评价;以“用户评价+专家鉴定”来综合考量实际运用项目的质量。

六、提高学生就业竞争力

通过系统化的基于CDIO思想培养的学生,已经在日常学习过程中潜移默化地掌握了Java实际应用项目开发的流程并积累了一定的项目经验。可将自己平时完成的完整项目保留下来,在就业面试阶段展示给用人单位。这锻炼了学生实际应用项目开发能力,使其快速进入Java软件工程师角色。

七、结语

在“Java程序设计”教学中,深入体现和贯彻CDIO从“做中学”,以实际应用项目开发为背景,以社会对Java人才需求为导向,以培养学生实际应用项目开发的能力为目标的新教学体系和方法,有利于进一步提高教学质量,促进学生实际应用项目开发的综合能力。

参考文献:

[1]cdio百度百科[EB/OL].http://baike.baidu.com/view/2402813.htm.

[2]马晓梅,张剑飞,乔付.CDIO模式下高等工程教育的改革与探索[J].计算机教育,2010,(12):132-133.

[3]唐振明,徐建民,蒋唯游,等.CDIO 工程教育模式在校企合作中的实践[J].计算机教育,2010,(11):42.

[4]李善寿.“CDIO”工程教学模式在实践教学中的实施方法研究[J].重庆科技学院学报(社会科学版),2010,(20):164.

(责任编辑:孙晴)

java工程师个 篇4

看了好多资料,还是对一些基本问题比较头大。在论坛看完这个帖子,脑子里的基本概念有了。什么是Java、Java2、JDK?JDK后面的1.3、1.4.2版本号又是怎么回事? 答:Java是一种通用的,并发的,强类型的,面向对象的编程语言(摘自Java规范第二版)JDK是Sun公司分发的免费Java开发工具,正式名称为J2SDK(Java2 Software Develop Kit)。什么是JRE/J2RE? 答:J2RE是Java2 Runtime Environment,即Java运行环境,有时简称JRE。如果你只需要运行Java程序或Applet,下载并安装它即可。

如果你要自行开发Java软件,请下载JDK。在JDK中附带有J2RE。

注意由于Microsoft对Java的支持不完全,请不要使用IE自带的虚拟机来运行Applet,务必安装一个J2RE或JDK。学习Java用什么工具比较好? 答:作者建议首先使用JDK+文本编辑器,这有助你理解下列几个基础概念:path,classpath,package并熟悉基本命令:javac和java。并且下载和你的JDK版本一致的API帮助。

如果你不确定类或函数的用法,请先查阅API而不是发贴求助。

当你熟悉Java之后,你可以考虑换一个IDE。很多人推荐JCreator,实际上JCreator的功能还 是很弱的。

作者推荐eclipse,下载网址http://。因eclispe是免费的.学习Java有哪些好的参考书? 答:作者首先推荐Thinking in Java,中文名《Java编程思想》,有中文版。该书第一章介绍了很多面向对象的编程思想,作为新手应当认真阅读。

除此以外,O′relly出版社和Wrox出版社的书也不错。作者本人不喜欢大陆作者的书。也许你觉得英文太难,但是网上大多数资料都是英文的。另外,你需要经常查阅API,而那也是英文的。Java和C++哪个更好? 答:这个问题是一个很不恰当的问题。你应该问:Java和C++哪个更适用于我的项目? 如果你不需要跨平台,不需要分布式,要强调程序的运行速度,C++更为适用。反之?你应当考虑Java。什么是J2SE/J2EE/J2ME? 答:J2SE就是一般的Java。

J2ME是针对嵌入式设备的,比如Java手机,它有自己的SDK。而J2EE使用J2SE的SDK。J2EE规范更多的是对J2EE服务器的要求和开发人员的约束。详情见后继《J2EE FAQ》。

二、命令篇 我写了第一个Java程序,应该如何编译/运行? 答:首先请将程序保存为xxx.java文件,然后在dos窗口下使用javac xxx.java命令,你会发现该目录下多了一个xxx.class文件,再使用java xxx命令,你的java程序就开始运行了。我照你说的做了,但是出现什么“′javac′ 不是内部或外部命令,也不是可运行的程序或批处理文件。”。

答:你遇到了path问题。操作系统在一定的范围(path)内搜索javac.exe,但是没能找到。请编辑你的操作系统环境变量,新增一个JAVA_HOME变量,设为你JDK的安装目录,再编辑Path变量,加上一项 %JAVA_HOME%bin。然后关掉并新开一个dos窗口,你就可以使用javac和java命令了。环境变量怎么设置? 答:请向身边会设的人咨询。javac xxx.java顺利通过了,但是java xxx的时候显示什么“NoClassDefFoundError”?br> 答:你遇到了classpath问题。java命令在一定的范围(classpath)内搜索你要用的class文件,但是未能找到。

首先请确认你没有错敲成java xxx.class,其次,检查你的CLASSPATH环境变量,如果你设置了该变量又没有包含.(代表当前目录)的?br> 睿?br> 你就会遇到这个问题。请在你的CLASSPATH环境变量中加入一项。另外参见15。我在java xxx的时候显示“Exception in thread ”main“ java.lang.NoSuchMethodError: main”。答:首先,在你的程序中每个java文件有且只能有一个public类,这个类的类名必须和文件名的大小写完全一样。其次,在你要运行的类中有且只能有一个public static void main(String[] args)方法,这个方法就是你的主程序。package是什么意思?怎么用? 答:为了唯一标识每个类并分组,java使用了package的概念。

每个类都有一个全名,例如String的全名是java.lang.String,其中java.lang是包名,String是短名。

这样,如果你也定义了String,你可以把它放在mypackage中,通过使用全名mypackage.String和java.lang.String来区分这两个类。同时,将逻辑上相关的类放在同一个包中,可以使程序结构更为清楚。你要做的就是在java文件开头加一行“package mypackage;”。

注意包没有嵌套或包含关系,A包和A.B包对java命令来说是并列的两个包。我没有声明任何package会怎么样? 答:你的类被认为放在默认包中。这时全名和短名是一致的。在一个类中怎么使用其他类?

答:如果你使用java.lang包中的类,不用做任何事。

如果你使用其他包中的类,使用import package1.class1;或 import package2.*;这里.*表示引入这个包中的所有类。然后在程序中你可以使用其他类的短名。如果短名有冲突,使用全名来区分。我用了package的时候显示“NoClassDefFoundError”,但是我把所有package去掉的时候能正常运行。

答:将你的java文件按包名存放。

比如你的工作目录是/work,你的类是package1.class1,那么将它存放为/work/package1/class1.java。如果没有声明包,那么直接放在/work下。

在/work下执行javac package1/class1.java,再执行java package1.class1,你会发现一切正常。另外,你可以考虑开始使用IDE。我想把java编译成exe文件,该怎么做? 答:JDK只能将java源文件编译为class文件。

class文件是一种跨平台的字节码,必须依赖平台相关的JRE来运行。Java以此来实现跨平台.有些开发工具可以将java文件编译为exe文件。作者反对这种做法,因为这样就取消了跨平台性。如果你确信你的软件只在Windows平台上运行,你可以考虑使用C++/C#来编程。我在编译的时候遇到什么“deprecated API”,是什么意思? 答:所谓deprecated是指已经?时,但是为了向前兼容起见仍然保留的方法??br> 这些方法可能会在以后取消支持。你应当改用较新的方法。一般在API里面会说明你应当用什么方法来代替之。

三、I/O篇 我怎么给java程序加启动参数,就像dir /p/w那样? 答:还记得public static void main(String[] args)吗?这里的args就是你的启动参数。在运行时你输入java package1.class1-arg1-arg2,args中就会有两个String,一个是arg1,另一个是arg2。我怎么从键盘输入一个int/double/字符串? 答:java的I/O操作比C++要复杂一点。如果要从键盘输入,样例代码如下:BufferedReader cin = new BufferedReader(new InputStreamReader(System.in));String s = cin.readLine();这样你就获得了一个字符串,如果你需要数字的话再加上:int n = Integer.parseInt(s);或者 double d = Double.parseDouble(s);我怎么输出一个int/double/字符串? 答:在程序开始写: PrintWriter cout = new PrintWriter(System.out);需要时写:

cout.print(n);或者cout.println(“hello”)等等。我发现有些书上直接用System.in和System.out输入输出,比你要简单得多。答:java使用unicode,是双字节。而System.in和System.out是单字节的stream。如果你要输入输出双字节文字比如中文,请使用作者的做法。我怎么从文件输入一个int/double/字符串? 答:类似于从键盘输入,只不过换成BufferedReader fin = new BufferedReader(new FileReader(“ myFileName ”));PrintWriter fout = new PrintWriter(new FileWriter(“ myFileName ”));另外如果你还没下载API,请开始下载并阅读java.io包中的内容。我想读写文件的指定位置,该怎么办? 答:你肯定没有认真看API。java.io.RandomAccessFile可以满足你的需要。怎么判断要读的文件已经到了尽头? 答:你肯定没有认真看API。在Reaer的read方法中明确说明返回-1表示流的结尾。

四、关键字篇 java里面怎么定义宏? 答:java不支持宏,因为宏代换不能保证类型安全。

如果你需要定义常量,可以将它定义为某个类的static final成员。参见26和30。java里面没法用const。

答:你可以用final关键字。例如 final int m = 9。被声明为final的变量不能被再次赋值.final也可以用于声明方法或类,被声明为final的方法或类不能被继承。注意const是java的保留字以备扩充。

java里面也不能用goto。

答:甚至在面向过程的语言中你也可以完全不用goto。请检查你的程序流程是否合理。如果你需要从多层循环中迅速跳出,java增强了(和C++相比)break和continue的功能。例如: outer : while(...){ inner : for(...){...break inner;......continue outer;...}

} 和const一样,goto也是java的保留字以备扩充。

java里面能不能重载操作符? 答:不能。String的+号是唯一一个内置的重载操作符。你可以通过定义接口和方法来实现类似功能。

我new了一个对象,但是没法delete掉它。

答:java有自动内存回收机制,即所谓Garbarge Collector。你再也不用担心指针错误了.我想知道为什么main方法必须被声明为public static? 答:声明为public是为了这个方法可以被外部调用,详情见面向对象篇37。static是为了将某个成员变量/方法关联到类(class)而非实例(instance)。

你不需要创建一个对象就可以直接使用这个类的static成员,在A类中调用B类的static成员可以使用B.staticMember的写法。

java工程师个 篇5

第一,谈谈final, finally, finalize的区别。

最常被问到。final修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为final的方法也同样只能使用,不能重载。

Finally在异常处理时提供finally块来执行任何清除操作。如果抛出一个异常,那么相匹配的catch子句就会执行,然后控制就会进入finally块(如果有的话)。

finalize方法名。Java技术允许使用finalize()方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在Object类中定义的,因此所有的类都继承了它。子类覆盖finalize()方法以整理系统资源或者执行其他清理工作。finalize()方法是在垃圾收集器删除对象之前对这个对象调用的。第二,Anonymous Inner Class(匿名内部类)是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?

匿名的内部类是没有名字的内部类。不能extends(继承)其它类,但一个内部类可以作为一个接口,由另一个内部类实现。

第三,Static Nested Class和Inner Class的不同,说得越多越好(面试题有的很笼统)。

Nested Class(一般是C++的说法),Inner Class(一般是JAVA的说法)。Java内部类与C++嵌套类最大的不同就在于是否有指向外部的引用上。

注:静态内部类(Inner Class)意味着

1创建一个static内部类的对象,不需要一个外部类对象

2不能从一个static内部类的一个对象访问一个外部类对象

第四,&和&&的区别。

这个问得很少。&是位运算符。&&是布尔逻辑运算符

第五,HashMap和Hashtable的区别。

常问。都属于Map接口的类,实现了将惟一键映射到特定的值上。

HashMap类没有分类或者排序。它允许一个null键和多个null值。

Hashtable类似于HashMap,但是不允许null键和null值。它也比HashMap慢,因为它是同步的。第六,Collection和Collections的区别。

你千万别说一个是单数一个是复数。

Collections是个java.util下的类,它包含有各种有关集合操作的静态方法。

Collection是个java.util下的接口,它是各种集合结构的父接口。

第七,什么时候用assert。

API级的技术人员有可能会问这个。

断言是一个包含布尔表达式的语句,在执行这个语句时假定该表达式为true。如果表达式计算为false,那么系统会报告一个Assertionerror。它用于调试目的:

assert(a > 0);// throws an Assertionerror if a <= 0

断言可以有两种形式:

assert Expression1;

assert Expression1 : Expression2;

Expression1应该总是产生一个布尔值。

Expression2可以是得出一个值的任意表达式。这个值用于生成显示更多调试信息的String消息。

断言在默认情况下是禁用的。要在编译时启用断言,需要使用source 1.4标记:

javac-source 1.4 Test.java

要在运行时启用断言,可使用-enableassertions或者-ea标记。

要在运行时选择禁用断言,可使用-da或者-disableassertions标记。

要系统类中启用断言,可使用-esa或者-dsa标记。还可以在包的基础上启用或者禁用断言。可以在预计正常情况下不会到达的任何位置上放置断言。断言可以用于验证传递给私有方法的参数。不过,断言不应该用于验证传递给公有方法的参数,因为不管是否启用了断言,公有方法都必须检查其参数。不过,既可以在公有方法中,也可以在非公有方法中利用断言测试后置条件。另外,断言不应该以任何方式改变程序的状态。

第八,GC是什么?为什么要有GC?

基础。GC是垃圾收集器。Java程序员不用担心内存管理,因为垃圾收集器会自动进行管理。要请求垃圾收集,可以调用下面的方法之一:

System.gc()

Runtime.getRuntime().gc()

第九,String s = new String(xyz);创建了几个String Object?

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

第十,Math.round(11.5)等於多少? Math.round(-11.5)等於多少?

Math.round(11.5)返回(long)12,Math.round(-11.5)返回(long)-11;

第十一,short s1 = 1;s1 = s1 + 1;有什么错? short s1 = 1;s1 += 1;有什么错?

short s1 = 1;s1 = s1 + 1;有错,s1是short型,s1+1是int型,不能显式转化为short型。可修改为s1 =(short)(s1 + 1)。short s1 = 1;s1 += 1正确

面试题都是很变态的,要做好受虐的准备。

第十二,sleep()和wait()有什么区别?

搞线程的最爱。sleep()方法是使线程停止一段时间的方法。在sleep时间间隔期满后,线程不一定立即恢复执行。这是因为在那个时刻,其它线程可能正在运行而且没有被调度为放弃执行,除非

(a)“醒来”的线程具有更高的优先级

(b)正在运行的线程因为其它原因而阻塞。

wait()是线程交互时,如果线程对一个同步对象x发出一个wait()调用,该线程会暂停执行,被调对象进入等待状态,直到被唤醒或等待时间到。

第十三,Java有没有goto?

Goto?java中的保留字,现在没有在java中使用。

很十三的问题,如果哪个面试的问到这个问题,我劝你还是别进这家公司。

第十四,数组有没有length()这个方法? String有没有length()这个方法?

数组没有length()这个方法,有length的属性。

String有有length()这个方法。

第十五,Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?

常问。方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写(Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型。

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

Set里的元素是不能重复的,那么用iterator()方法来区分重复与否。equals()是判读两个Set是否

相等。

equals()和==方法决定引用值是否指向同一对象

equals()在类中被覆盖,为的是当两个分离的对象的内容和类型相配的话,返回真值。第十七,给我一个你最常见到的runtime exception。

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 如果你这个答不出来,面试的人会认为你没有实际编程经验。

第十八,error和exception有什么区别?

error表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理这样的情况。

exception表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况。第十九,List, Set, Map是否继承自Collection接口?

List,Set是

Map不是

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

常问。声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建abstract类的实例。然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。Abstract类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类为。取而代之,在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法。

接口(interface)是抽象类的变体。在接口中,所有方法都是抽象的。多继承性可通过实现这样的接口而获得。接口中的所有方法都是抽象的,没有一个有程序体。接口只可以定义static final成员变量。接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。当类实现

特殊接口时,它定义(即将程序体给予)所有这种接口的方法。然后,它可以在实现了该接口的类的任何对象上调用接口的方法。由于有抽象类,它允许使用接口名作为引用变量的类型。通常的动态联编将生效。引用可以转换到接口类型或从接口类型转换,instanceof运算符可以用来决定某对象的类是否实现了接口。

第二十一,abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized?

都不能

第二十二,接口是否可继承接口?抽象类是否可实现(implements)接口?抽象类是否可继承实体类(concrete class)?

接口可以继承接口。抽象类可以实现(implements)接口,抽象类是否可继承实体类,但前提是实体类必须有明确的构造函数。

第二十三,启动一个线程是用run()还是start()?

启动一个线程是调用start()方法,使线程所代表的虚拟处理机处于可运行状态,这意味着它可以由JVM调度并执行。这并不意味着线程就会立即运行。run()方法可以产生必须退出的标志来停止一个线程。

第二十四,构造器Constructor是否可被override?

构造器Constructor不能被继承,因此不能重写Overriding,但可以被重载Overloading。第二十五,是否可以继承String类?

String类是final类故不可以继承

第二十六,当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法?

可以,但是其它线程不可以进入此对象的这个synchronized方法

第二十七,try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?

会执行,在return前执行

第二十八,编程题:用最有效率的方法算出2乘以8等於几?

有C背景的程序员特别喜欢问这种问题。2 << 3

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

不对,有相同的hash code。

第三十,当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?

java工程师简历 篇6

个人信息

姓名:梁盛甡(shen)性别: 男

年龄:23民族: 汉 族

政治面貌: 团员专业: 信息与计算科学

毕业学校: 华南理工大学广州学院学历: 本科

联系电话: ***E_mail: lls2007rush@163.com 求职目标

Java软件工程师

专业技能

 熟悉Core Java编程,有良好的编码习惯。

 熟悉使用Mysql、Oracle数据库。

 Eclipse/MyEclipse 在 Linux、Unix 或 Windows 下进行Java 开发。

 熟悉使用Hibernate、Struts、Spring 流行框架来开发。

 熟悉应用Apache Tomcat进行java web开发。

 熟悉JSP/Servlet、HTML、XHTML、JavaScript、CSS、AJAX、jQuery 等表现层技术。 熟悉Dreamweaver制作HTML。项目经验

1.项目名称:网上图书销售系统(当当网)开发日期:2011/07/16-2011/07/22

开发工具:MyEclipse,Apache Tomcat 6.0,MySQL数据库

项目人数:1人

项目描述:运用MVC思想,并结合Struts2、Hibernate、Spring框架模拟当当网开发一个网上购书系

统。该系统主要完成用户注册登录、图书列表显示、购物车、定单管理等模块,控制层采用Struts2,Dao层采用的是Hibernate,表现层采用JSP与Struts2标签相结合,增强了系统的强壮性和可移植性,最后通过Spring对各个组件之间实现整合。

项目心得:通过对该项目熟悉,J2EE 开发技术,熟练运用到WEB项目开发中,熟悉了Struts2的工作

流程,更深入地理解 DaoFactory,Action,Iterceptors 等的具体编写,更清楚地去了解 MVC 三层架构。

2.项目名称:在线测评系统开发日期:2011/02/14-2011/02/18

项目人数:1人

开发工具:MyEclipse

项目描述:该项目主要使用了C/S结构实现了多人在线测评功能,并使用Swing组件完成界面显示,完

成从配置文件中读取数据进行测评题目分类、选题、答题、计分等功能。

项目心得:该项目让我提高了CoreJava的编程能力以及自己的逻辑思维,了解面向对象的好处,并对

类的封装有了深刻的认识。

工作经历

2010年9月--2010年10月 广州越秀区百众公司

为外商企业提供后勤帮助

2010年7月--2010年9月 广州天河区金碟有限公司

使用K3软件进行表单录入.培训和学习经历

2011年1月--2011年5月 广州达内培训机构培训java软件工程师

2007年9月--2011年7月 华南理工大学广州学院

所获证书及获奖

2011.07 高级软件工程师

2011.07SCJP初级软件工程师证书

2011.06 雅思成绩5.5

2010.05 获取华南理工大学广州学院学年综合奖

2009.05 获取华南理工大学广州学院社会贡献奖

自我评价

java工程师个 篇7

一是实施“素质强警”工程。该院把全面提高干警素质,建设一支过硬的法官队伍,作为加强司法能力建设的基本工程,大力实施“人才强院”战略,不断强化思想政治工作,创新教育方式方法,通过集中培训、自我学习和举办法律讲座等多种形式,提高干警的政治业务素质,逐步建立并完善以提高素质为核心的人才吸收、使用和管理机制,为公正司法提供人才保障。

二是实施“精品案件”工程。。牢牢抓住提高法官公正、高效地審判和执行案件这个根本,大力实施“精品案件”工程,要求办案人员处理每一起案件都要讲公正、讲效率、讲效果,通过审判工作及时有效地化解矛盾、稳定社会,不断提高“定分止争”的能力。在调解上下功夫,最大限度地降低上诉率、改判发回率和上访申诉率,调解撤诉率达到78.3%。

三是实施“科学管理”工程。结合正在开展的“司法管理年”活动,不断更新审判管理理念,健全管理机制,理顺关系、突出重点,以审判执行工作为中心,以流程管理为主线,以案件质量管理为重点,以法官审判业绩管理为关键,以内部监督为保障,通过建立和完善科学的管理方法,不断探索审判管理的工作的新路子,促进了审判质量效率和法官素质的提高,据统计,今年上半年我院共受理各类案件4719件,新收同比上升52.7%,审(执)结3883件,审结率82.3%,案件审结率同比增长7个百分点,人均结案41件,审判效率明显提高,并且已审结的案件经过案件质量评查小组认真评查,优秀率达97%,无一错案发生。

java软件工程师前途 篇8

java软件工程师前途,3G的来临,目前我国对软件人才的需要已达到了百万,并且每年在以30%的速率在增加。合格软件人才的需求供给不足。其中以java软件开发人才最为缺少,而且java软件工程师,薪资也相对较高具有3~5年开发经验的工程师,拥有年薪10万元是很正常的一个薪酬水平。80%学员毕业后年薪都超过了5万元。

虽然java人才的薪资很高,但是对该类技术人员需求的企业却难以招到相关的java人才,曾经在招聘市场有企业出月薪8000都难以招到java软件工程师,看到这种情况,更多的人选择了java培训增加知识,成为符合企业的用人标准。

3G梦工场作为湖北java软件工程师培训基地,打造全国最专业的java软件工程师实现领导品牌。依托多年的职业教育经验和深厚的技术底蕴,并由来自全国有名的IT技术项目经理作为主将教师,创造性的提出“项目实训”的全新的教育模式,提供给大学生真实的企业项目开发经历和必备的职业素养,使学生成为企业青睐、市场抢手的“实战型”软件人才。

上一篇:个人未来五年规划下一篇:离职解除合同协议书