Java代码的基本知识
实现可序列化的方法:实现:port
Port代表端口号
TCP可保证不同厂家生产的计算机能在共同网络环境下运行,解决异构网通信问题,是目前网络通信的基本协议
15、 简述Java网络模型的基本功能
描述服务端和客户端的连接过程
16、 简述Java网络编程究竟做些什么?如何做?
2.准备输出的数据,流式输出
3.流式输入,编程业务需要的格式
服务器分配一个端口号。如果客户请求一个连接,服务器使用accept( )方法打开socket连接。
客户在host的port端口建立连接。
17、 代码示例:基于Socket编程
TCP(传输控制协议)和UDP(用户数据报协议)是传输层协议
TCP是面向连接的可靠数据传输协议,能保证传输内容的完整和准确;数据传输的辅助开销大,效率低
UDP: 是无连接的,不可靠地传输协议,不能保证传输内容的完整和准确,对信息的适时要求比较高
1、 什么是设计模式?
就是经过实践验证的用来解决特定环境下特定问题的解决方案。
2、 设计模式用来干什么?
重复使用经过实践验证的正确的,用来解决某一类问题的解决方案来达到减少工作量、提高正确率等目的
3、 什么是对象粒度
对象中方法的大小就是粒度
4、 基本的Java编程设计应遵循的规则?
面向接口编程,优先使用对象组合
5、 设计模式的应用范围
所能解决的特定的一类问题中
6、 简述什么是单例模式,以及解决的问题,应用的环境,解决的方案,应用时应注意什么?
解决的问题:在任何时间内只有一个类实例存在的模式。
应用环境:需要有一个从中进行全局访问和维护某种类型数据的区域的环境下使用单例模式。
解决方案:保证一个类只有一个类实例存在。
本质:控制实例的数量。
注意:要合理的使用单例,避免单例成为瓶颈。
7、 代码示例:单例模式的两种实现方法,并说明优缺点
第一种方式:装载类的时候就创建类的实例,用空间换时间。
第二种方式:延迟装载,不需每次都创建一个类实例,而只是在第一次使用时创建,有效的利用资源,用时间换资源。
8、 简述什么是工厂模式,以及他解决的问题,应用的环境,解决的方案,模式的本质
利用工厂来解决接口选择的问题的模式。
应用环境:当一个类无法预料要创建哪种类的对象或是一个类需要由子类来指定,创建的对象时,就需要用到工厂模式。
解决方案:定义一个创建对象的类,在类的方法中决定具体实例化哪一个类。
本质:就是根据不同的情况来选择不同的实现类,重在选择。
9、 代码示例:工厂模式的实现方法
10、 简述什么是值对象模式,以及他解决的问题,应用的环境,解决的方案,模式的本质
用来把一组数据封装成一个对象的模式
解决问题:在远程方法的调用次数增加的时候,相关的应用程序性能将会有很大的下降
解决方案:使用值对象的时候,可以通过仅仅一次方法调用来取得整个对象,而不是使用多次方法调用以得到对象中每个域的数值
11、 代码示例:值对象模式的实现方法
12、 简述什么是DAO模式,以及他解决的问题,应用的环境,解决的方案,模式的本质
解决问题:根据数据源不同,数据访问也不同。根据存储的类型(关系数据库、面向对象数据库、纯文件等)和供应商实现不同,持久性存储(如数据库)的访问差别也很大。如何对存储层以外的模块屏蔽这些复杂性,以提供统一的调用存储实现。程序的分布式问题
解决方案:将数据访问逻辑抽象为特殊的资源,也就是说将系统资源的接口从其底层访问机制中隔离出来;通过将数据访问的调用打包,数据访问对象可以促进对于不同数据库类型和模式的数据访问。
本质:分层,是系统组件和数据源中间的适配器。(一层屏蔽一种变化)
13、 代码示例:DAO模式的实现方法
14、 什么是框架?框架的优点?
框架是能够完成一定功能的半成品
1.优点:完成一定的功能、提供一个精良的应用程序架构
2.框架都是以接口的形式出现
3.应该了解框架完成的功能、框架的API接口、框架的功能是怎么实现的
15、 什么是开放-封闭法则(OCP)
可扩展但是不可以更改已有的模块
对扩展是开放的,对修改是封闭
16、 什么是替换法则(LSP)
使用指向基类(超类)的引用的函数,必须能够在不知道具体派生类(子类)对象类型的情况下使用。
17、 如何综合使用我们学过的设计模式来构建合理的应用程序结构
是采用接口进行隔离,然后同时暴露值对象和工厂类,如果是需要数据存储的功能,又会通过DAO 模式去与数据存储层交互。
18、 构建常用的合理的Java应用包结构
1、 什么是GUI中的容器?什么是GUI中的组件?
组件:在设计上能实现一定功能的封装体;
组件放在Panel上,而多个Panel可以叠加到Frame上,Frame一般只有一个,各个Panel可以互相在Frame上切换
3、 简述如何使用一个组件
初始化,加到容器中,注册事件,实现相应的事件
4、 描述一个GUI界面的基本构成?
5、 如何控制外观,如颜色、字体等?
6、 什么是布局管理器?
用来管理GUI界面中组件的分布情况,负责决定布局方针以及其容器的每一个子组件的大小
7、 描述每种布局管理器的基本特点
FlowLayout 从左到右分布,排满推到下一行
是关于GUI组件和服务完整集合,
主要包括5个API:
提供了帮助开发人员设计复杂应用程序的一整套应用程序开发包;
Swing提供了更完整的组件,引入了许多新的特性和能力。Swing API是围绕着实现AWT 各个部分的API 构筑的。
AWT 采用了与特定平台相关的实现,而绝大多数Swing 组件却不是这样做的,因此Swing 的外观和感觉是可客户化和可插的。
10、 什么是双缓冲?
在后台进行界面的更新,然后在前台进行界面交换
功能:双缓冲可以改善一个被频繁改变的组件的外观
11、 描述GUI的事件机制
事件源:是一个事件的产生者,或产生事件的组件对象
事件处理器:就是一个接收事件、解释事件并处理用户交互的方法。
12、 描述Swing应用程序的基本结构?
13、 描述表现层的基本功能?
收集参数、调用逻辑层api
14、 描述在开发Swing应用程序中,一般都要写那些代码?都写到什么地方?
一般要在类的初始化的时候给组件赋值,写在jinit的方法里面
一般要在按扭的事件处理中写收集参数,组织参数,调用业务接口的方法
15、 对于GUI组件而言,最主要的方法是哪些?
16、 如何学习GUI组件的用法?
主要学会组件的定义、取值、赋值的方法
1、基于对象和面向对象
Java是一种真正的面向对象的语言,即使是开发简单的程序,必须设计对象。
JavaScript是种脚本语言,它可以用来制作与网络无关的,与用户交互作用的复杂软件。它是一种基于对象(Object Based)和事件驱动(Event Driver)的编程语言。因而它本身提供了非常丰富的内部对象供设计人员使用。
两种语言在其浏览器中所执行的方式不一样。Java的源代码在传递到客户端执行之前,必须经过编译,因而客户端上必须具有相应平台 上的仿真器或解释器,它可以通过编译器或解释器实现独立于某个特定的平台编译代码的束缚。
JavaScript是一种解释性编程语言,其源代码在发往客户端执行之前不需经过编译,而是将文本格式的字符代码发送给客户编由浏览器 解释执行。
3、强变量和弱变量
两种语言所采取的变量是不一样的。
Java采用强类型变量检查,即所有变量在编译之前必须作声明。
JavaScript中变量声明,采用其弱类型。即变量在使用前不需作声明,而是解释器在运行时检查其数据类型,
4、代码格式不一样
Java是一种与HTML无关的格式,必须通过像HTML中引用外媒体那么进行装载,其代码以字节代码的形式保存在独立的文档中。
JavaScript的代码是一种文本字符格式,可以直接嵌入HTML文档中,并且可动态装载。编写HTML文档就像编辑文本文件一样方便。
5、嵌入方式不一样
在HTML文档中,两种编程语言的标识不同,JavaScript使用来标识,而Java使用来标识。
6、静态联编和动态联编
Java采用静态联编,即Java的对象引用必须在编译时的进行,以使编译器能够实现强类型检查。
JavaScript采用动态联编,即JavaScript的对象引用在运行时进行检查,如不经编译则就无法实现对象引用的检查。
4、 如何在web页面加入Javascript,请写出两种方式并示例
6、 Javascript中如何定义变量,有何规则
必须是一个有效的变量,即变量以字母开头,中间可以出现数字如test1、text2等。除下划线(-)作为连字符外,变量名称不能有空格、(+)、(-)、(,)或其它符号。
不能使用javascript中的关键字
7、 代码示例:Javascript中的if控制语句的结构
使用break语句使得循环从For或while中跳出,continue使得跳过循环内剩余的语句而进入下一次循环。
10、 Javascript中如何定义类,如何定义属性,如何定义方法,请代码示例
push相当于方法名
toLowerCase将指定字符串转化为小写
indexOf判断是否包含某一字符或字符串
substring从字符串中取一段并返回
toUpperCase将指定字符串转化为大写
14、 Javascript的日期对象是?如何初始化日期对象?
提供一个有关日期和时间的对象Date
eval:返回字符串表达式中的值
escape:返回字符的编码
16、 Javascript中如何定义数组?如何初始化?如何取值和赋值
Navagator:提供有关浏览器的信息
Window:Window对象处于对象层次的最顶层,它提供了处理Navagator窗口的方法和属性
Location:提供了与当前打开的URL一起工作的方法和属性,是一个静态的对象
History:提供了与历史清单有关的信息
Document:包含与文档元素一起工作的对象,它将这些元素封装起来供编程人员使用
18、 如何利用Document来从页面上取值和赋值
onBlur:当失去输入焦点后产生该事件
onFocus:当输入获得焦点后,产生该文件
onchange:当文字值改变时,产生该事件
onselect:当文字加亮后,产生该事件
onClick:当组件被点击时产生的事件
21、 代码示例:使用Frame作一个基本的三分页面
22、 框架如何载入页面
23、 如何从框架中的一个页面访问另一个页面中的组件
1、 如何把样式表加入到html页面中
使用元素链接到外部的样式表单。;
2、 如何链接元素和样式,请写出4种方法,并代码示例
1、 XML有几种解析方法,有什么区别?
XML DOM:(XML Document Object Model)处理大型文件时其性能下降的非常厉害。这个问题是由DOM的树结构所造成的,这种结构占用的内存较多,而且DOM必须在解析文件之前把整个文档装入内存,适合对XML的随机访问;
SAX:(Simple API for XML)不同于DOM,SAX是事件驱动型的XML解析方式。它顺序读取XML文件,不需要一次全部装载整个文件。当遇到像文件开头,文档结束,或者标签开头与标签结束时,它会触发一个事件,用户通过在其回调事件中写入处理代码来处理XML文件,适合对XML的顺序访问;
StAX:(Streaming API for XML)与其他方法的区别就在于应用程序能够把 XML 作为一个事件流来处理,无论从性能还是可用性上都优于其他方法;
DOM解析代码如下:
//将读出来的文件格式化
//定义一个nodelist数组来存放xml文件中的节点(标签)
//从xml文件中读取数据
//向文件中写数据
//将值添加 给元素
//将元素添加到节点数组中
JEE是一个规范集;
JEE是一个框架集;
JEE是一个技术集或API集;
适用于创建服务器端的大型的软件服务系统
C/S client/server即客户机/服务器模式,客户端也参与程序的运行与计算(富客户端、胖客户端)
B/S border/server即浏览器/服务器模式,又称为瘦客户端,客户端不参与程序的运行与计算
3、 企业级应用(大规模的应用)的特点
1.生命周期长、稳定、可靠
2.组件往往分布在异构的环境中,能够跨平台
3.维护性、扩展性、重用性
4.有事务、安全、线程
4、 什么是业务逻辑?
依照业务逻辑划分模块,
所谓判定业务 就是具有以下特征:
5、 平台(角色)的划分
6、 java技术分布(设计架构 模块内部设计)
7、 JEE的体系结构: 是一种组件的体系结构
1.组件 : 能够完成一定功能的封状体(独立的功能的集合)
不能单独运行,必须运行在容器上
分为两类:web组件、ejb组件
2.容器 : 提供组件的运行环境,并对组件进行管理(一段程序)
管理组件的生命周期
不能单独运行,必须运行在服务器上
程序(组件)通过上下文来调用容器(context)
组件通过web.xml向容器描述自己,使容器能够认识组件
容器通过回调方法来调用组件
分为两类:web容器、ejb容器
3.服务器 : 提供容器的运行环境,提供大量的JEE基础服务
web服务器(只提供web服务)
8、 什么是回调方法
由容器自动调用的方法,就叫回调方法。
9、 RMI远程方法的调用机制
例如:A主机有B()方法,C主机有D()方法,A 想调用C主机的D方法
1、 描述war包、jar包、ear包的结构
ear- 企业资源包/企业应用包
Servlet是运行在服务器端的小应用程序,是接收网络服务的请求和产生响应的一种方式。
servlet的功能:接受http请求,产生动态http响应。
性能(线程比进程更快)
Java强健且面向对象
Java平台的独立
处理代码(业务逻辑)与HTML(表现逻辑)混合在一起
4、 常用的servlet包的名称是?
5、 描述servlet接口的层次结构?
(1)安全性问题, 通过Get方式提交数据,数据在URL中可以看到;POST方式,数据在URL中不可见。
(2)GET方式提交的数据最多只能有1024字节,而POST则没有此限制。
(3)GET方式不可以传输中文,POST方式可以传输中文。
(4)POST 是被设计用来向上放东西的,而GET是被设计用来从服务器取东西的,GET也能够向服务器传送较少的数据,而Get之所以也能传送数据,只是用来设计告诉服务器,你到底需要什么样的数据。POST的信息作为HTTP 请求的内容,而GET是在HTTP 头部传输的。
标识HTTP会话。
设定响应的content类型
9、 描述service方法所完成的基本功能?默认是在那里实现的?
基本功能:service方法是在servlet生命周期中的服务期,根据HTTP请求方法(GET、POST等),将请求分发到doGet、doPost等方法
实现:默认在HttpServlet类中实现
10、 如何开发自己的Servlet?描述应该做的步骤和每步需要完成的工作
安装web服务器,例如Tomcat
在Tomcat的webapps目录下新建一个文件夹作为web应用的根
在根下新建一个名为WEB-INF的文件夹,里面建立一个web.xml的文件、一个classes的文件夹、一个lib文件夹
lib文件存放程序所需要的jar包
12、 Servlet基本的描述应该是?请写出来