见天面试高新区面试了一家公司,简单的说说,今天的感受公司氛围挺好的,公司环境也挺好的因为自己的原因可能对于这场面试只能错过
今天面试的时候,开始给你一份面试题和相关调查,面试题自我感觉写的其实挺不错,所有的问题不说全对,但是心里还是有一点谱, 主要的问题是出现在数据库的这一方面,数据库一直浮于表面只会简单的sql 如视图 存储过程 游标 等等,不够深入
下面稍微总结一下,面试题的相关
1 问题 var 和 dynamic的区别
当时面试的回答: var是属于一种语法糖的存在她是由编译器经过程序的推断而产生的 她第一次出现在
dynamic 是一种绕过编译器而书写的代码使用dynamic很容易造成程序的不准确因为dynamic绕过编译器这样无论编写何种内容编译器都不会报错从而造成一定的不安全性
百度答案: var 在编译阶段已经确定类型,在初始化时候,必须提供初始化的值,而dynamic则可以不提供,它是在运行时才确定类型。
2 下面是自己写的方法 (晚上回来查的时候发现更简单的方法)
//1 1 2 3 5 8 13 21 34 使用迭代的方法获取的17位
1 //1 1 2 3 5 8 13 21 34 使用迭代的方法获取的17位 2 //使用迭代的方法 3 #region 使用迭代的方法自己面试时写的 4 static List<int> ids = new List<int>(); 5 public static int GetGuid() 6 { 7 if (ids.Count < 2) 8 { 9 ids.Add(1); 10 GetGuid(); 11 } 12 else if (ids.Count < 17) 13 { 14 ids.Add(ids[ids.Count - 2] + ids[ids.Count - 1]); 15 GetGuid(); 16 } 17 return ids[ids.Count - 2] + ids[ids.Count - 1]; 18 } 19 #endregion
3 .冒泡排序 没有什么好说的直接上代码
1 #region 冒泡排序 2 /// <summary> 3 /// 冒泡排序 4 /// </summary> 5 /// <param name="arr"></param> 6 /// <returns></returns> 7 private static int[] BubblingSort(int[] arr) 8 { 9 for (int i = 0; i < arr.Length; i++) 10 { 11 for (int j = 0; j < arr.Length - i - 1; j++) 12 { // 这里说明为什么需要-1 13 if (arr[j] > arr[j + 1]) 14 { 15 int temp = arr[j]; 16 arr[j] = arr[j + 1]; 17 arr[j + 1] = temp; 18 } 19 } 20 } 21 return arr; 22 } 23 #endregion
3 SQL去重的方法
① .group by 排序 (根据相关数据排序可以达到去重的效果)
② distinct
select distinct * from #tmp1;
select distinct Col1, Col2 from table1;(根据相关字段进行去重)
4 StringBuilder 和 String 的区别?
String 在进行运算时(如赋值、拼接等)会产生一个新的实例,而 StringBuilder 则不会。所以在大量字符串拼接或频繁对某一字符串进行操作时最好使用 StringBuilder,不要使用 String