Java面试笔试的基础知识.pdf

上传人:文*** 文档编号:88952952 上传时间:2023-05-05 格式:PDF 页数:68 大小:8.96MB
返回 下载 相关 举报
Java面试笔试的基础知识.pdf_第1页
第1页 / 共68页
Java面试笔试的基础知识.pdf_第2页
第2页 / 共68页
点击查看更多>>
资源描述

《Java面试笔试的基础知识.pdf》由会员分享,可在线阅读,更多相关《Java面试笔试的基础知识.pdf(68页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、JAVA1:简述Java的基本历史java起源于SU N公司的一个GREEN的项目,其原先目的是为家用消费电子产品发送一个信息的分布式代码系统,通过发送信息控制电视机、冰箱等.2:简单写出Java特点,写出5个以上,越多越好简单的、面向对象的、分布式的、安全的、稳定的、与平台无关的、可解释的、多线的、动态的语言。3;什么是Java?JAVA:一种编程语言一种开发环境一种应用环境一种部署环境4:请写出Java的版本分类,以及每种版本的应用方向三种版本:J2ME:是面向内存有限的移动终端.为消费性产品设计的J2SE:是S U N公司针对桌面开发和低端商务计算方案开发的版本。为笔记本电脑、PC机设计

2、的J2EE:是一种利用JAVA 2平台来简化企业解决方案的开发、部署和管理相关的复杂问题的体系结构。为企业级的、服务器端的高端应用而设计的5:描述Java技术的主要特性java虚拟机垃圾回收代码安全性6:描 述Java虚拟机的功能提供硬件平台规范解读独立于平台的已编译的字节码可当作硬件或软件来实现可以在JAVA技术开发工具上或在WEB浏览器上实现7:简述Java代码安全性1.字节码校验2.沙箱机制,提供的安全机制8:简述Java代码的运行过程加载代码 通过类装载器装载CLASS文件校验代码由字 节 码 校 验执行代码由解释器将字节码转换成机器码9:简述如何搭建Java开发环境首先下载安装JD

3、K然后配置环境1.配置 PATH,2.酉 己 置 CLASSPATH3.酉 己 置 JAVA_HOME10:简述classpath,path,JAVA_HOME的意义和配置方法path 操作系统运行环境的路径classpath JAVA运行应用程序时所需要的类包路径JAVA_HOME供需要运行JAVA的程序使用二:11:请描述:一个完整的Java文件的代码分几个部分,每部分都起什么作用,大致的写法package当前类所在位置im p o rt当前类运行时所需要的包或类public class 类 名 属性定义;方法定义:构造方法定义;public static void main(String

4、 args)例 夕 卜 程序入口语句;1 1注释12:Java代码的注释有几种?分别举例说明1./单行注解2./*/块注释3./*文档注释*/13:什么是Java代码的语句,什么是Java代码的块,举例说明语句是一行以分号终止的代码,例:int a;块 是以 为边界的一些语句的集合 例:public void tt()14:什么是标示符?标识符:是赋予变量、类、方法的名称。15:标示符定义的规则?1.首字母只能以字母、下划线、$开头,其后可以跟字母 下划线、$和数字2.首字母小写中间用大写字母隔开3.标识符具有一定的含义16:什么是关键字?关键字就是编程语言与机器语言的编码约定17:true、

5、false、nulk sizeof、goto、const 那些是 Java 关键字tru e、false、null 为 JAVA 的关键字18:Java的基本数据类型有几种?分别是?short int long boolean float double char byte19:请写出每种基本类型的默认值?取值范围?分别给出一个定义的例子默认值取值范围字 节 型:02八 7 2八 71字 符 型:u00000一-2八 16-1short:0-2八 15-2八 15-1int:0-2八 31-2人 31-1long:0-2八 63 2八 63-1float:O.Of-2A31一 一 2八 31-1

6、double:O.Od 2八 63一 一 2八 631boolean:false truefalse20:在基本类型中,如果不明确指定,整数型的默认是什么类型?带小数的默认是什么类型?整 数 类 型 默 认 为 int带小数的默认为 double21:如何定义float类型和long型float f=1.2flong 1 =1.2L22:什么是变量?变量:一种在程序中可以改变的标识符23:变量的定义规则?1.首字母小写中间用大写字母隔开其后可以跟字母 下划线、$和数字2.具有一定含义3.首字母必须是字母、$、下划线,24:请写出Java编码约定中对下列部分的要求:类、属性、方法、包、文件名、变

7、量、常量、控制结构、语句行、注释类:一个类文件中类名要和文件名相同,类名一定要以大写字母开头单词之间用大写字母分隔属性:属性名首字母小写中间用大写字母隔开方法:方法名首字母小写中间用大写字母隔开包:引用包必须写在类文件的开头,有且只能有个包全部用小写字母控制结构:当语句是控制结构的一部分时,即使是单个语句,也应使用大括号将语句封闭:语句行:每行只写一个语句,并使用四个缩进的空格,使代码更易读,注意用分号结束;注释:用注释来说明那些不明显代码的段落;常量:常量名般用大写字母,单词之间用下划线分隔,一旦赋值不允许修改25:什么是 Javadoc?按照一定格式生成程序的文档的工具26:什么是引用类型

8、?一个用户定义类型,它可引用类和数组。27:什么是按值传递?什么是按引用传递?值 传 递:就是将该值的副本传过去(基本数据类型+String类型的传递,就是按值传递)按引用传递:就是将值的内存地址传过去(除基本数据类型+String以外类型的传递,就是引用传递)28:那些是按值传递?那些是按引用传递?基本数据类型+String类 型 按 值 传 递除基本数据类型+String类型以外,比如Models。按引用传递29:如何创建一个新对象?如何使用对象中的属性和方法?public class S通过对象的实例用(.)来调用属性和方法;静态的方法和属性,也可以直接用类(.)来调用;30:简述new

9、关键字所做的工作new 关键字就是为事先声明的对象分配一块内存区域;31:简 述 =和 =的功能和区别”=赋值,=判断=前后两个值得内存地址是否相等;区别:=:为赋值表达式=:为逻辑表达式32:什么是实例变量?什么是局部变量?什么是类变量?什么是final变量?实例变量:类中定义的变量,即类成员变量,如果没有初始化,会有默认值;局部变量:在方法中定义的变量,必须初始化;类变量:用 static可修饰的属性;final变量:final属性只允许赋值一次,且只能通过构造方法赋值;定义后也就是一个常量;33:简述上述各种变量的定义规则和使用规则?实例变量:它不需要static关键字来声明,只要对象被

10、当作引用,实例变量就将存在;局部变量:在方法内任意定义变量即为局部变量;类变量:必须用static修饰;final变量:不可以在修改的34:a+和+a的区另!)?a+:先使用,后 加 1+a:先 加 1,后使用34:请描述instanceof、?:、&、&各自的功能instanceof:用来判断某个实例变量是否属于某种类的类型。?:三目运算符:表达式1?表达式2:表达式3如果表达式1 为 tru e,执行表达式2,否则执行表达式3&:位运算:按位与&:逻辑运算:逻辑与35:请描述 、的功能:算术或符号右移位运算符:算术或符号右移位左移运算符 :逻辑或非符号右移位运算符36:请描述什么是强制类型

