Java面试笔试的基础知识

上传人:痛*** 文档编号:69071575 上传时间:2022-04-05 格式:DOC 页数:68 大小:334KB
返回 下载 相关 举报
Java面试笔试的基础知识_第1页
第1页 / 共68页
Java面试笔试的基础知识_第2页
第2页 / 共68页
Java面试笔试的基础知识_第3页
第3页 / 共68页
点击查看更多>>
资源描述
JAVA1:简述Java的基本历史 java起源于SUN公司的一个GREEN的项目,其原先目的是为家用消费电子产品 发送一个信息的分布式代码系统,通过发送信息控制电视机、冰箱等.2:简单写出Java特点,写出5个以上,越多越好 简单的、面向对象的、分布式的、安全的、稳定的、与平台无关的、可解释的、多线的、动态的语言。3:什么是Java? JAVA:一种编程语言 一种开发环境 一种应用环境 一种部署环境4:请写出Java的版本分类,以及每种版本的应用方向 三种版本: J2ME:是面向内存有限的移动终端. 为消费性产品设计的 J2SE: 是SUN公司针对桌面开发和低端商务计算方案开发的版本。为笔记本电脑、PC机设计的 J2EE: 是一种利用JAVA 2平台来简化企业解决方案的开发、部署和管理相关的复杂问题的体系结构。 为企业级的、服务器端的高端应用而设计的 5:描述Java技术的主要特性 java虚拟机 垃圾回收 代码安全性6:描述 Java虚拟机的功能 提供硬件平台规范 解读独立于平台的已编译的字节码 可当作硬件或软件来实现 可以在JAVA技术开发工具上或在WEB浏览器上实现7:简述Java代码安全性 1.字节码校验 2.沙箱机制,提供的安全机制8:简述Java代码的运行过程 加载代码 通过类装载器装载CLASS文件 校验代码 由字节码校验 执行代码 由解释器将字节码转换成机器码9:简述如何搭建Java开发环境 首先下载安装JDK 然后配置环境 1 配置PATH, 2 配置CLASSPATH 3 配置JAVA_HOME10:简述classpath,path,JAVA_HOME的意义和配置方法 path 操作系统运行环境的路径 classpath JAVA运行应用程序时所需要的类包路径 JAVA_HOME 供需要运行JAVA的程序使用二:11:请描述:一个完整的Java文件的代码分几个部分,每部分都起什么作用,大致的写法 package 当前类所在位置 import 当前类运行时所需要的包或类 public class 类名 属性定义; 方法定义: 构造方法定义; public static void main(String args ) 例外 程序入口 语句; 注释12:Java代码的注释有几种?分别举例说明 1. / 单行注解 2. /* */ 块注释 3. /* * * 文档注释 */一三:什么是Java代码的语句,什么是Java代码的块,举例说明 语句 是一行以分号终止的代码,例:int a; 块 是以 为边界的一些语句的集合 例:public void tt()14:什么是标示符? 标识符:是赋予变量、类、方法的名称。一五:标示符定义的规则? 1首字母只能以字母、下划线、$开头,其后可以跟字母下划线、$和数字 2首字母小写中间用大写字母隔开 3标识符具有一定的含义 16:什么是关键字? 关键字就是编程语言与机器语言的编码约定17:true、false、null、sizeof、goto、const那些是Java关键字 true 、false 、null 为JAVA的关键字一八:Java的基本数据类型有几种?分别是? short int long boolean float double char byte19:请写出每种基本类型的默认值?取值范围?分别给出一个定义的例子 默认值 取值范围 字节型 : 0 -27-27-1 字符型 : u0000 0-216-1 short : 0 -2一五-2一五-1 int : 0 -231-231-1 long : 0 -263-263-1 float : 0.0f -231-231-1 double : 0.0d -263-263-1 boolean: false truefalse 20:在基本类型中,如果不明确指定,整数型的默认是什么类型?带小数的默认是什么类型? 整数类型 默认为 int 带小数的默认为 double21:如何定义float类型和long型 float f = 1.2f long l = 1.2L22:什么是变量? 变量:一种在程序中可以改变的标识符23:变量的定义规则? 1.首字母小写中间用大写字母隔开 其后可以跟字母下划线、$和数字 2.具有一定含义 3.首字母必须是字母、$、下划线,24:请写出Java编码约定中对下列部分的要求:类、属性、方法、包、文件名、变量、常量、控制结构、语句行、注释 类: 一个类文件中类名要和文件名相同,类名一定要以大写字母开头单词之间用大写字母分隔 属性: 属性名首字母小写中间用大写字母隔开 方法: 方法名首字母小写中间用大写字母隔开 包: 引用包必须写在类文件的开头,有且只能有一个包 全部用小写字母 控制结构:当语句是控制结构的一部分时,即使是单个语句,也应使用大括号将语句封闭: 语句行:每行只写一个语句,并使用四个缩进的空格,使代码更易读,注意用分号结束;注释: 用注释来说明那些不明显代码的段落;常量: 常量名一般用大写字母,单词之间用下划线分隔,一旦赋值不允许修改25:什么是Javadoc? 按照一定格式生成程序的文档的工具26:什么是引用类型? 一个用户定义类型, 它可引用类和数组。27:什么是按值传递?什么是按引用传递? 值传递 : 就是将该值的副本传过去(基本数据类型+String类型的传递,就是按值传递) 按引用传递 : 就是将值的内存地址传过去(除基本数据类型+String以外类型的传递,就是引用传递)28:那些是按值传递?那些是按引用传递? 基本数据类型+String类型 按值传递 除基本数据类型+String类型以外,比如Model s 按引用传递29:如何创建一个新对象?如何使用对象中的属性和方法? public class S 通过对象的实例 用(.)来调用属性和方法; 静态的方法和属性,也可以直接用类(.)来调用;30:简述new关键字所做的工作 new 关键字就是为事先声明的对象分配一块内存区域;31:简述”=” 和”=”的功能和区别=赋值,= =判断= =前后两个值得内存地址是否相等; 区别: = :为赋值表达式 = = :为逻辑表达式32:什么是实例变量?什么是局部变量?什么是类变量?什么是final变量? 实例变量: 类中定义的变量,即类成员变量,如果没有初始化,会有默认值; 局部变量: 在方法中定义的变量,必须初始化; 类变量: 用static可修饰的属性; final变量: final属性只允许赋值一次,且只能通过构造方法赋值;定义后也就是一个常量;33:简述上述各种变量的定义规则和使用规则?实例变量:它不需要static关键字来声明,只要对象被当作引用,实例变量就将存在; 局部变量:在方法内任意定义变量即为局部变量; 类变量:必须用static修饰; final变量:不可以在修改的34:a+和+a的区别? a+ : 先使用,后加1 +a : 先加1,后使用34:请描述instanceof、?:、&、&各自的功能 instanceof :用来判断某个实例变量是否属于某种类的类型。 ?: 三目运算符: 表达式1?表达式2:表达式3 如果表达式1为true,执行表达式2,否则执行表达式3 &: 位运算:按位与 &: 逻辑运算:逻辑与35:请描述、的功能 :算术或符号右移位运算符 :逻辑或非符号右移位运算符36:请描述什么是强制类型转换?什么是自动类型转换?什么是向上造型?并分别举例说明 强制类型转换:在一个类型前面加(),来强制转换long l = 9L;int i = (int)l; 自动类型转换: int i = 5; String str = +i; 向上造型:把范围小的造型为范围大的类型, int i = 2; long l = i;37:请写出完整的if条件控制语句的结构 if(布表达式) 语 else 38:请写出完整的switch语句的结构 switch(字符) case 字符: 语句 break; case 字符: 语句 break; default:语句 39:请写出完整的for语句的结构 for(初始语句;条件语句;步长) 40: 请写出完整的while语句的结构 while(boolean语句) 41:请写出完整的do while语句的结构 do while(boolean语句);42:请描述break 和 continue的功能和用法 break:终止最近的循环 continue:跳出本次循环,执行下一次循环/以上不完全43:定义一个一维的int数组,先创建它,并初始化它,给它赋值,然后输出其中的一个值 public class Arr public static void main(String args) int a = new int5; a=1,2,3,4,5;/错误 , 只能在初始化时这样做 a0=1; a1=2; System.out.println(a0); 44:定义一个一维的A类型数组,直接定义并赋值,然后输出其中的一个值 public class A public static int i; public static void main(String args) A aa = new A(); A bb = new A(); A a = aa,bb; a0.i=2; System.out.println(a0); 45:把上面的数组改成2维的数组 public class A public static int i; public static void main(String args) A a = new A55; a00.i=2; System.out.println(a00); 46:举例说明数组拷贝方法的使用:arraycopy方法 public class A public static void main(String args) int a = new int5; int b = new int5; System.arraycopy(a5,0,b5,0,a.length) System.out.println(b00); 二、面向对象1:OOP(面向对象)语言的三大特征是? 封装性,继承性,多态性2:请描述方法定义的完整的语法结构 权限修饰符 修饰符 返回类型 方法名(参数) 例外 方法体; 访问权限访问修饰符返回值方法名参数列表例外列表(块)方法内部代码3:什么是重载?什么情况下出现? 在一个类中出现相同的方法名但参数列表不同时,这种情况就是重载 其本质是创建一个新的成员方法 此方法在同一个类中出现4:简述重载的规则 1方法名相同,参数列表不同 2返回类型可以不同 3重载父类的方法时访问权限只能放大,例外列表只能少5:什么是构造和析构方法?功能是? 构造方法:每个类至少有一个构造方法,类构成实例化时调用的方法 1方法名和类名相同 2无返回值类型 格式:访问权限 类名 ; 1有构造时,则无默认 2无构造方法时,默认为空(无参数,方法体为空) jc垃圾回收 析构方法:finalize 类销毁时,自动调用方法 当对象在内存中被删除时,自动调用该方法 在此方法中可以写回收对象内部的动态空间的代码 构造方法:类初始化时调用的方法。可写可不写,如果不写就会有一个默认的构造方法析构方法:当对象被从内存中删除时调用的方法,在析构成员方法内,可以填写用来回收对象内部的动态空间的代码6:简述this和super的功能和用法 this :访问当前类的属性或方法,不可以在静态方法中使用,在调用其它构造方法时,必须放在该构造方法的第一行 能调用除构造方法以外所有的属性,方法;通过This (.)来调用方法和属性 super :访问父类 super 只能调用父类的方法和属性,在调用父类的构造方法时必须放在子类构造方法下面的第一行; 通过 Super (.) 来调用父类的属性和方法7:简述Java的访问修饰符类型?分别有什么功能? public 公开的,任何一个类都有可以访问 private 私有的,只能在本类中被访问 protected 同包同类,只可被它的子类访问 default 只能被同一个包中类访问 8:分别说明:在类上、在属性上、在方法上等能使用那些访问修饰符 在类上:public 在方法上: 访问权限:public protected private default 方法修饰符:static final 返回类型 : void 在属性上:public protected private default static final9:简述什么是包?包的功能 包: 对所定义的多个JAVA类进行分组,将多个功能相关的类定义到一个包(文件)中 功能: 1.易于查找和使用适当的类 2.包不止包含类和接口,还可以包含其它包,形成层次的包空间 3.有助于避免命名冲突10:请写出5个以上的JDK中的包,以及他们的基本功能 java.awt :包含构成抽象窗口工具集的多个类,用来构建和管理应用程序的图形用户界面 java.lang: 提供java编成语言的程序设计的基础类 java.io:包含提供多种输出输入功能的类, :包含执行与网络有关的类,如URL,SCOKET,SEVERSOCKET, java.applet:包含java小应用程序的类java.util:包含一些实用性的类 11:什么是包装类?Java中都有哪些包装类 Boolean Byte Short Integer Long Float Double Charactor 在JDK中针对各种基本类型分别定义相应的引用类型 -称为封装类12:分别表述类的三大特性及其他们的功能 封装性 继承性 多态性 封装:隐藏类的实现细节、迫使用户去使用一个接口去访问数据、使代码更好维护继承:子类可以直接继承使用父类的方法,程序员只需要做的是定义额外特征或规定将适用的变化多态性:同一种功能拥有许多不同的实现方式一三:如何实现继承?继承的规则? public class A extends B 1单继承性 2构造方法不能继承 3super引用父类,调用父类的属性,方法 4当子类中出现与父类的方法名,返回类型,参数列表相同的方法时要覆盖此方法14:什么是方法的覆盖?什么情况下出现? 方法覆盖: 子类可以修改从父类继承过来的行为,子类可以创建一个与父类方法有不同功能的方法 在同类型中出现 相同的名称、返回类型 方法名和参数列表的方法时 在父子类时 一五:方法覆盖的规则? 方法名要和父类中被覆盖的方法名相同,返回类型相同 参数列表要和父类中被覆盖方法的参数列表相同 访问权限要大于等于被覆盖方法的权限 例外列表要小于等于被覆盖方法的例外列表16:如何调用父类的构造方法?如何调用自己的构造方法? 要调用父类的构造方法通过 在子类的构造方法中第一行写super(参数)能给父类传参; 要调用自己的构造方法通过 this(参数)或者直接调;17:如何确定在多态的调用中,究竟是调用的那个方法? new的是哪一个类就是调用的哪个类的方法一八:static修饰符的功能是?可以用在什么地方?怎么访问? static 修饰符功能:1共用一块内存区域,也就是一个变量或成员方法对所有类的实例都是相同的 2静态成员方法和静态变量的优点在于他们能在没有创建类的任何一个 实例的情况下被引用 3可以用在方法或属性上 访问方式: 1直接使用类名调 2new 一个实例,用实例调 19:static的基本规则 1.类中的静态方法不允许调用非静态的属性和方法,只可以调用静态的属性和方法 2.可以用类名直接调用静态类中的属性和方法 3.静态方法中不允许出现this和super 4.静态方法不能被非静态方法覆盖 5.构造方法不允许声明static 6.静态变量为类变量,可以直接调 7.非静态变量为实例变量,通过实例调用20:final修饰符的功能是?可以用在什么地方? 功能:标记所有通用的功能,不能随意更改 可以 用在类、属性和方法上21:final的基本规则 final类不能被继承 final成员变量只允许赋值一次,且只能通过构造方法里赋值 final局部变量即为常量,只能赋值一次 final方法不允许被子类覆盖 final一般用于标记那些通用性的功能不能随意修改22:什么是抽象类? 抽象类: 一个类中声明方法存在而不是实现,以及带有对已知行为的方法的实现,这样的类通常被称做抽象类23:抽象类的规则 类内部至少包含一个没有实现体的方法 用abstract修饰 不能够直接使用抽象类,必须通过子类继承并且实现24:什么情况下使用抽象类 当一个类的一个或多个方法是抽象类时; 当类是一个抽象类的子类,并且不能为任何抽象方法提供任何实现细节或方法体时; 当一个类实现一个接口,并且不能为任何抽象方法提供实现细节或方法体时25:equals方法和”=”的功能和区别 功能:判断对象是否相等 区别: equals方法比较的是对象的值 = =:比较的是对象值的内存地址,对基本数据类型来说比较的也是值26:toString方法的功能和基本写法 返回一个String类型 public String toString() 30:String的方法的功能和基本使用方法,请描述5个以上 substring(参数1,参数2); 功能:取字符串中参数1到参数2的的所有字符; String.subString(0,1); replace(参数1,参数2); 功能:用参数1中的值替换字符串中所有参数2的值 String.replace(ing,tt); equals(); 功能:判断两个字符串是否相等 String.equals(tt); trim(); 功能:去掉字符串两边的空格 String.trim(); indexof(); 功能:查找字符串中参数所在位置,并返回字符串第一个出该参数的下标 String.indexOf(ing); split(); 功能:根据参数分割该字符串 String.split(-);31:为什么使用StringBuffer类?有什么功能和优点? -只创建一个对象 StringBuffer 对象的内容是可以被修改的 除了字符的长度之外,还有容量的概念 通过动态改变容量的大小,加速字符管理32:举例说明如何使用StringBuffer StringBuffer sb = new StringBuffer(); sb.append(aaa); sb.flush();33:如何给Java代码设置系统属性?如何在程序中使用它们 设置在一个扩展名为properties的文件,内容为key、value的映射例如“a=2”; System.getProperties(); System.setProperties();34:简述properties文件的结构和基本用法 结构: key=value 用法: System.getProperties 方法返回系统的Properties 对象。 System.getProperty(String propertyName)方法返回对应名字属性的值。System.getProperty(String name, String value)重载方法当没有name指定的属性时,返回value 指定的缺省值。35:什么是接口?接口的定义规则? 接口就是定义多种方法,通过实现接口中所有方法的抽象类. public interface Tt public void outPut(); public int tt(); 36:接口的作用?为什么使用接口? 多重继承 封装、隔离 功能,实现的分离多态 便于后期维护 接口是可插入性的保证。37:什么是多重接口 就是一个类实现多个接口38:描述接口的基本思想?封装隔离接口及相关机制的最基本作用在于:通过接口可以实现不相关类的相同行为,而不需考虑这些类之间的层次关系。根据接口可以了解对象的交互界面,而不需了解对象所属的类。面向对象程序设计讲究“提高内聚,降低耦合”。39:如何在代码中使用接口? public class MyCast implements Tt public void outPut() public int tt() return 0; 40:举例说明如何把接口当作类型使用 public interface Animal() public void tt(); public class Dog implements Animal public void tt() Animal ani = new Dog();41:如何选择接口和抽象类?为什么? 1.优先选择接口 2.优先使用对象组合,少用继承 3.抽象类一般用在定义子类的行为而父类又有特定行为的子类情况中4.在接口和抽象类的选择上,必须遵守这样一个原则:行为模型应该总是通过接口而不是抽象类定义。42:什么是异常?程序中导致程序中断的一些情况叫做异常,一般程序员可以处理43:简述处理异常的两种方式?抛出和catch语句处理43:简述try块的功能和规则try块内部一般写一些编程人员认为可能会出现异常的代码,使程序运行不会因为出现异常而中断44:简述catch块的功能和规则功能:可以截获所声明的异常,并在语句块内对其进行处理规则:catch(Exeption e) System.out.println(this is an Exeption!); 45:简述finally块的功能和规则finally块一般写一些不论是否发生异常都必须执行一次的代码例如关闭与数据库的连接等46: 简述throw和throws的功能和使用方法throw 指编程人员主动抛出一个异常 throw new NullPointerExeption();throws指程序遇到异常情况自动的被动抛出一个异常public void test() throws Exeption47:异常的分类?错误(Error): JVM 系统内部错误、资源耗尽等严重情况,程序员不可控制例外(Exception):其它因编程错误或偶然的外在因素导致的一般性问题,程序可以控制48:什么是预定义异常java程序中预先定义好的异常叫做预定义异常49:简述自定义异常的规则 写一个类继承Exception 用户自定义异常通常属Exception范畴,依据惯例,应以Exception结尾,应该由人工创建并抛出。50:什么是断言?用来证明和测试程序的假设。51:如何使用断言?举例说明一种是assert;另一种是assert:。assert a= =10 : 这里a等于10;52:什么是集合?什么是元素?可以包含其他对象的简单对象就叫集合集合框架中所包含的对象就叫做元素53:描述出Java集合框架中集合的接口关系Collection-Set和ListSet-HashSet和SortedSetList-ArrayList和LinkedListMap-HashMap、SortedMap和TreeMap54:代码示例:Collection接口的使用,包括如何定义、初始化、赋值、取值、修改值除值Collection col = new ArrayList();String oldValue = abcd;String newValue = 1234;/增加col.add(oldValue);Iterator it = col.iterator();while(it.hasNext()/取值String str = (String)it.next();if(str.equals(oldValue)/删除col.remove(oldValue);/修改col.add(newValue);55:代码示例:List接口的使用,包括如何定义、初始化、赋值、取值、修改值、删值List col = new ArrayList();String oldValue = abcd;String newValue = 1234;col.add(oldValue);Iterator it = col.iterator();while(it.hasNext()String str = (String)it.next();if(str.equals(oldValue)col.remove(oldValue);col.add(newValue);56:代码示例:Set接口的使用,包括如何定义、初始化、赋值、取值、修改值、删值Set col = new HashSet();String oldValue = abcd;String newValue = 1234;col.add(oldValue);Iterator it = col.iterator();while(it.hasNext()String str = (String)it.next();if(str.equals(oldValue)col.remove(oldValue);col.add(newValue);57:代码示例:Map接口的使用,包括如何定义、初始化、赋值、取值、修改值、删Map map = new HashMap();String oldValue = abcd;String newValue = 1234;/增加col.put(1,oldValue);Set set = map.keySet();Iterator it = set.iterator();while(it.hasNext()String key = (String)it.next(); /取值String value = map.get(key);/修改map.put(1,newValue);/删除map.remove(1);58:描述List接口、Set接口和Map接口的特点List接口中的对象按一定顺序排列,允许重复Set接口中的对象没有顺序,但是不允许重复Map接口中的对象是key、value的映射关系,key不允许重复59:如何给集合排序?实现comparable接口三、IO1:什么是流?可画图说明字符串分解=OutStream=write()方法写到文件中2:描述I/O流的基本接口和类的结构InputStreamOutputStream3:代码示例:如何使用URL流来进行输入输出try imageSource = new URL(xmysitex/info); catch (MalformedURLException e) 4:什么是Unicode?是一种字符的编码方式5:代码示例:如何使用Reader和Writer来进行输入输出InputStreamReader ir = new InputStreamReader(System.in);OutStreamReader or = new OutStreamReader(System.in);6:什么是可序列化?如何实现可序列化?表示一个数据可以按流式输出实现java.io.Serializable接口7:代码示例:如何读写对象流/读try String str = 123;FileOutputStream f = new FileOutputStream(test.txt);ObjectOutputStream s = new ObjectOutputStream(f);s.writeObject(str);f.close();catch(Exception e) e.printStackTrace();/写try FileInputStream f = newFileInputStream(test.txt);ObjectInputStream s = newObjectInputStream(f);str =(String)s.readObject();f.close();catch(Exception e)e.printStackTrace();8:简述File类的基本功能处理文件和获取文件信息,文件或文件夹的管理除了读写文件内容其他的都可以做9:代码示例:如何使用随机文件读写类来读写文件内容 RW表示文件时可读写的读:try RandomAccessFile f = new RandomAccessFile(test.txt, rw); long len = 0L; long allLen = f.length(); int i = 0; while (len 0) col.add(s); i+; /游标 len = f.getFilePointer(); catch(Exception err) err.printStackTrace(); 写: try RandomAccessFile f = new RandomAccessFile(test.txt, rw); StringBuffer buffer = new StringBuffer(n); Iterator it = col.iterator(); while (it.hasNext() buffer.append(it.next() + n); f.writeUTF(buffer.toString(); catch(Exception err) err.printStackTrace(); 10:代码示例:如何使用流的基本接口来读写文件内容tryDataInputStream in =new DataInputStream(new BufferedInputStream(new FileInputStream(Test.java);while (currentLine = in.readLine() != null)System.out.println(currentLine);catch (IOException e)System.err.println(Error: + e);四、线程1:什么是线程?轻量级的进程2:线程的三个部分是?处理机代码数据3:为什么使用多线程使UI响应更快利用多处理器系统简化建模4:代码示例:Java中实现多线程的两种方式,包括如何定义多线程,如何使用多线程4.1实现Runnable接口class Thread1 implements Runnablepublic void run()/run里一般写一个while(true)循环System.out.println(Runnable);4.2继承Threadclass Thread2 extends Threadpublic void run()System.out.println(extends);public class Testpublic static void main(String a)Thread1 r = new Thread1();Thread t1 = new Thread(r);Thread t2 = new Thread(r);t1.start();t2.start();Thread t3 = new Thread2();t3.start();5:如何实现线程的调度?如何暂停一个线程的运行调度用wait和notifysleep()6:什么是线程的优先级判断哪个线程先执行的级别7:简述sleep方法和wait方法的功能和区别sleep是让线程休眠一段时间wait是让线程挂起8:什么是守候线程隐藏在后台持续运行的线程9:什么是临界资源指多个线程共享的资源10:什么是互斥锁,Java中如何实现用来保证在任一时刻只能有一个线程来访问临界资源的那个标记用在对象前面限制一段代码的执行 用在方法声明中,表示整个方法为同步方法。11:什么是死锁?如何避免?如果程序中有多个线程竞争多个资源,就可能会产生死锁。当一个线程等待由另一个线程持有的锁,而后者正在等待已被第一个线程持有的锁时,就会发生死锁。要避免死锁,应该确保在获取多个锁时,在所有的线程中都以相同的顺序获取锁。尽量少用临界资源12:简述wait和notify,notifyAll的使用被锁定的对象可以调用wait()方法,这将导致当前线程被阻塞并放弃该对象的互斥锁,即解除了wait()方法的当前对象的锁定状态,其他的线程就有机会访问该对象。notify使等待队列上的一个线程离开阻塞状态notifyAll使等待队列上的所有线程离开阻塞状态一三:什么是url?基本的格式是?统一资源定位器xx163x:port14:简述IP,Port,TCP的基本功能IP代表网络位置Port代表端口号TCP可保证不同厂家生产的计算机能在共同网络环境下运行,解决异构网通信问题,是目前网络通信的基本协议一五:简述Java网络模型的基本功能描述服务端和客户端的连接过程16:简述Java网络编程究竟做些什么?如何做?1.建立连接2.准备输出的数据,流式输出3.流式输入,编程业务需要的格式4.关闭连接服务器分配一个端口号。如果客户请求一个连接,服务器使用accept()方法打开socket连接。客户在host的port端口建立连接。服务器和客户使用InputStream和OutputStream进行通信。17:代码示例:基于Socket编程try ServerSocket s = new ServerSocket(8888);while (true) Socket s1 = s.accept();OutputStream os = s1.getOutputStream();DataOutputStream dos = new DataOutputStream(os);dos.writeUTF(Hello, +s1.getInetAddress() + port# + s1.getPort() + nbye!);dos.close();s1.close();catch (IOException e) System.out.println(程序运行出错: + e);一八:代码示例:基于UDP编程19:TCP和UDP区别TCP能保证传输内容的完整和准确,UDP不能五、设计模式1:什么是设计模式?就是经过实践验证的用来解决特定环境下特定问题的解决方案2:设计模式用来干什么?寻找合适的对象 决定对象的粒度 指定对象的接口 描述对象的实现运用复用机制 重复使用经过实践验证的正确的,用来解决某一类问题的解决方案来达到减少工作量、提高正确率等目的3:什么是对象粒度对象中方法的多少就是粒度4:基本的Java编程设计应遵循的规则?面向接口编程,优先使用对象组合5:设计模式的应用范围所能解决的特定的一类问题中6:简述什么是单例模式,以及他解决的问题,应用的环境,解决的方案,模式的本质在任何时间内只有一个类实例存在的模式 需要有一个从中进行全局访问和维护某种类型数据的区域的环境下使用单例模式解决方案就是保证一个类只有一个类实例存在 本质就是实例共用同一块内存区域7:代码示例:单例模式的两种实现方法,并说明优缺点public class Test public Test() private static Test test = new Test(); public static Test getInstance() return test; public class Test private static Test test = null; private Test() public static Test getInstance() if(test=null) test = new Test(); return test;第二种方式不需每次都创建一个类实例,而只是在第一次创建8:简述什么是工厂模式,以及他解决的问题,应用的环境,解决的方案,模式的本质 利用工厂来解决接口选择的问题的模式应用环境:当一个类无法预料要创建哪种类的对象或是一个类需要由子类来指定创建的对象时,就需要用到工厂模式解决方案:定义一个创建对象的接口,让子类来决定具体实例化哪一个类 本质就是根据不同的情况来选择不同的接口9:代码示例:工厂模式的实现方法public class Factory public static Sample creator(int which) if (which=1) return new SampleA();else if (which=2) return new SampleB(); Public class MyFactory Public static myFactory f = null; Public MyFactory() Public static MyFactory getInstance() If(f=null) F=new MyFactory(); Public DBDAO getDAO() Return new DBDAOImpl(); 10述什么是值对象模式,以及他解决的问题,应用的环境,解决的方案,模式的本质用来把一组数据封装成一个对象的模式解决问题:在远程方法的调用次数增加的时候,相关的应用程序性能将会有很大的下降解决方案:使用值对象的时候,可
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!