12月8日(周一)

深圳市中博科创信息技术有限公司
这个是做华为外包的,题目主要是关于ERP技术的,还考了oracle的两条SQL语句。
印象不是很深,谈的时候还不错,但是对外包比较感冒。下午姓刘的人打电话,说如果感兴趣就组织去华为再做面试,比较郁闷的说。没时间去。

下午去络道科技,是深圳邮政局下属的,笔试题有很多基础题,难做的是Thread相关的(我以前做的东西很少涉及到),还出了关于hibernate,AOP, Spring( Spring的容器是采用AOP)。这些更难搞,项目中做的不多。一场下来比较心虚,唉。
下面是一些我比较模糊的题目:
1 运行时异常与一般异常有什么区别?
异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种党见运行错误。Java编译器要求方法心须声明抛出可能发生的
非运行时异常,但是并不要求必须声明抛出未捕获的运行时异常。这个题目主要靠自己在实际使用中自己的总结)

2 最有效的 2乘以8等于几?(2<<3)一般资料中都有,但是出现在java笔试题中,就比较郁闷了。(平时根本就没去关注位移运算符)

3 设计4个线程,让其中两个+1,另外两个-1 (大致是这个意思,相关资料中也很容易找到)
以下程序使用内部类实现线程,对j增减的时候没有考虑顺序问题。
public class ThreadTest1{
private int j;
public static void main(String args[]){
ThreadTest1 tt=new ThreadTest1();
Inc inc=tt.new Inc();
Dec dec=tt.new Dec();
for(int i=0;i<2;i++){
Thread t=new Thread(inc);
t.start();
t=new Thread(dec);
t.start();
}
}

private synchronized void inc(){
j++;
System.out.println(Thread.currentThread().getName()+"-inc:"+j);
}
private synchronized void dec(){
j--;
System.out.println(Thread.currentThread().getName()+"-dec:"+j);
}

class Inc implements Runnable{
public void run(){
for(int i=0;i<100;i++){
inc();
}
}
}

class Dec implements Runnable{
public void run(){
for(int i=0;i<100;i++){
dec();
}
}
}
}( Inc,Dec是内部类,可以直接调用ThreadTest1的方法)

4 同步、异步有何不同? Sleep、wait区别?
同步是指:发送方发出数据后,等接收方发回响应以后才发下一个数据包的通讯方式。
异步是指:发送方发出数据后,不等接收方发回响应,接着发送下个数据包的通讯方式。
(同步是指两个线程的运行是相关的,其中一个线程要阻塞等待另外一个线程的运行。异步的意思是两个线程毫无相关,自己运行自己的)

sleep()方法是使线程停止一段时间的方法。在sleep 时间间隔期满后,线程不一定立即恢复执行。这是因为在那个时刻,其它线程可能正在运行而且没有被调度为放弃执行,除非(a)“醒来”的线程具有更高的优先级 (b)正在运行的线程因为其它原因而阻塞。
wait()是线程交互时,如果线程对一个同步对象x 发出一个wait()调用,该线程会暂停执行,被调对象进入等待状态,直到被唤醒或等待时间到。

5 一线程进入一个同步对象的一个method,问其他线程是否可以访问该对象的其他methods?
不能,一个对象的一个synchronized方法只能由一个线程访问(回答有点不对口,问的是:访问其他 method, 回答的时候只是针对那个同步的method,应该说 对象的synchronized方法不能进入了,但它的其他方法还是可以访问的。)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值