当前位置:文档之家› 黑马程序员:Java面试题之j2ee常用的设计模式

黑马程序员:Java面试题之j2ee常用的设计模式

黑马程序员:Java面试题之j2ee常用的设计模式
黑马程序员:Java面试题之j2ee常用的设计模式

设计模式很多人在用,但是让大家详细的表达难度又提高了不少!好吧,23种设计模式开始!

Q: j2ee常用的设计模式?说明工厂模式。

A:总共23种,分为三大类:创建型,结构型,行为型

我只记得其中常用的6、7种,分别是:

创建型(工厂、工厂方法、抽象工厂、单例)

结构型(包装、适配器,组合,代理)

行为(观察者,模版,策略)

然后再针对你熟悉的模式谈谈你的理解即可。

Java中的23种设计模式:

Factory(工厂模式),Builder(建造模式),Factory Method(工厂方法模式),Prototype(原始模型模式),Singleton(单例模式),Facade(门面模式),

Adapter(适配器模式),Bridge(桥梁模式),Composite(合成模式),

Decorator(装饰模式),Flyweight(享元模式),Proxy(代理模式),

Command(命令模式),Interpreter(解释器模式),Visitor(访问者模式),Iterator(迭代子模式),Mediator(调停者模式),Memento(备忘录模式),Observer(观察者模式),State(状态模式),Strategy(策略模式),

Template Method(模板方法模式),Chain Of Responsibleity(责任链模式)

工厂模式:工厂模式是一种经常被使用到的模式,根据工厂模式实现的类可以根据提供的数据生成一组类中某一个类的实例,通常这一组类有一个公共的抽象父类并且实现了相同的方法,但是这些方法针对不同的数据进行了不同的操作。首先需要定义一个基类,该类的子类通过不同的方法实现了基类中的方法。然后需要定义一个工厂类,工厂类可以根据条件生成不同的子类实例。当得到子类的实例后,开发人员可以调用基类中的方法而不必考虑到底返回的是哪一个子类的实例。

黑马程序员训练营入学考试题

黑马程序员训练营入学考试题 1、写一个ArrayList类的代理,实现和ArrayList中完全相同的功能,并可以计算每个方法运行的时间。 2、ArrayList list = new ArrayList(); 在这个泛型为Integer的ArrayList 中存放一个String类型的对象。 3、定义一个交通灯枚举,包含红灯、绿灯、黄灯,需要有获得下一个灯的方法,例如:红灯获取下一个灯是绿灯,绿灯获取下一个灯是黄灯。 4、一个ArrayList对象aList中存有若干个字符串元素,现欲遍历该ArrayList对象,删除其中所有值为"abc"的字符串元素,请用代码实现。

5、编写一个类,增加一个实例方法用于打印一条字符串。并使用反射手段创建该类的对象,并调用该对象中的方法。 6、有一个类为ClassA,有一个类为ClassB,在ClassB中有一个方法b,此方法抛出异常,在ClassA类中有一个方法a,请在这个方法中调用b,然后抛出异常。在客户端有一个类为TestC,有一个方法为c ,请在这个方法中捕捉异常的信息。完成这个例子,请说出java中针对异常的处理机制。 7、存在一个JavaBean,它包含以下几种可能的属性: 1:boolean/Boolean 2:int/Integer 3:String 4:double/Double 属性名未知,现在要给这些属性设置默认值,以下是要求的默认值: String类型的默认值为字符串https://www.doczj.com/doc/9d4679352.html,

int/Integer类型的默认值为100 boolean/Boolean类型的默认值为true double/Double的默认值为0.01D. 只需要设置带有getXxx/isXxx/setXxx方法的属性,非JavaBean属性不设置,请用代码实现 8、定义一个文件输入流,调用read(byte[] b)方法将exercise.txt文件中的所有内容打印出来(byte数组的大小限制为5,不考虑中文编码问题)。 9、编写一个程序,它先将键盘上输入的一个字符串转换成十进制整数,然后打印出这个十进制整数对应的二进制形式。这个程序要考虑输入的字符串不能转换成一个十进制整数的情况,并对转换失败的原因要区分出是数字太大,还是其中包含有非数字字符的情况。提示:十进制数转二进制数的方式是用这个数除以2,余数就是二进制数的最低位,接着再用得到的商作为被除数去除以2,这次得到的余数就是次低位,如此循环,直到被除数为0为止。其实,只要明白了打印出一个十进制数的每一位的方式(不断除以10,得到的余数就分别是个位,十位,百位),就很容易理解十进制数转二进制数的这种方式。