11、转换?什么是自动类型转换?什么是向上造型?并分别举例说明强制类型转换:在一个类型前面加(),来强制转换long 1 =9L;int i=(int)l;自动类型转换:int i=5;String str=+i;向上造型:把范围小的造型为范围大的类型,int i=2;long 1 =i;37:请写出完整的if条件控制语句的结构if(布表达式)语else)38:请写出完整的switch语句的结构switch(字符)case字符:语句break;case字符:语句break;default:语句39:请写出完整的for语句的结构for(初始语句;条件语句;步长)4 0:请写出完整的while语句的结构

12、while(boolean 语句)41:请写出完整的do while语句的结构dowhile(boolean 语句);42:请描述break和 continue的功能和用法break:终止最近的循环continue:跳H本次循环,执行下次循环以上不完全43:定义一个一维的int数组,先创建它,并初始化它,给它赋值,然后输出其中的一个值public class Arrpublic static void main(String args)int a=new int5J;a=123,4,5;错 误,只能在初始化时这样做a0=l;al=2;System.out.println(a0);)44:定义一

13、个一维的A 类型数组,直接定义并赋值,然后输出其中的一个值public class Apublic 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(alOJ);4 5:把上面的数组改成2维的数组public class Apublic static int i;public static void main(String args)Aa=newA55;a00.i=2;System.out.println(a0 0);)4

