![](https://img-blog.csdnimg.cn/20191015141758792.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
面试
南丘xf
好记性不如烂笔头——1枚昆明程序猿
展开
-
利用正则表达式巧妙去除字符串中的回车和换行符
一个同事对很久之前就离职的一个同事的税费数据共享平台项目进行改版,取消之前的socket通讯传数的方式,采取读写文件方式,避免通讯超时,在写数的过程中,经常出现行数多的问题(应该是字符串中有回车换行符),我看了一眼他写的代码,他采取的是String.trim(),该方法我们也经常用,但是这方法仅仅是去除字符串前后面的空格,并不能去除字符串中夹杂的空格、回车和换行符。我们可以先看这样一个例子,字符串...原创 2020-01-10 14:50:22 · 13526 阅读 · 0 评论 -
面试题:判断一个数是否是完全平方数
判断一个数是否是完全平方数,方法有好几种,但是我们最常用的,就是对该数的一半的数做平方运算,运算结果和该数相同,就认为该数是完全平方数,但是该方法的时间复杂度不太友好:public static void main(String[] args) { System.out.println(lowIsSquare(16)); } /** * num一半的整数做一次平方运算,如果某一...原创 2019-10-24 11:06:14 · 2823 阅读 · 0 评论 -
约瑟夫环问题解法
问题描述:N个人围成一圈,从第一个人开始报数,报m数的人出圈,剩下的人继续从1开始报数,报到m数的人再出圈;如此往复,直到所有人出圈。(模拟此过程,输出出圈的人的序号)public static void yesefu(int totalNum, int countNum) { // 初始化人数 ArrayList<Integer> start = new Array...原创 2019-10-23 15:38:37 · 824 阅读 · 0 评论 -
常见数组(Array)面试题(算法篇)汇总
1、将数组排成最小的数:输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323public static String PrintMinNumber(int[] numbers) { if (numbers == null && numbers.leng...原创 2019-10-23 10:27:57 · 1646 阅读 · 0 评论 -
面试题:数组排序,请用堆排序实现
1、什么是堆?堆是一种非线性结构,可以把堆看作一个数组或者一个完全二叉树,通俗来讲堆其实就是利用完全二叉树的结构来维护的一维数组,按照堆的特点可以把堆分为大顶堆和小顶堆。大顶堆:每个结点的值都大于或等于其左右孩子结点的值小顶堆:每个结点的值都小于或等于其左右孩子结点的值(堆的这种特性非常的有用,堆常常被当做优先队列使用,因为可以快速的访问到“最重要”的元素)我们用简单的公式来...原创 2019-10-18 10:08:26 · 1165 阅读 · 0 评论 -
面试题:请写出斐波那契的第n项的代码实现
什么是裴波那契数列?裴波那契数列是以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34……即从第3个数开始,F(n)=F(n-1)+F(n-2),所以斐波纳契数列以如下方法定义:F(1)=1,F(2)=1, F(3)=2,F(n)=F(n-1)+F(n-2)(n>=4,n∈N*)// 1、1、2、3、5、8、13、21、34 /...原创 2019-10-18 09:39:23 · 701 阅读 · 0 评论 -
面试题:变态青蛙跳Java实现
变态青蛙跳问题:一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级台阶,求该青蛙跳上一个n级的台阶总共有多少种跳法?规律(为了表示方便,我们将一次性跳完的情况设为f(0)):到达1阶台阶只有1种可能:f(1)=1到达2阶台阶有2种可能:f(2)=2要到达3阶台阶,可以在1阶起跳,也可以在2阶起跳,所以只需要到达1阶台阶的可能情况+到达2阶的可能情况+f(0):f(3)=f...原创 2019-10-17 16:52:18 · 442 阅读 · 0 评论 -
二叉树相关算法常见笔试题
创建二叉树上一篇中已经提到:https://blog.csdn.net/weixin_39309402/article/details/1013496761、如何计算二叉树叶子节点(没有子结点[即度为0]的结点称为叶子结点,简称“叶子”)的个数// 叶子节点的个数(递归算法) public static int getNodeNumLeafRec(TreeNode root) { i...原创 2019-10-17 14:41:05 · 879 阅读 · 0 评论 -
String常见笔试题(算法)
1、统计最长不重复子串(利用HashMap是最简单的)public static String lengthOfLongestSubstring(String s) { int star = 0; int head = 0; int ans = 0; Map<Character, Integer> hashMap = new HashMap<>();...原创 2019-10-17 10:04:42 · 417 阅读 · 0 评论 -
try catch和finally搭配return执行常见面试题讲解
我们都知道,在Java中try、catch和finally常用来做异常处理,而且他们有执行顺序,即先执行try,如果try中没有异常,则执行完try语句块后执行finally语句块,如果try中有异常,则顺序为执行到try语句块抛异常的地方后跳到catch语句块,最后执行fianlly语句块,但是当try、catch、finally中加入return之后,情况就有不同了,我们下面分别结合常见面试题...原创 2019-10-15 09:27:46 · 850 阅读 · 0 评论 -
容易踩坑的Java基础面试题归纳
1、请问下列输出结果是null还是非null?public static void main(String[] args) { Set set = new HashSet(); for (int i = 0; i < 10; i++) { Object object = new Object(); set.add(object); // 设置为空 obj...原创 2019-09-27 17:04:12 · 311 阅读 · 0 评论 -
面试题:交换两个类型不知的变量的值,不能用第三个变量
交换两个变量的值,实在太过简单,比如:public class TestCh { public static <T> void change(T a,T b){ System.out.println("交换前a=" + a + "\t b=" + b); Object c = null; c = a; a = b; b = (T) c; System...原创 2019-08-08 14:40:15 · 394 阅读 · 0 评论 -
Struts常见面试题
Struts分为Struts1和Struts2,默认情况下指的是Struts2,Struts1除非特别说明。1、Struts2 中的 # 和 % 分别是做什么的?(1)使用#获取 context 里面的数据<s:iterator value = “list” var=”user”><s:property value = “#user.username”>&...原创 2019-02-21 12:06:00 · 624 阅读 · 0 评论 -
MyBatis常见面试题
1、#{}和${}的区别是什么?${}是字符串替换,相当于直接显示数据,#{}是预编译处理,相当于对数据加上双引号即#是将传入的值当做字符串的形式,先替换为?号,然后调用PreparedStatement的set方法来赋值,而$是将传入的数据直接显示生成sql语句--Mybatis在处理#{}时select id,name,age from student where id =#{...原创 2019-02-17 23:06:00 · 154 阅读 · 0 评论 -
对集合List<T>,按照其中一个成员变量进行排序
如果要获取某个参数的类型,可以用T.getClass().getName()进行判断,可是要获取该对象其中的成员变量或者成员方法,那么就只有通过反射(Field)机制来实现,通过加载类字节码方式来获取相关类的信息。Field 是什么呢?field 是一个位于java.lang.reflect包下的类,在java反射中field类描述的是类的属性信息:1.获取当前对象成员变量的类型——T.ge...原创 2019-08-08 17:03:12 · 814 阅读 · 0 评论 -
面试题:字符串反转输出,你能想到几种方法?
一个做安卓的朋友微信发了一个面试题,字符串反转输出,你能想到几种方法(越多越好)?这种题不但考察基础,也考察数据结构,我能想到的,也就四种方法:StringBuffer.reverse() 最常用,也最简单chat[] 倒序输出Stack数据结构String.charAt() 拼接输出// 字符串反转 public static String stringReverse(String...原创 2019-09-25 11:25:14 · 351 阅读 · 0 评论 -
统计字符串出现次数:子字符串在母字符串中出现几次
一位同事在做项目的过程中,需要按行读取txt文件内容,然后判断某个字符串在该行中出现了几次,如果次数超过3次,则做特殊处理。他写的代码大致如下:public static int count(String str, String subStr) { int count = 0; String[] arr = str.split(subStr); int len = arr.len...原创 2019-09-27 11:33:15 · 2295 阅读 · 0 评论 -
最容易踩坑的Java基础面试题归纳
1、 问题:switch语句能否作用在byte上,能否作用在long上,能否作用在String上?switch可作用于char、byte、short、int以及他们对应的包装类 switch不可作用于long、double、float、boolean,包括他们的包装类 switch中可以是字符串类型,String(jdk1.7之后才可以作用在string上) switch中可以是枚举...原创 2018-10-12 10:42:00 · 236 阅读 · 0 评论 -
记住一个原则,就能记住与运算(&)、或运算(|)和异或运算(^)
每次一看到与或运算的题,都知道是考什么点(按二进制位进行相应运算),但是自己一算,就是会算错,加之之前有一篇字符串反转输出的题,也用到了异或运算,那么,今天就讲解下如何记住这三种运算的运算规则。与运算(&)原则:同为1则为1,否则为00&0=0;0&1=0;1&0=0;1&1=1;4&7: 0000 0100 & ...原创 2019-09-27 16:46:19 · 9294 阅读 · 0 评论 -
继承(Extends)常见面试题
我们都知道,使用继承可以实现代码的重用。通过继承,子类可以继承父类的成员变量及成员方法,同时还可以定义自己的成员变量和成员方法。所以,通过继承,子类将具有父类的成员及本类的成员——Java语言不支持多重继承,即:一个类只能继承一个父类,但一个父类可以有多个子类。public class Father{ Cell[] cells; public Father() { ...原创 2018-08-24 10:34:00 · 415 阅读 · 0 评论