博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一面一得
阅读量:6086 次
发布时间:2019-06-20

本文共 3730 字,大约阅读时间需要 12 分钟。

一面一得,去面试不能白白去,得有收获。

今天(2017年3月29号)下午在格瓦拉生活网面试。

 

笔试题:

1.StringBuilder  StringBuffer  String的区别?string 为什么是不可变的?

答:1.三者在执行速度方面的比较:StringBuilder > StringBuffer > String

  2.String <(StringBuffer,StringBuilder)的原因
    String:字符串常量
    StringBuffer:字符创变量
    StringBuilder:字符创变量
    从上面的名字可以看到,String是“字符创常量”,也就是不可改变的对象。对于这句话的理解你可能会产生这样一个疑问 ,比如这段代码:
    1 String s = "abcd";
    2 s = s+1;
    3 System.out.print(s);// result : abcd1

          http://www.codeceo.com/article/why-java-string-immutable.html

2.排序算法

http://www.cnblogs.com/0201zcr/p/4764427.html

/**     * 选择排序算法     * 在未排序序列中找到最小元素,存放到排序序列的起始位置       * 再从剩余未排序元素中继续寻找最小元素,然后放到排序序列末尾。      * 以此类推,直到所有元素均排序完毕。      * @param numbers     */    public static void selectSort(int[] numbers)    {    int size = numbers.length; //数组长度    int temp = 0 ; //中间变量        for(int i = 0 ; i < size ; i++)    {        int k = i;   //待确定的位置        //选择出应该在第i个位置的数        for(int j = size -1 ; j > i ; j--)        {        if(numbers[j] < numbers[k])        {            k = j;        }        }        //交换两个数        temp = numbers[i];        numbers[i] = numbers[k];        numbers[k] = temp;    }    }

3.单例模式

http://www.cnblogs.com/yinxiaoqiexuxing/p/5605338.html

**  * 方法一 * 单例模式的实现:饿汉式,线程安全 但效率比较低  */  public class SingletonTest {      // 定义一个私有的构造方法    private SingletonTest() {      }      // 将自身的实例对象设置为一个属性,并加上Static和final修饰符    private static final SingletonTest instance = new SingletonTest();      // 静态方法返回该类的实例    public static SingletonTest getInstancei() {          return instance;      }    } 4.智力题(小明一家过桥) 现在小明一家过一座桥,过桥时候是黑夜,所以必须有灯.现在小明过桥要1秒,小明的弟弟要3秒,小明的爸爸要6秒,小明的妈妈要8秒,小明的爷爷要12秒.每次过桥只能过2人,两人过桥的速度以最慢者为定.还有过桥后要已过桥的其中一人送灯也算秒速,而灯在30秒后就会熄灭,过桥时不能没有灯.问小明一家怎样过桥? 答:答案三种: 1.第一步,小明与弟弟过桥,小明回来,耗时4秒;第二步,小明与爸爸过河,弟弟回来,耗时9秒;第三步,妈妈与爷爷过河,小明回来,耗时13秒;最后,小明与弟弟过河,耗时4秒,总共耗时30秒  2.小明和弟弟过桥(3秒) + 小明回来(1秒)+ 爷爷和妈妈过桥(12秒) + 弟弟回来(3秒)+ 爸爸和小明过桥(6秒) + 小明回来(1秒) + 小明和弟弟过桥(3秒)= 29秒  3.小明和弟弟过桥(3秒) + 弟弟回来(3秒)+ 爷爷和妈妈过桥(12秒) + 小明回来(1秒)+ 爸爸和小明过桥(6秒) + 小明回来(1秒) + 小明和弟弟过桥(3秒)= 29秒 (我算成 32秒 ) 5.你让工人为你工作7天,给工人的回报是一根金条。金条平分成相连的7段,你必须在每天结束时都付费,如果只许你两次把金条弄断,你如何给你的工人付费? 答:分成比例1:2:4的三段,因为两次弄断就是三段,第一天你给1,第二天你给2,找回你1,你自己就有1和4,第三天再给1,自己剩下4,第四天给4,然后叫他把1.2找给你,第五天给1,第六天给2叫他1找给你,第七天把最后1给他. 6.10个箱子,每个箱子里有10个苹果.其中有一个箱子里的苹果每个是9两.其余每箱里的苹果都是10两.但是,只有一个称,只能称一次.怎样一下子称出那箱每个是9两的苹果? 答:第一箱苹果拿一个,第二箱拿两个,如此类推,第十箱十个.    一称,少一两就是第一箱,同理少多少量就是多少箱 (我答成分3次称) 7.设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1

/**

* 设计 4 个 ( 可以是 n 个 ) 线程,其中两个线程每次对 j 增加 1 ,另外两个线程对 j 每次减少 1

*/

 

package com.jiaocaigen.test;

 

public class Test {

 

// 采用 Runnable 接口方式创建的多条线程可以共享实例属性

private int i ;

 

// 同步增加方法

private synchronized void inc(){

i ++;

System. out .println(Thread.currentThread().getName()+ "--inc--" + i );

}

 

// 同步减算方法

private synchronized void dec(){

i --;

System. out .println(Thread.currentThread().getName()+ "--dec--" + i );

}

 

// 增加线程

class Inc implements Runnable {

public void run() {

inc();

}

}

 

// 减算线程

class Dec implements Runnable{

public void run() {

dec();

}

}

 

public static void main(String[] args) {

 

Test t = new Test();

 

// 内部类的实例化

Inc inc = t. new Inc();

Dec dec = t. new Dec();

 

// 创建 2*n 个线程 此处 n=2

for ( int i = 0; i < 2; i++) {

new Thread(inc).start();

new Thread(dec).start();

}

}

}

8.session和cookie的区别和联系

cookie 和session 的区别: 1、cookie数据存放在客户的浏览器上,session数据放在服务器上。 2、cookie不是很安全,别人可以分析存放在本地的COOKIE并进行    考虑到安全应当使用session。 3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能    考虑到减轻服务器性能方面,应当使用COOKIE。 4、单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。 cookie 和session 的联系: session是通过cookie来工作的 session和cookie之间是通过$_COOKIE['PHPSESSID']来联系的,通过$_COOKIE['PHPSESSID']可以知道session的id,从而获取到其他的信息。 在购物网站中通常将用户加入购物车的商品联通session_id记录到数据库中,当用户再次访问是,通过sessionid就可以查找到用户上次加入购物车的商品。因为sessionid是唯一的,记录到数据库中就可以根据这个查找了。 9.

 

 

转载于:https://www.cnblogs.com/daiwei1981/p/6640911.html

你可能感兴趣的文章
性能不好怎么办?对着清单撸一遍[转]
查看>>
一文读懂物体分类AI算法:LeNet-5 AlexNet VGG Inception ResNet MobileNet
查看>>
量子十问之一:量子究竟是什么?读过你就不会相信“量子水”了
查看>>
宜信陈欢:为何你要用区块链技术?真的准备好了吗?
查看>>
Android 渗透测试学习手册 第四章 对 Android 设备进行流量分析
查看>>
OpenCV的+安卓+号牌识别(OpenCV + Android + 图像水平矫正)
查看>>
话说区块链,它真的不是比特币
查看>>
展望VR AR 2017,旅游、营销以及家装行业或许会火一把
查看>>
“九”答不可 | 如何设计量子计算机?科学家称其速度存在理论上限
查看>>
蓝凌副总裁夏敬华:智明当下,慧看未来——移动互联下企业知识管理应用趋势...
查看>>
Mac下的SSH插件(默认自带)
查看>>
安卓应用安全指南 4.6.3 处理文件 高级话题
查看>>
独家专访阿里高级技术专家北纬:Dubbo开源重启半年来的快意江湖
查看>>
黑科技时代,不了解这些你就OUT了
查看>>
机器视觉中评价光源质量的指标
查看>>
AI为移动医疗APP加码
查看>>
Webpack 入门教程一
查看>>
Keras上的VGGNet、ResNet、Inception与Xception
查看>>
关于python的bottle框架跨域请求报错问题的处理
查看>>
dirname() 函数
查看>>