14、6:举例说明数组拷贝方法的使用:arraycopy方法public class A public static void main(String args)int af=new int5;int b=new int5;System.arraycopy(a5,0,b51,0,a.length)System.out.prinlln(b00);二、面向对象1:O O P (面向对象)语言的三大特征是?封装性,继承性,多态性2:请描述方法定义的完整的语法结构权限修饰符修饰符返回类型方法名(参数)例外方法体;访问权限+访问修饰符+返回值+方法名+参数列表+例外列表+(块)方法内部代码3:什么是重载?什么

15、情况下出现?在一个类中出现相同的方法名但参数列表不同时,这种情况就是重载其本质是创建一个新的成员方法此方法在同一个类中出现4:简述重载的规则I .方法名相同,参数列表不同2.返回类型可以不同3.重载父类的方法时访问权限只能放大,例外列表只能少5:什么是构造和析构方法?功能是?构造方法:每个类至少有一个构造方法,类构成实例化时调用的方法1.方法名和类名相同2.无返回值类型格式:访 问 权 限 类 名 卜1.有构造时,则无默认2.无构造方法时,默认为空(无参数,方法体为空)jc 垃圾回收析构方法:finalize类销毁时,自动调用方法当对象在内存中被删除时,自动调用该方法在此方法中可以写回收对象内

16、部的动态空间的代码构造方法:类初始化时调用的方法。可写可不写,如果不写就会有一个默认的构造方法析构方法:当对象被从内存中删除时调用的方法,在析构成员方法内,可以填写用来回收对象内部的动态空间的代码6:简述this和 super的功能和用法t h i s:访问当前类的属性或方法,不可以在静态方法中使用,在调用其它构造方法时,必须放在该构造方法的第一行能调用除构造方法以外所有的属性,方法;通过This。来调用方法和属性super:访问父类super只能调用父类的方法和属性,在调用父类的构造方法时必须放在子类构造方法下面的第一行;通 过 Super(.)来调用父类的属性和方法7:简述Java的访问修

17、饰符类型?分别有什么功能?public公开的,任何一个类都有可以访问private私有的,只能在本类中被访问protected同包同类,只可被它的子类访问default只能被同一个包中类访问8:分别说明:在类上、在属性上、在方法上等能使用那些访问修饰符在类上:public在方法上:访问权限:public protected private default方法修饰符:staticfinal返回类型:void在属性上:public protected private defaultstaticfinal9:简述什么是包?包的功能包:对所定义的多个JAVA类进行分组,将多个功能相关的类定义到一个包(

18、文件)中功能:1.易于查找和使用适当的类2.包不止包含类和接口,还可以包含其它包,形成层次的包空间3.有助于避免命名冲突1 0:请写出5 个以上的J DK 中的包,以及他们的基本功能java.awt:包含构成抽象窗口工具集的多个类,用来构建和管理应用程序的图形用户界面java.lang:提供java编成语言的程序设计的基础类java.io:包含提供多种输出输入功能的类,:包含执行与网络有关的类,如 URL,SCOKET,SEVERSOCKET,java.applet:包含java小应用程序的类java.util:包含一些实用性的类1 1:什么是包装类?Java中都有哪些包装类Boolean B

19、yte Short Integer Long Float Double Charactor在 JDK中针对各种基本类型分别定义相应的引用类型-称为封装类12:分别表述类的三大特性及其他们的功能封 装 性 继 承 性 多 态 性封装:隐藏类的实现细节、迫使用户去使用一个接口去访问数据、使代码更好维护继承:子类可以直接继承使用父类的方法,程序员只需要做的是定义额外特征或规定将适用的变化多态性:同一种功能拥有许多不同的实现方式13:如何实现继承?继承的规则?public class A extends B)1.单继承性2.构造方法不能继承3.super引用父类,调用父类的属性,方法4.当子类中出现与

