Java学习从入门到精通
Java学习从入门到精通[原创]
Java Learning Path (一)、工具篇
一、 JDK (Java Development Kit)
JDK是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具和Java基础的类库(rt.jar)。不论什么Java应用服务器实质都是内置了某个版本的JDK。因此掌握JDK是学好Java的第一步。最主流的JDK是Sun公司发布的JDK,除了Sun之外,还有很多公司和组织都开发了自己的JDK,例如IBM公司开发的JDK,BEA公司的Jrocket,还有GNU组织开发的JDK等等。其中IBM的JDK包含的JVM(Java Virtual Machine)运行效率要比Sun JDK包含的JVM高出许多。而专门运行在x86平台的Jrocket在服务端运行效率也要比Sun JDK好很多。但不管怎么说,我们还是需要先把Sun JDK掌握好。
1、 JDK的下载和安装
JDK又叫做J2SE(Java2 SDK Standard Edition),可以从Sun的Java网站上下载到,https://www.360docs.net/doc/f54956424.html,/j2se/downloads.html ,JDK当前最新的版本是J2SDK1.4.2,建议下载该版本的JDK,下载页面在这里:https://www.360docs.net/doc/f54956424.html,/j2se/1.4.2/download.html。
下载好的JDK是一个可执行安装程序,默认安装完毕后会在C:\Program Files\Java\目录下安装一套JRE(供浏览器来使用),在C:\j2sdk1.4.2下安装一套JDK(也包括一套JRE)。然后我们需要在环境变量PATH的最前面增加java的路径C:\j2sdk1.4.2\bin。这样JDK就安装好了。
2、 JDK的命令工具
JDK的最重要命令行工具:
java: 启动JVM执行class
javac: Java编译器
jar: Java打包工具
javadoc: Java文档生成器
这些命令行必须要非常非常熟悉,对于每个参数都要很精通才行。对于这些命令的学习,JDK Documentation上有详细的文档。
二、 JDK Documentation
Documentation在JDK的下载页面也有下载连接,建议同时下载Documentation。Documentation是最最重要的编程手册,涵盖了整个Java所有方面的内容的描述。可以这样说,学习Java编程,大部分时间都是花在看这个Documentation上面的。我是随身携带的,写Java代码的时候,随时查看,须臾不离手。
三、 应用服务器(App Server)
App Server是运行Java企业组件的平台,构成了应用软件的主要运行环境。当前主流的App Server是BEA公司的Weblogic Server和IBM公司的Websphere以及免费的Jboss,选择其中一个进行学习就可以了,个人推荐Weblogic,因为它的体系结构更加干净,开发和部署更加
方便,是Java企业软件开发人员首选的开发平台。下面简要介绍几种常用的App Server:
1、 Tomcat
Tomcat严格意义上并不是一个真正的App Server,它只是一个可以支持运行Serlvet/JSP的Web容器,不过Tomcat也扩展了一些App Server的功能,如JNDI,数据库连接池,用户事务处理等等。Tomcat被非常广泛的应用在中小规模的Java Web应用中,因此本文做一点下载、安装和配置Tomcat的介绍:
Tomcat是Apache组织下Jakarta项目下的一个子项目,它的主网站是:https://www.360docs.net/doc/f54956424.html,/tomcat/ ,Tomcat最新版本是Tomcat4.1.27,软件下载的连接是:https://www.360docs.net/doc/f54956424.html,/dist/jakarta/tomcat‐4/binaries/ 。
下载Tomcat既可以直接下载zip包,也可以下载exe安装包(个人建议zip更干净些),不管哪种情况,下载完毕安装好以后(zip直接解压缩就可以了)。需要设置两个环境变量:
JAVA_HOME=C:\j2sdk1.4.2
CATALINA_HOME=D:\tomcat4 (你的Tomcat安装目录)
这样就安装好了,启动Tomcat运行CATALINA_HOME\bin\startup.bat,关闭Tomcat运行shutdown.bat脚本。Tomcat启动以后,默认使用8080端口,因此可以用浏览器访问http://localhost:8080来测试Tomcat是否正常启动。
Tomcat提供了两个Web界面的管理工具,URL分别是:
http://localhost:8080/admin/index.jsp
http://localhost:8080/manager/html
在启用这两个管理工具之前,先需要手工配置一下管理员用户和口令。用一个文本工具打开CATALINA_HOME\conf\tomcat‐users.xml这个文件,加入如下几行:
这样用户“robbin”就具备了超级管理员权限。重新启动Tomcat以后,你就可以使用该用户来登陆如上的两个管理工具,通过Web方式进行Tomcat的配置和管理了。
2、 BEA Weblogic
Weblogic可以到BEA的网站上免费注册之后下载到最新的Weblogic8.1企业版,License可以免费使用1年时间,其实这已经完全足够了。Weblogic的下载连接:https://www.360docs.net/doc/f54956424.html,/index.js ... tp://https://www.360docs.net/doc/f54956424.html,/ 。
3、 IBM Webshpere
Websphere同样可以下载到免费的试用版本,到IBM的developerWorks网站可以看到Websphere试用产品的下载和相关的Websphere的资料,developerWorks中文网站的连接是:http://www‐https://www.360docs.net/doc/f54956424.html,/developerWorks/cn/wsdd/ ,Websphere的下载连接:
https://www.360docs.net/doc/f54956424.html,/wsdd/downloads/WASsupport.html 。
4、 Jboss
Jboss是免费开源的App Server,可以免费的从Jboss网站下载:https://www.360docs.net/doc/f54956424.html,/index.html?... https://www.360docs.net/doc/f54956424.html,/idea.html
四、 Java应用的运行环境
Java的应用可以简单分为以下几个方面:
1、 Java的桌面应用
桌面应用一般仅仅需要JRE的支持就足够了。
2、 Java Web应用
Java的Web应用至少需要安装JDK和一个web容器(例如Tomcat),以及一个多用户数据库,Web应用至少分为三层:
Browser层:浏览器显示用户页面
Web层:运行Servlet/JSP
DB层:后端数据库,向Java程序提供数据访问服务
3、 Java企业级应用
企业级应用比较复杂,可以扩展到n层,最简单情况会分为4层:
Browser层:浏览器显示用户页面
Client层:Java客户端图形程序(或者嵌入式设备的程序)直接和Web层或者EJB层交互 Web层:运行Servlet/JSP
EJB层:运行EJB,完成业务逻辑运算
DB层:后端数据库,向Java程序提供数据访问服务
4、 Java嵌入式应用
Java嵌入式应用是一个方兴未艾的领域,从事嵌入式开发,需要从Sun下载J2ME开发包,J2ME包含了嵌入式设备专用虚拟机KVM,和普通的JDK中包含的JVM有所不同。另外还需要到特定的嵌入式厂商那里下载模拟器。
Java Learning Path(二)、书籍篇
学习一门新的知识,不可能指望只看一本,或者两本书就能够完全掌握。需要有一个循序渐进的阅读过程。我推荐Oreilly出版的Java系列书籍。
在这里我只想补充一点看法,很多人学习Java是从《Thinking in Java》这本书入手的,但是我认为这本书是不适合初学者的。我认为正确的使用这本书的方法应该是作为辅助的读物。《Thinking in Java》并不是在完整的介绍Java的整个体系,而是一种跳跃式的写作方法,是一种类似tips的方法来对Java很多知识点进行了深入的分析和解释。
对于初学者来说,最好是找一本Java入门的书籍,但是比较完整的循序的介绍Java的语法,面向对象的特性,核心类库等等,在看这本书的同时,可以同步来看《Thinking in Java》,来加深对Java的理解和原理的运用,同时又可以完整的了解Java的整个体系。
对于Java的入门书籍,蔡学镛推荐的是Oreilly的《Exploring Java, 2nd Edition》 或者《Java in a Nutshell,2nd Edition(针对C++背景)》,我并没有看过这两本书。其实我觉得电子工业出版社的《Java 2编程详解》或者《Java 2从入门到精通》就很不错。
在所有的Java书籍当中,其实最最有用的,并不是O'reilly的 Java Serials,真正最最有用处是JDK的Documentation!几乎你想获得的所有的知识在Documentation里面全部都有,其中最主要的部分当然是Java基础类库的API文档,是按照package来组织的,对于每一个class 都有详细的解释,它的继承关系,是否实现了某个接口,通常用在哪些场合,还可以查到它所有的public的属性和方法,每个属性的解释,意义,每个方法的用途,调用的参数,参数的意义,返回值的类型,以及方法可能抛出的异常等等。可以这样来说,所有关于Java编程方面的书籍其实都不过是在用比较通俗易懂的语言,和良好的组织方式来介绍Documentation里面的某个package里面包含的一些类的用法而已。所以万变不离其宗,如果你有足够的能力来直接通过Documentation来学习Java的类库,那么基本上就不需要看其他的书籍了。除此之外,Documentation也是编程必备的手册,我的桌面上有三个Documentation的快捷方式,分别是J2SDK1.4.1的Documentation,Servlet2.3的Documentation 和J2SDKEE1.3.1的Documentation。有了这个三个Documentation,什么其他的书籍都不需要了。
对于Java Web 编程来说,最核心的是要熟悉和掌握HTTP协议,这个就和Java无关了,在熟悉HTTP协议之后,就需要熟悉Java的实现HTTP协议的类库,也就是Servlet API,所以最重要的东西就是Servlet API。当然对于初学者而言,直接通过Servlet API来学习Web编程有很大的难度,我推荐O'reilly的《Java Server Pages 》这本书来学习Web 编程。
EJB的书籍当中,《Enterprise JavaBeans, 2nd Edition》是一本很不错的书, EJB的学习门槛是比较高,入门很难,但是这本书完全降低了学习的难度,特别重要的一点是,EJB的学习需要结合一种App Server的具体实现,所以在学习EJB的同时,必须同步的学习某种App Server,而这本书相关的出了三本书,分别是Weblogic6.1,Websphere4.0和JBoss3.0上面部署书中例子的实做。真是既有理论,又有实践。在学习EJB的同时,可以边看边做,EJB的学习会变得很轻松。
但是这本书也有一个问题,就是版本比较旧,主要讲EJB1.1规范和部分EJB2.0的规范。而Ed Roman写的《Mastering EJB 2.0》这本书完全是根据EJB2.0规范写的,深入浅出,覆盖了EJB编程的各个方面,并且还有很多编程经验tips,也是学习EJB非常推荐的书籍之一。
如果是结合Weblogic来学习J2EE的话,《J2EE应用与BEA Weblogic Server》绝对是首选读物,虽然是讲述的Weblogic6.0,仍然值得购买,这本书是BEA官方推荐的教材,作者也是BEA 公司的工程师。现在中文版已经随处可见了。这本书结合Weblogic介绍了J2EE各个方面的技术在Weblogic平台上的开发和部署,实践指导意义非常强。
在掌握了Java平台基础知识和J2EE方面的知识以后,更进一步的是学习如何运用OO的方法进行软件的设计,那么就一定要学习“设计模式”。Sun公司出版了一本《J2EE核心模式》,是每个开发Java企业平台软件的架构师必备的书籍。这本书全面的介绍了J2EE体系架构的各种设计模式,是设计师的必读书籍。
Java Learning Path(三)过程篇
每个人的学习方法是不同的,一个人的方法不见得适合另一个人,我只能是谈自己的学习方法。因为我学习Java是完全自学的,从来没有问过别人,所以学习的过程基本上完全是自己摸索出来的。我也不知道这种方法是否是比较好的方法,只能给大家提供一点参考了。
其实JDK的学习没有那么简单,学习Java的第一步是安装好JDK,写一个Hello World,
关于JDK有两个问题是很容易一直困扰Java程序员的地方:一个是CLASSPATH的问题,其实从原理上来说,是要搞清楚JRE的ClassLoader是如何加载Class的;另一个问题是package 和import问题,如何来寻找类的路径问题。把这两个问题摸索清楚了,就扫除了学习Java 和使用JDK的最大障碍。推荐看一下王森的《Java深度历险》,对这两个问题进行了深入的探讨。
第二步是学习Java的语法。Java的语法是类C++的,基本上主流的编程语言不是类C,就是类C++的,没有什么新东西,所以语法的学习,大概就是半天的时间足够了。唯一需要注意的是有几个不容易搞清楚的关键字的用法,public,protected,private,static,什么时候用,为什么要用,怎么用,这可能需要有人来指点一下,我当初是完全自己琢磨出来的,花了很久的时间。不过后来我看到《Thinking in Java》这本书上面是讲了这些概念的。
第三步是学习Java的面向对象的编程语言的特性的地方。比如继承,构造器,抽象类,接口,方法的多态,重载,覆盖,Java的异常处理机制。对于一个没有面向对象语言背景的人来说,我觉得这个过程需要花很长很长时间,因为学习Java之前没有C++的经验,只有C 的经验,我是大概花了一个月左右吧,才彻底把这些概念都搞清楚,把书上面的例子反复的揣摩,修改,尝试,把那几章内容反复的看过来,看过去,看了不下5遍,才彻底领悟了。不过我想如果有C++经验的话,应该一两天时间足够了。那么在这个过程中,可以多看看《Thinking in Java》这本书,对面向对象的讲解非常透彻。可惜的是我学习的时候,并没有看到这本书,所以自己花了大量的时间,通过自己的尝试和揣摩来学会的。
第四步就是开始熟悉Java的类库。Java的基础类库其实就是JDK安装目录下面jre\lib\rt.jar 这个包。学习基础类库就是学习rt.jar。基础类库里面的类非常非常多。据说有3000多个,我没有统计过。但是真正对于我们来说最核心的只有4个,分别是
https://www.360docs.net/doc/f54956424.html,ng.*;
java.io.*;
java.util.*;
java.sql.*;
这四个包的学习,每个包的学习都可以写成一本厚厚的教材,而O'reilly也确实是这样做的。我觉得如果时间比较紧,是不可能通过读四本书来学习。我觉得比较好的学习方法是这样的: 首先要通读整个package的框架,了解整个package的class,interface,exception的构成,
最好是能够找到介绍整个包框架的文章。这些专门介绍包的书籍的前几章应该就是这些总体的框架内容介绍。
对包整体框架的把握并不是要熟悉每个类的用法,记住它有哪些属性,方法。想记也记不住的。而是要知道包有哪些方面的类构成的,这些类的用途是什么,最核心的几个类分别是完成什么功能的。我在给人培训的时候一般是一次课讲一个包,所以不可能详细的介绍每个类的用法,但是我反复强调,我给你们讲这些包的不是要告诉你们类的方法是怎么调用的,也不要求你们记住类的方法调用,而是要你们了解,Java给我们提供了哪些类,每个类是用在什么场合,当我遇到问题的时候,我知道哪个类,或者哪几个类的组合可以解决我的问题,That'all!,当我们具体写程序的时候,只要你知道该用哪个类来完成你的工作就足够了。编码的时候,具体的方法调用,是边写代码,边查Documentation,所有的东西都在Documentation里面,不要求你一定记住,实际你也记不住3000多个类的总共将近10万个方法调用。所以对每个包的总体框架的把握就变得极为重要。
第五步,通过上面的学习,如果学的比较扎实的话,就打好了Java的基础了,剩下要做的工作是扫清Documentation里面除了上面4个包之外的其他一些比较有用处的类。相信进展到这一步,Java的自学能力已经被培养出来了,可以到了直接学习Documentation的水平了。除了要做GUI编程之外,JDK里面其他会有用处的包是这些:
java.text.*;
https://www.360docs.net/doc/f54956424.html,.*;
javax.naming.*;
这些包里面真正用的比较多的类其实很少,只有几个,所以不需要花很多时间。
第六步,Java Web 编程
Web编程的核心是HTTP协议,HTTP协议和Java无关,如果不熟悉HTTP协议的话,虽然也可以学好Servlet/JSP编程,但是达不到举一反三,一通百通的境界。所以HTTP协议的学习是必备的。如果熟悉了HTTP协议的话,又有了Java编程的良好的基础,学习Servlet/JSP简直易如反掌,我学习Servlet/JSP就用了不到一周的时间,然后就开始用JSP来做项目了。
在Servlet/JSP的学习中,重头仍然是Servlet Documentation。Servlet API最常用的类很少,花比较少的时间就可以掌握了。把这些类都看一遍,多写几个例子试试。Servlet/JSP编程本质就是在反复调用这些类来通过HTTP协议在Web Server和Brower之间交谈。另外对JSP,还需要熟悉几个常用JSP的标记,具体的写法记不住的话,临时查就是了。
此外Java Web编程学习的重点要放在Web Application的设计模式上,如何进行业务逻辑的分析,并且进行合理的设计,按照MVC设计模式的要求,运用Servlet和JSP分别完成不同的逻辑层,掌握如何在Servlet和JSP之间进行流程的控制和数据的共享,以及Web Application 应该如何配置和部署。
第七步,J2EE编程
以上的学习过程如果是比较顺利的话,进行到这一步,难度又陡然提高。因为上面的知识内容都是只涉及一个方面,而像EJB,JMS,JTA等核心的J2EE规范往往是几种Java技术的综合运用的结晶,所以掌握起来难度比较大。
首先一定要学习好JNDI,JNDI是App Server定位服务器资源(EJB组件,Datasouce,JMS)查找方法,如果对JNDI不熟悉的话,EJB,JMS这些东西几乎学不下去。JNDI其实就是javax.naming.*这个包,运用起来很简单。难点在于服务器资源文件的配置。对于服务器资源文件的配置,就需要看看专门的文档规范了,比如web.xml的写法,ejb‐jar.xml的写法等等。针对每种不同的App Server,还有自己的服务资源配置文件,也是需要熟悉的。
然后可以学习JTA,主要是要理解JTA对于事务的控制的方法,以及该在什么场合使用JTA。这里可以简单的举个例子,我们知道一般情况可以对于一个数据库连接进行事务控制(conn.setAutoCommit(false),....,https://www.360docs.net/doc/f54956424.html,mit()),做为一个原子操作,但是假设我的业务需求是要把对两个不同数据库的操作做为一个原子操作,你能做的到吗?这时候只能用JTA了。假设操作过程是先往A数据库插一条记录,然后删除B数据库另一个记录,我们自己写代码是控制不了把整个操作做为一个原子操作的。用JTA的话,由App Server来完成控制。
在学习EJB之前要学习对象序列化和RMI,RMI是EJB的基础。接着学习JMS和EJB,对于EJB来说,最关键是要理解EJB是如何通过RMI来实现对远端对象的调用的,以及在什么情况下要用到EJB。
在学习完EJB,JMS这些东西之后,你可能会意识到要急不可待学习两个领域的知识,一个是UML,另一个是Design Pattern。Java企业软件的设计非常重视框架(Framework)的设计,一个好的软件框架是软件开发成功的必要条件。在这个时候,应该开始把学习的重点放在设计模式和框架的学习上,通过学习和实际的编程经验来掌握EJB的设计模式和J2EE的核心模式。
J2EE规范里面,除了EJB,JMS,JTA,Servlet/JSP,JDBC之外还有很多很多的企业技术,这里不一一进行介绍了。
另外还有一个最新领域Web Services。Web Services也完全没有任何新东西,它像是一种黏合剂,可以把不同的服务统一起来提供一个统一的调用接口,作为使用者来说,我只要获得服务提供者给我的WSDL(对服务的描述),就够了,我完全不知道服务器提供者提供的服务究竟是EJB组件,还是.Net组件,还是什么CORBA组件,还是其他的什么实现,我也不需要知道。Web Services最伟大的地方就在于通过统一的服务提供方式和调用方式,实现了整个Internet服务的共享,是一个非常令人激动的技术领域。Web Services好像目前还没有什么很好的书籍,但是可以通过在网络上面查资料的方式来学习。
Java Learning Path(四) 方法篇
Java作为一门编程语言,最好的学习方法就是写代码。当你学习一个类以后,你就可以自己写个简单的例子程序来运行一下,看看有什么结果,然后再多调用几个类的方法,看看运行结果,这样非常直观的把类给学会了,而且记忆非常深刻。然后不应该满足把代码调通,你应该想想看如果我不这样写,换个方式,再试试行不行。记得哪个高人说过学习编程就是个破坏的过程,把书上的例子,自己学习Documentation编写的例子在运行通过以后,不断的尝试着用不同的方法实现,不断的尝试破坏代码的结构,看看它会有什么结果。通过这样的方式,你会很彻底的很精通的掌握Java。
举个例子,我们都编过Hello World
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World";
}
}
很多初学者不是很理解为什么main方法一定要这样来定义public static void main(String[] args),能不能不这样写?包括我刚学习Java的时候也有这样的疑问。想知道答案吗?很简单,你把main改个名字运行一下,看看报什么错误,然后根据出错信息进行分析;把main 的public取掉,在试试看,报什么错误;static去掉还能不能运行;不知道main方法是否一定要传一个String[]数组的,把String[]改掉,改成int[],或者String试试看;不知道是否必须写args参数名称的,也可以把args改成别的名字,看看运行结果如何。
我当初学习Java的时候就是这样做的,把Hello World程序反复改了七八次,不断运行,分析运行结果,最后就彻底明白为什么了main方法是这样定义的了。
此外,我对于staic,public,private,Exception,try{ }catch {}finally{}等等等等一开始都不是很懂,都是把参考书上面的例子运行成功,然后就开始破坏它,不断的根据自己心里面的疑问来重新改写程序,看看能不能运行,运行出来是个什么样子,是否可以得到预期的结果。这样虽然比较费时间,不过一个例子程序这样反复破坏几次之后。我就对这个相关的知识彻底学通了。有时候甚至故意写一些错误的代码来运行,看看能否得到预期的运行错误。这样对于编程的掌握是及其深刻的。
其中特别值得一提的是JDK有一个非常棒的调试功能,‐verbose
java –verbose
javac –verbose 以及其它很多JDK工具都有这个选项
‐verbose 可以显示在命令执行的过程中,JVM都依次加载哪里Class,通过这些宝贵的调试信息,可以帮助我们分析出JVM在执行的过程中都干了些什么。
另外,自己在学习过程中,写的很多的这种破坏例程,应该有意识的分门别类的保存下来,在工作中积累的典型例程也应该定期整理,日积月累,自己就有了一个代码库了。遇到类似的问题,到代码库里面 Copy & Paste ,Search & Replace,就好了,极大提高了开发速度。最理想的情况是把一些通用的例程自己再抽象一层,形成一个通用的类库,封装好。那么可复用性就更强了。
所以我觉得其实不是特别需要例程的,自己写的破坏例程就是最好的例子,如果你实在对自己写的代码不放心的话,我强烈推荐你看看JDK基础类库的Java源代码。在JDK安装目录下面会有一个src.zip,解开来就可以完整的看到整个JDK基础类库,也就是rt.jar的Java源代码,你可以参考一下Sun是怎么写Java程序的,规范是什么样子的。我自己在学习Java 的类库的时候,当有些地方理解的不是很清楚的时候,或者想更加清晰的理解运作的细节的时候,往往会打开相应的类的源代码,通过看源代码,所有的问题都会一扫而空。
Java Learning Path(五)资源篇
1、 https://www.360docs.net/doc/f54956424.html,/ (英文)
Sun的Java网站,是一个应该经常去看的地方。不用多说。
2、http://www‐https://www.360docs.net/doc/f54956424.html,/developerWorks/cn/
IBM的developerWorks网站,英语好的直接去英文主站点看。这里不但是一个极好的面向对象的分析设计网站,也是Web Services,Java,Linux极好的网站。强烈推荐!!!
3、https://www.360docs.net/doc/f54956424.html,/ (英文)
关于Java很多新技术的讨论和新闻。想多了解Java的方方面面的应用,这里比较好。
4、https://www.360docs.net/doc/f54956424.html,/index.jsp
BEA的开发者园地,BEA作为最重要的App Server厂商,有很多独到的技术,在Weblogic 上做开发的朋友不容错过。
5、https://www.360docs.net/doc/f54956424.html,/
灰狐动力网站,一个专业的中间件网站,虽然不是专业的Java网站,但是在J2EE企业应用技术方面有深厚的造诣。
6、https://www.360docs.net/doc/f54956424.html,/home/ (英文)
TheServerSide是一个著名的专门面向Java Server端应用的网站。
7、https://www.360docs.net/doc/f54956424.html,/
Java研究组织,有很多优秀的Java方面的文章和教程,特别是在JDO方面的文章比较丰富。
8、https://www.360docs.net/doc/f54956424.html,/
JSP技术网站,有相当多的Java方面的文章和资源。
9、https://www.360docs.net/doc/f54956424.html,/
Jdon论坛,是一个个人性质的中文J2EE专业技术论坛,在众多的Java的中文论坛中,Jdon 一个是技术含量非常高,帖子质量非常好的论坛。
10、https://www.360docs.net/doc/f54956424.html,/
SourgeForge是一个开放源代码软件的大本营,其中也有非常非常丰富的Java的开放源代码的著名的软件。
__________________
Java视线
从零开始学VC系列教程之四并口控制与类的使用
从零开始学VC系列教程之四.并口控制与类的使用 学习目标:掌握VC下并口程序的方法及类的使用. 课程详解: 参照第一章新建一个基于对话框的Vc工程,名称定义为Eg04. 图01 (原文件名:01.JPG) 类型选基于对话框. 在本例中,我们要用到一些资源,现列出如下 WinIo.sys WinIo.dll 这是一个动态库,与WinIo.sys完成同并口的连接. WinIo.lib 这是为静态调用提供的引入库文件.虽然引入库文件和静态库文件都是以Lib为扩展名的,但实际上有本质的区别. WinIo.h 这是IO操作的头文件. ParallelPort.cpp 这是一个并口操作类,用于同WinIo接口,并定义了相关的操作函数.虽然这个类用于同WinIo的操作接口,但这个类并不是从WinIO派生的,只是一个独立的自定义类.至于类的自定义,以前我们也提到过. ParallelPort.h 这是并口类的头文件. 这几个文件是可以从网上下载到的,并不是我做的,所以这个动态库大家就不用问我要源码了,因为我也没有. 首先,把WinIo.lib WinIo.h ParallelPort.cpp ParallelPort.h拷贝到工程目录中,后面马上就要用到.再把WinIo.Dll WinIo.sys 拷贝到工程目录的Debug目录中,以后工程发布后,这两个文件要跟随工程一起. 下面添加引入库到系统中,点击[工程]->[设置]在弹出的对话框中选择[连接]标签,然后在[对象/库模块]中加入WinIo.lib完成后如下图.
图02 (原文件名:02.JPG) 然后加入并口操作类的头文件.一般来说,网上可以下载到的源码都是以类的形式给出的,VC的好处也在于可以把一个操作封装成类,以便在不同的工程中调用.如图,双击类管理器中的Ceg04Dlg在弹出的文件中加入#include "ParallelPort.h" //添加并口类头文件 图03 (原文件名:03.JPG) 同时,还要定义一个类变量,用于并口类的操作. 在刚打开的类定义文件中找到CEg04Dlg类,并加入一个类变量m_Port,完成后如下图所示
java开发工程师个人简历
个人介绍 姓名:性别: 户口所在地:年龄: 毕业院校:专业: 学历:联系电话: 邮箱: 求职意向 Java软件研发 英语水平四级 专业技能 ◆熟练的运用java开发环境和项目构建 ◆熟练掌握java程序设计语言,有牢固的J2SE基础,能够熟练使用JDBC、Servlet、JSP 技术。熟悉C/S,B/S软件架构模式 ◆熟练应用JSP/Servlet/JavaBean的MVC模式开发项目 ◆会基本的EJB技术。熟练使用MyEclipse开发环境 ◆熟悉数据库 SQL Server、Oracle,熟练掌握标准SQL语言 ◆掌握关系数据库的原理。熟练使用Oracle、SQL Server进行软件系统开发。熟练使用 Tomcat服务器。 ◆具备一般的英语读写能力 ◆初步了解Struts、Hibernate、Spring应用 项目经验 一、基于.NET的聊天系统 描述:采用的是传统的C/S模式,基于.NET的COM+组件和微软的自带的消息队列(MSMQ),可以很方便的存贮和获取队列中的消息,并且采用管道通信,可以不 关心其中的通信原理;该系统的功能比较简单,能够实现局域网通信 开发技术:https://www.360docs.net/doc/f54956424.html, + COM+组件 开发工具:MS Visual Studio 数据库:SQL Server 角色:组长(单人开发) 负责模块:界面、数据库建立和管理、后台的编写等等 时间:一周 二、基于Java的聊天系统 描述:本系统采用的任然是基于传统的C/S模式开发,前台用的是java.swing包做的界面,后台的编程采用了一些工厂模式,接口编程,给程序的扩展带来了很大的方便,数
据库则是利用的文本文件保存相关的信息,采用传统的sql从文本文件中获取自己 要的信息,数据库能实现查询、添加、删除等功能。通信则是采用最底层的socket 套接字编程;实现的主要功能有:闪屏,截图,托盘显示来信消息,多人会话等开发技术: socket套接字+面向接口编程+工厂模式 开发工具: MyEclipse8.0 数据库:自己写的文本数据库 角色:组长(单人开发) 负责模块:页面,数据库的编写,以及所有业务逻辑的编写 时间:一周 三、连连看小程序 描述:依然是传统的C/S模式开发,该程序有很多细节的地方考虑比较周到,例如只在有图片的地方产生label、图片遍历填充算法、图片连接的算法等,这在一定程度上减 少了该程序的内存开销,同样采用了工厂模式,可以在不改变源程序代码的同时, 增加新的关卡 开发技术:J2SE 开发工具: NetBeans 角色:组长(单人开发) 时间:三天 四、库存管理系统 描述:本系统采用了b/s模式开发,其中用到了jsp、servlet、JavaBean、jstl标签库、el表达式等技术,本人负责入库单和出库单管理模块,其中包含的功能大致有根据 进货单产生入库单,根据订货单产生出库单,以及直接导入入库单等,采用了mvc框 架,和单例模式,工厂模式开发 开发技术:J2EE、servlet、jsp、JavaBean、el表达式、jndi等等 开发工具: Myeclipse 角色:组员 时间:一周 自我评价◆吃苦耐劳,有强烈的敬业精神和团队协作精神,能够承受一定的压力,能迅速的适应各环境,并融合其中同时对编程具有浓厚的兴趣。 ◆有积极进取的工作精神和实际动手能力,对新知识、新技术有着强烈的求知欲与良好的 接受能力。
Java软件开发工程师笔试题(答案)
Java工程师笔试题 一、填空题(本大题10小题,每空1分,共20分)。 1.Java语言的三大特性即是: 继承、封装、多态。 2.在Java中,char 型采用____unicode_______编码方案,这样,无论是中文字符还是英文字符,都是占用__2___个字节的内存空间。 3. 形式参数指的是方法被__定义____ 时的参数行,实际参数是方法被__调用__ _ 时所传递进去的变量或值。 4.JSP内置对象中,application对象是代表应用程序上下文,它允许JSP页面与包括在同一应用程序中的任何Web组件共享信息,而session 对象则是每个客户专用的。 5.如果想把一个对象写入一个流,那么这个类就必须实现Seralizable 接口。 6.程序中实现多线程的方法有两种:继承Thread类和实现___Runable _ 接口。 7.多线程中,可以通过调用相应的setPriority() 方法来修改一个线程的相对优先级。 8.面向对象编程的五大设计原则,分别是单一职责、开放封闭、 里氏替换、依赖倒置、接口分离 9.通过Ajax,客户端获取的数据主要有两种类型:文本型和xml 10.Socket通常也称为套接字,用于描述__ ip 和_ _接口 二、选择题(本大题20 小题,每小题2分.共40分)。 1.在JA V A中,如果父类中某些方法不包含任何逻辑,并且需要由子类重写.应该使用( )关键字来声明父类的这些方法: A) final B) static C) abstract D) void 2.在JA V A中,已定义两个接口B和C,要定义一个实现这两个接口的类,以下语句正确的是()。 A) interface A extend B,C B) interface A implements B,C C) class A implements B,C D) class A implements B, implements C
从零开始学电脑,一步一步到高手(硬件篇和软件篇)
硬件篇: 电脑硬件的组成: (菜鸟篇) CPU:目前常见的CPU主要是由2个厂家生产,一个是AMD公司的,高端产品是 速龙系列,低端是闪龙系列,另外就是INTER公司,高端产品是奔4系列,低端是赛扬系列.这两年开始流行的双核CPU在2个公司的高端产品中都有相应的型号 . CPU的知识比较多,具体的可以再网上查询,这里就不多说了.提醒一句,CPU是造不了假的,只有外盒,风扇等附加品存在假货. 主板: 目前的主板的主芯片都是国外制造的,芯片厂家主要有NVIDIA,ATI,INTER,AMD,VIA,SIS等等,各大主板厂家自己研发PCB板来进行主板的设计,分别来满足2个CPU厂家的CPU需要. 显卡:目前的显卡分为独立和集成显卡,生产独立的显卡芯片主要有2个厂家垄断,NVIDIA 和ATI 公司,生产集成显卡芯片有INTER,NVIDIA,ATI,SIS等等.各大显卡厂家利用显卡芯片提供的显卡GPU来进行显卡的设计和组装. 内存:目前所有内存的颗粒都是国外制造的,主要是韩国制造.国内不过是生产PCB板和封装 的过程.内存主要有3种,一种是SD内存(已淘汰),一种是DDR内存,一 种是DDR II代内存.未来还有DDR III代内存. 硬盘:常见的硬盘有三星,西数和希捷,基本上是希捷一枝独秀,容量在20GB以上的基本上都是7400转的,低于20GB的一般都是5400转的,转速越高,硬盘读些数据的速度越快.提醒一句:
硬盘的生产环境要求比较高,所有的硬盘都是国外生产. 机箱+电源:这两样东西没有什么技术含量,都是国内制造. 光驱:常见的有CD-ROM(类似VCD机),CD刻录机(兼容VCD,可以刻录VCD),DVD光驱(类似DVD 机,兼容VCD),康宝(相当于DVD光驱多了个刻录VCD光盘的功能),DVD刻录机(VCD,DVD播放和VCD,DVD刻录功能) 显示器:常见的有两种类型,CRT 和LCD ,一种是普通显示器, 一种是液晶显示器,普通显示器常见的发展过程和电视机相似,尺寸从14 15 17 19 21,屏幕从球面超平视觉纯平物理纯平.液晶显示器尺寸从14 15 17 19寸,目前流行的宽屏有17 19 20 21寸等等.LCD显示器的液晶面板都是国外制造的. 声卡:常见的有集成声卡和独立声卡,绝大多数的主板都集成的有集成声卡,可以满足普通 消费者的是使用.独立声卡一般应用于高端,这里就不多说了. 网卡:常见的有独立和集成网卡,绝大多数的主板都集成有集成网卡,可以满足普通消费者 的使用,独立网卡主要应用于特殊要求的用户.这里不多说了. 键盘+鼠标:相对没有什么技术含量,属于损耗品.跟个人喜好有关系 音箱+耳麦:相对没有什么技术含量,属于损耗品.跟个人喜好有关系. 软驱:基本上已经淘汰,这里就不讨论了. 综述:: 主板就是个平台,把CPU,内存,显卡,硬盘,光驱通过数据线或者直接安装来组成一个工作整体.CPU相当于人的大脑,发出各种指令来协调各个部分的工作,内存是个中转仓库,中转各种指令,数据等等.关机后数据不保留,硬盘是最终载体,所有的数据,程序,歌曲,电影等等都是保存在硬盘中,硬盘中的数据在关机后保留.机箱就是把这个整体固定在一个固定的环境中,通过电源来给各个部分来进行供电,通过显卡来输出显示信号,最后在显示在显示器上.键盘鼠标来进行电脑的各项操作.音箱通过主板上的集成声卡来输出各种声音.网卡是组建局域网或者上网的时候发送和接收数据.电脑的硬件说白了就是能摸的到的都是硬件,摸不到的就属于软件.电脑硬件一般情况下是不容易损坏的,只有软件方面的问题比较多,只有把软件方面的故障全部排除后最后才考虑硬件方面的问题.
Java软件开发工程师简历
个人简历 姓名性别 年龄学历 毕业院校专业 工作经验现居住地 移动电话电子邮件 【技术】 ?熟悉java语言,理解oop思想,了解多线程,知道Socket编程,对UDP/TCP网络协议有一定的了解。 ?熟练使用EL表达式、ognl、JSP、Servlet等WEB应用的开发技术。 ?熟悉jQuery、javaScript、Ajax等前端WEB技术,JavaWeb中防盗链的原理机制。 ?熟练JavaEE的主流开发技术,对Struts2、Spring、Hibernate等企业主流开发框架技术有较深入了解。 ?了解Mybatis的CRUD操作,能够使用Mybatis+Struts2+Spring架构整合 ?熟悉JBPM工作流引擎,能够独立完成工作流的定制和控制。 ?熟悉Lucene,了解搜索引擎的运行原理,Hibernate中的二级缓存存储原理。 ?能使用Hibernate Search3.4.2+二级缓存来优化sql查询。 ?熟悉熟练应用MySQL、Orcal等关系型数据库,掌握SQL程序语言,利用JDBC操作数据库。 ?理解hadoop处理大数据的运行机制,能够搭建hadoop集群。 ?理解hadoop中HDFS与MapReduce交互数据的底层原理机制,了解Hbase的表存储、zookeep er协调管理hadoop、Hbase。 ?了解HTML5、webservice(Axis2/CXF)、NoSQL非关系型数据库等技术。 【工作经验】武汉泷收电子系统工程有限公司 飞达物流管理配送系统(项目一) 12/09--13/08 开发技术struts2.3.7+spring3.2+hibernate3.6+JBPM4.4+jquery easyui+ztree 开发工具MyEclipse8.5+jdk7.0+Tomcat6+MySQL5.0+PowerDesigner 项目描述此系统作为服务前端,客户通过电话、网络等多种方式进行委托,业务受理员通过与客户交流,获取客户的服务需求和具体委托信息,将服务指令输入我公司服务系统。 该系统是物流管理的前端系统,其核心模块主要有:基本设置模块、取派业务模块、中转配送模块、用户模块、权限模块、财物管理等。 担任职务Java软件工程师
从零开始学VC系列教程完整版
从零开始学VC系列教程一.信息显示实验 题外话:第一次写教程,不知道该怎么开始.以前见过的教程可能都会介绍比较多的理论然后才开始讲实际操作,我想对于VC,理论讲得太多大家可能更糊涂,所以选择了这个方案,我们先一步步照着做,每一次只介绍一两个知识点,并且把理论放在后面说明,希望大家能喜欢这种方式,并对这种方式提出意见和建议,以便以后章节更适合大家的学习. 或许我写的还不能称之为教程,只是一些操作步骤及说明,通过这些练习,希望能使大家对VC 有一个新的认识.VC的功能是十分强大的,但我们一般并不会用到所有的功能,就像大家熟悉的KeilC一样,其实Keil功能也是很多的,平时也没见谁把Keil的功能都用到了.基于此,我写的这个教程可能在VC专业人士看来比较简单.不是要班门弄斧,而是希望推行上位机技术,形成一个氛围让大家来学习交流,PC机与下位机结合毕竟也是发展的一个方向.望高手谅解小辈的不自量力.同时,我们结合单片机编程,让大家明白上位机控制方法及原理,当然这是今后章节的内容了. 本节内容:学会在文本框中显示文本,学会弹出式对话框使用. 学习目的:信息显示是人机交互的基础,同时,信息显示也为以后的程序调试打下基础. 1.新建工程.打开VC6.0点击[文件]->[新建],弹出如下对话框. 在工程选项中选择MFC AppWizard[exe],选择好工程存入的位置,然后在工程名称中填入工程的名称,例如Eg01,填入Eg01后.VC会在我们选择的路径后自动加入一个以工程名命名的文件夹作为工程目录.完成按[确定]就会进入工程向导,出现以下的提示.
在这个我们选择[基于对话框]就行了.单文档及多文档方式会在以后详细介绍.这里也简要说明一下.①单文档.程序一次只能处理一个文档对象(文件).像写字板,记事本等.②多文档.程序一次可以处理多个对象(文件),像word之类的,可以同时打开多个文件.③基本对话框.程序一般用于处理一些比较小的,工具型的软件.像双龙的ISP下载软件,Easy 51Pro等都是基于对话框.一些不是很复杂的工业软件也通常可以用基于对话框的形式,这种方式的优点是所见即所得,一些控件可以像VB一样拖到工作区就行了.选好以后直接按[完成]就可以了.至于[下一步]的向导,这里我们先不管.然后会进入以下的画面.其中红色及绿色是我的标注,看不清图片可以下载图片放大. 选中静态文本框[TODO:在这里设置对话框控制],单击指标右键,在弹出的快捷菜单中选择[属性Properties]菜单项,弹出如下对话框 修改IDC_STATIC为IDC_FIRSTLABEL,标题可以写为”第一个应用程序”然后关闭这个对话框,就可以看到刚才的静态文本框内容变为”第一个应用程序”了. 在刚才的操作中,我们将静态文本框的ID改为了IDC_FIRSTLABEL,在VC中,ID是控件的标志,不能有相同的ID出现,但允许多个名为IDC_STATIC的ID号.所以,一般并不把文件名命为 IDC_STATIC,除非以后我们不想在程序中改变这个控件的属性.有一些控制,例如GroupBox一般并不在程序中改变什么,所以不改变其ID号.ID是程序访问控件的标识,所以一个应用程序中不能有重复ID. 按下来我们要添加一个按钮. 用鼠标将控件条上的按钮拖到对话框上,可以看到对话框上多了一个按钮.?用上叙方法,改变按钮ID为IDC_BTN1,标题改为”显示”,这样就做好一个按钮了.下面我们为按钮添加代码. 双击按钮,会出现以下的提示框. 按[OK]为按钮添加响应函数,出面以下画面 void CEg01Dlg::OnBtn1()
从零开始学习黑客技术入门教程(基础)
最简单的黑客入门教程 目录 1 黑客简介 (3) 2 保护自己电脑绝对不做黑客肉鸡 (5) 3 抓肉鸡的几种方法 (10) 4 防止黑客通过Explorer侵入系统 (19) 5 SQL注入详解 (22) 5.1 注入工具 (23) 5.2 php+Mysql注入的误区 (24) 5.3 简单的例子 (27) 5.4 语句构造 (30) 5.5 高级应用 (48) 5.6 实例 (57) 5.7 注入的防范 (62) 5.8 我看暴库漏洞原理及规律1 (64) 5.9 我看暴库漏洞原理及规律2 (70) 6 跨站脚本攻击 (75) 6.1 跨站脚本工具 (75) 6.2 什么是XSS攻击 (76) 6.3 如何寻找XSS漏洞 (77) 6.4 寻找跨站漏洞 (78) 6.5 如何利用 (78)
6.6 XSS与其它技术的结合 (81) 7 XPath注入 (82) 7.1 XPath注入介绍 (82) 7.2 XPath注入工具 (87) 声明:文章来源大多是网上收集而来,版权归其原作者所有。
1黑客简介 "黑客"(hacker)这个词通常被用来指那些恶意的安全破坏者。关于"黑客"一词的经典定义,最初来源于麻省理工学院关于信息技术的一份文档,之后便被新闻工作者们长期使用。但是这个在麻省理工被当做中性词汇的术语,却逐渐被新闻工作者们用在了贬义的环境,而很多人也受其影响,最终导致了"黑客"一词总是用于贬义环境。有些人认为,我们应该接受"黑客"一词已经被用滥并且有了新的意义。他们认为,如果不认可这种被滥用的词汇,那么将无法与那些不懂技术的人进行有效的交流。而我仍然认为,将黑客和恶意的骇客(cracker)分开表述,对交流会更有效,比如使用"恶意的安全骇客"会更容易让对方理解我所指的对象,从而能够达到更好的沟通交流效果,也避免了对"黑客"一词的滥用。之所以要区分黑客和恶意骇客,是因为在某些情况下,我们讨论的对象是那些毫无恶意并且不会对安全防御或者用户隐私造成损害的对象,这些人只有用"黑客"这个词来描述才最贴切。如果你只是简单的将"黑客"和"恶意的安全骇客"划等号,将无法在与人交流安全技术问题时,轻松的分辨别人所指的到底是哪种类型的人。黑客和骇客的区别是,黑客仅仅对技术感兴趣,而后者则是通过技术获取职业发展或者谋生。很多黑客和骇客都具有技术天赋,有些骇客据此进行职业发展。当然,并不是每个有技术天赋的人都必须沿着黑客或者骇客的方向发展。黑客这个术语的经典意义是指那些对于事物如何工作非常感兴趣的人,他们修理,制作或者修改事物,并
Java软件开发工程师笔试题(答案)
Java软件开发工程师笔试题(答案) Java工程师笔试题 1,填空(此大题10项,每空1分,共20分) 1。Java语言的三个特性是继承性、封装性和多态性2.在Java中,char 使用_ _ _ _ Unicode _ _ _ _ _ _编码方案,因此中文字符和英文字符都占用__2__字节的内存空间 3。当方法由_ _定义时,形参指的是参数行,当方法由_ _调用时,实际参数是传入的变量或值。 4。JSP内置对象,应用程序对象代表应用程序上下文,它允许JSP 页面与包含在同一应用程序中的任何网络组件共享信息,而会话对象是特定于每个客户的 5。如果你想把一个对象写到一个流中,这个类必须实现Seralizable 接口 6。在程序中实现多线程有两种方法:继承线程类和实现_ _ Runable _ interface 7。在多线程中,线程的相对优先级可以通过调用相应的setPriority()方法来修改 8。面向对象编程的五个设计原则是单一责任、开放和封闭、里氏尺度替换、依赖倒置、接口分离。通过Ajax,客户端获取的数据主要有两种类型:文本类型和xml 10。Socket通常也叫socket,用来描述__ ip和_ _ interface 2,多项选择题(这个大题20项,每项2分,共40分)
1。在JA V A中,如果父类中的一些方法不包含任何逻辑并且需要被子类重写,那么父类的这些方法应该使用()关键字来声明:a)final b)static c)abstract d)void 2。在JA V A中,已经定义了两个接口b和c。要定义实现这两个接口的类,下面的语句是正确的() a)接口aextend b,c b)接口a implements b,c c)类a mplements b,c d)类a mplements b,实现c 3。可以在JA V A接口()中定义 A)静态方法b)常量c)构造函数d)抽象方法 4。假设A有构造函数A (int a),那么在A类的其他构造函数中调用的构造函数和语句格式应该是() a)a(x)b)this . a(x)c)this(x)d)super(x) 5。如果x = 1,y = 2,z = 3,表达式y+= z-/++x的值为()a)3b)3.5°c)4d)5 6。下列关于继承的陈述中哪一个是正确的?( )a)子类只继承父类的公共方法和属性:b)子类继承父类的非私有属性和方法: C)子类继承父类的方法,但不继承父类的属性:d)子类继承所有的属性和方法。 7。在爪哇。使用JDBC时对于对同一个SQL语句的多次调用,使用()通常会提高效率 a)语句b)可调用语句c)准备语句d)prarmeters语句8。以下方法无法控制Servlet的生命周期:a)服务b)销毁c) dopost d) init9。可以分配给字节变量的值的范围是()0 ~ 65535 b) (-128) ~ 127 c) (-32,768) ~ 32,
Vc_MFC教程
1.MFC概述 1.MFC是一个编程框架 MFC (Microsoft Foundation Class Library)中的各种类结合起来构成了一个应用程序框架,它的目的就是让程序员在此基础上来建立Windows下的应用程序,这是一种相对SDK来说更为简单的方法。因为总体上,MFC框架定义了应用程序的轮廓,并提供了用户接口的标准实现方法,程序员所要做的就是通过预定义的接口把具体应用程序特有的东西填入这个轮廓。Microsoft Visual C++提供了相应的工具来完成这个工作:AppWizard可以用来生成初步的框架文件(代码和资源等);资源编辑器用于帮助直观地设计用户接口;ClassWizard用来协助添加代码到框架文件;最后,编译,则通过类库实现了应用程序特定的逻辑。 1.封装 构成MFC框架的是MFC类库。MFC类库是C++类库。这些类或者封装了Win32应用程序编程接口,或者封装了应用程序的概念,或者封装了OLE特性,或者封装了ODBC和DAO数据访问的功能,等等,分述如下。 (1)对Win32应用程序编程接口的封装 用一个C++ Object来包装一个Windows Object。例如:class CWnd是一个C++ window object,它把Windows window(HWND)和Windows window有关的API函数封装在C++ window object的成员函数内,后者的成员变量m_hWnd 就是前者的窗口句柄。 (2)对应用程序概念的封装 使用SDK编写Windows应用程序时,总要定义窗口过程,登记Windows Class,创建窗口,等等。MFC把许多类似的处理封装起来,替程序员完成这些工作。另外,MFC提出了以文档-视图为中心的编程模式,MFC类库封装了对它的支持。文档是用户操作的数据对象,视图是数据操作的窗口,用户通过它处理、查看数据。 (3)对COM/OLE特性的封装 OLE建立在COM模型之上,由于支持OLE的应用程序必须实现一系列的接口(Interface),因而相当繁琐。MFC的OLE类封装了OLE API大量的复杂工作,这些类提供了实现OLE的更高级接口。 (4)对ODBC功能的封装 以少量的能提供与ODBC之间更高级接口的C++类,封装了ODBC API的大量的复杂的工作,提供了一种数据库编程模式。
java开发工程师简历
求职意向:java软件工程师 工作经验:2年 到岗时间:一周之内 期望薪资:面议 个人信息 年龄:25岁邮箱: 手机: 现居地:北京通州 专业技能 ?熟悉掌握JavaScript,Ajax,jQuery,JSON等前台技术并能够熟练使用EasyUI,zTree,ECharts等插件 ?熟悉掌握Servlet,Cookie,Session,JDBC,JavaBean,EL表达式,JSTL 等技术,深入了解MVC开发模式 ?熟悉使用Struts2框架,包括拦截器,OGNL表达式,Ajax并熟悉Struts2的工作流程 ?熟悉使用Spring框架,包括IOC和DI,AOP编程,声明式事务处理以及代理模式 ?熟悉使用Hibernate框架,包括一对多,多对多的对象关系映射,HQL,对象状态转换,数据缓存等 ?熟练运用SpringMVC,Mybatis 进行项目开发,掌握shiro 安全框架 ?熟悉使用MySQL和oracle数据库,使用其编写复杂的SQL语句,具有Mysql数据库的优化经验;掌握redis数据缓存技术 ?熟悉使用MyEclipse、HBilder,PLSQLDevelopment等开发工具,熟悉使用maven 项目管理工具,以及SVN 服务器的使用 ?熟悉Tomcat服务器的应用部署和集群配置
工作经历 毗邻智慧软件开发科技有限公司 担任职位:java软件开发师 ●初期主要实现项目的维护和个性化需求的搜集整理 ●完成项目模块的编码和测试工作 项目经验 项目名称:泉翼达商城 框架构建:Spring + SpringMVC + Mybatis + Mysql + zTree +PageHelper+ + EasyUI +CKeditor+Nginx+Redis 项目描述:此系统主要实现的功能是用户网上预订果蔬功能,包括交易系统和后台管理系统、会员系统、积分系统、支付系统、物流系统、单点登录系统 功能模块:商品信息展示、购物车管理、订单管理、用户管理、商品管理、积分管理、支付管理等功能模块 项目职责: ?负责了此系统的商品信息模块和商品管理模块的用户需求分析,完成了文档的设计与编写 ?前台交易系统负责了商品信息模块和购物车管理模块的代码编写,实现了商品基本信息(如商品预览、商品明细、分类检索)的功能,以及购物车管理模块(实现添 加商品、删除列表、数量修改、清空购物车、结算功能) ?后台管理系统负责商品管理(实现商品列表、商品发布、商品删除、商品修改功能)和用户管理模块(实现登入/登出、用户注册、信息修改功能)
软件开发工程师(JAVA)笔试题
软件开发工程师(JAVA)笔试题 请在90分钟以内做答答案请写在答题纸上 一、选择题 1、下面哪项是不合法的标识符:() A. $persons B. TwoUsers C. *point D. _endline E. final 2、下列运算符合法的是() A.&& B.<> C.if D.:= 3、下面描述中哪两项相等:()[选择两项] A.<%= YoshiBean.size%> B.<%= YoshiBean.getSize()%> C.<%= YoshiBean.getProperty(“size”)%> D.
从零开始学VC系列教程 二.对话框及常用控件实验
从零开始学VC系列教程二. 对话框及常用控件实验 恭喜你,进入VC学习的第二节了.这一节是人机交互的基础.所谓人机交互,说通俗点就是与机器对话.然而我们现在的技术还不能像科幻片里一样与机器人直接说话就行了.所以,我们的操作意图还得通过文本输入,命令按钮等等来实现. 本节内容:学会对话框调用及一些常用控件的使用方法. 学习目的:学习人机交互,为软件开发提供界面基础. 1.新建工程.参考第一节的方法新建一个工程,名字为Eg02完成后如下图 细心的朋友一定会发现.新建的工程里还有一个对话框,ID名是IDD_ABOUTBOX这个是做什么用的呢?我们用到的软件都会有一个版权声明.通过第一章的学习,大家应该知道怎么观看这个IDD_ABOUTBOX对话框了吧.没错!双击IDD_ABOUTBOX就可以了.我们会看到如下的一个对话框 这就是我们这个程序的关于对话框,一般用于版权声明及版本号标识.大家看到的这个对话框里有两个静态文本框和一个图像框(Picture),静态文本框我们在前一节已经介绍过了.大家可以修改一下版权所有这一行,填什么都可以,签个大名也行.完成以后你一定想看看效果,这个对话框怎么打开呢?其实VC已经为我们做好了.先按F7编译,然后按F5运行.大家可以看到
程序运行了. 单击应用程序图标,就会出现一个菜单,选最后一个[关于Eg02],关于对话框就弹出来了. 当然,这是系统为我们做好的.自己怎么在程序中调用这个对话框呢?为了演示,首先参考第一节的内容添加一个按钮,然后把按钮的ID改为IDC_BTN_ABOUTME,把标题,也就是Caption 改为[关于].最终效果如下 下面我们为按钮添加代码.相信大家一定还记得怎么进入代码吧..对了,双击[关于]按钮,在弹出的对话框中点[确定]就可以了.为了让大家更好的理解下面的操作,我们先要解释一下关于对话框的类.VC向导会为关于对话框建立一个类,大家看看下面的图
java软件工程师简历
java软件工程师简历 ☆个人基本信息 姓名:xxx 出生年月:xx/12/09学历:本科籍贯:四川成都 毕业院校:重庆工学院专业:计算机科学与技术专业 毕业时间:xx/07 ☆联系方式:15008xxxxxx028-87535xxxemail:qinjuxxxx@xxx.xxx ☆个人评价 熟练掌握java语言;了解面向对象的思想;熟悉软件开发流程;具有良好的编码风格;有良好的团队合作精神和良好的沟通能力;做事积极主动能吃苦耐劳、能至始至终把工作放在首位;具有上进心、责任心、感恩心。 ☆工作经历 时间:xx-03至xx-07 公司:东软股份有限公司部门:东软商用事业部 工作职责:软件工程师 项目名称:xxx投信系统 开发语言:java、vb开发工具:eclipse 项目总结: 在xxx投信系统中,我的主要职责是通过客户讲解需求,写详细设计、编码、写测试书、测试。这是我的第一个项目,所以在这个项目中我学到了很多的大学里没有接触到的知识.例如:自动测试(junit)、log4j
等等。在这个项目过程中,我发现自己的编码风格、命名风格等有欠缺,所以我自学了《代码大全2》中的第二、第三部分。 时间:xx-07至xx-03 公司:东软股份有限公司部门:东软商用事业部 工作职责:软件工程师 项目名称:xxx航空系统 开发语言:javaorcal开发工具:pl/sqleclipse 项目总结: 在xxx航空系统中,我的任务是对多个客户端发送过来的电文进行接收和解析,然后把电文传给存储过程,在存储过程中把电文转化为记录存入数据库。在这个系统中我学习到了如何把一种特殊的的日志从一般的日志中分离出来(把电文的日志与其他日志分离)、如何使用dbunit测试、如何使用游标,批处理,对orcal有了更深的理解等。我不仅学习到了以上专业的知识,而且让我知道了团队合作的重要性,让我明白了要及时的与你的队员一起探讨式样、一起研究解决方案。让我明白了发现问题时,一定要及时的与领导或客户沟通。做这个项目过程中,我发现自己对java的继承,接口,设计模式方面理解的太肤浅,所以我报名培训了《thinkingjava》、《设计模式》。 时间:xx-03至xx-07 公司:东软股份有限公司部门:东软商用事业部 工作职责:软件工程师 项目名称:xxx百货店系统
VC教学大纲2019年版
《可视化程序设计》课程教学大纲 一、课程基本信息 课程名称:可视化程序设计Visual C++ 英文名称:Visual programming Visual C++ 课程编码:210306822 课程性质:必修 适用专业:软件技术 开课学期:第3学期 课程模块:专业课 课程学分:4 课程学时:总学时数72,理论学时3,实践学时36 二、课程内容与目标 课程性质:《可视化程序设计VC++》是计算机专业学生的专业核心课程。VC++是目前应用较为广泛的可视化程序设计语言之一,功能十分强大。 课程目的:通过本门课程的学习,完善了C、C++、VC++语言学习链,使学生掌握VC++的基本语法以及Windows程序设计方法,了解搭建MFC程序框架的基本方法,熟悉简单界面设计,掌握各种常用的类以及类的属性和方法,为今后实际工作中大型工程应用软件的设计与开发打下坚实的基础。 课程任务:学生应熟练掌握VC++集成开发环境,熟练掌握VC++的数据库链接技术、数据库设计方法,网络编程的相关知识,Socket协议及应用等,在熟练掌握语言的基础上,更能动手解决实际问题。 三、教学学时分配 章次教学内容学时分配 理论*实践小计第一章Visual C++程序的建立 4 4 8 第二章菜单、工具栏和状态栏的设计 4 4 8 第三章对话框与控件 6 6 12 第四章窗口、文档和视图 6 6 12 第五章图形绘制 6 6 12 第六章数据库应用 6 6 12 第七章多媒体技术 4 4 8 合计36 36 72 四、教学内容和教学要求
第一章VC++集成开发环境 (一)教学要求 通过本章内容的学习,熟练掌握:C++程序开发环境,c++程序的基本结构,vc++程序的开发步骤,vc++ 程序的编译和运行方法等。掌握:数据的基本输入方法和基本输出方法。 (二)教学内容 1.1 VC++概述 1.2 集成环境介绍 1.3 程序调试 1.4 思考练习题 (三)重点与难点 教学重点: VC++概述,集成环境介绍,程序调试。 教学难点: VC++程序调试。 第二章菜单、工具栏和状态栏的设计 (一)教学要求 通过本章内容的学习,熟练掌握:设计菜单,工具栏,状态栏。掌握:菜单和工具栏的连用。 (二)教学内容 2.1 设计菜单 2.2 工具栏 2.3 状态栏 2.4 章后实训 (三)重点与难点 教学重点: VC++概述,集成环境介绍,程序调试。 教学难点: VC++程序调试。 第三章对话框与控件
从零开始学漫画-(跟我学画漫画入门教程)
从零开始学漫画-(跟我学画漫画入门教程) 教画漫画01-手绘漫画工具 ★☆★☆★☆手绘漫画用的工具★☆★☆★☆ 在进行漫画创作之前,首先应该了解创作漫画应必备的基本工具。由于漫画风格多种多样,绘制时所用到的工具也五花八门,我们这里所介绍的只是几种较常用的基本绘制工具。绘制漫画时,除经常用到的铅笔、橡皮外,还需要一些专门的工具。比如原稿纸、网点纸、尺子、刮网刀、拷贝台等。下面详细介绍一下这些工具: 铅笔:
主要用来打草稿,一般用自动铅笔较好,可根据个人习惯选用不同硬度的笔芯,还可以用木杆铅笔,比如“中华”牌的,一般用HB以上或硬H笔即可。 橡皮: 用来擦去铅笔线或在网点纸上做特殊效果。一定要使用不易使纸张起皱起毛的绘图橡皮。 尺子: 画漫画时需要的尺子大体上有三种:直尺、三角尺、云形尺。直尺用的最多,一般用于画分格框和拉直线,其次是三角尺,用它来画平行线和直角边,云形尺用来画曲线。应注意买尺子时不要买边缘是直角的,最好是买带有斜面的。 墨汁: 需要全部涂黑的地方,用墨汁比用黑墨水涂得更黑更漂亮。涂黑的时候要从外侧开始,沿着画的轮廓线细心地勾出轮廓,注意不要出界,随后把笔饱沾墨汁,将中间部分涂满。 鸭嘴笔: 用来画墨稿中的直线,画出的直线边缘整齐,而且粗细一致。在使用时,“鸭嘴笔”不应直接蘸墨水,而应该用蘸水笔或是毛笔蘸上墨汁后,从鸭嘴笔的夹缝处滴入使用,通过调整笔前端的螺丝来确定所画线段的粗细。画直线时,笔杆垂直于纸面,均匀用力横向拉线,速度不要太快,这样才能画出均匀的直线。 麦克笔: 常用来画大面积的黑或做特殊效果,也可用来画细线。有时,也可以用彩色麦克笔为彩稿上色,与传统风格的彩稿有区别,较前卫,其效果象效果图,有明显的笔触,初学者不易画好。麦克笔分油性、水性两种。 黑墨水: 画线条时用黑墨水的效果很好,和墨汁相比干得快,而且干了以后不易被水溶化晕开。另外,也可用黑广告色来涂黑,好处是黑广告色不会反光,有乌黑的感觉,便于电脑扫描,使用时切忌调水太多或太少。 修正白(白颜色): 用来修改画错、弄脏的部分,白色可以使画面华丽,富于变化,常用的是广告颜料的白颜色。使用时应注意调整好浓度,不同的浓度,将会产生不同的效果,
java软件工程师简历模板
java软件工程师简历模板 个人简历 个人信息 姓名 xxx 性别男 电话年龄 email 专业 毕业院校工作经验 1年 择业目标 软件开发工程师 基于unix / linux平台、oracle数据库、j2ee架构的软件开发工程师。 专业技能 精通core java以及jsp、servlet等java web编程技术; 熟练掌握常用编程语言:c++、java; 能熟练应用struts/hibernate/spring等开源框架进行项目开发; 能熟练应用多种java应用服务器进行java程序开发,包括:weblogic、apache tomcat ,jboss等; 熟悉oracle(9i)数据库,熟练掌握基于oracle(9i)的数据库编程:sql,pl/sql及pro*c;
能进行基于sun solaris unix环境下的c++/java 编程; 掌握ejb3.0、spring、web services及xml等 java ee高级编程技术; 掌握面向对象的分析和设计ooad/uml; 能熟练应用eclipse、beans等集成开发环境; 了解各种网络协议,掌握基于常见协议的网络编程; 1. 项目名称:电信级用户管理&;计费系统(ct oss) 系统平台: unix(sun solaris) 数据库: oracle9i 服务器: jboss 技术实现: struts+hibernate+spring 项目描述: 整个项目开发周期为40人/月____,20万行代码量,小组分 模块协同开发。该系统主要完成电信业务计费、人员管理以及电 信业务修改业务。电信业务计费主要是ip网用户上网时长统计和 资费统计。人员管理和电信业务管理模块能够灵活添加、修改资 费定价信息和促销信息;增、删、查、改用户信息、管理员信息; 按月生成用户月帐单;按月、年分别生成月帐务信息统计报表和年 帐务信息统计报表并允许用户通过inter自查询自己当前或历史 帐单。 责任描述:
VC++深入详解学习笔记(非常全面)
孙鑫 孙鑫VC++视频笔记列表(全) 简介 第一课Windows程序内部运行机制 第二课MFC程序框架的剖析 第三课MFC消息映射机制和DC的获取 第四课简单字处理软件 第五课菜单编程 第六课对话框编程1 第七课对话框编程2 第八课MFC中各类指针的获取 第九课应用程序外观修改 第十课图形绘制与通用对话框 第十一课图形保存和重绘 第十二课文件操作 第十三课文档和串行化 第十四课网络编程 第十五课多线程和简单聊天室制作 第十六课线程同步与异步套接字编程 第十七课进程间通信 第十八课ActiveX 控件 第十九课动态链接库 第二十课Hook钩子函数
第0章简介 Lesson1:Windows程序运行原理及程序编写流程,窗口产生过程,句柄原理,消息队列,回调函数,窗口关闭与应用程序退出的工作关系,使用VC++的若干小技巧,stdcall与cdecl 调用规范的比较,初学者常犯错误及注意事项。 Lesson2:C++经典语法与应用,类的编写与应用,构造与析构函数,函数的重载,类的继承,函数覆盖,基类与派生类的构造函数、析构函数先后调用顺序,如何在派生类构造函数中向基类的构造函数传递参数,this成员变量,类型转换的内幕,虚拟函数与多态性,引用和指针变量的区别与共同处。VC工程的编译原理与过程,将工程中不同的类拆分到不同的文件中,每一个类由一个.h和.cpp文件共同完成,头文件重复定义问题的解决,培养了学员良好的编程习惯,也为以后分析MFC AppWizard生成的工程奠定了良好基础。 Lesson3:讲述MFC AppWizard的原理与MFC程序框架的剖析。AppWizard是一个源代码生成工具,是计算机辅助程序设计工具,WinMain在MFC程序中是如何从源程序中被隐藏的,theApp全局变量是如何被分配的,MFC框架中的几个类的作用与相互关系,MFC框架窗口是如何产生和销毁的,对窗口类的PreCreateWidow和OnCreate两个函数的着重分析,Windows窗口与C++中的CWnd类的关系。 Lesson4:MFC消息映射机制的剖析,讲述如何运用ClassWizard,,理解发送给窗口的消息是如何被MFC框架通过窗口句柄映射表和消息映射表来用窗口类的函数进行响应的。掌握设备描述表及其封装类CDC的使用,CDC是如何与具体的设备发生关联的,融合具体的画图程序进行分析。如何设置封闭图形的填充刷子(位图画刷与透明画刷的使用)。 Lesson5:掌握CDC的文字处理程序的编写,如何产生自定义字体和自定义插入符,熟悉对CString类的使用。通过对卡拉OK程序的编写,讲解定时器的使用和DrawText函数的巧妙运用。讲解如何使用CDC的裁减功能。 Lesson6:菜单的工作原理及编写应用,菜单命令消息在MFC框架程序的几个类中的传递顺序和处理过程。标记菜单、缺省菜单的实现原理、图形菜单的实现及常犯错误的分析,GetSystemMetrics的应用,快捷弹出菜单的实现方式及其命令响应函数有效范围(与弹出菜单时所指定的父窗口有密切的关系,最底层的子窗口具有最优先的处理机会)。动态菜单的编写,如何让程序在运行时产生新的菜单项及如何手工为这些新产生的菜单命令安排处理函数,如何在顶层窗口中截获对菜单命令的处理,更进一步掌握CString类的应用。 Lesson7:对话框用户界面程序的编写,如何向对话框控件关联数据成员及其实现机理,如何利用对话框类的成员函数向控件发送消息和获取对话框控件的类指针,如何直接利用对话框控件类操纵对话框控件(发送消息和直接调用成员函数)。如何在程序运行时产生和销毁控件。对话框控件的几种操作方式的优劣比较分析。如何实现对话框的部分收缩和展开。如何让对话框上的文本框在程序启动后立即获得焦点,如何利用SetWindowLong改变窗口的回调函数,通过改变文本框的默认回车处理方式进行演示。实现多个输入文本框间通过回车逐一向下传递焦点的另一种巧妙方法(用缺省按钮来处理)。 Lesson8:逃跑按钮的巧妙实现。如何制作属性页对话框和向导对话框,融合讲解组合框(如何调整组合框的大小)、列表框、单选按钮、复选按钮等常用对话框控件的多种使用方法。如何限制用户在不满足设定的条件时切换到其他属性页和向导页。 Lesson9:如何修改MFC AppWizard向导生成的框架程序的外观和大小,修改图标、光