面试总结

这篇文章主要总结在近期面试中遇到的答不上来或者答不完整的问题。题目都是自行查阅整理,不知道是不是面试官想要的答案。

1. JSBridge

JSBridge是连接Native(客户端)和JavaScript前端的桥梁,通过JSBridge 两端的代码才可以通信。
native访问h5方法,只需在h5全局定义一个方法,native即可以调用。
h5调用native方法,1)API注入,native将方法挂在window上,h5使用window.xxx来调用;2)拦截url,将url(自定义scheme:'ownHttp://xxx')放入iframe中插入页面(display:none),native拦截url执行原生方法;3)h5的console,alert,prompt能够被native拦截console.log('ownHttp://xxx')

2. redux 和 context 区别

redux是做状态管理的,使用store存储数据,action触发事件,使用dispatch,reducer处理时间,用来修改状态。
context提供了无需传递props就可以向组件传递数据的方法。
两者区别或者怎么选择?
redux提供了对状态的修改方法,而context只是单纯的取值。如果您正在处理一个更复杂的应用程序,并希望查看您的应用程序的所有dispatch操作的历史记录,“点击”其中任何一个并跳转到该时间点,然后绝对考虑使用Redux。但是,如果你只想让一些数据全局化以便从一堆组件中访问它大可不必使用redux而用context。

3. react native 热更新原理

暂时不好整理,等我实际用到有所领悟再来补充把。
// TODO

4. 异常处理

  1. 使用 try-catch 语句
  2. onerror:任何没有通过try-catch处理的错误都会触发window对象的error事件。
    将错误保存到服务器,标明是来自前端。利用img中的src路径可以访问跨域的地址,将错误传到后端。
function logError(msg){
  let img = new Image();
  img.src = `http://xxx?msg=${encodeURIComponent(msg)}`
}

try{
}catch(err){
  logError(err)
}

5. react hooks有什么缺点

  1. 目前暂时还没有对应不常用的 getSnapshotBeforeUpdate,getDerivedStateFromError 和 componentDidCatch 生命周期的 Hook 等价写法。
  2. 目前 Hook 还处于早期阶段,一些第三方的库可能还暂时无法兼容 Hook。

额,不知道面试官想到的是不是这个答案...

6. 虚拟dom除了渲染方面性能好,还有什么优点

优点:

  1. 保证性能下限: 框架的虚拟 DOM 需要适配任何上层 API 可能产生的操作,它的一些 DOM 操作的实现必须是普适的,所以它的性能并不是最优的;但是比起粗暴的 DOM 操作性能要好很多,因此框架的虚拟 DOM 至少可以保证在你不需要手动优化的情况下,依然可以提供还不错的性能,即保证性能的下限;
  2. 无需手动操作 DOM: 我们不再需要手动去操作 DOM,只需要写好 View-Model 的代码逻辑,框架会根据虚拟 DOM 和 数据双向绑定,帮我们以可预期的方式更新视图,极大提高我们的开发效率;
  3. 跨平台: 虚拟 DOM 本质上是 JavaScript 对象,而 DOM 与平台强相关,相比之下虚拟 DOM 可以进行更方便地跨平台操作,例如服务器渲染、weex 开发等等。

缺点:
无法进行极致优化: 虽然虚拟 DOM + 合理的优化,足以应对绝大部分应用的性能需求,但在一些性能要求极高的应用中虚拟 DOM 无法进行针对性的极致优化。
首次渲染大量DOM时,由于多了一层虚拟DOM的计算,会比innerHTML插入慢。

7. 强制缓存中cache-control设为no-cache后,就一定没有缓存吗,协商缓存的缓存放在那里?

缓存是指代理服务器客户端本地磁盘内保存的资源副本。利用缓存可减少对源服务器的访问,因此也就节省了通信流量和通信时间。
缓存服务器是代理服务器的一种,并归类在缓存代理类型中。换句话说,当代理转发从服务器返回的响应时,代理服务器将会保存一份资源的副本
no-cache — 设了no-cache也可以在本地或者proxy服务器进行缓存,但是每次发起请求都要去服务器验证,服务器返回可以使用缓存,才可以真正使用本地缓存,任何节点都不能直接使用缓存。
协商缓存的缓存放在代理服务器。

8. 解释状态码 301 永久性定向和 302 临时性定向

301: 永久性重定向。表示请求的资源已被更改为新的URI,以后应使用资源现在所指的 URI。如果已经把资源对应的 URI 保存为书签了,这时应该按 Location 首部字段提示的 URI 重新保存。
302:临时性重定向。该状态码表示请求的资源已被分配了新的 URI,希望用户(本次)能使用新的 URI 访问。已移动的资源对应的 URI 将来还有可能发生改变。
303:该状态码表示由于请求对应的资源存在着另一个 URI,应使用 GET 方法定向获取请求的资源。303 状态码和 302 Found 状态码有着相同的功能,但 303 状态码明确 表示客户端应当采用 GET 方法获取资源,这点与 302 状态码有区 别。
304:该状态码表示客户端发送附带条件的请求(附带条件的请求是指采用 GET方法的请求报文中包含 If-Match,If-Modified- Since,If-None-Match,If-Range,If-Unmodified-Since 中任一首部。) 时,服务器端允许请求访问资源,但未满足条件的情况(有缓存,没有更新页面)。
403 Forbidden:被拒绝了
500 Internal Server Error:该状态码表明服务器端在执行请求时发生了错误。也有可能是 Web 应用存在的 bug 或某些临时的故障。
503 Service Unavailable:该状态码表明服务器暂时处于超负载或正在进行停机维护,现在无法 处理请求。

9. 0.1+0.1 != 0.3 js数值精度问题,转换成二进制计算导致精度丢失,那么详细讲讲精度是怎么丢失的

恕我无法描述出来,
请参考:
彻底弄懂:0.1+0.2 != 0.3
0.1+0.2 !== 0.3?

10. 手写迭代器

function iterator(arr) {
  let i = 0
  return {
    next: () => {
      return {
        value: i < arr.length ? arr[i++] : undefined,
        done:i < arr.length ? false : true,
      }
    }
  }
}
var it = iterator(['a', 'b']);
it.next() // { value: "a", done: false }
it.next() // { value: "b", done: false }
it.next() 

11. fib 斐波那契数列

题目:f(0) = 1, f(1) = 1, f(2) = 2, 实现 f(n) = f(n-1)+ f(n-2)
这道题目是在面试官的引导下完成的。首先写一个最简单的:

function f(n){
  if(n<2) return 1
  return f(n-1) + f(n-2)
} 

然后面试官问我,这样可以实现,但是f(n) = f(n-1) + f(n-2), f(n-1) = f(n-2) + f(n-3),在这样递归计算的过程中,有每个值都被多次计算,应该如何优化,考虑将计算过的值存起来。 鄙人无能,没想到实现方法,,,面试官提醒我可以利用Map,

var obj = new Map()
function f(n) {
  if (n < 2) return 1
  if (obj.has(n)) return obj.get(n)
  const value = f(n - 1) + f(n - 2)
  obj.set(n, value)
  return value
}

或者使用for循环来计算

var arr = [1, 1]
function f(n) {
  if(arr[n]) return arr[n]
  for (let i = 2; i <= n; i++) {
    arr[i] = arr[i - 1] + arr[i - 2]
  }
  return arr[n]
}

12. typeof null == 'object'原因

“typeof null 为"object", 原因是因为 不同的对象在底层都表示为二进制,在Javascript中二进制前三位都为0的话会被判断为Object类型,null的二进制表示全为0,自然前三位也是0,所以执行typeof时会返回"object"。
这个bug是第一版Javascript留下来的。在这个版本,数值是以32字节存储的,由标志位(1~3个字节)和数值组成。标志位存储的是低位的数据。这里有五种标志位:
000:对象,数据是对象的应用。
1:整型,数据是31位带符号整数。
010:双精度类型,数据是双精度数字。
100:字符串,数据是字符串。
110:布尔类型,数据是布尔值。
参考: https://blog.csdn.net/weixin_42952665/article/details/82750684

13. 实现深拷贝

我给出的答案:

var deepCopy = (function f(target) {
  if (typeof target !== 'object') return
  var newData = target instanceof Array ? [] : {};
  for (var item in target) {
    if (target.hasOwnProperty(item)) {
      newData[item] = typeof target[item] == 'object' ? f(target[item]) : target[item];
    }
  }
  return newData;
})

