梦蓝樱飞(一点一滴, 记录个人成长之路)

时光荏苒,祝愿勿忘曾经的初心 && 活在当下,一定做好现在的事情

我的2018春招部分笔试面试总结

// 好未来笔试
// 内存的复制(C++)
void* mymemcpy(void* dest, void* source, size_t count) {
    void* ret = dest;
    if (dest <= source || dest >= (source + count))
    {
​        // 赋值并移动指针
        while (count --)
            *dest++ = *source++;
    }
    else
    {
        dest += count - 1;
        source += count - 1;

        while (count--)
            *dest-- = *source--;
    }
​
    return ret;
}

链家笔试:
题目描述:
在小红家里面,有n组开关,触摸每个开关,可以使得一组灯泡点亮。
现在问你,使用这n组开关,最多能够使得多少个灯泡点亮呢?

第一行一个n,表示有n组开关。
接下来n行,每行第一个整数为k,表示这个开关控制k个灯泡,接下来k个整数,表示控制的灯泡序号。
满足:
1<=n<=1000
1<=k<=1000
序号是在int范围内正整数。

输出最多多少个灯泡点亮。

3
1 1
1 2
2 1 2

2

// HashSet去重(题目意思理解!)
import java.util.HashSet;  
import java.util.Scanner;  

public class Main {  
    public static void main(String[] args) {  
        HashSet<Integer> hSet=new HashSet<>();  
        Scanner scanner=new Scanner(System.in);  
        int n=scanner.nextInt();  
        for(int i=0;i<n;i++)  
        {  
            int k=scanner.nextInt();  
            for(int j=0;j<k;j++)  
            {  
                int value=scanner.nextInt();  
                hSet.add(value);  
            }  
        }  
        System.out.println(hSet.size());  

    }  

} 

面试:
Spring Cloud
利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发

顺丰: (4.13)
自我介绍
大学里做过的项目
类加载机制
加载、验证、准备、解析、初始化五个阶段

HashMap和Hashtable
外部同步HashMap的静态方法: Collections.synchronizedMap(Map)

Java中的锁
公平锁、非公平锁、自旋锁、可重入锁、偏向锁、轻量级锁、重量级锁、读写锁、互斥锁

用过的设计模式
单例, 工厂, 适配器, 策略, 代理, 迭代器etc

单例模式的优缺点
主要缺点:
1、由于单利模式中没有抽象层,因此单例类的扩展有很大的困难。
2、单例类的职责过重,在一定程度上违背了“单一职责原则”。
3、滥用单例将带来一些负面问题,
如为了节省资源将数据库连接池对象设计为的单例类,
可能会导致共享连接池对象的程序过多而出现连接池溢出;
如果实例化的对象长时间不被利用,系统会认为是垃圾而被回收,
这将导致对象状态的丢失。

Spring核心 Ioc和AOP
在传统的程序设计中,当调用者需要被调用者的协助时,通常由调用者来创建被调用者的实例。
但在spring里创建被调用者的工作不再由调用者来完成,因此控制反转(IoC);
创建被调用者实例的工作通常由spring容器来完成,
然后注入调用者,因此也被称为依赖注入(DI),依赖注入和控制反转是同一个概念。
你有什么问题要问我?


顺丰HR面试:
自我介绍
问了简历上的所有项目
如何解决其中的难点
其他同学对我的评价
(我说, 宅…)
自己的缺点
家庭里, 父母做的对我影响最大的一件事你有什么问题要问我?


七牛云笔试:
浮点数在计算机的表示, 判断是否相等
浮点数是将特定长度的连续字节的所有二进制位分割为特定宽度的符号域,指数域和尾数域三个域, 其中保存的值分别用于表示给定二进制浮点数中的符号,指数和尾数。 这样,通过尾数和可以调节的指数(所以称为”浮点”)就可以表达给定的数值了
V = (-1)^s×M×2^E
  (1)(-1)^s表示符号位,当s=0,V为正数;当s=1,V为负数。
  (2)M表示有效数字,大于等于1,小于2,但整数部分的1可以省略。
  (3)2^E表示指数位。

计算机判断两个数相等,将判断所有的二进制位是否相等,当所有的位都相等时,两个数才相等,绝对的相等。
但人们对小数来说,保留小数点后几位就足够了,因此两个小数的差在可接受的精度范围内就可以被认为是相等的。

网站session机制是什么, 用编程语言实现它.
Session是在服务端保存的一个数据结构,用来跟踪用户的状态,这个数据可以保存在集群、数据库、文件中;

Session在服务器端具体是怎么实现的呢?我们使用session的时候一般都是这么使用的:
request.getSession()或者request.getSession(true)。

这个时候,服务器就检查是不是已经存在对应的Session对象,见HttpRequestBase类
doGetSession(boolean create)方法:

Session本身也是实现为一个HashMap,因为Session设计为存放key-value键值对,Tomcat里面Session实现类是StandardSession,里面一个attributes属性:

        if (id == null)
             return (null);
         synchronized (sessions) {
             Session session = (Session) sessions.get(id);
             return (session);
         } 

数组里的数重新排序, 形成最小数, 考虑大数问题.

package org.lxy.exam.qiniuyun;

/**
 * Author menglanyingfei
 * Created on 2018.04.14 20:09
 */

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

public class Main2 {
    public static String PrintMinNumber(int[] numbers) {
        if (numbers == null || numbers.length == 0)
            return "";

        MyComparator myComparator = new MyComparator();
        List<Integer> list = new ArrayList<Integer>();
        for (int i : numbers) {
            list.add(i);
        }
        Collections.sort(list, myComparator);
        StringBuilder sb = new StringBuilder();
        for (Integer val : list) {
            sb.append(val);
        }

        return sb.toString();
    }

    private static class MyComparator implements Comparator<Integer> {
        @Override
        public int compare(Integer o1, Integer o2) {
            String s1 = String.valueOf(o1);
            String s2 = String.valueOf(o2);
            String str1 = s1 + s2;
            String str2 = s2 + s1;
            return str1.compareTo(str2);
        }
    }

    public static void main(String[] args) {
        int[] arr = {12, 2, 4};
        System.out.println(PrintMinNumber(arr));
    }
}

给定一个树结构, 并为每个节点都赋予一个权值w,
对于任意节点M, 你能求出它所有子节点(包括自身节点)
中权值w的最大值

======================================================
云丛笔试:
冒泡优化

    public static void bubbleSort(int[] arr) {
        if (arr == null || arr.length == 0) {
            return;
        }

        boolean flag = true;
        for (int i = 0; i < arr.length - 1 && flag; i++) {
            for (int j = 0; j < arr.length - 1 - i; j++) {
                flag = false;
                if (arr[j] > arr[j + 1]) {
                    swap(arr, j, j + 1);
                    flag = true;
                }
            }
        }
    }

======================================================
云丛面试:
大学里做过的项目

队列
阻塞式和非阻塞式队列
二叉树
链表和数组
消息队列
Spring里定时任务(@Scheduled)
单例模式实现方式
AOP中两种动态代理模式(CGLIB)
你有什么问题要问我?

======================================================
当然, 这是一部分内容, 因为某些原因, 就没有及时整理和总结!
所以, 我决定接下来先复习操作系统(Linux), 数据库, 网络
数据结构和算法(一直坚持!)

现在, 也准备好好准备秋招了! 加油, 天道酬勤!

阅读更多
版权声明:本文为 梦蓝樱飞 原创文章,可以随意转载,但真诚希望在明确位置注明原文超链接的出处!!! 非常感谢! https://blog.csdn.net/menglanyingfei/article/details/80397547
文章标签: Java面试 找工作
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