(尊重劳动成果,转载请注明出处:http://blog.csdn.net/qq_25827845/article/details/53525075 冷血之心的博客)

数据结构与算法:

1、以最少的代码实现单链表反转,需要自己创建节点。

 /**  翻转链表(遍历) *  从头到尾遍历原链表,每遍历一个结点,*  将其摘下放在新链表的最前端。*  注意链表为空和只有一个结点的情况。时间复杂度为O(n)*/public static Node reverseNode(Node head){// 如果链表为空或只有一个节点,无需反转,直接返回原链表表头if(head == null || head.next == null)return head;Node reHead = null;Node cur = head;while(cur!=null){Node reCur = cur;      // 用reCur保存住对要处理节点的引用cur = cur.next;        // cur更新到下一个节点reCur.next = reHead;   // 更新要处理节点的next引用reHead = reCur;        // reHead指向要处理节点的前一个节点}return reHead;}// 翻转递归(递归) // 递归的精髓在于你就默认reverseListRec已经成功帮你解决了子问题了!但别去想如何解决的 // 现在只要处理当前node和子问题之间的关系。最后就能圆满解决整个问题。 /*head1 -> 2 -> 3 -> 4head1--------------|4 -> 3 -> 2                            // Node reHead = reverseListRec(head.next);reHead      head.next4 -> 3 -> 2 -> 1                    // head.next.next = head;reHead4 -> 3 -> 2 -> 1 -> null            // head.next = null;reHead*/ public static Node reverseNodeRec(Node head){ if(head == null || head.next == null){ return head; } Node reHead = reverseNodeRec(head.next);     head.next.next = head;      // 把head接在reHead串的最后一个后面 head.next = null;               // 防止循环链表 return reHead; }

2、给出一个二叉树,不能使用递归的方式,以二叉树的高度输出每个节点的值。在此基础上,如何在每个高度结束之后,输入一个换行符?

/***********************************************************************4.分层遍历二叉树(按层次从上往下,从左往右): levelTraversal **********************************************************************//** * 分层遍历二叉树(按层次从上往下,从左往右)迭代 * 相当于广度优先搜索,使用队列实现。队列初始化,将根节点压入队列。当队列不为空,进行如下操作:弹出一个节点 * ,访问,若左子节点或右子节点不为空,将其压入队列 */ public static void levelTraversal(TreeNode root){if(root==null)return ;LinkedList<TreeNode> queue = new LinkedList<TreeNode>();queue.add(root);while(!queue.isEmpty()){TreeNode cur = queue.remove();System.out.print(cur.val+" ");if(cur.left!=null)queue.add(cur.left);if(cur.right!=null)queue.add(cur.right);}}/*** 分层遍历二叉树,并且实现在每个高度结束之后,输入一个换行符* @param root*/public static void levelTraversal2(TreeNode root){if(root==null)return ;Queue<TreeNode> queue = new LinkedList<TreeNode>();TreeNode cur = root;queue.add(cur);int currentLevelNodeNums = 1;int nextLevelNodeNums = 0;while(!queue.isEmpty()){TreeNode reCur = queue.remove();System.out.print(reCur.val+" ");currentLevelNodeNums--;if(reCur.left!=null){queue.add(reCur.left);nextLevelNodeNums++;}if(reCur.right!=null){queue.add(reCur.right);nextLevelNodeNums++;}if(currentLevelNodeNums==0){System.out.println();currentLevelNodeNums = nextLevelNodeNums;nextLevelNodeNums = 0;}}}

数据库:

1、MongoDB数据库的优缺点分析?

答:MongoDB是面向文档的数据库,mysql是传统的关系型数据库。

优点:保证访问速度,访问时数据库不会被锁死;

文档结构的存储方式,数据存储在一个文档中,更利于管理,能够更便捷的获取数据;

使用JSON风格语法,相对于SQL来说,更加直观,容易理解和掌握;

性能优越,访问速度快。

缺点:不支持事务操作,空间占用大

2、SQL语句中查询每个年龄有几个用户。

select count(*)from table group by age

3、MySQL中两种表类型MyISAM和InnoDB的区别?

  • MyISAM不支持事务,InnoDB是事务类型的存储引擎
  • MyISAM只支持表级锁,BDB支持页级锁和表级锁,默认为页级锁;而InnoDB支持行级锁和表级锁,默认为行级锁
  • MyISAM引擎不支持外键,InnoDB支持外键
  • MyISAM引擎的表在大量高并发的读写下会经常出现表损坏的情况
  • 对于count( )查询来说MyISAM更有优势
  • InnoDB是为处理巨大数据量时的最大性能设计,它的CPU效率可能是任何其它基于磁盘的关系数据库引擎所不能匹敌的
  • MyISAM支持全文索引(FULLTEXT),InnoDB不支持
  • MyISAM引擎的表的查询、更新、插入的效率要比InnoDB高

最主要的区别是:MyISAM表不支持事务、不支持行级锁、不支持外键。

                             InnoDB表支持事务、支持行级锁、支持外键。

排序:

1、将一个数组排序输出。

答:关于排序算法,参考本博客:

“深入理解”—选择排序算法

“深入理解”—交换排序算法

“深入理解”—插入排序算法

git:

1、切换分支命令?

touch README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin https://github.com/BrentHuang/MyRepo.git
git push -u origin master

在本地新建一个分支: git branch Branch1
切换到你的新分支: git checkout Branch1
将新分支发布在github上: git push origin Branch1
在本地删除一个分支: git branch -d Branch1
在github远程端删除一个分支: git push origin :Branch1   (分支名前的冒号代表删除)

直接使用git pull和git push的设置

Git branch --set-upstream-to=origin/master master 
git branch --set-upstream-to=origin/ThirdParty ThirdParty
git config --global push.default matching

Spring:

1、说说Spring的核心思想。解释IOC和AOP

答:Spring框架的核心就是IOC(控制反转)和AOP(面向切面编程)

IOC:将对象间的依赖关系交给Spring容器,使用配置文件来创建所依赖的对象。

AOP:使用配置文件创建所依赖的对象后,如果你要调用该对象的方法,并且想要在方法前/后 做一些处理,如:日志记录,性能统

计,安全控制,事务处理,异常处理等。则可以利用AOP实现。

面向切面编程将功能代码从业务逻辑代码中划分出来,通过对这些行为的分离,我们希望可以将它们独立到非指导业务逻辑

的方法中,进而改变这些行为的时候不影响业务逻辑的代码。

Hibernate:

1、Hibernate有几级缓冲?分别是什么?有什么区别?

答:分为一级缓存(事务缓存)和二级缓存(应用缓存)。一级缓存是session对象的缓存,二级缓存是一个可插拔的缓存插件,由SessionFactory控制。

区别:

默认方式不同:一级缓存是内置的,不可卸载(默认是打开的);二级缓存是可插拔的(默认关闭)

作用范围不同:一级缓存是事务范围的缓存;二级缓存是进程范围或群集范围的缓存

适合存放的数据不同:二级缓存中适合存放很少被修改的数据、不是很重要的数据,允许偶尔出现并发问题的数据。

Struts2:

1、说说Struts2中接收请求后都发生了什么?

项目:

哪个项目做得最好?

答:你猜

如果对你有帮助,记得点赞哦~欢迎大家关注我的博客,可以加群366533258交流讨论哈~

扬帆起航,再踏征程(一)相关推荐

  1. 扬帆起航,再踏征程(三)

    (尊重劳动成果,转载请注明出处:http://blog.csdn.net/qq_25827845/article/details/53588062 冷血之心的博客) 题目1: 找到第一次出差错的版本 ...

  2. 扬帆起航,再踏征程(四)

    (尊重劳动成果,转载请注明出处:http://blog.csdn.net/qq_25827845/article/details/53612643 冷血之心的博客) 1.SpringMVC是如何处理用 ...

  3. 九万里风鹏正举,扬帆起航,踏上新征程

    毕业后就从事了现在这份工作,算一算已经10多年了.日常工作内容包括软件开发.系统维护.网络搭建.软件平台应用等,算是专业对口,平时空闲时间也比较多.人已近中年,却还有一颗躁动不安的心,始终想在技术上再 ...

  4. 对学校的希望和寄语_南中医举行2020年开学典礼,校长胡刚寄语“后浪”:乘风破浪,扬帆起航...

    现代快报讯(通讯员 刘丹青 记者 仲茜)"钟山脚下.扬子江畔,杏林学子济济一堂.青春风华.意气轩昂,满园桃李竟芬芳."9月17日,南京中医药大学举行2020级新生开学典礼.为了让每 ...

  5. 正宇控股集团丨正宇,扬帆起航

    你是一颗耀眼璀璨的明珠 你是一艘承载理想的航母 你是生命奇迹的见证 你是诠释爱心的净土 大千世界茫茫人海 是你把我们相拥在一起 都市繁华乡间小路 是你激励我们前进的脚步 只要我们追求梦想 绽放五彩斑斓 ...

  6. 金三银四,磨砺锋芒;剑指大厂,扬帆起航(2020年最全大厂WEB前端面试题精选)上

    引言 元旦匆匆而过,2020年的春节又接踵而来,大家除了忙的提着裤子加班.年底冲冲冲外,还有着对于明年的迷茫和期待!2019年有多少苦涩心酸,2020年就有更多幸福美好,加油,奥利给!怀着一颗积极向上 ...

  7. 金三银四,磨砺锋芒;剑指大厂,扬帆起航(2020年最全大厂WEB前端面试题精选)下

    引言 元旦匆匆而过,2020年的春节又接踵而来,大家除了忙的提着裤子加班.年底冲冲冲外,还有着对于明年的迷茫和期待!2019年有多少苦涩心酸,2020年就有更多幸福美好,加油,奥利给!怀着一颗积极向上 ...

  8. 在哪下载扬帆起航个人简历Word模板

    很多刚刚毕业的大学生,即将开始自己新的旅途.他们就要扬帆起航,为了自己的未来而努力.奋斗.对于他们来说,离开学习步入社会,首先要做得就是找到份自己喜欢的工作.而在找工作的过程中就需要面试,面试就需要大 ...

  9. 临沧农业学校计算机,放飞梦想,扬帆起航!

    放飞梦想,扬帆起航! 开学啦!!! 丹桂飘香正八月,又到一年迎新时!! 2018年8月26日上午,临沧市农业学校迎来了2018级新一届学生.一大早,来自四面八方的莘莘学子便怀揣着梦想与憧憬,陆续走进我 ...

最新文章

  1. DT技术助力企业创新转型
  2. gtkpod 0.99.8
  3. 《动手玩转Arduino》——2.4 展望
  4. 如何用SAP Cloud for Customer的手机App创建销售订单
  5. 廉价raid_如何查找80行代码中的廉价航班
  6. 550什么意思_研报翻译官第二期:带你了解什么是CPI
  7. 在云服务器搭建WordPress博客(六)发布和管理文章
  8. win10怎么更改账户名称_Win10邮件功能如何查看邮件
  9. Python深入-Python的内存管理
  10. 03-搭建Eureka注册中心和服务端
  11. 再见 2017 你好 2018 ,程序员们的精彩年度总结
  12. 插入图像标签(HTML)
  13. 【每日算法Day 81】面试经典题:关于丑数,你真的理解为什么这么算吗?
  14. Ext.js入门:TabPanel组件(八)
  15. Git常用指令的使用
  16. 仿淘手游交易平台网站源码
  17. 基于SSM的课设管理小程序源码(课程设计源码)
  18. uni-app - MUMU模拟器模拟 iPad 尺寸开发(分辨率及DPI调整)
  19. 12306火车票余票自动查询 Python selenium
  20. docker容器内启动mysql服务,报错:New main PID 99 does not belong to service, and PID file is not owned by root.

热门文章

  1. 2008系统服务器定时重启,windows 2008服务器定时重启
  2. 手机语音转文字怎么做才简单?按下这个按钮,一键轻松记录
  3. 平板电脑推荐 资深游戏玩家最爱的这款5G平板来了!
  4. 英语求职信 应聘计算机安全人员,英语求职信要点
  5. Docker的安装以及可视化图形界面的安装
  6. flare-on 7 break第三部分求解:一元线性同余方程
  7. C#微信公众号全攻略(1)--注册公众号
  8. echarts中画布的清空
  9. 作图笔记 - mermaid的字体大小设置
  10. linux下图片裁剪工具,linux下图片处理工具ImageMagick使用方法