二狗的面試題整理

  閒來無事,整理一下最近參加面試遇到的一些優勢意思的面試題。html

1. finally與return相關的問題面試

  你們直接看代碼吧spa

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裏的語句還會執行嘛?答案是確定的。指針

 原理能夠參考這篇博文,傳送門code

 結論是finally中的代碼始終都會執行。htm

2.  4G的內存怎麼讀取大小爲8G的文件?blog

  大體思路是分塊讀,每一部分的大小都小於4g,而後利用yield進行返回。另外,在Linux系統下,還能夠使用split方法將大文件拆成小文件去讀。內存

3.  怎樣判斷一個鏈表是否有環?get

  最經典的方法就是快慢指針了。思路大概是這樣:從起點開始,分別設置兩個指針,滿指針每次的步長爲n,快指針的步長爲2n。這樣,若是確實有環存在,那麼必然存在快慢指針再次相遇的時候。若是沒有環,最終結果是快慢指針都的next節點都爲空。這樣就能夠分辨出是否包含環了。string

  

  去面試一下仍是有些好處的。日常工做上雖然都能處理了,可是一是眼界被限制住了,二是很難接觸到新的東西,甚至不多會去想一些這樣有意思的問題。同志仍需努力,加油吧.

相關文章
相關標籤/搜索