JAVA测试题(三套含答案)

<测试一> 1.在单一文件中import、class和package的正确出现顺序是:A A.package, import, class B.class, import, package C.import, package, class D.package, class, import 2.public static void main方法的参数描述是:A,D A.String args[] B.Strings args[] C.String args D.String []args 3.下面哪行代码会在编译的时候出现错误或警告:A,B,C,D A.float f=1.3; B.char c="a"; C.byte b=257; D.boolean b=null; E.int i=10; 4.编译,运行下列代码后的结果是:D public class Test { public static void main (String args []) { int age; age = age + 1; System.out.println("The age is " + age); } } A.编译,运行后没有输出 B.编译,运行后输出:The age is 1 C.能通过编译,但运行时产生错误 D.不能通过编译 4.下面那些关键字不是JAVA的关键字B A if B then C goto D while E case 5.下面那些不是合法的变量定义:A,F A.2variable B.variable2 C. _whatavariable

D. _3_ E. $anothervar F. #myvar 6.内部数据类型byte的取值范围是B A.0 - 65, 535 B.(–128) – 127 C.(–32,768) – 32,767 D.(–256) – 255 7.下列哪些表达式返回true AB A."john" == "john" B."john".equals("john") C."john" = "john" D."john".equals(new Button("john")) 8.声明公用的abstract方法的正确格式是A A.public abstract void add(); B.public abstract void add() {} C.public abstract add(); D.public virtual add(); 9.下面的代码能打印出的结果为:C int i=1; switch (i) { case 0: System.out.println("zero"); break; case 1: System.out.println("one"); case 2: System.out.println("two"); default: System.out.println("default"); } A.one B.one, default C.one, two, default D.default 10.下面的代码能打印出的结果为:B int i=9; switch (i) { default: System.out.println("default");

黑马Java_IO知识测试附答案

IO 部分测试题 考试宣言: 同学们, 考试考多少分不是我们的目的! 排在班级多少的名次也不是我们的初衷! 我们考试的目的是要通过考试中的题目,检查大家在这段时间的学习中,是否已经把需要掌握的知识掌握住了,如果哪道题目你不会做,又或者做错了, 那么不用怕, 考完试后, 导师讲解的时候你要注意听! 那时候学会了, 记住了, 也一样不影响你高薪就业! 本套题共40道不定项选择题,其中单选30道,多选10道。单选2分/题,多选4分/题。多选题不全对半分,全对满分。 1.下列叙述中,正确的是 ( ) A. Reader是一个读取文本文件的接口 B. Reader是读取二进制数据文件的抽象类 C. Reader是一个读取文本文件的抽象类 D. Reader是读取二进制数据文件的一般类 2.下面关于IO流的说法正确的是( ) A. IO流可以分为字节流和字符流 B. FileReader和FileWriter是专门用于读取和写入文本文件的 C. 顶层类有InputStream和OutputStream D. 顶层类有Reader和Writer,他们都是接口//抽象类 3.FileReader类描述正确的是( ) A. 字节输入流 B. 字符输入流//没什么说的,记住吧 C. 打印流 D. 序列化流 4.下列关键字能和try一起使用的有( )

A. final B. finalize C. finally D. catch 5.具有readLine()方法的类是( ) A. FileWriter B. InputStreamReader C. FileReader D. BufferedReader // readLine()方法是缓冲流BufferedReader的特有方法 6.关于newLine()方法描述错误的是( ) A. newLine()方法写入换行 B. newLine()方法会根据不同操作系统自动选择使用相应的换行符 C. newLine()方法是FileWiter类的方法 D. newLine()方法是BufferedWriter类的方法// 这个也是特有方法. 7.实现下列哪个接口,可以启用序列化功能( ) A. Runnable接口 B. Comparable接口 C. Serializable接口// 这个记住吧 D. Comparator接口 8.以下关于java异常说法不正确的是()。 A. Throwable 类是 Java 语言中Error类和Exception类的父类。 B. 当异常对象是Exception类(或其子类)的实例时,能通过 Java 虚拟机或者 throw 语句抛出该异常对象,并能通过try…catch…finally处理。 C. jdk6(包括jdk6)之前,如果只用一个catch块捕捉多个异常对象,则catch 子句中 的参数类型应是所有存在的异常对象的父类。 D. 以上说法都不对。 9.字节输出流的抽象基类是( ) A. OutputStream类 //记住吧,没什么说的. B. InputStream类 C. Writer类 D. Reader类 10.下面程序的运行结果是( )