20、父类的方法名,返回类型,参数列表相同的方法时要覆盖此方法14:什么是方法的覆盖?什么情况下出现?方法覆盖:子类可以修改从父类继承过来的行为,子类可以创建一个与父类方法有不同功能的方法在同类型中出现相同的名称、返回类型方法名和参数列表的方法时在父子类时15:方法覆盖的规则?方法名要和父类中被覆盖的方法名相同,返回类型相同参数列表要和父类中被覆盖方法的参数列表相同访问权限要大于等于被覆盖方法的权限例外列表要小于等于被覆盖方法的例外列表16:如何调用父类的构造方法?如何调用自己的构造方法?要调用父类的构造方法通过在子类的构造方法中第一行写super(参数)能给父类传参;要调用自己的构造方法通过thi

21、s(参数)或者直接调;17:如何确定在多态的调用中,究竟是调用的那个方法?new的是哪一个类就是调用的哪个类的方法18:static修饰符的功能是?可以用在什么地方?怎么访问?s ta tic 修饰符功能:1.共用一块内存区域,也就是一个变量或成员方法对所有类的实例都是相同的2.静态成员方法和静态变量的优点在于他们能在没有创建类的任何一个实例的情况F 被引用3.可以用在方法或属性上访问方式:1.直接使用类名调2.new 一个实例,用实例调19:static的基本规则1.类中的静态方法不允许调用非静态的属性和方法,只可以调用静态的属性和方法2.可以用类名直接调用静态类中的属性和方法3.静态方法中

22、不允许出现this和 super4.静态方法不能被非静态方法覆盖5.构造方法不允许声明static6.静态变量为类变量,可以直接调7.非静态变量为实例变量,通过实例调用20:final修饰符的功能是?可以用在什么地方?功能:标记所有通用的功能,不能随意更改可以用在类、属性和方法上21:final的基本规则final类不能被继承final成员变量只允许赋值一次,且只能通过构造方法里赋值final局部变量即为常量,只能赋值一次final方法不允许被子类覆盖final 一般用于标记那些通用性的功能不能随意修改22:什么是抽象类?抽象类:一个类中声明方法存在而不是实现,以及带有对已知行为的方法的实现,

23、这样的类通常被称做抽象类23:抽象类的规则类内部至少包含个没有实现体的方法用 abstract修饰不能够直接使用抽象类,必须通过子类继承并且实现24:什么情况下使用抽象类当个类的一个或多个方法是抽象类忖;当类是一个抽象类的子类,并且不能为任何抽象方法提供任何实现细节或方法体时;当一个类实现一个接口,并且不能为任何抽象方法提供实现细节或方法体时25:equals方 法 和 =的功能和区别功能:判断对象是否相等区别:equals方法比较的是对象的值=:比较的是对象值的内存地址,对基本数据类型来说=比较的也是值26:toString方法的功能和基本写法返回一个String类型public Strin

24、g toString()30:String的方法的功能和基本使用方法,请描述5 个以上substring(参 数 1,参 数 2);功 能:取 字 符 串 中 参 数 1 到 参 数 2 的的所有字符;String.subString(0,1);replace(参 数 1,参 数 2);功能:用参数1 中的值替换字符串中所有参数2 的值HString.replace(ing,tt);equalsO;功能:判断两个字符串是否相等“String”.equals(tt);trim();功能:去掉字符串两边的空格String”.trim。;indexof();功能:查找字符串中参数所在位置,并返回字符

