首页 > 其他 > 详细

二狗的面试题整理

时间:2019-11-02 16:15:57      阅读:81      评论:0      收藏:0      [点我收藏+]

  闲来无事,整理一下最近参加面试遇到的一些优点意思的面试题。

1. finally与return相关的问题

  大家直接看代码吧

using System;

namespace TestReturn
{
    public class Program
    {
        public static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");

            TestReturn();

            Console.ReadLine();

            TestReturn2();

            Console.ReadLine();
        }

        private static void TestReturn()
        {
            Console.WriteLine("1");

            try
            {
                Console.WriteLine("2");
                return;
            }
            catch
            {
                Console.WriteLine("3");
            }
            finally
            {
                Console.WriteLine("4");
            }

            Console.WriteLine("5");
        }

        private static void TestReturn2()
        {
            Console.WriteLine("O1");

            try
            {
                Console.WriteLine("O2");
                throw new Exception();
            }
            catch
            {
                Console.WriteLine("O3");
                return;
            }
            finally
            {
                Console.WriteLine("O4");
            }

            Console.WriteLine("O5");
        }
    }
}

 

 try语句块内执行return语句后,finally里的语句还会执行嘛?答案是肯定的。

技术分享图片

 原理可以参考这篇博文,传送门

 结论是finally中的代码始终都会执行。

2.  4G的内存怎么读取大小为8G的文件?

  大致思路是分块读,每一部分的大小都小于4g,然后利用yield进行返回。另外,在Linux系统下,还可以使用split方法将大文件拆成小文件去读。

3.  怎样判断一个链表是否有环?

  最经典的方法就是快慢指针了。思路大概是这样:从起点开始,分别设置两个指针,满指针每次的步长为n,快指针的步长为2n。这样,如果确实有环存在,那么必然存在快慢指针再次相遇的时候。如果没有环,最终结果是快慢指针都的next节点都为空。这样就可以分辨出是否包含环了。

  

  去面试一下还是有些好处的。平常工作上虽然都能处理了,但是一是眼界被限制住了,二是很难接触到新的东西,甚至很少会去想一些这样有意思的问题。同志仍需努力,加油吧.

二狗的面试题整理

原文:https://www.cnblogs.com/dogtwo0214/p/11781533.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!