传智播客-Java基础知识测试-初测(带答案)

传智播客-Java基础知识测试-初测(带答案)

答题格式: 1 - 30题为单选题, 31 - 40为多选题. 新建一个txt文件, 答案写在这个文件中. 答案必须保存为txt格式的文件。 答题的时候,可以在EditPlus上答题,会自动显示题目序号 文件名改为自己的名字, 每题一行. 多选题按abcd的顺序填答案, 比如某一题的答案acd, 就必须是acd, 不能是adc等等. 不能有空行, 不能有空格,不能有题目序号,一定不要某一题不会就空在那, 会导致后面的答案全都识别错了! 填完答案数一下, 不要填挪了!!! 共40道选择题,每题2.5分。多选题有错则全错,全对才满分.

单选题: 1. 下列哪个声明是错误的?() A. int i=10; B. byte b=127; C. float f=1.1; //1.1f D. double d=34.4; 2. 下面哪个不是java中的关键字?() A. public B. true C. class D. main 3. 下面哪个语句不会产生编译错误?() A. float a =2.0; //2.0f B. byte b =25; C. char c =”a”; D. boolean d=0; 4. 下面程序哪个语句是正确的()

A. byte a=0,b=3; byte c =a+b; B. short s =23; s=s+12; C. float f = 23+23.23; D. short s=23; s+=12; 5. byte类型的大小是() A. -228 ~128 B. -255 ~ 256 C. -128 ~ 127 D. -255 ~ 255 6. 下面程序执行的结果是?() int i = 100; while(true) { If ( i++ > 100 ) break; System.out.println(i); } A. 100 B. 101

黑马程序员java培训就业班笔记day05总结

黑马程序员java培训就业班笔记day05总结

Day05 上午: 1、数组的静态初始化 多种定义格式: Int[] arr=new int[]//标准格式,能够明确数组的数据类型,和数组名,可是不知道数组的长度Int arr[]=new int[] Int[] arr=new int[]{2,1,3,4,5,}//经过大括号能够标示出数组中的内容,此处最好别写长度,因为容易出错,因为即初始化实体,又初始化实体中的元素。 Int[] arr={2,1,3,4,5};//能够明确数组的数据类型,和数组名,也能够知道数组中的内容。 2、arr.length:方便获取数组中的元素个数的方式。 3、操作数组的最基础的思想以及核心思想: a)最基础的思想:就是遍历。什么是遍历。 Eg:int[] arr = new int[3]; int[] arr = {4,8,9,2,6,9};//明确了数组的类型和长度,并明确了数组中元素的内容。 // int[] arr1 = new int[]{4,8,9}; //方便获取数组中的元素个数的方式,

