1、请解释一下String为什么不可变?

String是final修饰,不可变,同时string底层是字符数组也是final修饰,这样做首先是安全,比如hashset中用string做为键,不会出现string变化,导致违反唯一键。另外节约内存。

2、请说明一下final, finally, finalize的区别。

final用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。

finally是异常处理语句结构的一部分,表示总是执行。

finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法。

3、输入一棵二叉树,判断该二叉树是否是平衡二叉树。

public static boolean IsBalanced_Solution(TreeNode root) {if(root == null){return true;}int left = iterTree(root.left);int right = iterTree(root.right);if(Math.abs(left-right) > 1){return false;}return true;}private static int iterTree(TreeNode root) {if(root == null){return 0;}int left = iterTree(root.left);int right = iterTree(root.right);return left > right ? (left+1) : (right+1);}

1、请说明类和对象的区别

类是对象的抽象,对象是类的实例

2、请说明Overload和Override的区别,Overloaded的方法是否可以改变返回值的类型?

重载发生在一个类中,在编译期绑定,方法名相同而参数列表不同;
重写发生在父子类中,在运行期绑定,方法名相同,参数列表相同,方法体不同,主要遵循一大二小三相等:
访问修饰符要大于或等于父类,
返回类型如果是基本数据类型的话,要与父类相同,如果是引用类型的话,小于过等于父类;
抛出异常要比父类小或等于。

3、输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。

https://blog.csdn.net/qq_33575542/article/details/81054108

&是二进制“与”运算,参加运算的两个数的二进制按位进行运算,运算的规律是:
0 & 0=0
0 & 1=0
1 & 0=0
1 & 1=1

对于参加运算的数要换算为二进制进行运算,例如3 & 2的结果是2,过程如下:
3 & 2
=0111 & 0010
=0010
=2

思路:

把一个整数和它减去1的结果做位与运算,相当于把它最右边的1变成0。

所以,这种方法,只要这个整数有几个1,就做几次这样的操作。

private static int NumberOf1(int n){int  count = 0;while(n!=0){count++;n = n&(n-1);}return count;
}

牛客的AI模拟面试(1)相关推荐

  1. 有三AI模拟面试服务上线,一对一服务助你求职

    文/编辑 | 言有三 各位粉丝朋友们,今天正式上线有三AI模拟面试服务,在这里会给大家提供有偿的模拟面试,针对简历写作,项目技能,求职方向等做相关辅导. 模拟面试服务内容 要找到一份好工作可以是一个非 ...

  2. 牛客网《BAT面试算法精品课》学习笔记

    目录 牛客网<BAT面试算法精品课>学习笔记 牛客网<BAT面试算法精品课>笔记一:排序 牛客网<BAT面试算法精品课>笔记二:字符串 牛客网<BAT面试算法 ...

  3. Java里面jvr,寻找下一个结点 牛客网 程序员面试金典 C++ java Python

    寻找下一个结点 牛客网 程序员面试金典 C++ java Python 题目描述 请设计一个算法,寻找二叉树中指定结点的下一个结点(即中序遍历的后继). 给定树的根结点指针TreeNode* root ...

  4. 二进制小数 牛客网 程序员面试金典 C++ Python

    二进制小数 牛客网 程序员面试金典 题目描述 有一个介于0和1之间的实数,类型为double,返回它的二进制表示.如果该数字无法精确地用32位以内的二进制表示,返回"Error". ...

  5. 原串反转 牛客网 程序员面试金典 C++ Python

    原串反转 牛客网 程序员面试金典 C++ Python 题目描述 请实现一个算法,在不使用额外数据结构和储存空间的情况下,翻转一个给定的字符串(可以使用单个过程变量). 给定一个string iniS ...

  6. 空格替换 牛客网 程序员面试金典 C++ Python

    空格替换 牛客网 程序员面试金典 C++ Python 题目描述 请编写一个方法,将字符串中的空格全部替换为"%20".假定该字符串有足够的空间存放新增的字符,并且知道字符串的真实 ...

  7. 集合栈 牛客网 程序员面试金典 C++ Python

    集合栈 牛客网 程序员面试金典 C++ Python 题目描述 请实现一种数据结构SetOfStacks,由多个栈组成,其中每个栈的大小为size,当前一个栈填满时,新建一个栈.该数据结构应支持与普通 ...

  8. 判断直线相交 牛客网 程序员面试金典

    判断直线相交 牛客网 程序员面试金典 题目描述 给定直角坐标系上的两条直线,确定这两条直线会不会相交. 线段以斜率和截距的形式给出,即double s1,double s2,double y1,dou ...

  9. 回文链表 牛客网 程序员面试金典 C++ Python

    回文链表 牛客网 程序员面试金典  C++ Python 题目描述 请编写一个函数,检查链表是否为回文. 给定一个链表ListNode* pHead,请返回一个bool,代表链表是否为回文. 测试样例 ...

最新文章

  1. BGP基本实验拓扑图--《献给学习的人》
  2. 【云图】如何制作附近实体店的地图?-微信微博支付宝
  3. D0rado与javascript
  4. android SQLiteOpenHelper 使用
  5. ida调试linux程序,MAC使用IDA PRO远程调试LINUX程序
  6. 四元数,欧拉角,旋转矩阵相互转换
  7. centos 搭建Jenkins
  8. qt creator 设置按键颜色_Qt编写自定义控件30-颜色多态按钮
  9. word2vec数学原理详解
  10. 高等代数——大学高等代数课程创新教材(丘维声)——3.3笔记+习题
  11. vba excel 画折线图
  12. 关于苹果侵权邮件反馈邮件范文
  13. 设计模式(四) 策略模式
  14. PHP实训笔记,Java实训笔记(八)之mysql
  15. python --通过urlretrieve下载MP4文件
  16. 【rzxt】详细了解taskmgr.exe进程的基本信息
  17. WPF中的自定义控件模板
  18. 关于课题的一点思考(基于多生理信号的情绪识别)
  19. (logN)²是O(N)的
  20. Dubbo,入门Demo案列使用,框架原理,Zookeeper的使用,安装监控中心和管理控制台,service,provider,comsumer三个项目的Demo

热门文章

  1. html5移动端轮播图特效,支持移动端的纯js轮播图插件awesome-slider
  2. WampServer图标为黄色,无法启动的解决办法及思路
  3. 技术的魅力在于融汇惯通
  4. 【ts】typeScript高阶:any和unknown
  5. 数据概览神器—Pandas-profiling
  6. python kivy 手势识别基本代码
  7. 路由器与三层交换机的区别
  8. Ruby+Watir经验谈: Understanding Watir
  9. cok服务器文件,前端开发之Node.js篇——搭建自己的网站服务器文件管理(一)...
  10. valgrind详细说明