搜狗2015JAVA笔试题解析
需积分: 10 96 浏览量
更新于2024-09-08
收藏 246KB PDF 举报
"搜狗2015年对JAVA工程师进行的笔试题"
这篇资料包含了搜狗公司在2015年对JAVA工程师招聘时的笔试题目。这些题目旨在测试候选人在JAVA编程语言、多线程操作以及正则表达式等方面的基础知识和应用能力。
一、关于Java基础知识
在给定的代码示例中,有一个简单的Java程序:
```java
public class Example extends Thread {
@Override
public void run() {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.print("run");
}
public static void main(String[] args) {
Example example = new Example();
example.run();
System.out.print("main");
}
}
```
这个程序定义了一个名为`Example`的类,它继承了`Thread`类。在`run`方法中,线程会休眠1秒然后打印"run"。在`main`方法中,创建了一个`Example`对象并调用其`run`方法,然后立即打印"main"。由于`run`方法没有被`start`,而是直接调用,因此它不会以新线程的方式运行,而是作为主线程的一部分。所以,程序的输出是"mainrun",正确答案是A。
二、正则表达式
第二个问题是关于使用正则表达式截取字符串中第一个出现的英文左括号之前的内容。例如,对于字符串"北京市(海淀区)(朝阳区)(西城区)",目标是截取"北京市"。正则表达式应该匹配到第一个"("之前的所有字符。正确答案是A,即`.*?(?=\\())`,这个正则表达式会匹配到直到第一个左括号(`\(`)之前的任意字符,`.*?`表示非贪婪匹配任何字符,`(?=\\())`是一个正向预查,表示查找后面紧跟`\(`的位置。
三、同步方法与字符串操作
第三个题目涉及到Java中的同步方法。给定的代码片段中,`main`方法被声明为`synchronized`,这意味着只有一个线程可以执行该方法。由于`main`方法是静态的,它的锁是类的锁,而不是实例的锁。在这个例子中,由于没有其他线程交互,`HelloSogou`将直接打印,因此正确答案是A。
四、字符编码转换
第四题考察的是字符编码的转换。题目给出的选项是关于从GBK编码转换到UTF-8编码的代码。正确的做法是首先将GBK编码的字节序列转换为字符串,然后再将这个字符串按照UTF-8编码转换回字节序列。正确选项是B:
```java
dst = new String(src, "GBK").getBytes("UTF-8");
```
五、线程与执行顺序
最后一道题目是一个关于线程执行的问题。创建了一个新的线程并调用了`run`方法,但是没有使用`start`。这意味着`run`方法会在主线程中直接执行,而不是作为一个独立的线程。因此,在`System.out.print("Hello")`执行之前,`Sogou()`方法会先运行。由于`Sogou()`的具体内容未知,我们无法确定输出,但题目已经给出了结果不确定的选项D。
这些题目涵盖了Java基础,多线程,正则表达式,字符编码转换以及线程执行顺序等多个方面,都是JAVA工程师应当熟练掌握的核心技能。
1060 浏览量
3705 浏览量
173 浏览量
211 浏览量
155 浏览量
1845 浏览量
166 浏览量
125 浏览量
2015-11-27 上传

朱文跃
- 粉丝: 3
最新资源
- Node.js基础代码示例解析
- MVVM Light工具包:跨平台MVVM应用开发加速器
- Halcon实验例程集锦:C语言与VB的实践指南
- 维美短信API:团购网站短信接口直连解决方案
- RTP转MP4存储技术解析及应用
- MySQLFront客户端压缩包的内容分析
- LSTM用于PTB数据库中ECG信号的心电图分类
- 飞凌-MX6UL开发板QT4.85看门狗测试详解
- RepRaptor:基于Qt的RepRap gcode发送控制器
- Uber开源高性能地理数据分析工具kepler.gl介绍
- 蓝色主题的简洁企业网站管理系统模板
- 深度解析自定义Launcher源码与UI设计
- 深入研究操作系统中的磁盘调度算法
- Vim插件clever-f.vim:深度优化f,F,t,T按键功能
- 弃用警告:Meddle.jl中间件堆栈使用风险提示
- 毕业设计网上书店系统完整代码与论文