25、串第一个出该参数的下标,(String,.indexOf(,ingu);split();功能:根据 参 数 分 割 该 字 符 串,Stringt.split(1-n);31:为什么使用StringBuffer类?有什么功能和优点?-只创建一个对象-StringBuffer对象的内容是可以被修改的-除了字符的长度之外,还有容量的概念-通过动态改变容量的大小,加速字符管理32:举例说明如何使用StringBufferStringBuffer sb=new StringBuffer();sb.append(naaan);sb.flush();33:如何给Java代码设置系统属性?如何在程序中使用它

26、们设置在一个扩展名为properties的文件,内容为key、value的映射例如“a=2”;System.getP roperties();System.setP roperties();34:简 述 properties文件的结构和基本用法结构:key=value用法:System.getP roperties 方法返回系统的 P roperties 对象。System.getP roperty(String propertyName)方法返回对应名字属性的值。System.getP roperty(String name,String value)重载方法当没有 name 指定的属性时,

27、返回value指定的缺省值。35:什么是接口?接口的定义规则?接口就是定义多种方法,通过实现接口中所有方法的抽象类.public interface Tt public void outP ut();public int tt();)36:接口的作用?为什么使用接口?多重继承封装、隔离功能,实现的分离多态便于后期维护接口是可插入性的保证。37:什么是多重接口就是一个类实现多个接口38:描述接口的基本思想?封 装 隔 离接口及相关机制的最基本作用在于:通过接口可以实现不相关类的相同行为,而不需考虑这些类之间的层次关系。根据接口可以了解对象的交互界面,而不需了解对象所属的类。面向对象程序设计讲究“

28、提高内聚,降低耦合39:如何在代码中使用接口?public class MyCast implements Ttpublic void outP ut()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.抽象类一般用在定义子类的行为而父类又有特定行为的

29、子类情况中4.在接口和抽象类的选择上,必须遵守这样一个原则:行为模型应该总是通过接口而不是抽象类定义。42:什么是异常?程序中导致程序中断的一些情况叫做异常,一般程序员可以处理43:简述处理异常的两种方式?抛出和catch语句处理43:简述try块的功能和规则try 块内部一般写一些编程人员认为可能会出现异常的代码,使程序运行不会因为出现异常而中断44:简述catch块的功能和规则功能:可以截获所声明的异常,并在语句块内对其进行处理规则:catch(Exeption e)System.out.println(this is an Exeption!);!45:简述finally块的功能和规则f

30、inally块一般写一些不论是否发生异常都必须执行一次的代码例如关闭与数据库的连接等4 6:简述throw和 throws的功能和使用方法throw 指编程人员主动抛出个异常throw new NullP ointerExeption();throws指程序遇到异常情况自动的被动抛出一个异常public void test()throws Exeption47:异常的分类?错 误(Error):JV M 系统内部错误、资源耗尽等严重情况,程序员不可控制例 外(Exception):其它因编程错误或偶然的外在因素导致的一般性问题,程序可以控制48:什么是预定义异常java程序中预先定义好的异常叫

31、做预定义异常4 9:简述自定义异常的规则写一个类继承Exception用户自定义异常通常属Exception范畴,依据惯例,应 以 Exc叩tion结尾,应该由人工创建并抛出。5 0:什么是断言?用来证明和测试程序的假设。5 1:如何使用断言?举例说明一种是assert 布尔表达式 ;另一种是assertvv布尔表达式:v v 细节描述assert a=10:这里 a 等于 10”;5 2:什么是集合?什么是元素?可以包含其他对象的简单对象就叫集合集合框架中所包含的对象就叫做元素5 3:描述出Java集合框架中集合的接口关系Collection Set 和 ListSet HashSet 和

32、SortedSetList ArrayList 和 LinkedListMap一 一 HashM叩、SortedM叩 和 TreeMap5 4:代码示例:C ollection接口的使用,包括如何定义、初始化、赋值、取值、修改值除值Collection col=new ArrayList();String oldValue=abed;String newValue=1234;增加col.add(oldValue);Iterator it=col.iterator();while(it.hasNext()取值String str=(String)it.next();if(str.equals(o

33、ld Value)删除col.remove(old Value);修改col.add(new Value);)5 5:代码示例:List接口的使用,包括如何定义、初始化、赋值、取值、修改值、删值List col=new ArrayList();String oldValue=abed;String newValue=1234”;col.add(oldValue);Iterator it=col.iterator();while(it.hasNext()String str=(String)it.next();if(str.equals(old Value)col.remove(oldValue

34、);col.add(new Value);)5 6:代码示例:Set接口的使用,包括如何定义、初始化、赋值、取值、修改值、删值Set col=new HashSet();String oldValue=nabcd;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);coLadd(new Value);)5 7:代码示例:M a p 接口

