面试中经常被问到的list如何去重,用来考察你对list数据结构,以及相关方法的掌握,体现你的java基础学的是否牢固. 我们大家都知道,set集合的特点就是没有重复的元素.如果集合中的数据类型是基本数据类型,可以直接将list集合转换成set,就会自动去除重复的元素,这个就相对比较简单. 如下示例: public class Test { public static void main(String[] args) { List list = new ArrayList(); list.add…
一,五种IO模型: 一个IO操作可以分为两个步骤:发起IO请求和实际的IO操作例如:1.操作系统的一次写操作分为两步:第一步,将数据从用户空间拷贝到系统空间:第二步,从系统空间往网卡写.2.一次读操作也分为两步:第一步,将数据从网卡拷贝到系统空间:第二步,将数据从系统空间拷贝到用户空间. 阻塞IO和非阻塞IO的区别在于第一步:发起IO请求是否会被阻塞,如果阻塞直到完成那么就是传统的阻塞IO,如果不阻塞,那么就是非阻塞IO. 同步IO和异步IO的区别就在于第二个步是否阻塞:如果实际的IO读写阻塞请…
MySQL 为什么用自增列作为主键 如果我们定义了主键(PRIMARY KEY),那么InnoDB会选择主键作为聚集索引.如果没有显式定义主键,则InnoDB会选择第一个不包含有NULL值的唯一索引作为主键索引.如果也没有这样的唯一索引,则InnoDB会选择内置6字节长的ROWID作为隐含的聚集索引(ROWID随着行记录的写入而主键递增,这个ROWID不像ORACLE的ROWID那样可引用,是隐含的). 数据记录本身被存于主索引(一颗B+Tree)的叶子节点上.这就要求同一个叶子节点内(大小为一…
GC 中文直译垃圾回收,是一种回收内存空间避免内存泄漏的机制.当 JVM 内存紧张,通过执行 GC 有效回收内存,转而分配给新对象从而实现内存的再利用. JVM GC 机制虽然无需开发主动参与,减轻不少工作量,但是某些情况下,自动 GC 将会导致系统性能下降,响应变慢,所以这就需要我们提前了解掌握 GC 机制.当面对这种情况时,才能从容不迫的解决问题.另外 GC机制也是 Java 面试高频考题,了解掌握 GC 是一项必备技能. 学习 GC ,首先我们解决三个问题: 什么是垃圾 在哪里回收垃圾 怎…
1.在半径为1的圆中随机选取一点. 2.给定一个未知长度的整数流,如何随机选取一个数 3.给定一个数据流,其中包含无穷尽的搜索关键字(比如,人们在谷歌搜索时不断输入的关键字).如何才能从这个无穷尽的流中随机的选取1000个关键字?…
一.mysql相关知识    1. mysql优化方式            MYSQL 优化常用方法            mysql 性能优化方案      2.如何分库分表           参考:http://blog.sina.com.cn/s/blog_6e322ce70100zs9a.html           http://www.jb51.net/article/29771.htm   3. Mysql+如何做双机热备和负载均衡http://www.dewen.org/q/…
1.一般问题 1.1. 不同版本的 Spring Framework 有哪些主要功能? VersionFeatureSpring 2.5发布于 2007 年.这是第一个支持注解的版本.Spring 3.0发布于 2009 年.它完全利用了 Java5 中的改进,并为 JEE6 提供了支持.Spring 4.0发布于 2013 年.这是第一个完全支持 JAVA8 的版本. 1.2. 什么是 Spring Framework? Spring 是一个开源应用框架,旨在降低应用程序开发的复杂度. 它是轻…
本文为 SnailClimb 的原创,目前已经收录自我开源的 JavaGuide 中(61.5 k Star![Java学习+面试指南] 一份涵盖大部分Java程序员所需要掌握的核心知识.觉得内容不错再 Star!). 另外推荐一篇原创:终极推荐!可能是最适合你的Java学习路线+方法+网站+书籍推荐! Java 并发进阶常见面试题总结 1. synchronized 关键字 1.1. 说一说自己对于 synchronized 关键字的了解 synchronized关键字解决的是多个线程之间访问…
本文为 SnailClimb 的原创,目前已经收录自我开源的 JavaGuide 中(61.5 k Star![Java学习+面试指南] 一份涵盖大部分Java程序员所需要掌握的核心知识.欢迎 Star!). 另外推荐一篇原创:终极推荐!可能是最适合你的Java学习路线+方法+网站+书籍推荐! Java 并发基础常见面试题总结 1. 什么是线程和进程? 1.1. 何为进程? 进程是程序的一次执行过程,是系统运行程序的基本单位,因此进程是动态的.系统运行一个程序即是一个进程从创建,运行到消亡的过程…
版权声明:本文为寻梦-finddreams原创文章,请关注: http://blog.csdn.net/finddreams/article/details/44513579 一般的面试流程是笔试完就接着是面试了,面试时技术经理会问你一些你工作中遇到的Android方面的问题,谈谈你所做的项目,和在项目中所扮演的角色.今天我就给大家整理一些,面试中常见的面试官提的一些问题? 1.要做一个尽可能流畅的ListView,你平时在工作中如何进行优化的? ①Item布局,层级越少越好,使用hierarc…
前言 Redis不是一个简单的键值对存储,它实际上是一个支持各种类型数据结构的存储.在传统的键值存储中,是将字符串键关联到字符串值,但是在Redis中,这些值不仅限于简单的字符串,还可以支持更复杂的数据结构.下面就是Redis支持的数据结构: 字符串(String):二进制安全字符串. 列表(List):根据插入顺序排序的字符串元素列表,基于链表实现. 集合(Set):唯一的乱序的字符串元素的集合. 有序集合(Sorted Set):与集合类似,但是每个字符串元素都与一个称为score的数字相关…
「MoreThanJava」 宣扬的是 「学习,不止 CODE」. 如果觉得 「不错」 的朋友,欢迎 「关注 + 留言 + 分享」,文末有完整的获取链接,您的支持是我前进的最大的动力! Hi~ 这里是 我没有三颗心脏,一个兴趣爱好广泛的 96 年 自由技术人. 都说九月十月是跳槽的高峰期 (也有金九银十的说法),所以 近期 计划出一些 面试求职 相关的文章,这里是系列的第三篇「面试中的棘手问题」,硬核实力讲解 (搭配可直接食用的例子) 如何回答面试中的那些难啃.套路的问题,也算是学习分享,真心的…
程序员换工作,会有技术面试(可能不止一轮的技术面),还会有hr的面试,技术面主要是偏向于技术问题,hr面试主要问的一些问题,下面做下汇总: 1.你换工作的原因,你为何辞职 必问的问题,送分题或者送命题 这个要看你的回答,以及面试官本人的技巧.有些面试官呢比较好说话,就是简单了解下,不会再去细细的问下去,而有些面试官那是相当犀利的,会问很多细节,而且会给你压迫感 不建议作为辞职理由的: 1)钱给的太少了.很肯定地说,我们有部分人辞职原因就是这个,公司不给涨薪,或者涨薪幅度太少,低于行业的水平,或者…
如果你要去面试一个Linux系统运维工程师的职位,下面这十个最常见的问题一定要会,否则你的面试可能就危险了.这些都是比较基本的问题,大家要理解,不能光死记硬背. 1.如何查看系统内核的版本 这里有两种方法: 1) uname -a uname 这个命令是用来打印系统信息的, -a 可以打印系统所有信息,其中包含内核版本,比如我的版本号是3.10.0-957.21.3.el7.X86_64. 2) cat /proc/version 下面再补充一下各个数字和字母代表的含义: 3 表示主版本号,有结…
优雅手撕bind函数 前言: 为什么面试官总爱让实现一个bind函数? 他想从bind中知道些什么? 一个小小的bind里面内有玄机? 今天来刨析一下实现一个bind要懂多少相关知识点,也方便我们将零碎的知识点串联起来. 看完有用的同学记得点个赞再走,您的鼓励-我莫大的动力 看完能学到什么 实现bind new原理 本文章的叙事步骤 bind函数作用 模拟bind的要点 实现思路 new函数特殊情况(this&父原型) -------------人工分割线------------- bind函数…
1. angular的数据绑定采用什么机制?详述原理 angularjs的双向数据绑定,采用脏检查(dirty-checking)机制.ng只有在指定事件触发后,才进入 $digest cycle : - DOM事件,譬如用户输入文本,点击按钮等.( ng-click ) - XHR响应事件 ( $http ) - 浏览器Location变更事件 ( $location ) - Timer事件( timeout,timeout,interval ) - 执行 digest()或digest()或…
什么是循环依赖? 循环依赖其实就是循环引用,也就是两个或则两个以上的 Bean 互相持有对方,最终形成闭环.比如A依赖于B,B依赖于C,C又依赖于A.如下图: 如果在日常开发中我们用new 对象的方式发生这种循环依赖的话程序会在运行时一直循环调用,直至内存溢出报错.下面说一下Spring是如果解决循环依赖的. 注意,这里不是函数的循环调用,是对象的相互依赖关系.循环调用其实就是一个死循环,除非有终结条件. 根据 spring 中 Bean 的注入方式:构造器注入方式,属性注入方式(单例和多例),…
1 性能: 解析下面代码慢在哪里def strtest1(num):str='first'for i in range(num):str+="X"return str解析:python中str是一个不可变类型,每次迭代,都会生成一个新的str来储存对象,当num特别大的时候,就会创建很多的str,所有对内存的占用也会特别的大. 2 闭包:写一个函数,接收整数参数n,返回一个函数,函数的功能是把函数的参数和n相乘并把结果返回def func(n): def func1(val): ret…
 技术面 1) Spring 的注解有哪些? 2) 你如何理解 spring IOC 技术,如果不使用spring,你有哪些方式来加载 bean? 3) spring aop 的原理是什么?它是怎样一个写法?关键配置项是什么? 4) springmvc 的注解有哪些? @ModelAttribute 重点提及 5)  structs  与 springmvc 相比,你觉得哪个好一些?为什么? 6) mybatis 的标签有哪些?# 与 $ 之间的差别? 7) 你觉得mybatis 的好处是什么?…
