`

迅雷编程题目

 
阅读更多

1)有三个线程ID分别是A、B、C,请有多线编程实现,在屏幕上循环打印10次ABCABC… 
2)假如有字符串“6sabcsssfsfs33” ,用最有快速的方法去掉字符“ab3”,不能用java内置字符串方法(indeOf,substring,replaceAll等)? 

 

 

第一个题目主要考的是java多线程的知识。我们可以用操作系统中经典的生产者,消费者模式来解决

 

我们用一个队列来作为共享的资源,如果多个线程需要访问共享的资源,那么就需要我们对线程进行控制,也就是对线程的同步和互斥问题进行控制。

 

对于这个题目,我们可以将一个队列来生产ABC字符串,那么消费就对象的是打印ABC字符串。这样就和生产者,消费者模式很像。

 

下面是具体的代码

 

 

package com.chen106106.java;

import java.util.LinkedList;


public class Sycn1 {
	private static int MAX = 1;
	
	private static int COUNT = 10;
	private LinkedList<Object> myList =new LinkedList<Object>();
    public static  int count = 0;
    
    public Sycn1(){
    }
    
    public void init(){
            Producer p = new Producer("p");
            Consumer c = new Consumer("c");
            p.start();
            c.start();
    }
    
    public static void main(String[] args) throws Exception{
        Sycn1 s3 = new Sycn1();
        s3.init();
    }
    
    class Producer extends Thread{
    	
    	Producer(String name){
    		super(name);
    	}
        public void run(){
            while(true){
                synchronized(myList){
                try{
                    if( COUNT < Sycn1.count ){
                    	System.exit(0);
                    }
                    if(myList.size() == MAX){
                        //System.out.println("warning: it's full!");
                    	myList.wait();
                    }
                   // Object o = new Object();
                	count++;
                    SharedOject o = new SharedOject("ABC");
                    myList.add(o);
                    //System.out.println("Producer: " + o);
                   // o.print();
                    myList.notify();
                    }catch(InterruptedException e){
                        System.out.println("producer is interrupted!");
                    }
                }
            }
        }
    }
    
    class Consumer extends Thread{
    	
    	public Consumer(String name){
    		super(name);
    	}
        public void run(){
            while(true){
                synchronized(myList){
                try{
                   if(myList.size() == 0){
                        //System.out.println("warning: it's empty!");
                    	myList.wait();
                   }
                    //Object o = myList.take();
                    SharedOject o = (SharedOject) myList.removeLast();
                    //System.out.println("Consumer: " + o);
                    o.print();
                    myList.notify();
                    }catch(InterruptedException e){
                        System.out.println("producer is interrupted!");
                    }
                }
            }
        }
    }
    
    class SharedOject{
    	
    	public SharedOject(String value){
    		this.value = value;
    	}
    	
    	public void print(){
    		//System.out.println(name+"-"+value+"-"+count);
    		System.out.print(value);
    	}
    	private String value;
    	
    	private String name = Thread.currentThread().getName();
    }
    
}

 

 

 

第二题  就是将字符串转为字符串数组,对每个字符进行评定,如果包含指定的字符ab3,那么就去掉。将满足条件的字符放到新的字符数组中。

分享到:
评论

相关推荐

    迅雷c++笔试面试题

    【迅雷C++笔试面试题】是针对求职者在应聘迅雷公司相关职位时可能会遇到的测试题目,这些题目通常涵盖了C++编程语言的核心概念、语法特性、数据结构、算法以及面向对象编程等方面的知识。在准备这样的面试时,考生...

    迅雷面试笔试题目

    迅雷面试笔试题目涉及到多个知识点,包括算法、数据结构、编程实现、逻辑推理等。针对提供的内容,我们可以深入分析其中的技术要点。 **1. 数据库查询优化** 题目中提出了一个问题:如何使得90%的查询能在100毫秒...

    java面试题 迅雷Java面试题 面试题

    这道题目是关于Java编程中的数组操作,要求在给定的数组`int[] d`中删除所有等于10的元素,并返回被删除的元素个数。同时,题目强调了时间和空间优化,因此我们需要寻找一种高效的方法来解决这个问题。 首先,我们...

    2018迅雷面试题

    根据提供的文件信息,我们可以将重点放在“2018迅雷面试题”的相关内容上,特别是与Java相关的面试知识点。下面将结合标题、描述以及部分内容,提取出与Java相关的面试知识点。 ### Java相关知识点 #### 1. Java...

    2018最新iOS面试题全集

    这份"2018最新iOS面试题全集"无疑是iOS开发者提升自我、准备面试的关键参考资料。以下将根据标题、描述以及标签,深入探讨其中可能包含的重要知识点。 一、iOS基础 这份资料可能会涵盖iOS开发的基础知识,包括...

    迅雷软件笔试题目,希望有用

    迅雷作为知名的互联网企业,其笔试题目往往涵盖了广泛的计算机科学和技术知识,特别是对于C/C++编程语言的深入理解和应用。本篇文章将深入解析“迅雷软件笔试题目”,探讨其中涉及的关键知识点,帮助准备此类笔试的...

    2012迅雷+阿里巴巴+搜狐校园招聘面试题

    《2012迅雷+阿里巴巴+搜狐校园招聘面试题解析》 在2012年的校园招聘季,迅雷、阿里巴巴以及搜狐等知名企业纷纷推出了各自的面试题,为即将步入职场的应届毕业生提供了宝贵的求职参考。这些公司的面试题不仅检验了...

    2024年java面试题-并发编程相关面试题

    ### 2024年Java面试题 - 并发编程相关面试题解析 #### 一、并发编程的重要性 - **目的**:并发编程的核心目的是为了提高计算机系统的整体性能,特别是针对现代多核处理器架构。 - **提升多核CPU利用率**:通过创建...

    2017java面试题

    "2017java面试题"这个压缩包文件提供了丰富的资源,帮助Java开发者准备面试,深化对Java开发的理解。 文档"Java面试宝典2017.doc"可能包含了以下核心Java知识点: 1. **基础语法**:这包括变量、数据类型、运算符...

    迅雷最新面试题.doc

    迅雷作为知名的互联网技术公司,其面试题涵盖了多个IT领域的知识点,主要集中在Java基础、操作系统、数据库、软件设计模式以及框架应用等方面。以下是对这些面试题的详细解答: 1. **Ajax原理**:Ajax...

    迅雷Java和C++面试题

    根据给定文件的信息,我们可以推断出这是一份关于迅雷公司在2008年实习生招聘中的面试题目集合,主要涉及C++和Java两大编程语言。尽管具体的面试题目没有给出,但我们可以根据C++和Java这两门语言的特点,以及通常在...

    数据结构+算法面试100题全部答案集锦

    但是,作者鼓励不断学习和分享,并持续关注面试题目的最新动态,例如提到整理了九月和十月份的腾讯、创新工场、淘宝、百度、阿里巴巴和迅雷搜狗等公司的最新面试题。这说明面试题目是随着技术发展和市场需求不断更新...

    并发编程 80 道面试题及答案.docx

    并发编程面试题及答案 并发编程是一种编程技术,旨在充分利用多核CPU的计算能力,提高程序的执行效率和响应速度。并发编程通常用于需要高速响应的应用场景,如迅雷多线程下载、数据库连接池、分批发送短信等。 ...

    校园招聘面试题面经汇总——华为,中兴,腾讯,迅雷,智力题,以及一些外企

    在IT行业的校园招聘中,企业通常会通过一系列的面试题来评估应聘者的技能、思维能力和潜在价值。华为、中兴、腾讯、迅雷等知名企业,以及一些外企,都有各自的面试策略和偏好,这些公司在面试过程中可能会涉及到的...

    迅雷面试题目迅雷面试题目迅雷面试题目

    以下是一些可能的迅雷面试题目及相关的知识点,涵盖了C++编程、数据结构、算法、网络协议等方面: 1. C++基础: - 构造函数与析构函数:了解它们的作用、何时自动调用,以及如何使用智能指针(如`std::unique_ptr`...

    并发编程 50 道面试题及答案.docx

    并发编程 50 道面试题及答案 本文档总结了并发编程的重要知识点,涵盖了并发编程的定义、优点、缺点、应用场景、原子性、可见性、有序性、线程安全、死锁、上下文切换等概念,并对比了并发、并行、串行的差异,最后...

    2014迅雷校园招聘笔试题(选择题)

    【2014迅雷校园招聘笔试题】中涉及的IT知识点主要集中在C++编程语言、数据结构与算法、编译原理以及网络协议等方面。以下是对这些知识点的详细解释: 1. **指针与内存管理**: - 单选题第2题提到,32位地址的指针...

    迅雷笔试题汇总整理(较全)

    迅雷是中国知名的互联网技术公司,以其下载工具迅雷下载器而闻名,其笔试题库是求职者准备面试的重要参考资料。这份“迅雷笔试题汇总整理”涵盖了多种IT领域的知识,旨在测试应聘者的综合素质和技术能力。以下是对...

Global site tag (gtag.js) - Google Analytics