能够使用数组实体一个属性。length System.out.println("len:"+arr.length); for(int x=0; x

黑马Java基础入学测试题_

考试题目: 本试卷是JAVA基础班入学考试试卷,主要考察JAVA基础前五天大家在入学之前掌握的一个整体情况,本试卷共有40道题,其中有30道是单选,有10道题是多选题,希望大家认真对待 1.Sun公司对Java语言的宣传口号为“一次编程,到处执行”,体现了Java的什么特性B A:编程的简单性 B:与平台无关性 C:Java的面向对象特性 D:Java程序的鲁棒性 2.Java平台有三个版本,分别是javaSE、JavaME、javaEE,下列说法不正确的是B A.javaSE是指Java语言的标准版 B.javaME是指Java语言的标准版 C.javaEE是指企业级的Java开发语言,是为企业提供服务的 D. javaME是为机顶盒、移动电话和PDA之类嵌入式消费电子设备提供的Java语言平台,包括虚拟机和一系列标准化的Java API. 3.想要运行Java程序,必须得先通过______Java源文件,然后再通过______java程序C A. javaw工具编译 javac工具运行 B. java工具编译 javac工具运行 C. javac工具编译 java工具运行 D. java工具编译 java工具编译 4.Java语言中的int及char数据类型的长度分别为C A:16位和8 位 B:8位和16位 C:32位和16位 D:32位和8位 5.请问byte数据的取值范围是?C A:0-128

B:负127-128 C:负128-127 D:以上都不对 6.java语言的源程序经编译后所生成的程序类型为D A:.exe 型的可执行程序 B:.obj 型二进制的程序 C:.lib 型二进制的库程序 D:.class 型类代码的程序 7.某java程序的类定义如下: B class MyClass { } 则java源文件编译后生成的类文件名称为: A:myclass.class B:MyClass.class C:MYCLASS.class D:MyClass.java 8.下列那种标识符在java程序中是错误的D A:MyClass_Base12 B:_MyClass$Base12 C:$MyClass_12 D:76MyClass$12 9.下列那种标识符不能作为java程序中的变量名B A:INT B:boolean C:character D:Java_Float 10.请问,以下哪些语句不是合法的赋值语句?D A:boolean b = true; B:int a = (int)1.23; C:double x = 1.1; D:char c = '10';

黑马Java IO知识测试附答案

精品文档 IO 部分测试题 考试宣言: 同学们, 考试考多少分不是我们的目的! 排在班级多少的名次也不是我们的初衷! 我们考试的目的是要通过考试中的题目,检查大家在这段时间的学习中,是否已经把需要掌握的知识掌握住了,如果哪道题目你不会做,又或者做错了, 那么不用怕, 考完试后, 导师讲解的时候你要注意听! 那时候学会了, 记住了, 也一样不影响你高薪就业! 本套题共40道不定项选择题,其中单选30道,多选10道。单选2分/题,多选4分/题。多选题不全对半分,全对满分。 ( )下列叙述中,正确的是1. A. Reader是一个读取文本文件的接口 B. Reader是读取二进制数据文件的抽象类 C. Reader是一个读取文本文件的抽象类 D. Reader是读取二进制数据文件的一般类 2.下面关于IO流的说法正确的是( ) A. IO流可以分为字节流和字符流 B. FileReader和FileWriter是专门用于读取和写入文本文件的 C. 顶层类有InputStream和OutputStream D. 顶层类有Reader和Writer,他们都是接口//抽象类 3.FileReader类描述正确的是( ) A. 字节输入流 B. 字符输入流//没什么说的,记住吧 C. 打印流 D. 序列化流 4.下列关键字能和try一起使用的有( )

A. final 精品文档. 精品文档 B. finalize C. finally D. catch 5.具有readLine()方法的类是( ) A. FileWriter B. InputStreamReader C. FileReader D. BufferedReader // readLine()方法是缓冲流BufferedReader的特有方法 6.关于newLine()方法描述错误的是( ) A. newLine()方法写入换行 B. newLine()方法会根据不同操作系统自动选择使用相应的换行符 C. newLine()方法是FileWiter类的方法 D. newLine()方法是BufferedWriter类的方法// 这个也是特有方法. 7.实现下列哪个接口,可以启用序列化功能( ) A. Runnable接口 B. Comparable接口 C. Serializable接口// 这个记住吧 D. Comparator接口 8.以下关于java异常说法不正确的是()。 A. Throwable 类是 Java 语言中Error类和Exception类的父类。 B. 当异常对象是Exception类(或其子类)的实例时,能通过 Java 虚拟机或者 throw 语句抛出该异常对象,并能通过try…catch…finally处理。 C. jdk6(包括jdk6)之前,如果只用一个catch块捕捉多个异常对象,则catch 子句中的参数类型应是所有存在的异常对象的父类。 D. 以上说法都不对。 9.字节输出流的抽象基类是( ) A. OutputStream类 //记住吧,没什么说的. B. InputStream类 C. Writer类 D. Reader类

黑马程序员基础测试题

黑马程序员基础测试题 1、已知一个int数组, 编程从数组中获取最大数. 2、编写一个方法(名字自定,但要符合Java编码规范),方法内打印一字符串,并在main()方法内调用它。 3、环境变量path和classpath的作用是什么? 系统环境 path 为了更方便应用java 开发工具将要执行命令的所在路径给系统、让系统去寻找方便执行、必须是可执行文件先找当前路径再找path 路径临时配置方式通过set 命令完成、设置查看环境变量的值在path环境变量的基础上添加新的目录在任意目录下执行java 执行程序专门给类文件设置路 径将class 文件所在目录告诉系统,让系统去寻找虚拟机先从classpath 寻找 4、 UDP协议与TCP协议有什么不同? 5、编写一个类Person,为Person类定义年龄、姓名两个属性,并且定义一个SayHello方法,方法执行时输出“我是***我的年龄是***”;定义一个Chinese 类从Person类继承。 6、创建一个包含有private的属性和private方法的类。然后创建一个内部类,它有一个方法可用来修改外部类的属性,并调用外部类的方法。在外部类的另一个方法中,创建此内部类的对象,并且调用它的方法。 7、用控制台程序输出九九乘法表;输出结果按下图所示: 1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 ......... 8、编写程序拷贝一个文件, 尽量使用效率高的方式. 9、编写HTML注册表单, 需要字段: 用户名, 密码, 确认密码, 性别(单选), 城市(下拉列表), 兴趣爱好(多选), 个人简介(文本域). 10、定义一个学生类, 需要有姓名, 年龄, 考试成绩三个成员属性,创建5个对象, 属性可为任意值. 编程对这5个对象按成绩排序,并将结果输出。(提示,用TreeSet和Comparator实现)

【黑马基础班考试题】1.Java基础知识测试_答案

考试宣言: 同学们, 考试考多少分不是我们的目的! 排在班级多少的名次也不是我们的初衷! 我的考试的目的是要通过考试中的题目,检查大家在这段时间的学习中,是否已经把需要掌握的知识掌握住了,如果哪道题目你不会做,又或者做错了, 那么不用怕, 考完试后, 导师讲解的时候你要注意听! 那时候学会了, 记住了, 也一样不影响你高薪就业! 本套题共40道不定项选择题,其中单选30道,多选10道。单选2分/题,多选4分/题。多选题不全对半分,全对满分。 1.下面说法正确的是() A. JVM就是Java虚拟机,包含java核心类库// JRE: JVM+Java library。 B. JRE就是java运行环境,包含java程序编译运行的工具环境// JDK:JRE+Tools C. JDK就是java开发环境,javac是其中的一个工具 D. 功能范围:JDK > JVM > JRE 2.下面的说法正确的是( ) A. Java 语言是面向对象的、解释执行的网络编程语言。 B. Java 语言具有可移植性,是与平台无关的编程语言。 C. Java 语言可对内存垃圾自动收集。 D. Java 语言编写的程序虽然是“一次编译,到处运行”,但必须要java的运行环境。 3.给定java代码,如下: public byte count(byte b1, byte b2){ return ____; } 要使这段代码能够编译成功,横线处可以填入 A. (byte)(b1-b2) //返回值类型为byte,要求选项结果为byte B. b1-b2 C. (byte)b1+b2

D. (byte)b1/b2 4.关于类的命名,正确说法是() A. 可以由数字和英文拉丁字母组成,且可以任意排序//数字不能开头 B. 命名要做到见名知意 C. 如果是由多个单词组成,每个单词首字母大写 D. 可以是Java已经定义过的关键字//囧 5.关于main方法说法错误的是() A.main方法是java程序执行的入口 B.main方法的方法体至少要有一行代码//可以没有代码 C.main必须定义在一个类中 D. main方法的定义格式为:public static void main(String[] args){} 6.类中某方法定义如下: double fun(int a,int b){ return a*1.0/b; } 同一类内其它方法调用该方法的正确方式是: A. double a = fun(1,2); B. double a = fun(1.0,2.0); C. int x = fun(1,2); D. int x = fun(1.0,2.0); 7.给定java代码,如下,编译运行,结果是() public static void main(String[] args){ boolean flag; System.out.println(“flag”+flag);//局部变量需要先初始化再使用 } A. 编译错误 B. 编译通过,单出现运行时错误 C. 正常运行,输出flag=false D. 正常运行,输出flag= 8.下面哪个关键字可以定义一个类() A. interface B. class //查看下面解释 C. extends D. implements 在Oracle官网java英文原版教程,链接地址: https://https://www.doczj.com/doc/9d4679352.html,/javase/tutorial/java/IandI/createinterface.html上有如下解释:In the Java programming language, an interface is a reference type,similar to a class, that can contain only constants,

【黑马程序员】Java笔试中常见的问题及经典答案

【黑马程序员】Java笔试中常见的问题及经典答案1、java中实现多态的机制是什么? 答:方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。 2、垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收 答:对于GC来说,当程序员创建对象时,GC就开始监控这个对象的地址、大小以及使用情况。通常,GC采用有向图的方式记录和管理堆(heap)中的所有对象。通过这种方式确定哪些对象是"可达的",哪些对象是"不可达的"。当GC确定一些对象为"不可达"时,GC就有责任回收这些内存空间。可以。程序员可以手动执行System.gc(),通知GC运行,但是Java语言规范并不保证GC一定会执行。 3、静态变量和实例变量的区别? 答:static i = 10; //常量class A a; a.i =10;//可变 4、什么是java序列化,如何实现java序列化?

答:序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。序列化是为了解决在对对象流进行读写操作时所引发的问题。 序列化的实现:将需要被序列化的类实现Serializable接口,该接口没有需要实现的方法,implements Serializable只是为了标注该对象是可被序列化的,然后使用一个输出流(如:FileOutputStream)来构造一个ObjectOutputStream(对象流)对象,接着,使用ObjectOutputStream对象的writeObject(Object obj)方法就可以将参数为obj的对象写出(即保存其状态),要恢复的话则用输入流。 5、是否可以从一个static方法内部发出对非static方法的调用?答:不可以,如果其中包含对象的method();不能保证对象初始化. 6、写clone()方法时,通常都有一行代码,是什么? 答:Clone 有缺省行为,super.clone();他负责产生正确大小的空间,并逐位复制。 7、在JAVA中,如何跳出当前的多重嵌套循环? 答:用break; return 方法。

【黑马程序员】面试中常见Java面试题

【黑马程序员】面试中常见Java面试题 Java 面试中常见面试问题: 1. JDK 和JRE 有什么区别? 2. == 和equals 的区别是什么? 3. 两个对象的hashCode() 相同,则equals() 也一定为true,对吗? 4. final 在Java 中有什么作用? 5. Java 中的Math. round(-1. 5) 等于多少? 6. String 属于基础的数据类型吗? 7. Java 中操作字符串都有哪些类?它们之间有什么区别? 8. String str="i"与String str=new String("i")一样吗? 9. 如何将字符串反转? 10. String 类的常用方法都有那些? Java 面试中常见面试题答案: 1. JDK 和JRE 有什么区别? JDK:Java Development Kit 的简称,Java 开发工具包,提供了Java 的开发环境和运行环境。 JRE:Java Runtime Environment 的简称,Java 运行环境,为Java 的运行提供了所需环境。 具体来说JDK 其实包含了JRE,同时还包含了编译Java 源码的编译器Javac,还包含了很多Java 程序调试和分析的工具。简单来说:如果你需要运行Java 程序,只需安装JRE 就可以了,如果你需要编写Java 程序,需要安装JDK。 2. == 和equals 的区别是什么? == 解读 对于基本类型和引用类型== 的作用效果是不同的,如下所示:

基本类型:比较的是值是否相同; 引用类型:比较的是引用是否相同; 代码示例: String x = "string"; String y = "string"; String z = new String("string"); System.out.println(x==y); // true System.out.println(x==z); // false System.out.println(x.equals(y)); // true System.out.println(x.equals(z)); // true 代码解读:因为x 和y 指向的是同一个引用,所以== 也是true,而new String()方法则重写开辟了内存空间,所以== 结果为false,而equals 比较的一直是值,所以结果都为true。 equals 解读 equals 本质上就是==,只不过String 和Integer 等重写了equals 方法,把它变成了值比较。看下面的代码就明白了。 首先来看默认情况下equals 比较一个有相同值的对象,代码如下: class Cat { public Cat(String name) { https://www.doczj.com/doc/9d4679352.html, = name; } private String name; public String getName() { return name;

【黑马程序员】Java面试种常见的编程代码笔试题

【黑马程序员】Java面试种常见的编程代码笔试题《java基础教程(编程就像打字一样简单)》 完整视频:https://www.doczj.com/doc/9d4679352.html,/course/375.html?1912sxkqq 课程资料:https://https://www.doczj.com/doc/9d4679352.html,/s/1OSl2X8SgQue67KCg-ZZ5Gg 提取码:78lv 1、可能会让你写一段Jdbc连Oracle的程序,并实现数据查询. 答:程序如下: package hello.ant; import java.sql.*; public class jdbc { String dbUrl="jdbc:oracle:thin:@127.0.0.1:1521:orcl"; String theUser="admin"; String thePw="manager"; Connection c=null; Statement conn; ResultSet rs=null; public jdbc() { try{

Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); c = DriverManager.getConnection(dbUrl,theUser,thePw); conn=c.createStatement(); }catch(Exception e){ e.printStackTrace(); } } public boolean executeUpdate(String sql) { try { conn.executeUpdate(sql); return true; } catch (SQLException e) { e.printStackTrace(); return false; } } public ResultSet executeQuery(String sql) {

黑马就业班java测试题

传智播客java就业班入学测试题 共50道题,每道题2分,总分100分,80分为合格。 注意,题目有多选,也有单选。请认真作答。 1.在JAVA中,下列哪些说法是正确的(ac ) A.java源文件的扩展名为.java B.写好的java源程序可以直接运行 C.编写的源程序必须先编译后才能运行 D.程序员可以读懂扩展名为.class的文件 2.下列标识符哪个是合法的(bd ) A.class B.$abc C.1234 D._name 3.下面哪些赋值语句是正确的?(abd ) A. long test = 012; //八进制0,二进制0b,十六禁止0x B. float f = -412; C. int other = (int) true; //不可以转换 D. double d = 0x12345678; E. byte b = 128; //损失精度 4.在Java中,下列语句不能通过编译的有( ac) A. String s= “join”+ 3; B. int a= “join”+3; C. int a= …a?+5; D. float f=5+5.5; 5.设 a = 3,则表达式 (--a )<

if(x++>4 & ++y>5) { x++; } System.out.println("x=" + x + ",y=" + y); } A. x=4,y=5 B. x=4,y=6 C. x=5,y=6 D. x=6,y=6 7.尝试运行下面的代码会发生什么?( b) public class Test { public static void main(String[] args) { boolean m = true; if (m = false) { System.out.println("true"); } else { System.out.println("false"); } } } A. 输出字符串”true” B. 输出字符串”false” C. 编译时错误 D. 运行时错误 8.编译并运行以下代码将发生什么?( d) public static void main(String args[]){ char digit = 'a'; for (int i = 0; i < 10; i++){ switch (digit) { case 'x' : { int j = 0; System.out.println(j); } default : { int j = 100; System.out.println(j); } }

黑马程序员Java教程:String类-练习(一)

String类 --练习(一) 1、给定一个字符串数组,按照字典顺序进行从小到大的排序。{"nba","abc","cba","zz","qq","haha"} 思路: ①对数组排序,可以用选择,冒泡都行。 ②for嵌套、比较以及换位。 ③使用String类中提供的用于字符串比较的功能进行比较。 代码: 1.public class StringTest{ 2. public static void main(String[] args){ 3. String[] arr = { "nba","abc" ,"cba" ,"zz" ,"qq" ,"haha" }; 4. 5. printArray(arr); 6. sortString(arr); 7. printArray(arr); 8. } 9. 10. public static void printArray(String[] arr){ 11. System.out.print( "["); 12. for(int i = 0; i < arr.length; i++){ 13. if(i != arr.length -1) 14. System.out.print(arr[i] + ","); 15. else 16. System.out.println(arr[i] + "]"); 17. } 18. } 19. 20. public static void sortString(String[] arr){

21. for(int i = 0; i < arr.length - 1; i++){ 22. for(int j = i + 1; j < arr.length; j++){ 23. if(arr[i].compareTo(arr[j])>0){ 24. swap(arr,i,j); 25. } 26. } 27. } 28. } 29. 30. private static void swap(String arr[],int i, int j){ 31. String temp = arr[i]; 32. arr[i] = arr[j]; 33. arr[j] = temp; 34. } 35.} 36. 运行结果: 2、一个子串在整串中出现的次数"nbaernbatynbauinbaopnba" 思路: ①要找的子串是否存在,如果存在获取其出现的位置,这个可以使用indexOf 完成。

Java就业班第二阶段测试题

Java就业班第二阶段测试题2005-7-20 姓名:分数: 一、选择题 1.给定下列代码,哪一种请求方法将被调用?

输入想上传的文件:
A. PUT B. POST C. GET D. HEAD 2.下列标记中,哪一个是用来创建一个下拉列表的? A. B. C. 3. 给定下列请求URI,哪一个是最好的关于上下文路径的描述? /cars/sportsCars/index.html A. /cars B. /cars/sportsCars C. /sportsCars D. 缺乏足够的信息来确定答案 4 . ServletContext对象可以从下边哪一个对象直接访问到? A. HttpServlet B. ServletRequest C. ServletConfig D. ServletResponse 5. 下列哪个XML标记应用于整个应用程序而不是某个Servlet? A.mime-mapping B.init-param C.context-param D.session-config

2020年Java面试题50道Java面试题

2020年Java面试题50道Java面试题 黑马程序员免费视频库:https://www.doczj.com/doc/9d4679352.html,?2020sxkyk 以下的内容是对原有的和最近Java面试题集及答案进行了全面修订之后给出的负责任的题目和答案,相对来说比较经典,相信对准备入职的Java程序员一定有所裨益。 21、描述一下JVM 加载class文件的原理机制? 答:JVM 中类的装载是由类加载器(ClassLoader)和它的子类来实现的,Java 中的类加载器是一个重要的Java 运行时系统组件,它负责在运行时查找和装入类文件中的类。 补充: 1.由于Java的跨平台性,经过编译的Java源程序并不是一个可执行程序,而是一个或多个类文件。当Java程序需要使用某个类时,JVM会确保这个类已经被加载、连接(验证、准备和解析)和初始化。类的加载是指把类的.class文件中的数据读入到内存中,通常是创建一个字节数组读入.class文件,然后产生与所加载类对应的Class对象。加载完成后,Class对象还不完整,所以此时的类还不可用。当类被加载后就进入连接阶段,这一阶段包括验证、准备(为静态变量分配内存并设置默认的初始值)和解析(将符号引用替换为直接引用)三个步骤。最后JVM对类进行初始化,包括:1如果类存在直接的父类并且这个类还没有被初始化,那么就先初始化父类;2如果类中存在初始化语句,就依次执行这些初始化语句。

2.类的加载是由类加载器完成的,类加载器包括:根加载器(BootStrap)、扩展加载器(Extension)、系统加载器(System)和用户自定义类加载器(https://www.doczj.com/doc/9d4679352.html,ng.ClassLoader的子类)。从JDK 1.2开始,类加载过程采取了父亲委托机制(PDM)。PDM更好的保证了Java平台的安全性,在该机制中,JVM 自带的Bootstrap是根加载器,其他的加载器都有且仅有一个父类加载器。类的加载首先请求父类加载器加载,父类加载器无能为力时才由其子类加载器自行加载。JVM不会向Java程序提供对Bootstrap的引用。下面是关于几个类加载器的说明: a)Bootstrap:一般用本地代码实现,负责加载JVM基础核心类库(rt.jar); b)Extension:从java.ext.dirs系统属性所指定的目录中加载类库,它的父加载器是Bootstrap; c)System:又叫应用类加载器,其父类是Extension。它是应用最广泛的类加载器。它从环境变量classpath或者系统属性java.class.path所指定的目录中记载类,是用户自定义加载器的默认父加载器。 黑马程序员视频库网址:https://www.doczj.com/doc/9d4679352.html,(海量热门编程视频、资料免费学习) 学习路线图、学习大纲、各阶段知识点、资料网盘免费领取+QQ 3285264708 / 3549664195 22、char 型变量中能不能存贮一个中文汉字?为什么? 答:char类型可以存储一个中文汉字,因为Java中使用的编码是Unicode(不选择任何特定的编码,直接使用字符在字符集中的编号,这是统一的唯一方法),一个char类型占2个字节(16bit),所以放一个中文是没问题的。

相关主题
文本预览
相关文档 最新文档