面试官灵魂拷问1: 第一句if (typeof target !== 'object') return 基础类型传进来就return了吗,什么也不返回? 我说那就把target再返回去。
2:typeof target !== 'object' 判断对象一定准确吗?碰到null怎么办?我心里默想那就再加一个判断它不是null,追问:碰到Date怎么办? 额,我心里想那要判断的有点多了,确实不合适。面试官指导:
对象类型的转换为字符串会变成 "[object Object]",null会变为"[object Null]",数组会变为"[object Array]",能否利用?
Object.prototype.toString.call(target)
3:newData[item] = typeof target[item] == 'object' ? f(target[item]) : target[item];这句不可以直接用newDate[item] = f(target[item])吗?我说基础类型走递归不太好吧,他说,如果第一句就return了target,那不也没执行下边的吗?
嚯,
经过我最终整理,实现如下:

var deepCopy = (function f(target) {
  // 将目标转换为字符串来判断类型,null转换为"[object Null]",
  // new Date():"[object Date]",数值:"[object Number]",字符串:"[object String]"等
  const type = Object.prototype.toString.call(target);
  let newData = type == '[object Object]' ? {} : (type == '[object Array]' ? [] : false)
  if(!newData) return target
  for (var item in target) {
    //只复制元素自身的属性,不复制原型链上的
    if (target.hasOwnProperty(item)) {
      newData[item] = f(target[item]);
    }
  }
  return newData;
})

这次应该没问题了把。。。

14. 列举会使GPU硬件加速的css属性

先来了解一下何为GPU硬件加速
就是将浏览器的渲染过程交给GPU处理,而不是使用自带的比较慢的渲染器。这样就可以使得animation与transition更加顺畅。一般一个元素开启硬件加速后会变成合成层,可以独立于普通文档流中,改动后可以避免整个页面重绘,提升性能,因此我们可以在浏览器中用css开启硬件加速,使GPU (Graphics Processing Unit) 发挥功能。
可以触发硬件加速的css属性
transform
opacity
filter
为什么硬件加速会使页面流畅
因为 transform 属性不会触发浏览器的 repaint(重绘),而绝对定位absolute中的 left 和 top 则会一直触发 repaint(重绘)。
为什么 transform 没有触发 repaint 呢?简而言之,transform 动画由GPU控制,支持硬件加速,并不需要软件方面的渲染。
如何开启硬件加速?
CSS animations, transforms 以及 transitions 不会自动开启GPU加速,3d动画才会开启:translateZ( ) 或 translate3d( ),但是很多时候并不需要3d变换:

webkit-transform : translateZ ( 0 ) ;
-moz-transform : translateZ ( 0 ) ;
-ms-transform : translateZ ( 0 ) ;
-o-transform : translateZ ( 0 ) ;
transform : translateZ ( 0 ) ;
webkit-transform : translate3d ( 0 , 0 , 0 ) ;
-moz-transform : translate3d ( 0 , 0 , 0 ) ;
-ms-transform : translate3d ( 0 , 0 , 0 ) ;
-o-transform : translate3d ( 0 , 0 , 0 ) ;
transform : translate3d ( 0 , 0 , 0 ) ;

在 Chrome and Safari中,当我们使用CSS transforms 或者 animations时可能会有页面闪烁的效果,下面的代码可以修复此情况:

   -webkit-backface-visibility: hidden;
   -moz-backface-visibility: hidden;
   -ms-backface-visibility: hidden;
   backface-visibility: hidden;
   -webkit-perspective: 1000;
   -moz-perspective: 1000;
   -ms-perspective: 1000;
   perspective: 1000;

15. 列举pc端和移动端的兼容性问题和解决方案

移动端:

  1. 不同浏览器的最小字体不同,有的是10px,有的是12px
    解决办法:设置字体时,不要小于12px,如果一定要小于12px,使用transform:sacle()进行缩放
  2. 透明度opacity
    解决办法:IE8 以及更早的版本支持替代的 filter 属性。例如:filter:Alpha(opacity=50)
  3. Input 的placeholder会出现文本位置偏上的情况
    input 的placeholder会出现文本位置偏上的情况:PC端设置line-height等于height能够对齐,而移动端仍然是偏上,解决是设置line-height:normal

PC端:

  1. 如果图片加a标签在IE9-中会有边框
    解决方案:img{border:none;}
  2. display:inline-block ie6/7不支持
    解决方案: display:inline;
  3. 标准的事件绑定方法函数为addEventListener,但IE下是attachEvent;

16. SEO(搜索引擎优化)

