昨天面试新浪 java试题

昨天面试新浪 java试题  昨天去了新浪网面试,感觉新浪真的挺不错的,工作环境那叫一个好啊。对于一般屌丝的话进到这种公司就可以呆一辈子了。做了面试之后感觉不管大公司还是小公司都还是注重基础和你平时工作的积累的。所以不能抱怨现在工作不好找,压力大,更应该重自身出发,打好基础才是王道!

 

1、	public、private、protect、friendly区别
  public
公共,加上这个修饰的类或属性,可以在同一个包或者别的包里面访问

private
私有的,加上这个修饰的类或属性,只能在同类里访问,同包和别的包不能访问

protected
保护,加上这个修饰的类或属性,只能在类和同包访问,别的包不能访问
如果一个类、类属变量及方法不以这三种修饰符来修饰,它就是friendly类型的,那么包内的任何类都可以访问它,而包外的任何类都不能访问它(包括包外继承了此类的子类),因此,这种类、类属变量及方法对包内的其他类是友好的,开放的,而对包外的其他类是关闭的。

2、	程序题
  package com.sina.app;

public class OrderCreator {

	public static Order createOrder(String orderType) throws Exception{
		Order order = null;
		if("sales".equals(orderType)){
			order = new SalesOrder();
		}else if("channel".equals(orderType)){
			order = new ChannelOrder();
		}else{
			throw new Exception("no suitable");
		}
		return order;
	}
	public static void main(String[] args) {
		Order order = null;
		try {
			order = OrderCreator.createOrder("sales");------20行
			System.out.println(order.getDiscount());
		} catch (Exception e) {
			System.out.println(e.getMessage());
		}finally{
			System.out.println("create " + (order==null?"0":"1")+" order");
		}
	}
}

class Order {
	private double discount;//应该改为public否则子类不能引用
	public Order(){
		System.out.println("an Order will be created");
	}
	public double getDiscount(){
		return discount;
	}
}

class ChannelOrder extends Order{
	public ChannelOrder(){
		System.out.println("a channelOrder will be created");
		super.discount = 0.75d;
	}
}

class SalesOrder extends Order {
	public SalesOrder(){
		System.out.println("a salesOrder will be created");
		super.discount = 0.90d;
	}
}
1)	程序能否运行?结果是什么?
 不能,private double discount;//应该改为public否则子类不能引用
an Order will be created
a salesOrder will be created
0.9
create 1 order
2)	将20行改为
order = OrderCreator.createOrder("agent");输出结果是?
答:no suitable
create 0 order
3)	用uml画出上面类结构图?
4)	该程序用了什么设计模式?


3、数据库
表结构在最上面,图片不好上传,没办法
1)统计每个地区的合同金额合计并按此倒序排列显示

select sum(total) as numbers from salesOrder group by region order by numbers desc;

2)	统计出每个地区的销售人员数量

select region,count(distin
ct(sales)) from salesOrder group by region;

3)	统计每个地区合同金额最少的销售人员

???

4)	统计出所有超过本地区合同金额平均值的合同(orderId为合同id外键)及金额

???

5)	现为了方便,需把上表中每个地区的合计金额放入一张名为“saleReport”表中,
Region      total(合计)
写出相应的语句?

insert into saleReport select region
,sum(total) from salesOrder group by region;

6)	如果建立索引,应在那几个列上建立?建立什么样的索引。为什么?
???
4、	如果以前的系统是用的旧的技术,而你是追求新技术,但你以后的工作就是维护和二次开发以前的系统,你会怎么处理这个矛盾???
???

你可能感兴趣的:(java)