加入收藏 | 设为首页 | 会员中心 | 我要投稿 好传媒网 (https://www.haochuanmei.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > 交互 > 正文

史上最全Java面试题整理(附参考答案)

发布时间:2020-12-24 10:36:47 所属栏目:交互 来源:网络整理
导读:下列面试题都是在网上收集的,本人抱着学习的态度找了下参考答案,有不足的地方还请指正,更多精彩内容可以关注我的微信公众号:Java团长 1、面向对象的特征有哪些方面? 抽象:将同类对象的共同特征提取出来构造类。 继承:基于基类创建新类。 封装:将数据

<span class="hljs-class"><span class="hljs-keyword">class <span class="hljs-title">MyTask <span class="hljs-keyword">implements <span class="hljs-title">Callable<<span class="hljs-title">Integer> {
<span class="hljs-keyword">private <span class="hljs-keyword">int upperBounds;

<span class="hljs-function"&gt;<span class="hljs-keyword"&gt;public <span class="hljs-title"&gt;MyTask<span class="hljs-params"&gt;(<span class="hljs-keyword"&gt;int upperBounds) {
    <span class="hljs-keyword"&gt;this.upperBounds = upperBounds;
}

<span class="hljs-meta"&gt;@Override
<span class="hljs-function"&gt;<span class="hljs-keyword"&gt;public Integer <span class="hljs-title"&gt;call<span class="hljs-params"&gt;() <span class="hljs-keyword"&gt;throws Exception {
    <span class="hljs-keyword"&gt;int sum = <span class="hljs-number"&gt;0; 
    <span class="hljs-keyword"&gt;for(<span class="hljs-keyword"&gt;int i = <span class="hljs-number"&gt;1; i <= upperBounds; i++) {
        sum += i;
    }
    <span class="hljs-keyword"&gt;return sum;
}

}

<span class="hljs-class"><span class="hljs-keyword">class <span class="hljs-title">Test {

<span class="hljs-function"&gt;<span class="hljs-keyword"&gt;public <span class="hljs-keyword"&gt;static <span class="hljs-keyword"&gt;void <span class="hljs-title"&gt;main<span class="hljs-params"&gt;(String[] args) <span class="hljs-keyword"&gt;throws Exception {
    List<Future<Integer>> list = <span class="hljs-keyword"&gt;new ArrayList<>();
    ExecutorService service = Executors.newFixedThreadPool(<span class="hljs-number"&gt;10);
    <span class="hljs-keyword"&gt;for(<span class="hljs-keyword"&gt;int i = <span class="hljs-number"&gt;0; i < <span class="hljs-number"&gt;10; i++) {
        list.add(service.submit(<span class="hljs-keyword"&gt;new MyTask((<span class="hljs-keyword"&gt;int) (Math.random() * <span class="hljs-number"&gt;100))));
    }

    <span class="hljs-keyword"&gt;int sum = <span class="hljs-number"&gt;0;
    <span class="hljs-keyword"&gt;for(Future<Integer> future : list) {
        <span class="hljs-comment"&gt;// while(!future.isDone()) ;
        sum += future.get();
    }

    System.out.println(sum);
}

}

<span class="cke_reset cke_widget_drag_handler_container"><img class="cke_reset cke_widget_drag_handler" title="点击并拖拽以移动" src="data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==" alt="" width="15" height="15" data-cke-widget-drag-handler="1">

62、synchronized关键字的用法?

答:synchronized关键字可以将对象或者方法标记为同步,以实现对对象和方法的互斥访问,可以用synchronized(对象) { … }定义同步代码块,或者在声明方法时将synchronized作为方法的修饰符。在第60题的例子中已经展示了synchronized关键字的用法。

63、举例说明同步和异步。

(编辑:好传媒网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读