本文目录一览:
- 1、Java开发面试题
- 2、java 面试题
- 3、用java编写网吧计费系统
- 4、简单的JAVA 面试题
- 5、java软件面试题
Java开发面试题
1、面向对象的特征有哪些方面?
答:面向对象的特征主要有以下几个方面:
- 抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面。抽象只关注对象有哪些属性和行为,并不关注这些行为的细节是什么。
- 继承:继承是从已有类得到继承信息创建新类的过程。提供继承信息的类被称为父类(超类、基类);得到继承信息的类被称为子类(派生类)。继承让变化中的软件系统有了一定的延续性,同时继承也是封装程序中可变因素的重要手段(如果不能理解请阅读阎宏博士的《Java与模式》或《设计模式精解》中关于桥梁模式的部分)。
- 封装:通常认为封装是把数据和操作数据的方法绑定起来,对数据的访问只能通过已定义的接口。面向对象的本质就是将现实世界描绘成一系列完全自治、封闭的对象。我们在类中编写的方法就是对实现细节的一种封装;我们编写一个类就是对数据和数据操作的封装。可以说,封装就是隐藏一切可隐藏的东西,只向外界提供最简单的编程接口(可以想想普通洗衣机和全自动洗衣机的差别,明显全自动洗衣机封装更好因此操作起来更简单;我们现在使用的智能手机也是封装得足够好的,因为几个按键就搞定了所有的事情)。
- 多态性:多态性是指允许不同子类型的对象对同一消息作出不同的响应。简单的说就是用同样的对象引用调用同样的方法但是做了不同的事情。多态性分为编译时的多态性和运行时的多态性。如果将对象的方法视为对象向外界提供的服务,那么运行时的多态性可以解释为:当A系统访问B系统提供的服务时,B系统有多种提供服务的方式,但一切对A系统来说都是透明的(就像电动剃须刀是A系统,它的供电系统是B系统,B系统可以使用电池供电或者用交流电,甚至还有可能是太阳能,A系统只会通过B类对象调用供电的方法,但并不知道供电系统的底层实现是什么,究竟通过何种方式获得了动力)。方法重载(overload)实现的是编译时的多态性(也称为前绑定),而方法重写(override)实现的是运行时的多态性(也称为后绑定)。运行时的多态是面向对象最精髓的东西,要实现多态需要做两件事:1). 方法重写(子类继承父类并重写父类中已有的或抽象的方法);2). 对象造型(用父类型引用引用子类型对象,这样同样的引用调用同样的方法就会根据子类对象的不同而表现出不同的行为)。
2、访问修饰符public,private,protected,以及不写(默认)时的区别?
答:
修饰符
当前类
同 包
子 类
其他包
public √ √ √ √
protected √ √ √ ×
default √ √ × ×
private √ × × ×
类的成员不写访问修饰时默认为default。默认对于同一个包中的其他类相当于公开(public),对于不是同一个包中的其他类相当于私有(private)。受保护(protected)对子类相当于公开,对不是同一包中的没有父子关系的类相当于私有。Java中,外部类的修饰符只能是public或默认,类的成员(包括内部类)的修饰符可以是以上四种。
3、String 是最基本的数据类型吗?
答:不是。Java中的基本数据类型只有8个:byte、short、int、long、float、double、char、boolean;除了基本类型(primitive type)和枚举类型(enumeration type),剩下的都是引用类型(reference type)。
4、float f=3.4;是否正确?
答:不正确。3.4是双精度数,将双精度型(double)赋值给浮点型(float)属于下转型(down-casting,也称为窄化)会造成精度损失,因此需要强制类型转换float f =(float)3.4; 或者写成float f =3.4F;。
5、short s1 = 1; s1 = s1 + 1;有错吗?short s1 = 1; s1 += 1;有错吗?
答:对于short s1 = 1; s1 = s1 + 1;由于1是int类型,因此s1+1运算结果也是int 型,需要强制转换类型才能赋值给short型。而short s1 = 1; s1 += 1;可以正确编译,因为s1+= 1;相当于s1 = (short)(s1 + 1);其中有隐含的强制类型转换。
6、Java有没有goto?
答:goto 是Java中的保留字,在目前版本的Java中没有使用。(根据James Gosling(Java之父)编写的《The Java Programming Language》一书的附录中给出了一个Java关键字列表,其中有goto和const,但是这两个是目前无法使用的关键字,因此有些地方将其称之为保留字,其实保留字这个词应该有更广泛的意义,因为熟悉C语言的程序员都知道,在系统类库中使用过的有特殊意义的单词或单词的组合都被视为保留字)
7、int和Integer有什么区别?
答:Java是一个近乎纯洁的面向对象编程语言,但是为了编程的方便还是引入了基本数据类型,但是为了能够将这些基本数据类型当成对象操作,Java为每一个基本数据类型都引入了对应的包装类型(wrapper class),int的包装类就是Integer,从Java 5开始引入了自动装箱/拆箱机制,使得二者可以相互转换。
java 面试题
1,C
只有C选项中的三个类全是用final关键字修饰
final修饰类,表示类不能被继承,修饰方法表示方法不可覆盖(重写),修饰属性表示不可改变(常量)
2,A
此类完全由在 collection 上进行操作或返回 collection 的静态方法组成
3,看不到类
4,B
A应该改为INSERT INTO TABLE_USER(UserID,Name) VALUES('001','xxx');
C应该改为SELECT * FROM TABLE_USER WHERE UserID = '001';
用java编写网吧计费系统
加上几张表,判断一下而已,逻辑并不难,卡号密码正确与否不用说了吧,余额不足在登录方法里加入判断余额是否0就行,正在使用机器加一个字段,1代表正在使用。也在登录的时候判断一下这个字段,等于1就不让他登录,等于0则进行登录操作,并update字段为1
简单的JAVA 面试题
import java.util.Scanner;
public class OODemo {
private double price1 = 1.5;//金卡会员价格
private double price2 = 1.8;//银卡会员价格
private double price3 = 2.0;//普通客户价格
/**
* 根据buyer的购物数和会员级别计算total金额
* @param num
* @param card
* @return
*/
public double countPrice(int num,String card)
{
double total = 0.0;
if(card.equals("1"))
{
total = price1*num;
}
else if(card.equals("2"))
{
total = price2*num;
}
else if(card.equals("3"))
{
total = price3*num;
}else{
System.out.println("无效的选择!");
}
return total;
}
public void method()
{
Scanner s = new Scanner(System.in);
System.out.println("Please input a cardDept num to get your totalPrice:");
System.out.println("------------------------------------------------");
System.out.println("1----金卡会员");
System.out.println("2----银卡会员");
System.out.println("3----普通会员");
System.out.println("4----Exit");
String card = s.next();
if(card.equals("1")||card.equals("2")||card.equals("3"))
{
System.out.println("该会员等级为"+card);
System.out.println("请输入购买数:num");
int num = s.nextInt();
double total = countPrice(num, card);
System.out.println("总计金额为:"+total);
}else if(card.equals("4"))
{
System.out.println("Exit...");
System.exit(0);
}else{
System.out.println("无效的会员等级!");
System.out.println("重新输入:");
method();
}
}
public static void main(String[] args) {
OODemo demo = new OODemo();
demo.method();
}
}
java软件面试题
1 java思想中 动态代理 方便维护和拓展 楼主可以搜下(Dynamic Proxy)。
2 答案不唯一, 事实考你的是servlet线程不安全的概念,servlet中是不用 成员变量的,因为线程不安全。(参考 搜索servlet的线程不安全解决方法)本题答案,加一个“局部线程”变量绑定。
3 reques
4 对象流要传送对象 一定要实现Serializable 接口 form传的对象reques,response
5 EL表达式 我了解的不是很透 ,楼主再查找下。
你面试的问题 既基本 ,又砸人……很考察基础。