《软件代码开发技术》基本概念、问题与程序(兼解答部分课后作业及常见代码相关问题)基础知识一、概念:1.语言元素:数据类型、变量及命名、数组、指针、引用、类、对象、实例、事件、重载等概念以及逻辑、关系等各类表达式;2.异常处理机制:try{}catch(){}finally{};3.注释:不同语言有不同的注释,如C++/Java中单行注释为//…,多行注释为/*…*/;4.常用函数:main(),字符串处理函数,sqrt()等数学处理函数等,…;5.代码风格:规范的变量命名,代码缩进,控制行数,合理使用函数,规范代码结构;6.其他代码相关技术:代码管理:版本控制(SubVersion)、调试技术(debug、SoftICE\CPU\反编译\脱壳)、团队开发(XP)、文档管理、开发环境(IDE,vS.net,Eclipse,NetBeans,...)、网络编程、多线程编程、数据库编程、组件编程等、软硬件环境配置;7.可视化编程:常用控件;关键属性:Caption,Name;重要控件:Timer;相关常识:菜单快捷键定义、…。二、问题:1.当前的主流代码开发技术:微软的.net系列:以.NET为代表的代码开发技术主要语言有ASP.NET,VC.NET,C#.NET,VB.NET,…;主要开发工具或技术:VS.NET,即MicrosoftVisualStudio2000/2003/2005/2008/2010/2012;MSSQL2005/2008/2012等;Java系列:以JAVA为代表的代码开发技术:前SUN公司产品主要语言或技术有JSP,Servlet,EJB,SWING,AWT,Swing,…(AndriodApp也用Java);主要开发工具有NETBEANS,Eclipse,MyEclipse;框架等:Spring,Struts2,Hibernate(即SSH)、JSF。Linux/Unix/嵌入式相关开发技术:主要语言或工具:cc,gcc,Objectc,gdb,make,configure,…;应用:Andriodapp,(AppleApp),…。2.程序装载与运行:操作系统启动原理:BIOS加载磁盘上0磁道信息到内存指定处开始执行,…;可执行程序装载器Loader:装载DLL、EXE文件到内存,移交执行权;程序执行的起点:main()函数;可执行代码格式:PE格式与MZ格式;class码;…;…3.数据结构:栈:先进先出,地址空间从高到低;堆栈:内存分配技术,地址空间从低到高。4.架构:MVC:模型-视图-控制器(MVC);SOA:面向服务的体系结构。三、程序:1.头文件、包、库;2.算法:排序、查找、求逆串等;高级技术:Map/Reduce、抽取算法、索引等;3.存储:文件:打开、关闭、读写、流、缓存等;数据库:ODBC/JDBC、驱动、连接串、结果集、SQL建立删除库表与插入删除更新语句;XML:相关协议、常见配置文件(Web.xml);4.常用命令:OS:cmd、cd、dir、…;DB:mysql–uroot–p123456,…;Java:java、javac、jar等。第一章一、概念:1.为解决二层体系结构应用程序带来的问题,软件开发领域又提出三层体系结构应用程序,在二层体系结构应用程序的客户层与服务器层之间又添加了一个第三层——应用服务器层。应用服务器层是位于客户层与数据服务器层中间的一层,因此应用服务器被称作“中间件服务器”或“中间件”,应用服务器层又被称作“中间件服务器层”。2.JavaEE是一个标准中间件体系结构,旨在简化和规范分布式多层企业级应用系统的开发和部署。3.JavaEE6提供的组件分三类:客户端组件、Web组件和业务组件。其中,JavaEE客户端既可以是一个Web浏览器、一个Applet,也可以是一个应用程序。Web浏览器:Web浏览器又称为瘦客户。它通常只进行简单的人机交互,不执行像查询数据库、执行更杂的业务规则等复杂操作。Applet:Applet是一个较小的用Java语言编写的程序,运行在创览器上的虚拟机里,通过HTTP等协议与服务器进行通信。应用程序客户端:JavaEE客户端应用程序运行在客户上,它为用户处理任务提供了比标记语言丰富的接口。Web组件是在JavaEEWeb容器上运行的软件程序,包括Servlet和JSP。业务组件位于业务层,主要完成业务逻辑处理功能,包含EJB组件和Entity组件两大类。4.JNDI(JavaNamingandDrictoryInterface,Java命名和目录服务接口)提供了应用的命名环境,简化了企业应用组件之间的查找调用。JNDI是应用服务器向应用程序提供的一个查询和使用远程服务的机制。5.部署描述文件(实现组件和容器的交互):每个发布到服务器上的组件除了要包含自身实现的代码外,还要包含一个XML文件,称为部署描述文件。部署描述文件中详细的描述了组件所要调用的容器服务的说明信息,参数等等。注解:JavaEE5规范以来,支持在组件的实现代码中引入注解(Annotation)来取代撰写复杂的部署描述文件,大大简化了JavaEE应用程序的开发和部署。惯例:JavaEE6规范中,引入了自动配置机制,程序员按照惯例编程,甚至注解也可以不写。6.Web服务通过基于XML的开放标准使企业之间进行信息连接,企业使用基于XML的Web服务描述语言(WebServicesDescriptionLanguage,WSDL)来描述它们的Web服务(比如银行转账、价格查询等);通过Internet,系统之间可以使用Web服务注册来查找被登记的服务目录,这样实现了真正在Internet上的信息查询和交换。Java的Web服务实现主要提供与XML和Web服务协议有关的API等。二、问题:1.什么是JavaEE?答:JavaEE可以从两方面讲解:1)JavaEE是一个标准中间件体系结构,旨在简化和规范分布式多层企业应用系统的开发和部署。2)JavaEE是企业分布式系统应用开发标准,Java技术标注组织领导着JavaEE规范和标准的制定。主要:(1)JavaEE规范了分布式组件开发的标准,(2)JavaEE规范了分布式组件运行环境—容器提供的服务标准。2.典型的JavaEE应用体系结构如何分层,各层功能是什么?典型的JavaEE应用程序包括四层:客户层,表示逻辑层(web层),业务逻辑层,企业信息系统层。客户层用来实现用户和系统的交互,表示逻辑层和业务逻辑层用来处理和实现特定的表现逻辑和业务逻辑。企业信息系统层用于企业信息的存储管理,主要包括数据库系统,电子邮件系统以及目录服务等。3.JavaEE核心设计思想是什么?答:JavaEE的核心编程思想是“组件—容器”,应用程序由组件运行在容器中,容器为了组件提供了一些通用服务如事务处理、安全认证等,组件专注于应用逻辑的实现,并通过调用容器提供的服务实现应用程序所需要的功能。•容器为组件提供必需的底层基础功能,容器提供的底层基础功能被称为服务。组件通过调用容器提供的标准服务来与外界交互。•为满足企业级应用灵活部署,组件与容器之间必须既松散耦合,又能够强有力地交互。为实现这一点,组件与容器都要遵循一个标准规范。这个标推规范就是JavaEE。•JavaEE容器由专门的厂商来实现,容器必须实现的基本接口和功能由JavaEE规范定义,但具体如何实现完全由容器厂商自己决定。常见的JavaEE服务器中都包含了Web容器或EJB容器的实现。组件一般由程序员根据特定的应用需求编程实现。4:简述JavaEE体系结构包含的主要技术。答:主要包括:组件技术、服务技术、通信技术和架构技术。组件技术:组件是JavaEE应用的基本单元。服务技术:JavaEE容器为组件提供了各种服务,所以只要调用这些服务。通信技术:JavaEE通信技术提供了客户和服务器之间及在服务器上不同组件之间的通信机制。架构技术:架构实现了组件级别上如何处理应用服务器与客户端的交互以及JavaEE组件与容器之间交互。5:JavaEE应用有那些优点?答:(1)独立于硬件配置和操作系统。(2)坚持面向对象的设计原则(3)灵活性、可移植性和互操作性(4)轻松的企业信息系统集成。3..作业:1.什么是JavaEE?2.JavaEE发展史及为何提出?3.如何理解二、三层企业级架构?4.组件、容器、服务器的关系是什么?5.简述部署描述文件、注解与惯例的关系。6.JavaEE提供的三类组件是什么?7.理解Java的主要技术。8.复习CoreJava:反射机制。9.了解Java新特性。第二章开发环境1.会处理安装过程出现的各类问题;2.会用IDE中的常见快捷键等,能用向导添加Struts,Hibernate,Spring相关支持;3.会使用Tomcat,能正确部署/运行/发布/...Servlet,JSP等。第三章MySQL1、概念:1.JDBC(JavaDataBaseConnection):Java数据库连接,JDBC为多种关系数据库提供了统一访问方式,作为特定厂商数据库访问API的一种高级抽象,它主要包含一些通用的接口类。真正的数据库访问操作实现是由各自数据库厂商提供的。通常把厂商提供的特定于数据库的访问API称为数据库JDBC驱动程序。JDBC通过提供一个抽象的数据库接口,使得程序开发人员在编程时可以不用绑定在特定数据库厂商的API上,大大增加了应用程序的可移植性。二、问题:1.简述JDBC访问数据库的步骤:加载驱动程序连接数据库查询数据库2.简介PreparedStatement对象。PreparedStatement实例包含已编译的SQL语句,这也是将其命名冠以“Prepared”的原因。包含于PreparedStatement对象中的SQL语句可具有一个或多个IN参数。IN参数的值在SQL语句创建时未被指定。相反的,该语句为每个IN参数保留一个问号(“?”)作为占位符。每个问号的值必须在该语句执行之前通过适当的setXXX()方法来提供。由于PreparedStatement对象已预编译过,所以其执行速度要快于Statement对象。因此多次执行的SQL语句经常创建为PreparedStatement对象,以提高效率。三、程序:1.数据库访问过程(要求会写)Java.sql.Connectionconn=null;Java.langStringstrConn;Java.sql.statementstmt=null;Java.sql.ResultSetrs=null;Try{Class.forName(“org..git.mm.mysql.Driver”);//JDBC4.0后可以省略.conn=java.sql.DriverManager.getConnection(“jdbc:mysql://localhost:3306/test”,”root”,”1”)stmt=conn.createStatement();Stringsql=“select*fromuser”rs=stmt.executeQuery(sql);while(rs.next){Stringusername=rs.getString(1);System.out.println(username);}}catch(Exceptione){e.printStrankTrace();}finally{try{conn.close();}catch(Exceptione){e.printStrankTrace();}}2.读懂带参数访问数据库第七章Servlet一、概念:1.Servlet是一种独立于操作系统平台和网络传输协议的服务器端的Java应用程序,它用来扩展服务器的功能,可以生成动态的Web页面。2.Servlet的两种装载方式:延迟装载(默认方式)和预先装载。3.服务器内部和外部跳转:服务器内部跳转是由客户端发送一个请求,请求一个服务器资