tail -f test.log 你会看到屏幕不断有内容被打印出来. 这时候中断第一个进程Ctrl-C, linux 如何显示一个文件的某几行(中间几行) 从第3000行开始,显示1000行.即显示3000~3999行 cat filename | tail -n +3000 | head -n 1000 显示1000行到3000行 cat filename| head -n 3000 | tail -n +1000 *注意两种方法的顺序 分解: tail -n 1000:显示最后1000行 t…
1.如何暂停一个正在运行的进程,把其放在后台(不运行)? 为了停止正在运行的进程,让其再后台运行,我们可以使用组合键Ctrl+Z. 2.什么是安装Linux所需的最小分区数量,以及如何查看系统启动信息? 单独一个/root分区足以执行所有的系统任务,但是强烈建议安装Linux时,需要至少三个分区:/root,/boot,/swap.一个IDE硬盘驱动器支持高达63个分区,SCSI硬盘驱动器支持超过15个分区. 为了检查启动信息,我们可以使用cat或者dmesg命令,如下所示: #cat/var/…
什么是Nginx? Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器 Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器 目前使用的最多的web服务器或者代理服务器,像淘宝.新浪.网易.迅雷等都在使用 为什么要用Nginx? 优点: 跨平台.配置简单 非阻塞.高并发连接:处理2-3万并发连接数,官方监测能支持5万并发 内存消耗小:开启10个nginx才占150M内存 成本低廉:开源 内置的健康检查功能:如果有…
1.什么是Nginx? Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器 Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器 目前使用的最多的web服务器或者代理服务器,像淘宝.新浪.网易.迅雷等都在使用 2.为什么要用Nginx? 优点: 跨平台.配置简单 非阻塞.高并发连接:处理2-3万并发连接数,官方监测能支持5万并发 内存消耗小:开启10个nginx才占150M内存 成本低廉:开源 内置的健康检查功能…
1.排序 从小到大排序:sorted(list) 从大到小排序:sorted(list, reverse=True) sort() 方法,改变原有数组的顺序 sort(reverse=True) #!/bin/Python alist = [1, 4, 2, 3, 7, 6] print(sorted(alist)) print(sorted(alist, reverse=True)) alist.sort() print(alist) alist.sort(reverse=True) prin…
1. 以下代码的输出结果是(A) int i =3; i = i++; System.out.println(i); A .3  B.4  C.5 a=b++是先将b值赋值给a后b再自增. 2. Math.round(11.5)等于多少? Math.round(-11.5)等于多少? Math.round(11.5)返回(long)12,Math.round(-11.5)返回(long)-11;向上取整 3. Collection 和 Collections的区别. Collection是集合类…
原文链接:http://caibaojian.com/js-string.html 一.charAt() 返回在指定位置的字符. var str="abc" console.log(str.charAt(0))//a 二.charCodeAt() 返回在指定的位置的字符的 Unicode 编码. var str="abc" console.log(str.charCodeAt(1))//98 三.concat() 连接字符串. var a = "abc&q…
本篇文章会对面试中常遇到的Java技术点进行全面深入的总结,帮助我们在面试中更加得心应手,不参加面试的同学也能够借此机会梳理一下自己的知识体系,进行查漏补缺. 1. Java中的原始数据类型都有哪些,它们的大小及对应的封装类是什么? (1)boolean boolean数据类型非true即false.这个数据类型表示1 bit的信息,但是它的大小并没有精确定义. <Java虚拟机规范>中如是说:“虽然定义了boolean这种数据类型,但是只对它提供了非常有限的支持.在Java虚拟机中没有任何供…
本篇文章会对面试中常遇到的Java技术点进行全面深入的总结,帮助我们在面试中更加得心应手,不参加面试的同学也能够借此机会梳理一下自己的知识体系,进行查漏补缺. 1. Java中的原始数据类型都有哪些,它们的大小及对应的封装类是什么? (1)boolean boolean数据类型非true即false.这个数据类型表示1 bit的信息,但是它的大小并没有精确定义. <Java虚拟机规范>中如是说:“虽然定义了boolean这种数据类型,但是只对它提供了非常有限的支持.在Java虚拟机中没有任何供…
面试大总结之一:Java搞定面试中的链表题目 分类: Algorithm Interview2013-11-16 05:53 11628人阅读 评论(40) 收藏 举报 链表是面试中常出现的一类题目,本文用Java实现了面试中常见的链表相关题目.本文主要参考整合重写了<轻松搞定面试中的链表题目>和 <算法大全(1)单链表>两篇大作.两篇大神的实现分别是C和C#,因为我更喜欢用Java面试,所以用Java重写了所有实现,并附上自己的一些思考注释.算法大全(1)单链表 尚未有一些问题尚…
以下是我收集的Java编程里各种区别,供Java学习爱好者参考,这些区别都是每次Java面试中常考的,大家好好掌握,如有失误请留言指出.想要获取Java详细全套学习资料请到上海尚学堂官网获取. 1.HashMap和Hashtable的区别. HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别在于HashMap允许空(null)键值(key),由于非线程安全,效率上可能高于Hashtable. HashMap允许将null作为一个entry的key…