SEO的存在就是为了提升网页在搜索引擎自然搜索结果中的收录数量以及排序位置而做的优化行为。而优化的目的就是为了提升网站在搜索引擎中的权重,增加对搜索引擎的友好度,使得用户在访问网站时能排在前面。
如何做?

  1. 网站结构布局优化:尽量简单、开门见山,提倡扁平化结构
    (1) 控制首页链接数量
    (2) 扁平化的目录层次
    (3) 导航优化:导航应该尽量采用文字方式,也可以搭配图片导航,标签必须添加“alt”和“title”属性,告诉搜索引擎导航的定位。在每一个网页上应该加上面包屑导航。
    (4)网站的结构布局---不可忽略的细节
    (5)利用布局,把重要内容HTML代码放在最前
    (6)控制页面的大小,减少http请求,提高网站的加载速度
  2. 网页代码优化
    (1)突出重要内容---合理的设计、<meta description>和<meta keywords><br> (2)语义化书写HTML代码,符合W3C标准.eg:标题用h1-h6,列表用ul,li,重要文字用strong<br> (3)<a>标签:页内链接,要加 “title” 属性加以说明,让访客和 “蜘蛛” 知道。而外部链接,链接到其他网站的,则需要加上 el="nofollow" 属性, 告诉 “蜘蛛” 不要爬,因为一旦“蜘蛛”爬了外部链接之后,就不会再回来了。<br> 等。。。</li> <li>前端网站性能优化<br> (1)减少http请求数量.CSS Sprites(图片精灵),合并CSS和JS文件(使用grunt、gulp、webpack等),采用lazyload(懒加载)<br> (2)控制资源文件加载优先级<br> (3)尽量外链CSS和JS(结构、表现和行为的分离),保证网页代码的整洁,也有利于日后维护<br> (4)利用浏览器缓存<br> (5)减少重排(Reflow)<br> (6)减少 DOM 操作<br> (7)图标使用IconFont替换<br> 等。。。</li> </ol> <p>参考:https://juejin.cn/post/6844903824428105735</p> <h3>17. SSR</h3> <h5>是什么?</h5> <p>server side render,服务端渲染。即:SSR大致的意思就是客户端将标签渲染成的整个 html 片段的工作在服务端完成,服务端形成的html 片段直接返回给客户端这个过程就叫做服务端渲染。</p> <h5>优缺点?</h5> <p>优点:</p> <ol> <li> <strong>更好的 SEO</strong>。 因为 SPA (单页面应用)页面的内容是通过 Ajax 获取,而搜索引擎爬取工具并不会等待 Ajax 异步完成后再抓取页面内容,所以在 SPA 中是抓取不到页面通过 Ajax 获取到的内容;而 SSR 是直接由服务端返回已经渲染好的页面(数据已经包含在页面中),所以搜索引擎爬取工具可以抓取渲染好的页面。</li> <li> <strong>更快的内容到达时间(首屏加载更快)</strong>: SPA 会等待所有编译后的 js 文件都下载完成后,才开始进行页面的渲染,文件下载等需要一定的时间等,所以首屏渲染需要一定的时间;SSR 直接由服务端渲染好页面直接返回显示,无需等待下载 js 文件及再去渲染等,所以 SSR 有更快的内容到达时间。</li> </ol> <p>缺点:</p> <ol> <li> <strong>更多的开发条件限制</strong>: 例如服务端渲染在vue中只支持beforCreate和 created 两个钩子函数,这会导致一些外部扩展库需要特殊处理,才能在服务端渲染应用程序中运行;并且与可以部署在任何静态文件服务器上的完全静态单页面应用程序SPA不同,服务端渲染应用程序,需要处于 Node.js server 运行环境;</li> <li> <strong>更多的服务器负载</strong>:在 Node.js 中渲染完整的应用程序,显然会比仅仅提供静态文件的 server 更加大量占用CPU 资源 (CPU-intensive - CPU 密集),因此如果你预料在高流量环境 ( high traffic ) 下使用,请准备相应的服务器负载,并明智地采用缓存策略。</li> </ol> <p>参考: https://juejin.cn/post/6913752813403111438</p> <h3>18. PWA</h3> <p>PWA全称Progressive Web App,即渐进式WEB应用。</p> <p>一个 PWA 应用首先是一个网页, 可以通过 Web 技术编写出一个网页应用. 随后添加上 App Manifest 和 Service Worker 来实现 PWA 的安装和离线等功能<br> 解决了哪些问题?</p> <ul> <li>可以添加至主屏幕,点击主屏幕图标可以实现启动动画以及隐藏地址栏</li> <li>实现离线缓存功能,即使用户手机没有网络,依然可以使用一些离线功能</li> <li>实现了消息推送</li> </ul> <p>它解决了上述提到的问题,这些特性将使得 Web 应用渐进式接近原生 App。<br> 参考:<br> 讲讲PWA<br> Service Worker</p> </article> </div> </div> </div> <!--PC和WAP自适应版--> <div id="SOHUCS" sid="1692017602370547712"></div> <script type="text/javascript" src="/views/front/js/chanyan.js"></script> <!-- 文章页-底部 动态广告位 --> <div class="youdao-fixed-ad" id="detail_ad_bottom"></div> </div> <div class="col-md-3"> <div class="row" id="ad"> <!-- 文章页-右侧1 动态广告位 --> <div id="right-1" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_1"> </div> </div> <!-- 文章页-右侧2 动态广告位 --> <div id="right-2" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_2"></div> </div> <!-- 文章页-右侧3 动态广告位 --> <div id="right-3" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_3"></div> </div> </div> </div> </div> </div> </div> <div class="container"> <h4 class="pt20 mb15 mt0 border-top">你可能感兴趣的:(面试总结)</h4> <div id="paradigm-article-related"> <div class="recommend-post mb30"> <ul class="widget-links"> <li><a href="/article/1943716421238321152.htm" title="2024 web 前端面试总结(春招)" target="_blank">2024 web 前端面试总结(春招)</a> <span class="text-muted">2401_84413092</span> <a class="tag" taget="_blank" href="/search/%E7%A8%8B%E5%BA%8F%E5%91%98/1.htm">程序员</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a><a class="tag" taget="_blank" href="/search/%E8%81%8C%E5%9C%BA%E5%92%8C%E5%8F%91%E5%B1%95/1.htm">职场和发展</a> <div>关于基础我一直认为基础都是最重要的,在掘金上面加了个前端的小册群,群里面大多数应该是工作了的人,前两天有人在群里问了下面这道题varvalue=1varfoo={value:2,bar:function(){returnthis.value}}console.log((foo.bar)())然后有的说自执行函数,还有人说为什么不是undefined,为什么不是1,其实就是个很简单的隐式绑定。怎么说</div> </li> <li><a href="/article/1943688695957745664.htm" title="JAVA虚拟机面试总结" target="_blank">JAVA虚拟机面试总结</a> <span class="text-muted">会非的杨</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>JAVA虚拟机面试总结JVM的内存模型介绍一下**程序计数器:**JVM里的程序计数器(ProgramCounterRegister)是一块较小的内存空间,其作用是存储当前线程正在执行的字节码指令地址。它是线程私有的,每个线程都有独立的程序计数器,生命周期与线程相同。若线程执行的是Java方法,计数器记录的是正在执行的字节码指令地址;若执行的是本地(Native)方法,计数器值为undefined</div> </li> <li><a href="/article/1943614946197696512.htm" title="2025秋招优秀项目推荐" target="_blank">2025秋招优秀项目推荐</a> <span class="text-muted">微凉的衣柜</span> <a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/1.htm">深度学习</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/gpt/1.htm">gpt</a> <div>01.多个优异的数据结构与算法项目推荐良心推荐hello-algo包含多个通用的代码框架,一个框架完成多道题目,更详细请查阅labuladong02.大模型岗位面试总结:共24家,9个offer大模型岗位面试总结:共24家,9个offer03.视觉检测分割一切源码及在线DemoGrounded-Segment-Anything项目源码</div> </li> <li><a href="/article/1942598025465622528.htm" title="Spring面试总结,基于小林coding+个人总结" target="_blank">Spring面试总结,基于小林coding+个人总结</a> <span class="text-muted">会非的杨</span> <a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>Spring面试总结讲一下你对spring的理解Spring是一个轻量级的Java开发框架,它通过控制反转(IoC)和面向切面编程(AOP)等核心技术,为企业级应用提供了全面的解决方案。它整合了事务管理、Web开发、数据访问等功能模块,具有模块化、非侵入性等特点。核心特性:控制反转与依赖注入:IoC,将对象的创建和依赖关系的管理从代码中移除,转由Spring容器负责。DI:IoC的具体实现方式,通</div> </li> <li><a href="/article/1936438129804242944.htm" title="Java实习生第一次面试总结" target="_blank">Java实习生第一次面试总结</a> <span class="text-muted">摇一摇小肉包的JAVA笔记</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>这是人生第一次面试,有点小紧张,但是看见面试官后觉得还好。有些问题没有回答上来,下面总结这次面试,面试官提的一些问题,在接下来的时间里应该要着重去了解java一些底层的东西。以及开发所需要的东西。java学习在于广在于深1:redis(重中之重)如何处理数据,有什么使用特点2:SpringBoot框架的问题(SpringBoot如何实现自动装配)和Spring框架的区别3:高批量数据处理功能的实现</div> </li> <li><a href="/article/1935353047580471296.htm" title="8.每日LeetCode-笔试题,交替打印数字和字母" target="_blank">8.每日LeetCode-笔试题,交替打印数字和字母</a> <span class="text-muted">os-lee</span> <a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E5%92%8C%E7%AE%97%E6%B3%95/1.htm">数据结构和算法</a><a class="tag" taget="_blank" href="/search/leetcode/1.htm">leetcode</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a> <div>代码地址:interview-go:Go高级面试总结问题描述交替打印数字和字母使用两个goroutine交替打印序列,一个goroutine打印数字,另外一个goroutine打印字母,最终效果如下:12AB34CD56EF78GH910IJ1112KL1314MN1516OP1718QR1920ST2122UV2324WX2526YZ2728解题思路问题很简单,使用channel来控制打印的进度</div> </li> <li><a href="/article/1934318056679469056.htm" title="java面试总结-20250610" target="_blank">java面试总结-20250610</a> <span class="text-muted">川夜施密特</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>rediszset查询和插入的时间复杂度?限流的手段有哪些?什么情况会考虑分库分表,如何设计?如何预防和避免死锁发生?cpu的资源达到100%,如何排查?kafka架构设计原理?算法题数组的最大子数组和redis数据类型低层实现和应用场景?rpc框架组成部分?算法题数组旋转java8hashmap底层结构?链表和红黑树的时间复杂度?负载因子的作用?多线程为什么不直接使用runnable中的run而</div> </li> <li><a href="/article/1934309989690699776.htm" title="java面试总结-20250605" target="_blank">java面试总结-20250605</a> <span class="text-muted">川夜施密特</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a> <div>synchronized和lockAPI的区别区分点synchronizedlockapi来源java内置关键字java.util.concurrent包获取锁时是否可以响应中断不能响应中断可以,使用lock.lockInterruptibly()支持的锁类型非公平锁,有锁升级的过程(无锁->偏向锁->轻量级锁->重量级锁)支持非公平锁和公平锁(ReentrantLocklock=newReent</div> </li> <li><a href="/article/1934183315493941248.htm" title="国际物流杰信项目总结与面试" target="_blank">国际物流杰信项目总结与面试</a> <span class="text-muted">csdn_AF</span> <a class="tag" taget="_blank" href="/search/SSM%E6%9D%B0%E4%BF%A1%E5%95%86%E5%8A%A1%E5%B9%B3%E5%8F%B0%E9%A1%B9%E7%9B%AE/1.htm">SSM杰信商务平台项目</a><a class="tag" taget="_blank" href="/search/%E9%A1%B9%E7%9B%AE%E6%9D%82%E8%AE%B0/1.htm">项目杂记</a><a class="tag" taget="_blank" href="/search/%E9%A1%B9%E7%9B%AE%E6%80%BB%E7%BB%93/1.htm">项目总结</a><a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a> <div>国际物流杰信项目面试总结1.面试时如何讲解项目?讲出三个层次,1)讲项目的背景,讲特色的业务2)讲业务的复杂度3)从业务角度牵扯出技术亮点每一层都要挖陷阱,让面试官问问题。从面试题中找出十个重点,把它们自己总结一段话,300~500字。综合所学的所有知识2.业务a)购销合同杰信和生产厂家要签订一个购销合同,购销合同包括三部分内容,包括合同主信息和多个货物信息和多个附件信息。合同和货物是一对多,货物</div> </li> <li><a href="/article/1932207987204616192.htm" title="上海华为OD--JAVA面试总结" target="_blank">上海华为OD--JAVA面试总结</a> <span class="text-muted">Tsinghua University</span> <a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95%E7%BB%8F%E9%AA%8C%E5%88%86%E4%BA%AB/1.htm">面试经验分享</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>我是2021年6月21日收到华为OD的机试邀请,华为OD机试第一次做很难,我在2019年的时候第一次接触这个机试,三道题一题不会,要想通过,前期不去LeetCode上刷题那是不可能的,好在这次面试有个华为的人事全程对接,可能是od那边真的很缺人,他们急迫想招人进去,然后给了一份常考机试题的答案给我了,一百多道,我大概花了5天时间,全部敲了一遍,机考链接给下来,有7天有效期,如果准备准备不充分的千万</div> </li> <li><a href="/article/1931615562627084288.htm" title="Android第十五次面试总结(第三方组件和adb命令)" target="_blank">Android第十五次面试总结(第三方组件和adb命令)</a> <span class="text-muted">每次的天空</span> <a class="tag" taget="_blank" href="/search/android/1.htm">android</a> <div>Android第三方组件转为系统组件核心流程这通常是在进行Android系统定制(如ROM开发、固件制作)时完成,目的是让第三方应用拥有更高的权限和系统身份。主要过程如下:核心准备:签名!赋予系统身份核心问题:Android系统如何信任一个应用是自己人?答案是通过签名。第三方签名:普通应用使用的是开发者自己的证书签名。系统签名:系统组件必须使用与Android操作系统本身相同的特定签名密钥进行签名</div> </li> <li><a href="/article/1931441569659940864.htm" title="Android第十三次面试总结基础" target="_blank">Android第十三次面试总结基础</a> <span class="text-muted">每次的天空</span> <a class="tag" taget="_blank" href="/search/Android%E5%9F%BA%E7%A1%80%E4%B8%93%E6%A0%8F/1.htm">Android基础专栏</a><a class="tag" taget="_blank" href="/search/android/1.htm">android</a><a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a><a class="tag" taget="_blank" href="/search/%E8%81%8C%E5%9C%BA%E5%92%8C%E5%8F%91%E5%B1%95/1.htm">职场和发展</a> <div>Activity生命周期和四大启动模式详解一、Activity生命周期Activity的生命周期由一系列回调方法组成,用于管理其创建、可见性、焦点和销毁过程。以下是核心方法及其调用时机:onCreate()调用时机:Activity首次创建时调用。作用:初始化布局(setContentView)、绑定数据、创建后台线程等。注意:在此方法中应避免耗时操作。onStart()调用时机:Activity</div> </li> <li><a href="/article/1930896211980644352.htm" title="2025年6月3日面试总结" target="_blank">2025年6月3日面试总结</a> <span class="text-muted">一切顺势而行</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>1.面试官问一台机器内存或者磁盘占用99%再点一下就挂了,个人刚开始反应内存不足加内存,磁盘不足加磁盘,还有啥办法,有些时候没干过的事一定要大胆,敲命令都敲不成,只能换磁盘了和加内存了,要么停机,top-o%MEM#按内存排序进程,记录高占用PIDtop-o%MEM-b-n1|head-12|tail-n+7|awk'{print$NF""$1}'free-h(base)[root@elastic</div> </li> <li><a href="/article/1929897905838157824.htm" title="计算机网络--面试总结四(HTTP、RPC、WebSocket、SSE)" target="_blank">计算机网络--面试总结四(HTTP、RPC、WebSocket、SSE)</a> <span class="text-muted">阿东日志</span> <a class="tag" taget="_blank" href="/search/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C/1.htm">计算机网络</a><a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a><a class="tag" taget="_blank" href="/search/http/1.htm">http</a><a class="tag" taget="_blank" href="/search/rpc/1.htm">rpc</a><a class="tag" taget="_blank" href="/search/websocket/1.htm">websocket</a> <div>当前:计算机网络--面试总结四(HTTP、RPC、WebSocket、SSE)计算机网络--面试知识总结一计算机网络-----面试知识总结二计算机网络--面试总结三(Http与Https)知识积累之ThreadLocal---InheritableThreadLocal总结HTTP和RPCRPC的特点:1、调用方便:调用远程服务就像调用本地方法一样2、性能较好:RPC通常使用二进制进行传输,这样可</div> </li> <li><a href="/article/1926834178914054144.htm" title="Java知识体系最强总结(2021版),深入理解linux内核架构评价" target="_blank">Java知识体系最强总结(2021版),深入理解linux内核架构评价</a> <span class="text-muted">m0_64384202</span> <a class="tag" taget="_blank" href="/search/%E7%A8%8B%E5%BA%8F%E5%91%98/1.htm">程序员</a><a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a> <div>CentOS8推荐书籍读书笔记云计算搜索引擎权限管理区块链Java面试总结Java面试总结汇总,整理了包括Java基础知识,集合容器,并发编程,JVM,常用开源框架Spring,MyBatis,数据库,中间件等,包含了作为一个Java工程师在面试中需要用到或者可能用到的绝大部分知识。欢迎大家阅读,本人见识有限,写的博客难免有错误或者疏忽的地方,还望各位大佬指点,在此表示感激不尽。文章持续更新中…|</div> </li> <li><a href="/article/1926348970674679808.htm" title="Android第三次面试总结之Java篇补充" target="_blank">Android第三次面试总结之Java篇补充</a> <span class="text-muted">每次的天空</span> <a class="tag" taget="_blank" href="/search/Java%E5%9F%BA%E7%A1%80%E4%B8%93%E6%A0%8F/1.htm">Java基础专栏</a><a class="tag" taget="_blank" href="/search/android/1.htm">android</a><a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>一、Array与ArrayList在Android中的深度对比与优化1.内存模型与性能差异的本质原因数组(Array)的内存布局基本类型数组(如int[])在Java中是连续的原始数据块,直接存储值,无额外对象开销;对象数组(如Object[])存储引用,每个元素占4/8字节(取决于是否开启指针压缩)。Android优势:在ART虚拟机中,数组的内存分配由JVM直接管理,无需经过垃圾回收器(GC)</div> </li> <li><a href="/article/1926057006628663296.htm" title="美团2024年春招第一场笔试【技术】第五题:小美的区间删除" target="_blank">美团2024年春招第一场笔试【技术】第五题:小美的区间删除</a> <span class="text-muted">2301_78234743</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>一个普通人的暑期实习面试总结海尔-GEDP全球工程师【通用版】如何通过转正答辩(述职)海尔嵌入式25暑期实习的心态变化&拥抱变化25暑期实习的心态变化&拥抱变化字节超高实习转正率真不是吹的,我的秋招还没开始就结束啦美团实习经历分享入职体检还得体检这?关于山东企业的一点理解#牛客福利打卡(51895)##如何写#牛客福利打卡##如何写一份好简历#请教各位大神。没有实习经历,简历还可以写点什么啊?运营</div> </li> <li><a href="/article/1924548340603744256.htm" title="Android第六次面试总结之Java设计模式篇(一)" target="_blank">Android第六次面试总结之Java设计模式篇(一)</a> <span class="text-muted">每次的天空</span> <a class="tag" taget="_blank" href="/search/Java%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F%E4%B8%93%E6%A0%8F/1.htm">Java设计模式专栏</a><a class="tag" taget="_blank" href="/search/android/1.htm">android</a><a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>一、单例模式在Android面试中的核心考点1.Android中如何安全实现单例?需注意哪些坑?(字节跳动、美团面试真题)解答:Android中实现单例需重点关注Context泄漏、线程安全和反射/序列化攻击。推荐实现:静态内部类(线程安全+避免内存泄漏)publicclassAppManager{privateContextcontext;//静态内部类持有实例(类加载时初始化,线程安全)pri</div> </li> <li><a href="/article/1924424278447550464.htm" title="深信服python 面试总结" target="_blank">深信服python 面试总结</a> <span class="text-muted">Michaelzhangs</span> <a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a> <div>无意投了,前几天通知电话面试,一面对于基本知识点要掌握,扎实,问的很细,直到你答不出来为止。凭回忆记录1·生成器和迭代器说说2·线程和协程。怎么用的,这里问的很多,包括占用资源为啥线程比协程大等3·闭包。衍生到装饰器4·tcp和udp,为啥3次握手,4次挥手等5.随机报了个http端口号问是什么情况-6·基本排序知道哪几种,时间复杂度,快排怎么实现7.initnew方法说说8·项目的介绍基本上想到</div> </li> <li><a href="/article/1924413057476390912.htm" title="Python面试总结" target="_blank">Python面试总结</a> <span class="text-muted">一个Potato</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>hello,大家好,我是potato,我总结一下最近的面试遇到的问题~1.Python开发(软通动力)自我介绍主要问了项目(YOLOv11)项目遇到的难点和解决方法is,==列表和元组的区别Python多线程有什么问题?Python的GIL了解吗?深拷贝,浅拷贝的区别?redis中间件是否了解?ai-agent有多了解?MySQL事务隔离级别有几种?where和having的区别transform</div> </li> <li><a href="/article/1924395533389066240.htm" title="【题库发布】2025/新华三/H3CIE面试资料合集" target="_blank">【题库发布】2025/新华三/H3CIE面试资料合集</a> <span class="text-muted">Real资料局</span> <a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/1.htm">网络安全</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a> <div>2025/新华三/H3CIE面试资料合集新华三H3CIE-面试(路由交换)文件内容包含:白皮书-路由白皮书-园区白皮书-安全与优化真题1(2024.3.9)真题2(2024.3.10)真题3(2024.5.18)真题4(2024.12.23)H3CIE面试总结1H3CIE面试总结2H3CIE综合面试指导计算机网络面试资料H3CIE面试真题解析H3CIE面试问题整理1H3CIE面试问题整理2H3CI</div> </li> <li><a href="/article/1923740611924520960.htm" title="【计算机网络】高频计网面试总结" target="_blank">【计算机网络】高频计网面试总结</a> <span class="text-muted">{⌐■_■}</span> <a class="tag" taget="_blank" href="/search/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C/1.htm">计算机网络</a><a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a><a class="tag" taget="_blank" href="/search/%E8%81%8C%E5%9C%BA%E5%92%8C%E5%8F%91%E5%B1%95/1.htm">职场和发展</a> <div>TCP和UDP的区别tcp:保证数据可靠,(检验和、序列号去重、确认应答、滑动窗口、超时重传、拥塞控制、流量控制)面向连接的,建立连接需要三次握手,断开要四次挥手传输单位是字节流头部20字节****以上,开销大,传输效率较低应用场景:聊天,文件传输,邮件,浏览网页udp:数据不可靠,可能丢包、乱序,但是延迟更低无连接,发送数据不需要建立连接传输单位是数据包头部仅8字节,传输效率高应用场景:直播,语</div> </li> <li><a href="/article/1923099995452534784.htm" title="2024金9银10,软件测试最全面试攻略,吃透 16 个技术栈Offer拿到手软" target="_blank">2024金9银10,软件测试最全面试攻略,吃透 16 个技术栈Offer拿到手软</a> <span class="text-muted">软件测试慧姐</span> <a class="tag" taget="_blank" href="/search/%E8%BD%AF%E4%BB%B6%E6%B5%8B%E8%AF%95/1.htm">软件测试</a><a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a><a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a><a class="tag" taget="_blank" href="/search/%E8%81%8C%E5%9C%BA%E5%92%8C%E5%8F%91%E5%B1%95/1.htm">职场和发展</a><a class="tag" taget="_blank" href="/search/%E8%BD%AF%E4%BB%B6%E6%B5%8B%E8%AF%95/1.htm">软件测试</a><a class="tag" taget="_blank" href="/search/%E5%8A%9F%E8%83%BD%E6%B5%8B%E8%AF%95/1.htm">功能测试</a> <div>前言小编分享的这份软件测试面试总结包含了测试理论、Linux基础、MySQL基础、Web测试、接口测试、App测试、管理工具、Python基础、Selenium相关、性能测试、LordRunner相关等16个专题技术点,都是小编在各个大厂总结出来的面试真题,已经有很多粉丝靠这份PDF拿下众多大厂的offer,今天在这里总结分享给到大家!小编这篇分享篇幅可能有点长,观看的朋友可以先了解一下目录在文末</div> </li> <li><a href="/article/1922852508351393792.htm" title="Android面试总结之Glide源码级理解" target="_blank">Android面试总结之Glide源码级理解</a> <span class="text-muted">每次的天空</span> <a class="tag" taget="_blank" href="/search/Android%E5%AD%A6%E4%B9%A0%E7%9F%A5%E8%AF%86%E6%80%BB%E7%BB%93/1.htm">Android学习知识总结</a><a class="tag" taget="_blank" href="/search/glide/1.htm">glide</a> <div>当你的图片列表在低端机上白屏3秒、高端机因内存浪费导致FPS腰斩时,根源往往藏在Glide的内存分配僵化、磁盘混存、网络加载无优先级三大致命缺陷中。本文从阿里P8级缓存改造方案出发,结合Glide源码实现动态内存扩容、磁盘冷热分区、智能预加载等黑科技,彻底解决万级图片加载场景下的性能灾难一、Glide默认缓存架构的四大缺陷(源码级剖析)1.内存分配僵化:固定比例引发高低端机两难默认内存缓存为APP</div> </li> <li><a href="/article/1922544151707054080.htm" title="20210325某金融公司前端面试总结" target="_blank">20210325某金融公司前端面试总结</a> <span class="text-muted">uperficialyu</span> <a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF%E9%9D%A2%E8%AF%95%E5%AE%9E%E6%88%98/1.htm">前端面试实战</a> <div>目录大数相加手写讲下你最近的项目如何做性能优化如何⽤webpack来优化前端性能1.大数相加手写JS在存放整数的时候是有一个安全范围的,一旦数字超过这个范围便会损失精度。我们不能拿精度损失的数字进行运行,因为运算结果一样是会损失精度的。所以,我们要用字符串来表示数据!(不会丢失精度)方案1:leta="9007199254740991";letb="1234567899999999999";fun</div> </li> <li><a href="/article/1921853357799043072.htm" title="2025年渗透测试面试题总结-某服面试经验分享(附回答)(题目+回答)" target="_blank">2025年渗透测试面试题总结-某服面试经验分享(附回答)(题目+回答)</a> <span class="text-muted">独行soc</span> <a class="tag" taget="_blank" href="/search/2025%E5%B9%B4%E6%B8%97%E9%80%8F%E6%B5%8B%E8%AF%95%E9%9D%A2%E8%AF%95%E6%8C%87%E5%8D%97/1.htm">2025年渗透测试面试指南</a><a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a><a class="tag" taget="_blank" href="/search/%E8%81%8C%E5%9C%BA%E5%92%8C%E5%8F%91%E5%B1%95/1.htm">职场和发展</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/1.htm">网络安全</a><a class="tag" taget="_blank" href="/search/%E6%B8%97%E9%80%8F%E6%B5%8B%E8%AF%95/1.htm">渗透测试</a> <div>网络安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。目录1.协议类型2.OSI七层模型3.网络层协议4.HTTP请求头5.常见端口6.中间件解析漏洞7.CSRF修复建议8.其他漏洞类型9.HW与应急响应10.安全设备与研判11.数据流量分析12.加固方案与报告撰写面试总结与提升建议1.协议类型总结:回答覆盖了应用层和传输层</div> </li> <li><a href="/article/1920975733577019392.htm" title="关于前端经验1年的思考&&最近的前端面试" target="_blank">关于前端经验1年的思考&&最近的前端面试</a> <span class="text-muted">杏花下的海</span> <a class="tag" taget="_blank" href="/search/js/1.htm">js</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a> <div>前端面试总结离职之后,把自己放空了很久,最近也就是9.15开始找工作了,这个帖子记录下自己的面试经过,大家有类似经历的,希望评论区留言,人多的话,以后可以建立个群互相激励下。巴拉巴拉~和大家聊聊自己的想法吧,9月21号拿了外包offer,我是不想去的,但是就一年经验(我去年校招的)以及空窗期,这个面试市场确实是不给我面试机会的,之前我觉得我对前端技术掌握得其实还行,reactvuewebpackt</div> </li> <li><a href="/article/1920972456605052928.htm" title="互联网寒冬,一年经验字节跳动、虾皮、快手、拼多多前端面试总结" target="_blank">互联网寒冬,一年经验字节跳动、虾皮、快手、拼多多前端面试总结</a> <span class="text-muted">Geek技术前线</span> <a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a><a class="tag" taget="_blank" href="/search/1024%E7%A8%8B%E5%BA%8F%E5%91%98%E8%8A%82/1.htm">1024程序员节</a> <div>题主2019年非985/211非计算机专业本科毕业(野生程序员),之前在腾讯实习了半年多+毕业后在腾讯工作了一年,一直都是前端开发。年中的时候因个人原因,打算离开腾讯,到外面看看,投了若干简历,最终面试了字节跳动、虾皮、快手、拼多多这4家公司。有的喜有的忧,本文是对本次面试的一个总结。快手快手是最早约的面试,在boss直聘上投完大概几天就约了。也是我本次第一家面试的公司。时间某个工作日的晚上8点,</div> </li> <li><a href="/article/1920683517407195136.htm" title="Android第六次面试总结之Java设计模式(二)" target="_blank">Android第六次面试总结之Java设计模式(二)</a> <span class="text-muted">每次的天空</span> <a class="tag" taget="_blank" href="/search/android/1.htm">android</a><a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>一、适配器模式(AdapterPattern)1.ListViewvsRecyclerView的Adapter核心区别?为什么RecyclerView需要ViewHolder?解答:核心区别:特性ListView.Adapter(如ArrayAdapter)RecyclerView.AdapterViewHolder机制无,直接通过getView重复创建View(性能差)强制使用ViewHolde</div> </li> <li><a href="/article/1920663103624769536.htm" title="面试总结1" target="_blank">面试总结1</a> <span class="text-muted">脆脆捏</span> <a class="tag" taget="_blank" href="/search/vscode/1.htm">vscode</a> <div>做过最满意的项目,简单介绍一下开发用了多长时间前端开发几个人完成,如何分配任务开发过程中遇到什么难点,如何解决的app上线了吗怎样使用element-ui完成页面布局</div> </li> <li><a href="/article/90.htm" title="java观察者模式" target="_blank">java观察者模式</a> <span class="text-muted">3213213333332132</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/1.htm">设计模式</a><a class="tag" taget="_blank" href="/search/%E6%B8%B8%E6%88%8F/1.htm">游戏</a><a class="tag" taget="_blank" href="/search/%E8%A7%82%E5%AF%9F%E8%80%85%E6%A8%A1%E5%BC%8F/1.htm">观察者模式</a> <div>观察者模式——顾名思义,就是一个对象观察另一个对象,当被观察的对象发生变化时,观察者也会跟着变化。 在日常中,我们配java环境变量时,设置一个JAVAHOME变量,这就是被观察者,使用了JAVAHOME变量的对象都是观察者,一旦JAVAHOME的路径改动,其他的也会跟着改动。 这样的例子很多,我想用小时候玩的老鹰捉小鸡游戏来简单的描绘观察者模式。 老鹰会变成观察者,母鸡和小鸡是</div> </li> <li><a href="/article/217.htm" title="TFS RESTful API 模拟上传测试" target="_blank">TFS RESTful API 模拟上传测试</a> <span class="text-muted">ronin47</span> <div>       TFS RESTful API 模拟上传测试。    细节参看这里:https://github.com/alibaba/nginx-tfs/blob/master/TFS_RESTful_API.markdown 模拟POST上传一个图片: curl --data-binary @/opt/tfs.png http</div> </li> <li><a href="/article/344.htm" title="PHP常用设计模式单例, 工厂, 观察者, 责任链, 装饰, 策略,适配,桥接模式" target="_blank">PHP常用设计模式单例, 工厂, 观察者, 责任链, 装饰, 策略,适配,桥接模式</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/1.htm">设计模式</a><a class="tag" taget="_blank" href="/search/PHP/1.htm">PHP</a> <div>// 多态, 在JAVA中是这样用的, 其实在PHP当中可以自然消除, 因为参数是动态的, 你传什么过来都可以, 不限制类型, 直接调用类的方法 abstract class Tiger { public abstract function climb(); } class XTiger extends Tiger { public function climb()</div> </li> <li><a href="/article/471.htm" title="hibernate" target="_blank">hibernate</a> <span class="text-muted">171815164</span> <a class="tag" taget="_blank" href="/search/Hibernate/1.htm">Hibernate</a> <div>main,save Configuration conf =new Configuration().configure(); SessionFactory sf=conf.buildSessionFactory(); Session sess=sf.openSession(); Transaction tx=sess.beginTransaction(); News a=new </div> </li> <li><a href="/article/598.htm" title="Ant实例分析" target="_blank">Ant实例分析</a> <span class="text-muted">g21121</span> <a class="tag" taget="_blank" href="/search/ant/1.htm">ant</a> <div>        下面是一个Ant构建文件的实例,通过这个实例我们可以很清楚的理顺构建一个项目的顺序及依赖关系,从而编写出更加合理的构建文件。           下面是build.xml的代码: <?xml version="1</div> </li> <li><a href="/article/725.htm" title="[简单]工作记录_接口返回405原因" target="_blank">[简单]工作记录_接口返回405原因</a> <span class="text-muted">53873039oycg</span> <a class="tag" taget="_blank" href="/search/%E5%B7%A5%E4%BD%9C/1.htm">工作</a> <div>         最近调接口时候一直报错,错误信息是:       responseCode:405 responseMsg:Method Not Allowed        接口请求方式Post. </div> </li> <li><a href="/article/852.htm" title="关于java.lang.ClassNotFoundException 和 java.lang.NoClassDefFoundError 的区别" target="_blank">关于java.lang.ClassNotFoundException 和 java.lang.NoClassDefFoundError 的区别</a> <span class="text-muted">程序员是怎么炼成的</span> <div>   真正完成类的加载工作是通过调用 defineClass来实现的;  而启动类的加载过程是通过调用 loadClass来实现的;  就是类加载器分为加载和定义   protected Class<?> findClass(String name) throws ClassNotFoundExcept</div> </li> <li><a href="/article/979.htm" title="JDBC学习笔记-JDBC详细的操作流程" target="_blank">JDBC学习笔记-JDBC详细的操作流程</a> <span class="text-muted">aijuans</span> <a class="tag" taget="_blank" href="/search/jdbc/1.htm">jdbc</a> <div>所有的JDBC应用程序都具有下面的基本流程:  1、加载数据库驱动并建立到数据库的连接。  2、执行SQL语句。  3、处理结果。  4、从数据库断开连接释放资源。 下面我们就来仔细看一看每一个步骤: 其实按照上面所说每个阶段都可得单独拿出来写成一个独立的类方法文件。共别的应用来调用。 1、加载数据库驱动并建立到数据库的连接:   Html代码  St</div> </li> <li><a href="/article/1106.htm" title="rome创建rss" target="_blank">rome创建rss</a> <span class="text-muted">antonyup_2006</span> <a class="tag" taget="_blank" href="/search/tomcat/1.htm">tomcat</a><a class="tag" taget="_blank" href="/search/cms/1.htm">cms</a><a class="tag" taget="_blank" href="/search/xml/1.htm">xml</a><a class="tag" taget="_blank" href="/search/struts/1.htm">struts</a><a class="tag" taget="_blank" href="/search/Opera/1.htm">Opera</a> <div>引用 1.RSS标准 RSS标准比较混乱,主要有以下3个系列 RSS 0.9x / 2.0 : RSS技术诞生于1999年的网景公司(Netscape),其发布了一个0.9版本的规范。2001年,RSS技术标准的发展工作被Userland Software公司的戴夫 温那(Dave Winer)所接手。陆续发布了0.9x的系列版本。当W3C小组发布RSS 1.0后,Dave W</div> </li> <li><a href="/article/1233.htm" title="html表格和表单基础" target="_blank">html表格和表单基础</a> <span class="text-muted">百合不是茶</span> <a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/%E8%A1%A8%E6%A0%BC/1.htm">表格</a><a class="tag" taget="_blank" href="/search/%E8%A1%A8%E5%8D%95/1.htm">表单</a><a class="tag" taget="_blank" href="/search/meta/1.htm">meta</a><a class="tag" taget="_blank" href="/search/%E9%94%9A%E7%82%B9/1.htm">锚点</a> <div>第一次用html来写东西,感觉压力山大,每次看见别人发的都是比较牛逼的 再看看自己什么都还不会,   html是一种标记语言,其实很简单都是固定的格式   _----------------------------------------表格和表单 表格是html的重要组成部分,表格用在body里面的 主要用法如下; <table> &</div> </li> <li><a href="/article/1360.htm" title="ibatis如何传入完整的sql语句" target="_blank">ibatis如何传入完整的sql语句</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/sql/1.htm">sql</a><a class="tag" taget="_blank" href="/search/ibatis/1.htm">ibatis</a> <div>        ibatis如何传入完整的sql语句?进一步说,String str ="select * from test_table",我想把str传入ibatis中执行,是传递整条sql语句。         解决办法: <</div> </li> <li><a href="/article/1487.htm" title="精通Oracle10编程SQL(14)开发动态SQL" target="_blank">精通Oracle10编程SQL(14)开发动态SQL</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a><a class="tag" taget="_blank" href="/search/plsql/1.htm">plsql</a> <div>/* *开发动态SQL */ --使用EXECUTE IMMEDIATE处理DDL操作 CREATE OR REPLACE PROCEDURE drop_table(table_name varchar2) is sql_statement varchar2(100); begin sql_statement:='DROP TABLE '||table_name; </div> </li> <li><a href="/article/1614.htm" title="【Linux命令】Linux工作中常用命令" target="_blank">【Linux命令】Linux工作中常用命令</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/linux%E5%91%BD%E4%BB%A4/1.htm">linux命令</a> <div>不断的总结工作中常用的Linux命令   1.查看端口被哪个进程占用   通过这个命令可以得到占用8085端口的进程号,然后通过ps -ef|grep 进程号得到进程的详细信息   netstat -anp | grep 8085   察看进程ID对应的进程占用的端口号   netstat -anp | grep 进程ID &</div> </li> <li><a href="/article/1741.htm" title="优秀网站和文档收集" target="_blank">优秀网站和文档收集</a> <span class="text-muted">白糖_</span> <a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%AB%99/1.htm">网站</a> <div>集成 Flex, Spring, Hibernate 构建应用程序   性能测试工具-JMeter   Hmtl5-IOCN网站   Oracle精简版教程网站   鸟哥的linux私房菜   Jetty中文文档   50个jquery必备代码片段   swfobject.js检测flash版本号工具</div> </li> <li><a href="/article/1868.htm" title="angular.extend" target="_blank">angular.extend</a> <span class="text-muted">boyitech</span> <a class="tag" taget="_blank" href="/search/AngularJS/1.htm">AngularJS</a><a class="tag" taget="_blank" href="/search/angular.extend/1.htm">angular.extend</a><a class="tag" taget="_blank" href="/search/AngularJS+API/1.htm">AngularJS API</a> <div>angular.extend 复制src对象中的属性去dst对象中. 支持多个src对象. 如果你不想改变一个对象,你可以把dst设为空对象{}: var object = angular.extend({}, object1, object2). 注意: angular.extend不支持递归复制. 使用方法: angular.extend(dst, src); 参数: </div> </li> <li><a href="/article/1995.htm" title="java-谷歌面试题-设计方便提取中数的数据结构" target="_blank">java-谷歌面试题-设计方便提取中数的数据结构</a> <span class="text-muted">bylijinnan</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>网上找了一下这道题的解答,但都是提供思路,没有提供具体实现。其中使用大小堆这个思路看似简单,但实现起来要考虑很多。 以下分别用排序数组和大小堆来实现。 使用大小堆: import java.util.Arrays; public class MedianInHeap { /** * 题目:设计方便提取中数的数据结构 * 设计一个数据结构,其中包含两个函数,1.插</div> </li> <li><a href="/article/2122.htm" title="ajaxFileUpload 针对 ie jquery 1.7+不能使用问题修复版本" target="_blank">ajaxFileUpload 针对 ie jquery 1.7+不能使用问题修复版本</a> <span class="text-muted">Chen.H</span> <a class="tag" taget="_blank" href="/search/ajaxFileUpload/1.htm">ajaxFileUpload</a><a class="tag" taget="_blank" href="/search/ie6/1.htm">ie6</a><a class="tag" taget="_blank" href="/search/ie7/1.htm">ie7</a><a class="tag" taget="_blank" href="/search/ie8/1.htm">ie8</a><a class="tag" taget="_blank" href="/search/ie9/1.htm">ie9</a> <div>jQuery.extend({ handleError: function( s, xhr, status, e ) { // If a local callback was specified, fire it if ( s.error ) { s.error.call( s.context || s, xhr, status, e ); } </div> </li> <li><a href="/article/2249.htm" title="[机器人制造原则]机器人的电池和存储器必须可以替换" target="_blank">[机器人制造原则]机器人的电池和存储器必须可以替换</a> <span class="text-muted">comsci</span> <a class="tag" taget="_blank" href="/search/%E5%88%B6%E9%80%A0/1.htm">制造</a> <div>        机器人的身体随时随地可能被外来力量所破坏,但是如果机器人的存储器和电池可以更换,那么这个机器人的思维和记忆力就可以保存下来,即使身体受到伤害,在把存储器取下来安装到一个新的身体上之后,原有的性格和能力都可以继续维持.....        另外,如果一</div> </li> <li><a href="/article/2376.htm" title="Oracle Multitable INSERT 的用法" target="_blank">Oracle Multitable INSERT 的用法</a> <span class="text-muted">daizj</span> <a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a> <div>转载Oracle笔记-Multitable INSERT 的用法 http://blog.chinaunix.net/uid-8504518-id-3310531.html 一、Insert基础用法 语法:     Insert Into 表名 (字段1,字段2,字段3...)     Values (值1,</div> </li> <li><a href="/article/2503.htm" title="专访黑客历史学家George Dyson" target="_blank">专访黑客历史学家George Dyson</a> <span class="text-muted">datamachine</span> <a class="tag" taget="_blank" href="/search/on/1.htm">on</a> <div>20世纪最具威力的两项发明——核弹和计算机出自同一时代、同一群年青人。可是,与大名鼎鼎的曼哈顿计划(第二次世界大战中美国原子弹研究计划)相 比,计算机的起源显得默默无闻。出身计算机世家的历史学家George Dyson在其新书《图灵大教堂》(Turing’s Cathedral)中讲述了阿兰·图灵、约翰·冯·诺依曼等一帮子天才小子创造计算机及预见计算机未来</div> </li> <li><a href="/article/2630.htm" title="小学6年级英语单词背诵第一课" target="_blank">小学6年级英语单词背诵第一课</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/english/1.htm">english</a><a class="tag" taget="_blank" href="/search/word/1.htm">word</a> <div>always 总是 rice 水稻,米饭 before 在...之前 live 生活,居住   usual 通常的 early 早的 begin 开始 month 月份   year 年 last 最后的 east 东方的 high 高的   far 远的 window 窗户 world 世界 than 比...更   </div> </li> <li><a href="/article/2757.htm" title="在线IT教育和在线IT高端教育" target="_blank">在线IT教育和在线IT高端教育</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/%E6%95%99%E8%82%B2/1.htm">教育</a> <div>codecademy  http://www.codecademy.com codeschool  https://www.codeschool.com teamtreehouse  http://teamtreehouse.com lynda http://www.lynda.com/ Coursera https://www.coursera.</div> </li> <li><a href="/article/2884.htm" title="Struts2 xml校验框架所定义的校验文件" target="_blank">Struts2 xml校验框架所定义的校验文件</a> <span class="text-muted">蕃薯耀</span> <a class="tag" taget="_blank" href="/search/Struts2+xml%E6%A0%A1%E9%AA%8C/1.htm">Struts2 xml校验</a><a class="tag" taget="_blank" href="/search/Struts2+xml%E6%A0%A1%E9%AA%8C%E6%A1%86%E6%9E%B6/1.htm">Struts2 xml校验框架</a><a class="tag" taget="_blank" href="/search/Struts2%E6%A0%A1%E9%AA%8C/1.htm">Struts2校验</a> <div>  >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 蕃薯耀 2015年7月11日 15:54:59 星期六 http://fa</div> </li> <li><a href="/article/3011.htm" title="mac下安装rar和unrar命令" target="_blank">mac下安装rar和unrar命令</a> <span class="text-muted">hanqunfeng</span> <a class="tag" taget="_blank" href="/search/mac/1.htm">mac</a> <div>1.下载:http://www.rarlab.com/download.htm 选择 RAR 5.21 for Mac OS X 2.解压下载后的文件 tar -zxvf rarosx-5.2.1.tar 3.cd rar sudo install -c -o $USER unrar /bin #输入当前用户登录密码 sudo install -c -o $USER rar</div> </li> <li><a href="/article/3138.htm" title="三种将list转换为map的方法" target="_blank">三种将list转换为map的方法</a> <span class="text-muted">jackyrong</span> <a class="tag" taget="_blank" href="/search/list/1.htm">list</a> <div>  在本文中,介绍三种将list转换为map的方法: 1) 传统方法 假设有某个类如下    class Movie { private Integer rank; private String description; public Movie(Integer rank, String des</div> </li> <li><a href="/article/3265.htm" title="年轻程序员需要学习的5大经验" target="_blank">年轻程序员需要学习的5大经验</a> <span class="text-muted">lampcy</span> <a class="tag" taget="_blank" href="/search/%E5%B7%A5%E4%BD%9C/1.htm">工作</a><a class="tag" taget="_blank" href="/search/PHP/1.htm">PHP</a><a class="tag" taget="_blank" href="/search/%E7%A8%8B%E5%BA%8F%E5%91%98/1.htm">程序员</a> <div>在过去的7年半时间里,我带过的软件实习生超过一打,也看到过数以百计的学生和毕业生的档案。我发现很多事情他们都需要学习。或许你会说,我说的不就是某种特定的技术、算法、数学,或者其他特定形式的知识吗?没错,这的确是需要学习的,但却并不是最重要的事情。他们需要学习的最重要的东西是“自我规范”。这些规范就是:尽可能地写出最简洁的代码;如果代码后期会因为改动而变得凌乱不堪就得重构;尽量删除没用的代码,并添加</div> </li> <li><a href="/article/3392.htm" title="评“女孩遭野蛮引产致终身不育 60万赔偿款1分未得”医腐深入骨髓" target="_blank">评“女孩遭野蛮引产致终身不育 60万赔偿款1分未得”医腐深入骨髓</a> <span class="text-muted">nannan408</span> <div>先来看南方网的一则报道: 再正常不过的结婚、生子,对于29岁的郑畅来说,却是一个永远也无法实现的梦想。从2010年到2015年,从24岁到29岁,一张张新旧不一的诊断书记录了她病情的同时,也清晰地记下了她人生的悲哀。   粗暴手术让人发寒   2010年7月,在酒店做服务员的郑畅发现自己怀孕了,可男朋友却联系不上。在没有和家人商量的情况下,她决定堕胎。   12月5日,</div> </li> <li><a href="/article/3519.htm" title="使用jQuery为input输入框绑定回车键事件 VS 为a标签绑定click事件" target="_blank">使用jQuery为input输入框绑定回车键事件 VS 为a标签绑定click事件</a> <span class="text-muted">Everyday都不同</span> <a class="tag" taget="_blank" href="/search/jsp/1.htm">jsp</a><a class="tag" taget="_blank" href="/search/input/1.htm">input</a><a class="tag" taget="_blank" href="/search/%E5%9B%9E%E8%BD%A6%E9%94%AE%E7%BB%91%E5%AE%9A/1.htm">回车键绑定</a><a class="tag" taget="_blank" href="/search/click/1.htm">click</a><a class="tag" taget="_blank" href="/search/enter/1.htm">enter</a> <div>假设如题所示的事件为同一个,必须先把该js函数抽离出来,该函数定义了监听的处理:   function search() { //监听函数略...... }   为input框绑定回车事件,当用户在文本框中输入搜索关键字时,按回车键,即可触发search():   //回车绑定 $(".search").keydown(fun</div> </li> <li><a href="/article/3646.htm" title="EXT学习记录" target="_blank">EXT学习记录</a> <span class="text-muted">tntxia</span> <a class="tag" taget="_blank" href="/search/ext/1.htm">ext</a> <div>  1. 准备   (1) 官网:http://www.sencha.com/   里面有源代码和API文档下载。   EXT的域名已经从www.extjs.com改成了www.sencha.com ,但extjs这个域名会自动转到sencha上。   (2)帮助文档:   想要查看EXT的官方文档的话,可以去这里h</div> </li> <li><a href="/article/3773.htm" title="mybatis3的mapper文件报Referenced file contains errors" target="_blank">mybatis3的mapper文件报Referenced file contains errors</a> <span class="text-muted">xingguangsixian</span> <a class="tag" taget="_blank" href="/search/mybatis/1.htm">mybatis</a> <div>最近使用mybatis.3.1.0时无意中碰到一个问题: The errors below were detected when validating the file "mybatis-3-mapper.dtd" via the file "account-mapper.xml". In most cases these errors can be d</div> </li> </ul> </div> </div> </div> <div> <div class="container"> <div class="indexes"> <strong>按字母分类:</strong> <a href="/tags/A/1.htm" target="_blank">A</a><a href="/tags/B/1.htm" target="_blank">B</a><a href="/tags/C/1.htm" target="_blank">C</a><a href="/tags/D/1.htm" target="_blank">D</a><a href="/tags/E/1.htm" target="_blank">E</a><a href="/tags/F/1.htm" target="_blank">F</a><a href="/tags/G/1.htm" target="_blank">G</a><a href="/tags/H/1.htm" target="_blank">H</a><a href="/tags/I/1.htm" target="_blank">I</a><a href="/tags/J/1.htm" target="_blank">J</a><a href="/tags/K/1.htm" target="_blank">K</a><a href="/tags/L/1.htm" target="_blank">L</a><a href="/tags/M/1.htm" target="_blank">M</a><a href="/tags/N/1.htm" target="_blank">N</a><a href="/tags/O/1.htm" target="_blank">O</a><a href="/tags/P/1.htm" target="_blank">P</a><a href="/tags/Q/1.htm" target="_blank">Q</a><a href="/tags/R/1.htm" target="_blank">R</a><a href="/tags/S/1.htm" target="_blank">S</a><a href="/tags/T/1.htm" target="_blank">T</a><a href="/tags/U/1.htm" target="_blank">U</a><a href="/tags/V/1.htm" target="_blank">V</a><a href="/tags/W/1.htm" target="_blank">W</a><a href="/tags/X/1.htm" target="_blank">X</a><a href="/tags/Y/1.htm" target="_blank">Y</a><a href="/tags/Z/1.htm" target="_blank">Z</a><a href="/tags/0/1.htm" target="_blank">其他</a> </div> </div> </div> <footer id="footer" class="mb30 mt30"> <div class="container"> <div class="footBglm"> <a target="_blank" href="/">首页</a> - <a target="_blank" href="/custom/about.htm">关于我们</a> - <a target="_blank" href="/search/Java/1.htm">站内搜索</a> - <a target="_blank" href="/sitemap.txt">Sitemap</a> - <a target="_blank" href="/custom/delete.htm">侵权投诉</a> </div> <div class="copyright">版权所有 IT知识库 CopyRight © 2000-2050 E-COM-NET.COM , All Rights Reserved. <!-- <a href="https://beian.miit.gov.cn/" rel="nofollow" target="_blank">京ICP备09083238号</a><br>--> </div> </div> </footer> <!-- 代码高亮 --> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shCore.js"></script> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shLegacy.js"></script> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shAutoloader.js"></script> <link type="text/css" rel="stylesheet" href="/static/syntaxhighlighter/styles/shCoreDefault.css"/> <script type="text/javascript" src="/static/syntaxhighlighter/src/my_start_1.js"></script> </body> </html>