35、的使用,包括如何定义、初始化、赋值、取值、修改值、删Map map=new HashMapO;String oldValue=abed”;String newValue=1234”;/增加col.put(n 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(l);)5 8:描述List接口、Set接口和

36、M a p 接口的特点List接口中的对象按一定顺序排列,允许重复Set接口中的对象没有顺序,但是不允许重复M叩 接 口中的对象是key、value的映射关系,key不允许重复5 9:如何给集合排序?实现 comparable 接 口三、IO1:什么是流?可画图说明字符串分解=OutStream=write()方法写至lj 文件中2:描述I/O流的基本接口和类的结构InputStreamOutputStream3:代码示例:如何使用URL流来进行输入输出try(imageSource=new URL(nhttp:/ e)4:什么是 Unicode?是一种字符的编码方式5:代码示例:如何使用Re

37、ader和 Writer来进行输入输出InputStreamReader ir=new InputStreamReader(System.in);OutStreamReader or=new OutStreamReader(System.in);6:什么是可序列化?如何实现可序列化?表示一个数据可以按流式输出实现 java.io.Serializable 接口7:代码示例:如何读写对象流 读try(String str=1 2 3”;FileOutputStream f=new FileOutputStream(Htest.txtn);ObjectOutputStream s=new Obje

38、ctOutputStream(f);s.writeObject(str);f.close();catch(Exception e)e.printStackTrace();)写try(FilelnputStream f=new FileInputStream(utest.txtM);ObjectInputStream s=new ObjectlnputStream(f);str=(String)s.readObject();f.close();catch(Exception e)e.printStackTrace();)8:简述File类的基本功能处理文件和获取文件信息,文件或文件夹的管理除了读

39、写文件内容其他的都可以做9:代码示例:如何使用随机文件读写类来读写文件内容RW表示文件时可读写的读:try(RandomAccessFile f=new RandomAccessFile(ntest.txtu,nrwu);long len=OL;long allLen=f.length();int i=0;while(len 0)coLadd(s);)i+;游标len=f.getFileP ointer();)catch(Exception err)en*.printStackTrace();写:try(RandomAccessFile f=new RandomAccessFile(,test

40、.txt,rwu);StringBuffer buffer=new StringBuffer(n);Iterator it=col.iterator();while(it.hasNext()buffer.append(it.next()+nM);f.writeUTF(buffer.toStringO);catch(Exception err)err.pri ntStackTrace();)10:代码示例:如何使用流的基本接口来读写文件内容try(DatalnputStream in=new DataInputStream(new BufferedInputStream(new FileInpu

41、tStream(nTest.javau);while(currentLine=in.readLine()!=null)System.out.println(currentLine);catch(lOException e)System.en;println(Error:+e);)四、线程1:什么是线程?轻量级的进程2:线程的三个部分是?处理机代码数据3:为什么使用多线程使 U I 响应更快利用多处理器系统简化建模4:代码示例:Java中实现多线程的两种方式,包括如何定义多线程,如何使用多线程4.1 实现 Runnable 接口class Thread 1 implements Runnable

42、public void run()/run里一般写 个 while(true)循环System.out.println(Runnable);)4.2 继承 Threadclass Thread2 extends Thread public void run()System.out.println(extends);public class Testpublic static void main(StringJ a)Thread 1 r=new Thread 1();Thread tl=new Thread(r);Thread t2=new Thread(r);tl.start();t2.sta

43、rt();Thread t3=new Thread2();t3.start();)5:如何实现线程的调度?如何暂停一个线程的运行调度用wait和 notifysleep()6:什么是线程的优先级判断哪个线程先执行的级别7:简述sleep方法和wait方法的功能和区别sleep是让线程休眠一段时间wait是让线程挂起8:什么是守候线程隐娥在后台持续运行的线程9:什么是临界资源指多个线程共享的资源10:什么是互斥锁,Java中如何实现用来保证在任一时刻只能有一个线程来访问临界资源的那个标记用在对象前面限制一段代码的执行用在方法声明中,表示整个方法为同步方法。11;什么是死锁?如何避免?如果程序中有

44、多个线程竞争多个资源,就可能会产生死锁。当一个线程等待由另一个线程持有的锁,而后者正在等待已被第一个线程持 有的锁时,就会发生死锁。要避免死锁,应该确保在获取多个锁时,在所有的线程中都以相同的顺序获取锁。尽量少用临界资源12:简述 wait 和 notify,notifyAll 的使用被锁定的对象可以调用wait()方法,这将导致当前线程被阻塞并放弃该对象的互斥锁,即解除了 wait()方法的当前对象的锁定状态,其他的线程就有机会访问该对象。notify使等待队列上的一个线程离开阻塞状态notifyAll使等待队列上的所有线程离开阻塞状态13:什么是url?基本的格式是?统一资源定位器Http

45、:/:port14:简 述 IP,Port,TCP的基本功能IP 代表网络位置P ort代表端口号T C P 可保证不同厂家生产的计算机能在共同网络环境下运行,解决异构网通信问题,是目前网络通信的基本协议15:简述Java网络模型的基本功能描述服务端和客户端的连接过程16:简述Java网络编程究竟做些什么?如何做?1.建立连接2.准备输出的数据,流式输出3.流式输入,编程业务需要的格式4.关闭连接服务器分配一个端口号。如果客户请求一个连接,服务器使用accept。方法打开socket 连接。客户在host的 port端口建立连接。服务器和客户使用InputStream和 OutputStrea

46、m进行通信。17:代码示例:基于Socket编程try(ServerSocket s=new ServerSocket(8888);while(true)Socket si=s.accept();OutputStream os=s 1 .getOutputStream();DataOutputStream dos=new DataOutputStream(os);dos.writeUTF(Heno,+s 1 .getInetAddress()+port#+sl.getP ort()+nnbye!u);dos.close();sl.close();)catch(lOException e)Sys

47、tem,out.printing 程序运行出错:+e);)18:代码示例:基 于 UDP编程19:TCP 和 UDP 区另ljTCP 能保证传输内容的完整和准确,UDP 不能五、设计模式1:什么是设计模式?就是经过实践验证的用来解决特定环境下特定问题的解决方案2:设计模式用来干什么?寻找合适的对象决定对象的粒度指定对象的接口描述对象的实现运用复用机制重复使用经过实践验证的正确的,用来解决某一类问题的解决方案来达到减少工作量、提高正确率等目的3:什么是对象粒度对象中方法的多少就是粒度4:基本的Java编程设计应遵循的规则?面向接口编程,优先使用对象组合5:设计模式的应用范围所能解决的特定的一类问

48、题中6:简述什么是单例模式,以及他解决的问题,应用的环境,解决的方案,模式的本质在任何时间内只有一个类实例存在的模式需要有一个从中进行全局访问和维护某种类型数据的区域的环境下使用单例模式解决方案就是保证一个类只有一个类实例存在本质就是实例共用同一块内存区域7:代码示例:单例模式的两种实现方法,并说明优缺点public class Testpublic Test()private static Test test=new Test();public static Test getlnstance()return test;)public class Test private static Tes

49、t test=null;private Test()public static Test getlnstance()if(test=null)test=new lest();)return test;)第二种方式不需每次都创建一个类实例,而只是在第一次创建8:简述什么是工厂模式,以及他解决的问题,应用的环境,解决的方案,模式的本质利用工厂来解决接口选择的问题的模式应用环境:当一个类无法预料要创建咖种类的对象或是一个类需要由子类来指定创建的对象时,就需要用到工厂模式解决方案:定义个创建对象的接口,让子类来决定具体实例化%个类本质就是根据不同的情况来选择不同的接口9:代码示例:工厂模式的实现方法p

50、ublic class Factory(public static Sample creator(int which)if(which=l)return new SampleA();else if(which=2)return new SampleBQ;P ublic class My Factory(P ublic static myFactory f=null;P ublic MyFactory()P ublic static MyFactory getlnstance()If(f=null)F=new MyFactoryO;P ublic DBDAO getDAO()Return new

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

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

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com