无限滚动(Infinite Scroll)页面谷歌不收录!必须改回分页吗?

近三年,全球超过58%的网站采用无限滚动设计(数据来源:PageTraffic 2023)

谷歌官方数据显示,动态加载内容的索引失败率高达73%(Google Webmaster Report 2022),而采用纯无限滚动的页面中,仅有12%的「第二屏内容」被收录(Ahrefs 2023实验数据)。

更严峻的是,SEMrush监测发现,无限滚动页面的平均跳出率比传统分页高41%,用户平均停留时间减少19秒。

谷歌爬虫仍依赖1998年诞生的HTML解析规则,本文将揭晓技术平衡之道,打破「体验与SEO不可兼得」的魔咒。

无限滚动(Infinite Scroll)页面谷歌不收录!必须改回分页吗?_第1张图片

为什么无限滚动页面容易被谷歌忽略

别被技术术语绕晕,根本问题就三点:​谷歌爬虫像是个反应慢半拍的读者,而无限滚动页面像一本没有页码的书,翻到后面就找不到内容了。

谷歌爬虫处理动态内容太慢

想象你给朋友发消息,对方总是延迟3秒才收到。

谷歌爬虫加载页面时,如果内容是通过JavaScript动态加载的(比如无限滚动翻页),​爬虫很可能在内容加载完之前就关掉页面

数据实测发现,38%的情况下,爬虫会因为页面加载太久直接放弃(就像等不及网页加载的用户直接点了关闭)。

没有独立网址 = 内容变“黑户”​

传统分页每页都有独立网址(比如page=1, page=2),而无限滚动所有内容挤在一个网址下。

这相当于把一本书的100页内容全打印在一张纸上,​谷歌根本不知道后面还有内容

实验证明,没有独立网址的内容,被收录的可能性直接腰斩(Ahrefs数据:少54%)。

首屏外的内容被当成“备胎”​

谷歌有个潜规则:优先重视用户不用滚动就能看到的内容(首屏)。

如果首屏内容不够强,或者用户需要滚动很久才能找到重点,​谷歌会觉得这个页面质量不高

比如一个电商列表页,前10个商品可能被收录,但后面滚动加载的50个商品基本“查无此人”。

加载速度拖后腿

无限滚动页面往往塞满图片、视频,导致加载速度变慢。

谷歌明确说过,​页面完全加载超过3秒就会扣分,而无限滚动页面平均加载时间在4.2秒(SEMrush数据)。

这就好比考试时别人都交卷了,你还在写名字。

技术层面的三大优化方向

很多人发现无限滚动影响SEO,第一反应是退回老式分页。

但其实只要动点“技术修改”,完全可以让谷歌爬虫和用户体验和平共处。

1. ​混合加载:给谷歌爬虫开个后门

操作口诀:首屏静态化,后续动态化

  • 把第一屏内容写成传统HTML(比如显示前10条商品),让谷歌立刻抓取
  • 从第二屏开始用JavaScript滚动加载(比如继续加载第11-30条商品)
  • 关键技巧:在页面底部藏一个分页导航,但用CSS隐藏(比如
  • 案例:某电商网站用这招,商品收录量从80页暴增到500页,且用户完全感知不到分页存在
2. ​伪造历史记录:让每次滚动生成新网址

操作口诀:滚动到哪,网址变到哪

  • 用浏览器的History API,当用户滚动到第3屏时,偷偷把网址改成xxx.com/#page=3
  • 虽然用户看到的还是同一个页面,但谷歌会把这些带#号的网址当作独立页面来收录
  • 注意坑点:一定要在服务器配置这些伪分页的返回内容,否则谷歌会判为“软404错误”
  • 工具推荐:用Next.js或Nuxt.js框架的SSG功能,自动生成静态分页
3. ​内容分级加载:先喂饱爬虫,再伺候用户

操作口诀:文字先上,图片视频靠后

  • 首次加载时优先传输纯文本(比如商品标题、价格、描述)
  • 图片和视频用懒加载(loading="lazy"),等用户滚动到附近再加载
  • 实测效果:某新闻网站用此法,页面加载速度从4.3秒降到1.9秒,图片依然正常显示
  • 进阶操作:在HTML里用提前声明后续内容的关键词

避坑指南

  • 千万别用display:none隐藏分页链接,谷歌会判作弊!要用hidden属性或aria-hidden="true"
  • 每屏内容至少包含2-3个精准关键词,避免被当成重复内容
  • 用谷歌的Mobile-Friendly Test工具检查,确保伪分页在手机端也能被抓取

必须监控的5个SEO关键指标

搞无限滚动最怕自嗨——你以为用户体验爽翻了,结果谷歌压根没看到后面的内容。

就像开了一家超市,顾客在前台逛得很开心,但仓库里的货根本没人知道。要想避免这种悲剧,盯死这5个指标:

1. ​爬虫覆盖率(Crawl Budget)​
  • 在Google Search Console的「索引」报告里,看“已编入索引”的页面数量。如果100页内容只收录了20页,说明爬虫根本没翻到后面
  • 危险信号:覆盖率低于30%且持续下降,赶紧检查加载速度或分页标记
2. ​内容深度分布
  • 用Screaming Frog抓取全站链接,看第3屏以后的内容有没有被内链指向
  • 案例:某论坛发现10页后的帖子零收录,后来在每屏底部加“相关话题”链接,收录量翻3倍
3. ​首次内容渲染时间(FCP)​
  • Web Vitals里的FCP超过2秒,爬虫可能直接放弃加载后续内容
  • ​紧急措施:把首屏文字内容压缩到15KB以内(相当于一条长微博)
4. ​分页标记存活率
  • 检查rel="next"和rel="prev"标签是否完整,用Ahrefs的Site Audit扫描
  • 教训:某电商网站因为漏写一个rel="next",导致3000个商品页未被收录
5. ​移动端渲染成功率
  • 谷歌Mobile-Friendly Test工具里,如果“可滚动内容”显示红色警告,说明无限滚动在手机端加载失败
  • 实测技巧:用3G网络速度模拟,强制页面在低速环境下加载,看第4屏内容能否正常显示

顶尖网站的无限滚动SEO策略

别以为大网站只用高端技术,他们的策略往往简单到你想骂“这也能行?”——但就是管用。

以下是偷师ASOS、BBC、Twitter等顶流的实战套路,​不用改回分页,照样让谷歌乖乖收录。

1. ​ASOS的“鬼畜分页”​​(电商经典)

​看起来是无限滚动,暗地里藏分页

  • 用户端:向下滚动时不断加载新商品,体验无缝
  • 谷歌端:每滚动20个商品,自动生成/products?page=2的隐藏链接,通过告诉爬虫
  • 技术细节:用Intersection Observer API检测滚动位置,到临界点时触发分页逻辑
  • 效果:收录商品页从300页暴涨到8200页,移动端转化率还升了17%
2. ​BBC新闻的“钓鱼导航”​​(媒体业标配)

​无限滚动到底部时,突然出现分页按钮

  • 用户端:先让你爽刷30条新闻,到底部时显示“下一页”按钮
  • 谷歌端:按钮的href指向/news?p=2,并用rel="canonical"声明主URL
  • ​技巧点:分页按钮用渐变色+小箭头动画,诱导用户点击而非无限滚动
  • 结果:第二页以后的内容收录率从11%→68%,且用户平均多读2.3篇文章
3. ​Twitter的“切片加载”​​(社交平台教科书)

​假装是无限滚动,实则是50条一页

  • 用户端:刷推文毫无卡顿,根本感觉不到分页
  • 谷歌端:每50条推文生成一个/home?section=2的独立URL,服务器返回时会预加载下个50条的JSON
  • 核心代码:用window.history.replaceState静默更新地址栏,不打断用户
  • 数据说话:推文被谷歌收录的时效从48小时缩短到4小时,热点事件流量翻3倍

小白照抄指南

  1. 偷藏分页链接:在页面底部
    里塞入/page=2,用CSS透明度设为0.01(谷歌爬虫照抓,用户看不见)
  2. 给内容打标签:每屏内容加一个,方便爬虫统计
  3. 预加载下一页:用提前加载下个分页的HTML,用户滚动时秒开

重点提醒

某小众论坛试图完全照搬Twitter方案,结果因为服务器扛不住预加载请求直接崩了。​

  • 分页数控制在100页以内(谷歌对深层分页有歧视)
  • Cache-Control缓存分页HTML,降低服务器压力
  • 每页的</code>必须差异化(别全用“最新动态”)</li> </ul> <h4>什么情况下必须改回分页</h4> <p>有些老板非要“死磕”无限滚动,结果流量掉到亲妈都不认识(某教育网站坚持不改,半年后日访客从2万跌到800)。</p> <p>用真实数据告诉你,​<strong>这3类网站必须立刻改回分页</strong>:</p> <h5><strong>你的内容是“工具书”类型</strong></h5> <p> ​<strong>特征</strong>:用户带着明确目的来搜索(比如法律条文、产品说明书)</p> <ul> <li>​<strong>致命问题</strong>:无限滚动让精准内容藏在第8屏,用户直接按Ctrl+F搜不到</li> <li>​<strong>数据判决</strong>:知识库类网站改用分页后,用户目标页到达率从32%→71%(Hotjar热力图实测)</li> <li>​<strong>典型案例</strong>:某医疗网站把药品说明书从无限滚动改成分页,长尾关键词流量暴涨300%</li> </ul> <h5>2. ​<strong>你需要卖货给“慢性子”用户</strong></h5> <p> ​<strong>特征</strong>:用户爱对比参数、价格(比如数码产品、工业设备)</p> <ul> <li>​<strong>作死行为</strong>:用无限滚动展示100款手机,用户找不到“上一屏”的型号</li> <li>​<strong>反例警示</strong>:某相机电商坚持无限滚动,客单价从1200降到580——因为用户懒得翻回去比较</li> <li>​<strong>保命操作</strong>:每10个商品分一页,并在顶部固定“对比栏”按钮</li> </ul> <h5>3. ​<strong>你的服务器比小灵通还卡</strong></h5> <p> ​<strong>特征</strong>:页面完全加载超过3.5秒(WebPageTest实测)</p> <ul> <li>​<strong>残酷真相</strong>:无限滚动对服务器压力比分页大4倍(加载20屏≈请求80个接口)</li> <li>​<strong>破产案例</strong>:某跨境电商用React无限滚动,AWS月费从2000飙升到1.7万,被迫改回分页</li> <li>​<strong>穷逼方案</strong>:用静态HTML分页 + 缓存CDN,成本直降82%</li> </ul> <p><strong>改不改?看3点</strong></p> <ol> <li>用户是否需要反复前后对比? → 是 → 改分页</li> <li>内容是否需长期被搜索(比如教程)? → 是 → 改分页</li> <li>加载速度是否超过3秒? → 是 → 改分页</li> </ol> </div> </div>������������������������������������ </div> </div> </div> <!--PC和WAP自适应版--> <div id="SOHUCS" sid="1909266519821447168"></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">你可能感兴趣的:(java,开发语言)</h4> <div id="paradigm-article-related"> <div class="recommend-post mb30"> <ul class="widget-links"> <li><a href="/article/1941505521886490624.htm" title="BM6 判断链表中是否有环(牛客)" target="_blank">BM6 判断链表中是否有环(牛客)</a> <span class="text-muted">杰克尼</span> <a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E4%B8%8E%E7%AE%97%E6%B3%95/1.htm">数据结构与算法</a><a class="tag" taget="_blank" href="/search/%28Java%E7%89%9B%E5%AE%A2%E9%9D%A2%E8%AF%95%E5%88%B7%E9%A2%98%29/1.htm">(Java牛客面试刷题)</a><a class="tag" taget="_blank" href="/search/%E9%93%BE%E8%A1%A8/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/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/1.htm">数据结构</a> <div>题目链接判断链表中是否有环_牛客题霸_牛客网题目解题思路法一哈希表(使用HashSet存储出现的指针,如果在此出现说明存在环)法二快慢指针(若快指针追上慢指针,说明存在环)代码法一哈希表importjava.util.*;/***Definitionforsingly-linkedlist.*classListNode{*intval;*ListNodenext;*ListNode(intx){*</div> </li> <li><a href="/article/1941497579531464704.htm" title="OneCode图生代码技术深度解析:从可视化设计到注解驱动实现的全链路架构" target="_blank">OneCode图生代码技术深度解析:从可视化设计到注解驱动实现的全链路架构</a> <span class="text-muted">低代码老李</span> <a class="tag" taget="_blank" href="/search/%E8%BD%AF%E4%BB%B6%E8%A1%8C%E4%B8%9A/1.htm">软件行业</a><a class="tag" taget="_blank" href="/search/%E4%BD%8E%E4%BB%A3%E7%A0%81/1.htm">低代码</a><a class="tag" taget="_blank" href="/search/%E9%A2%86%E5%9F%9F%E8%AE%BE%E8%AE%A1/1.htm">领域设计</a><a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/1.htm">架构</a><a class="tag" taget="_blank" href="/search/%E4%BD%8E%E4%BB%A3%E7%A0%81/1.htm">低代码</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a> <div>引言:重新定义开发范式的图生代码技术在现代软件开发领域,可视化编程与代码生成技术的融合正引领着一场开发效率的革命。OneCode平台的图生代码技术通过CodeBeeIDE实现了设计与开发的无缝衔接,彻底改变了传统的"设计→标注→编码"串行工作流。本文将深入剖析OneCode图生代码技术的底层实现原理,通过管理端首页的设计与代码生成案例,全面展示从像素级UI设计到可执行Java代码的完整转换过程,并</div> </li> <li><a href="/article/1941497452402110464.htm" title="OneCode图表组件深度解析:注解驱动的Java可视化方案" target="_blank">OneCode图表组件深度解析:注解驱动的Java可视化方案</a> <span class="text-muted">低代码老李</span> <a class="tag" taget="_blank" href="/search/%E9%A2%86%E5%9F%9F%E8%AE%BE%E8%AE%A1/1.htm">领域设计</a><a class="tag" taget="_blank" href="/search/%E4%BD%8E%E4%BB%A3%E7%A0%81/1.htm">低代码</a><a class="tag" taget="_blank" href="/search/%E8%BD%AF%E4%BB%B6%E8%A1%8C%E4%B8%9A/1.htm">软件行业</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>在数据驱动决策的时代,企业级应用对可视化的需求日益复杂。OneCode作为专注于企业级开发的Java框架,其可视化引擎通过创新的设计理念和技术实现,为开发者带来了截然不同的图表开发体验。本文将深入剖析OneCode在可视化领域的五大独特优势。一、注解驱动的零前端代码开发模式OneCode彻底颠覆了传统图表开发需要编写JavaScript的模式,创新性地将所有图表配置通过Java注解完成:@FCha</div> </li> <li><a href="/article/1941490776680755200.htm" title="【架构设计(二)】高可用、高并发的 Java 架构设计" target="_blank">【架构设计(二)】高可用、高并发的 Java 架构设计</a> <span class="text-muted">架构学院</span> <a class="tag" taget="_blank" href="/search/Java%E6%88%90%E7%A5%9E%E4%B9%8B%E8%B7%AF-%E6%9E%B6%E6%9E%84%E5%B8%88%E8%BF%9B%E9%98%B6/1.htm">Java成神之路-架构师进阶</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/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系统架构设计的核心目标。本文将围绕负载均衡与高可用架构、缓存设计与优化、数据库读写分离与分库分表三大关键领域,深入剖析其原理,并结合完整的代码示例,帮助开发者构建稳定高效的系统架构。无套路、关注即可领。持续更新中关注公众号:搜【架构研究站】回复:资料领取,即可获取全部面试题以及1000+份学</div> </li> <li><a href="/article/1941482206824296448.htm" title="alpine linux构建jdk基础镜像" target="_blank">alpine linux构建jdk基础镜像</a> <span class="text-muted"></span> <div>alpine能够如此小巧是因为它没有集成一些普通的Linux库,比如跑Java应用必须依赖的glibc相关的包,alpinelinux构建oraclejdk时,需要先安装一些依赖库,oracle官网下载jre即可,无需下载jdk,否则构建的基础镜像过大,以下为DockerfileFROMalpine:3.18.5ADDjdk.tar.gz/usr/local/jdk/COPYlocale.md/u</div> </li> <li><a href="/article/1941478544479678464.htm" title="手写 Vue 中虚拟 DOM 到真实 DOM 的完整过程" target="_blank">手写 Vue 中虚拟 DOM 到真实 DOM 的完整过程</a> <span class="text-muted"></span> <div>目录一、虚拟DOM的核心概念二、虚拟DOM到真实DOM的流程三、手写虚拟DOM到真实DOM的实现1.定义虚拟DOM的结构(VNode)2.创建虚拟DOM转真实DOM的函数3.挂载虚拟DOM到页面4.更新虚拟DOM的过程(Diff算法简化版)四、完整示例:虚拟DOM到真实DOM的生命周期五、总结一、虚拟DOM的核心概念虚拟DOM是用JavaScript对象(VNode)模拟真实DOM结构的轻量级抽象</div> </li> <li><a href="/article/1941471983032135680.htm" title="Python训练营-Day3" target="_blank">Python训练营-Day3</a> <span class="text-muted"></span> <div>DAY3列表、循环和判断语句题目1:列表的基础操作题目:1.创建一个包含三个字符串元素的列表tech_list,元素分别为“Python”,“Java”,“Go”。2.获取列表中的第一个元素,并将其存储在变量first_tech中。3.向tech_list的末尾添加一个新的字符串元素“JavaScript”。4.修改tech_list中的第二个元素(索引为1),将其从“Java”更改为“Ruby”</div> </li> <li><a href="/article/1941470091942096896.htm" title="python+uniapp基于微信小程序的河湟文化宣传系统nodejs+java" target="_blank">python+uniapp基于微信小程序的河湟文化宣传系统nodejs+java</a> <span class="text-muted"></span> <div>文章目录具体实现截图本项目![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/338cd998d059411aba7287118b685203.png)源码获取详细视频演示:文章底部获取博主联系方式!!!!本系统开发思路进度安排及各阶段主要任务java类核心代码部分展示主要参考文献:源码获取/详细视频演示##项目介绍摘要随着互联网技术的飞速发展和移动互联网的</div> </li> <li><a href="/article/1941461141431578624.htm" title="JAVA面试全过程" target="_blank">JAVA面试全过程</a> <span class="text-muted"></span> <div>由于本人最近又在面试,想记录一下,可能会给你提供一下帮助。一、简历简历里面需要包含的内容应该是学历,自己的技术栈,然后自己做过的一些项目。简历不需要太长,两页纸即可。里面应该重点写你使用过的一些框架,自己做的一些项目,以及自己的收获,简练第一。一般面试官不会有很多的耐心,看你的项目详细描述,所以尽量简洁明了即可。二、简历投递投递的方式有几种吧,相信大家也都知道。一般在程序员的垂直招聘网站投递即可,</div> </li> <li><a href="/article/1941461141918117888.htm" title="java练习3" target="_blank">java练习3</a> <span class="text-muted"></span> <div>随机生成20个数字(随机种子)分别使用冒泡排序、二叉树排序、插入排序进行排序并输出最终结果以及三种排序使用的时间packagea01_第一次练习.a03_排序;importjava.time.Duration;importjava.time.LocalDateTime;importjava.util.TreeSet;publicclassTest{publicstaticvoidmain(Stri</div> </li> <li><a href="/article/1941457989416316928.htm" title="尚硅谷-javaweb笔记记录" target="_blank">尚硅谷-javaweb笔记记录</a> <span class="text-muted">java成长之旅</span> <a class="tag" taget="_blank" href="/search/javaweb/1.htm">javaweb</a> <div>Javaweb笔记网页三组成:内容html,表现css,行为js。html,css,javascriptstyle标签定义css样式代码(只能在一个页面公用css样式)css文件id选择器:#id001{}#id002{}使用:标签1class选择器:.class001{}使用:类选择器组合选择器:选择器1,选择器2…{属性:值;}js里编写或者写完了再引入进去。且运算&&:当表达式为全真,返回最</div> </li> <li><a href="/article/1941456854366351360.htm" title="Gradle中如何设定使用JAVA_HOME以外的JRE版本" target="_blank">Gradle中如何设定使用JAVA_HOME以外的JRE版本</a> <span class="text-muted">WlzSnail</span> <a class="tag" taget="_blank" href="/search/Jenkins/1.htm">Jenkins</a><a class="tag" taget="_blank" href="/search/jenkins/1.htm">jenkins</a> <div>前言:由于DavinciTeam需要运行在JRE8,其运行环境是基于Gradle,而Jenkins和Tomcat是运行在JRE8以上的版本导致Gradle需要单独的JRE运行环境。解决方案:通过修改Gradle的配置使其运行环境运行在JRE8同时其它软件运行在JAVA_HOME设定的JRE版本中。一、首先在安装的Gradle根目录下创建gradle.properties二、在gradle.prop</div> </li> <li><a href="/article/1941450928364253184.htm" title="Android Binder与AIDL与Service使用案例及分析" target="_blank">Android Binder与AIDL与Service使用案例及分析</a> <span class="text-muted">曹小满2579</span> <a class="tag" taget="_blank" href="/search/Android%E5%9F%BA%E7%A1%80/1.htm">Android基础</a><a class="tag" taget="_blank" href="/search/android/1.htm">android</a><a class="tag" taget="_blank" href="/search/binder/1.htm">binder</a><a class="tag" taget="_blank" href="/search/AndroidIPC/1.htm">AndroidIPC</a> <div>水一篇以前写的文章Binder是Android内置的一种比较高效的跨进程机制,它很复杂,也很好用,可以让我们像调用普通方法那样完成跨进程式方法调用和数据传递。我们现在只需要知道它比较复杂以及怎么使用即可。ALDL全名AndroidinterfaceDefinitionLanguage,是Android官方提供的简化Binder开发的工具,适用于Java、Kotlin开发。所以很明显了,ALDL是小</div> </li> <li><a href="/article/1941449667317395456.htm" title="javase实操(二)-酒店管理系统" target="_blank">javase实操(二)-酒店管理系统</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/java/1.htm">java</a> <div>一、题目使用二维数组实现酒店管理系统。功能如下:1.查看酒店所有房间的状态2.预定房间3.退房4.退出系统二、程序1.Hotel.javapackageHotel;publicclassHotel{privateintid;privateStringstandard;privateStringstatus;publicHotel(){}publicHotel(intid,Stringstandar</div> </li> <li><a href="/article/1941446264344342528.htm" title="2025 Java NIO 面试题 (精选90题)" target="_blank">2025 Java NIO 面试题 (精选90题)</a> <span class="text-muted">csdn_tom_168</span> <a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95%E9%A2%98/1.htm">面试题</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/nio/1.htm">nio</a> <div>2025JavaNIO面试题(精选90题)1~301.什么是JavaNIO?JavaNIO(NewInput/Output)是Java1.4引入的一套新的I/OAPI,提供了与标准JavaI/O不同的I/O处理方式。它支持面向缓冲区的、基于通道的I/O操作,提供了更高的性能和更灵活的I/O操作方式。2.JavaNIO与传统的IO有什么区别?面向流vs面向缓冲区:传统IO是面向流的,而NIO是面向缓</div> </li> <li><a href="/article/1941439839677247488.htm" title="想快速处理元素?想将一个List快速转为另一个List或Map?Stream流轻松帮你搞定!" target="_blank">想快速处理元素?想将一个List快速转为另一个List或Map?Stream流轻松帮你搞定!</a> <span class="text-muted">头发那是一根不剩了</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>Java8API添加了一个新的抽象称为流Stream,可以让你以一种声明的方式处理数据,它提供了非常强大Java集合运算和表达的高阶抽象。这种风格将要处理的元素集合看作一种流,流在管道中传输,并且可以在管道的节点上进行处理,可以把它看成一个工厂,流水线的形式(假如是玩具厂)。在这个流水线上,工人们对每个过来的玩具,进行处理,比如筛选、组装等。StreamAPI可以极大提高Java程序员的生产力,省</div> </li> <li><a href="/article/1941439209487265792.htm" title="位运算与逻辑运算及其区别(java)" target="_blank">位运算与逻辑运算及其区别(java)</a> <span class="text-muted"></span> <div>一、位运算1、定义:程序中的所有数在计算机内存中都是以二进制补码的形式存储的。位运算就是直接对整数在内存中的二进制补码进行操作。2、分类:符号名称及运算规则&按位与:全1为1,否则为0按位或:全0为0,否则为1^按位异或:相同为0,否则为1~按位取反:0变为1,1变为0>>右移:补码向右移动相应位数,负数高位补1,正数补0>>无符号右移:向右移动相应位数,高位补0//按位与finalbytea=4</div> </li> <li><a href="/article/1941433790287114240.htm" title="导购电商平台的实时数据处理架构:Java 架构师的实践经验" target="_blank">导购电商平台的实时数据处理架构:Java 架构师的实践经验</a> <span class="text-muted"></span> <div>导购电商平台的实时数据处理架构:Java架构师的实践经验大家好,我是阿可,微赚淘客系统及省赚客APP创始人,是个冬天不穿秋裤,天冷也要风度的程序猿!在导购电商平台中,实时数据处理是核心需求之一。无论是商品信息的实时更新、用户行为的实时分析,还是订单处理的高效性,都直接影响用户体验和平台的运营效率。作为一名Java架构师,我将分享我们在省赚客平台中构建实时数据处理架构的实践经验,重点介绍如何通过Ja</div> </li> <li><a href="/article/1941433790698156032.htm" title="【算法刷题记录001】整型数组合并(java代码实现)" target="_blank">【算法刷题记录001】整型数组合并(java代码实现)</a> <span class="text-muted"></span> <div>一、题目描述对于给定的由n个整数组成的数组{a1,a2,…,an}和m个整数组成的数组{b1,b2,…,bm},将它们合并后从小到大排序,并输出去重后的结果。二、输入描述第一行输入一个整数n(1≤n≤150)代表数组a中元素个数。第二行输入n个整数a1,a2,…,an(-1≤ai≤105)代表数组a中的元素。第三行输入一个整数m(1≤m≤150)代表数组b中元素个数。第四行输入m个整数b1,b2,</div> </li> <li><a href="/article/1941433411956699136.htm" title="HTML表格导出为Excel文件的实现方案" target="_blank">HTML表格导出为Excel文件的实现方案</a> <span class="text-muted">~风清扬~</span> <a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF%E6%8A%80%E6%9C%AF/1.htm">前端技术</a><a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/excel/1.htm">excel</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a> <div>1、前端javascript可通过mime类型、blob对象或专业库(如sheetjs)实现html表格导出excel,适用于中小型数据量;2、服务器端方案利用后端语言(如python的openpyxl、java的apachepoi)处理复杂报表和大数据,确保安全性与格式控制;3、常见问题包括数据类型识别错误、样式丢失、大文件卡顿、浏览器兼容性及乱码,需通过设置单元格类型、使用后端样式api、分页</div> </li> <li><a href="/article/1941425087378944000.htm" title="如何优化Java文件处理的代码性能" target="_blank">如何优化Java文件处理的代码性能</a> <span class="text-muted">科技苑</span> <a class="tag" taget="_blank" href="/search/%E4%BB%A3%E7%A0%81%E8%A7%84%E8%8C%83/1.htm">代码规范</a> <div>一、使用高效的IOAPI-BufferedReader/BufferedWriter替代普通IO通过缓冲区减少底层IO调用次数。//优化前FileReaderfr=newFileReader("file.txt");//优化后BufferedReaderbr=newBufferedReader(newFileReader("file.txt"));-NIO.2(Java7+)的Path和Files</div> </li> <li><a href="/article/1941423951561420800.htm" title="Java 中的成员变量与成员方法 —— 一次讲清!" target="_blank">Java 中的成员变量与成员方法 —— 一次讲清!</a> <span class="text-muted">菜鸟不学编程</span> <a class="tag" taget="_blank" href="/search/Java%E4%BB%8E%E5%85%A5%E9%97%A8%E5%88%B0%E6%94%BE%E5%BC%83/1.htm">Java从入门到放弃</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</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基础、Spring全家桶、数据库优化、项目实战等,也会分享一些踩坑经历与面试复盘,希望能为还在迷茫中的你提供一些参考。  我相信:写作</div> </li> <li><a href="/article/1941423952161206272.htm" title="包装类是废物?还是背后藏着的 Java 设计良心?" target="_blank">包装类是废物?还是背后藏着的 Java 设计良心?</a> <span class="text-muted"></span> <div>你好,欢迎来到我的博客!我是【菜鸟不学编程】  我是一个正在奋斗中的职场码农,步入职场多年,正在从“小码农”慢慢成长为有深度、有思考的技术人。在这条不断进阶的路上,我决定记录下自己的学习与成长过程,也希望通过博客结识更多志同道合的朋友。    ️主要方向包括Java基础、Spring全家桶、数据库优化、项目实战等,也会分享一些踩坑经历与面试复盘,希望能为还在迷茫中的你提供一些参考。  我相信:写作</div> </li> <li><a href="/article/1941423952589025280.htm" title="你还在用单线程处理请求?这年头还不会写多线程服务器,真的不慌吗?" target="_blank">你还在用单线程处理请求?这年头还不会写多线程服务器,真的不慌吗?</a> <span class="text-muted">菜鸟不学编程</span> <a class="tag" taget="_blank" href="/search/Java%E4%BB%8E%E5%85%A5%E9%97%A8%E5%88%B0%E6%94%BE%E5%BC%83/1.htm">Java从入门到放弃</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</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基础、Spring全家桶、数据库优化、项目实战等,也会分享一些踩坑经历与面试复盘,希望能为还在迷茫中的你提供一些参考。  我相信:写作</div> </li> <li><a href="/article/1941416768530608128.htm" title="Java SPI机制及Springboot使用实例" target="_blank">Java SPI机制及Springboot使用实例</a> <span class="text-muted">Armyyyyy丶</span> <a class="tag" taget="_blank" href="/search/Java%E8%AF%AD%E8%A8%80%E7%9B%B8%E5%85%B3/1.htm">Java语言相关</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/spi/1.htm">spi</a> <div>目录一、SPI是什么二、使用场景三、使用介绍四、Springboot实例运用五、总结一、SPI是什么SPI全称ServiceProviderInterface,是Java提供的一套用来被第三方实现或者扩展的API,它可以用来启用框架扩展和替换组件。整体机制图如下:JavaSPI实际上是“基于接口的编程+策略模式+配置文件”组合实现的动态加载机制。系统设计的各个抽象,往往有很多不同的实现方案,在面向</div> </li> <li><a href="/article/1941416013006434304.htm" title="详细说说线程的同步和互斥" target="_blank">详细说说线程的同步和互斥</a> <span class="text-muted">牛马baby</span> <a class="tag" taget="_blank" href="/search/%E5%A4%9A%E7%BA%BF%E7%A8%8B/1.htm">多线程</a><a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95%E8%B5%84%E6%96%99/1.htm">面试资料</a> <div>面试资料大全|各种技术资料-2000GJava中线程的同步(Synchronization)和互斥(MutualExclusion)这两个核心并发概念。它们是确保多线程程序正确性、避免竞态条件(RaceCondition)和维持数据一致性的基石。核心目标:协调多个线程对共享资源(变量、对象、文件、数据库连接等)的访问,防止它们同时进行可能导致数据损坏或逻辑错误的操作。1.互斥(MutualExcl</div> </li> <li><a href="/article/1941412987927588864.htm" title="Dash 安装使用教程" target="_blank">Dash 安装使用教程</a> <span class="text-muted">小奇JAVA面试</span> <a class="tag" taget="_blank" href="/search/%E5%AE%89%E8%A3%85%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/1.htm">安装使用教程</a><a class="tag" taget="_blank" href="/search/dash/1.htm">dash</a> <div>一、Dash简介Dash是一个基于Python的Web应用框架,专为构建数据可视化界面而设计。它由Plotly团队开发,适合构建交互式仪表盘、可视化分析工具和Web应用,无需使用JavaScript。二、安装Dash2.1使用pip安装pipinstalldash推荐同时安装Plotly:pipinstallplotly2.2验证安装python-c"importdash;print(dash._</div> </li> <li><a href="/article/1941411853284470784.htm" title="java joinpoint教程_Java的教程" target="_blank">java joinpoint教程_Java的教程</a> <span class="text-muted">weixin_39572168</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/joinpoint%E6%95%99%E7%A8%8B/1.htm">joinpoint教程</a> <div>Java编程语言Java编程语言中,左侧的导航栏(Java编程语言),可以快速定位文章的内容。这篇文章主要汇总以下:Java编程语言学习:Java的概述,Java的基础,Java面向对象的概念,Java的运算符,Java面向对象的概念,Java中的字符串String,Java中的数组array,Java中的关键字,Java中的方法,Java中的构造函数,Java中的异常,Java中的继承,Java</div> </li> <li><a href="/article/1941408197256474624.htm" title="7.3_JAVA_八股文_Redis" target="_blank">7.3_JAVA_八股文_Redis</a> <span class="text-muted">灰太狼Coding</span> <a class="tag" taget="_blank" href="/search/redis/1.htm">redis</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/%E7%BC%93%E5%AD%98/1.htm">缓存</a> <div>1、存储类型:String(缓存)、List(消息队列)、Hash、Set聚合计算(唯一,无序,不可重复)点赞(防止重复,因为set唯一)、共同关注(聚合)、抽奖活动(唯一)、ZSet(排行榜)2、Zset:元素少、每个元素小用压缩列表3、跳表内部:每个节点随机生成一个0-1的随机数,<0.25就</div> </li> <li><a href="/article/1941407441770049536.htm" title="Android 安装使用教程" target="_blank">Android 安装使用教程</a> <span class="text-muted">小奇JAVA面试</span> <a class="tag" taget="_blank" href="/search/%E5%AE%89%E8%A3%85%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/1.htm">安装使用教程</a><a class="tag" taget="_blank" href="/search/android/1.htm">android</a> <div>一、Android开发简介Android是Google推出的基于Linux内核的开源操作系统,广泛用于智能手机、平板等移动设备。开发Android应用主要使用Java或Kotlin编程语言,并借助AndroidStudio作为官方IDE。二、安装Android开发环境2.1安装JDK(JavaDevelopmentKit)Android开发需要安装JDK(推荐JDK11或17):下载地址:http</div> </li> <li><a href="/article/67.htm" title="jvm调优总结(从基本概念 到 深度优化)" target="_blank">jvm调优总结(从基本概念 到 深度优化)</a> <span class="text-muted">oloz</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/jvm/1.htm">jvm</a><a class="tag" taget="_blank" href="/search/jdk/1.htm">jdk</a><a class="tag" taget="_blank" href="/search/%E8%99%9A%E6%8B%9F%E6%9C%BA/1.htm">虚拟机</a><a class="tag" taget="_blank" href="/search/%E5%BA%94%E7%94%A8%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">应用服务器</a> <div>JVM参数详解:http://www.cnblogs.com/redcreen/archive/2011/05/04/2037057.html   Java虚拟机中,数据类型可以分为两类:基本类型和引用类型。基本类型的变量保存原始值,即:他代表的值就是数值本身;而引用类型的变量保存引用值。“引用值”代表了某个对象的引用,而不是对象本身,对象本身存放在这个引用值所表示的地址的位置。 </div> </li> <li><a href="/article/194.htm" title="【Scala十六】Scala核心十:柯里化函数" target="_blank">【Scala十六】Scala核心十:柯里化函数</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/scala/1.htm">scala</a> <div>本篇文章重点说明什么是函数柯里化,这个语法现象的背后动机是什么,有什么样的应用场景,以及与部分应用函数(Partial Applied Function)之间的联系   1. 什么是柯里化函数 A way to write functions with multiple parameter lists. For instance def f(x: Int)(y: Int) is a </div> </li> <li><a href="/article/321.htm" title="HashMap" target="_blank">HashMap</a> <span class="text-muted">dalan_123</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>HashMap在java中对很多人来说都是熟的;基于hash表的map接口的非同步实现。允许使用null和null键;同时不能保证元素的顺序;也就是从来都不保证其中的元素的顺序恒久不变。 1、数据结构     在java中,最基本的数据结构无外乎:数组 和 引用(指针),所有的数据结构都可以用这两个来构造,HashMap也不例外,归根到底HashMap就是一个链表散列的数据</div> </li> <li><a href="/article/448.htm" title="Java Swing如何实时刷新JTextArea,以显示刚才加append的内容" target="_blank">Java Swing如何实时刷新JTextArea,以显示刚才加append的内容</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/%E6%9B%B4%E6%96%B0/1.htm">更新</a><a class="tag" taget="_blank" href="/search/swing/1.htm">swing</a><a class="tag" taget="_blank" href="/search/JTextArea/1.htm">JTextArea</a> <div>在代码中执行完textArea.append("message")后,如果你想让这个更新立刻显示在界面上而不是等swing的主线程返回后刷新,我们一般会在该语句后调用textArea.invalidate()和textArea.repaint()。 问题是这个方法并不能有任何效果,textArea的内容没有任何变化,这或许是swing的一个bug,有一个笨拙的办法可以实现</div> </li> <li><a href="/article/575.htm" title="servlet或struts的Action处理ajax请求" target="_blank">servlet或struts的Action处理ajax请求</a> <span class="text-muted">g21121</span> <a class="tag" taget="_blank" href="/search/servlet/1.htm">servlet</a> <div>其实处理ajax的请求非常简单,直接看代码就行了: //如果用的是struts //HttpServletResponse response = ServletActionContext.getResponse(); // 设置输出为文字流 response.setContentType("text/plain"); // 设置字符集 res</div> </li> <li><a href="/article/702.htm" title="FineReport的公式编辑框的语法简介" target="_blank">FineReport的公式编辑框的语法简介</a> <span class="text-muted">老A不折腾</span> <a class="tag" taget="_blank" href="/search/finereport/1.htm">finereport</a><a class="tag" taget="_blank" href="/search/%E5%85%AC%E5%BC%8F/1.htm">公式</a><a class="tag" taget="_blank" href="/search/%E6%80%BB%E7%BB%93/1.htm">总结</a> <div>FINEREPORT用到公式的地方非常多,单元格(以=开头的便被解析为公式),条件显示,数据字典,报表填报属性值定义,图表标题,轴定义,页眉页脚,甚至单元格的其他属性中的鼠标悬浮提示内容都可以写公式。 简单的说下自己感觉的公式要注意的几个地方:   1.if语句语法刚接触感觉比较奇怪,if(条件式子,值1,值2),if可以嵌套,if(条件式子1,值1,if(条件式子2,值2,值3)</div> </li> <li><a href="/article/829.htm" title="linux mysql 数据库乱码的解决办法" target="_blank">linux mysql 数据库乱码的解决办法</a> <span class="text-muted">墙头上一根草</span> <a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93%E4%B9%B1%E7%A0%81/1.htm">数据库乱码</a> <div>linux 上mysql数据库区分大小写的配置 lower_case_table_names=1 1-不区分大小写 0-区分大小写   修改/etc/my.cnf 具体的修改内容如下:   [client] default-character-set=utf8   [mysqld] datadir=/var/lib/mysql socket=/va</div> </li> <li><a href="/article/956.htm" title="我的spring学习笔记6-ApplicationContext实例化的参数兼容思想" target="_blank">我的spring学习笔记6-ApplicationContext实例化的参数兼容思想</a> <span class="text-muted">aijuans</span> <a class="tag" taget="_blank" href="/search/Spring+3/1.htm">Spring 3</a> <div>ApplicationContext能读取多个Bean定义文件,方法是: ApplicationContext appContext = new ClassPathXmlApplicationContext( new String[]{“bean-config1.xml”,“bean-config2.xml”,“bean-config3.xml”,“bean-config4.xml</div> </li> <li><a href="/article/1083.htm" title="mysql 基准测试之sysbench" target="_blank">mysql 基准测试之sysbench</a> <span class="text-muted">annan211</span> <a class="tag" taget="_blank" href="/search/%E5%9F%BA%E5%87%86%E6%B5%8B%E8%AF%95/1.htm">基准测试</a><a class="tag" taget="_blank" href="/search/mysql%E5%9F%BA%E5%87%86%E6%B5%8B%E8%AF%95/1.htm">mysql基准测试</a><a class="tag" taget="_blank" href="/search/MySQL%E6%B5%8B%E8%AF%95/1.htm">MySQL测试</a><a class="tag" taget="_blank" href="/search/sysbench/1.htm">sysbench</a> <div>1 执行如下命令,安装sysbench-0.5: tar xzvf sysbench-0.5.tar.gz  cd sysbench-0.5  chmod +x autogen.sh  ./autogen.sh  ./configure --with-mysql --with-mysql-includes=/usr/local/mysql</div> </li> <li><a href="/article/1210.htm" title="sql的复杂查询使用案列与技巧" target="_blank">sql的复杂查询使用案列与技巧</a> <span class="text-muted">百合不是茶</span> <a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a><a class="tag" taget="_blank" href="/search/sql/1.htm">sql</a><a class="tag" taget="_blank" href="/search/%E5%87%BD%E6%95%B0/1.htm">函数</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%88%86%E9%A1%B5/1.htm">数据分页</a><a class="tag" taget="_blank" href="/search/%E5%90%88%E5%B9%B6%E6%9F%A5%E8%AF%A2/1.htm">合并查询</a> <div>  本片博客使用的数据库表是oracle中的scott用户表;          -------------------  自然连接查询           查询 smith 的上司(两种方法) &</div> </li> <li><a href="/article/1337.htm" title="深入学习Thread类" target="_blank">深入学习Thread类</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/thread/1.htm">thread</a><a class="tag" taget="_blank" href="/search/%E5%A4%9A%E7%BA%BF%E7%A8%8B/1.htm">多线程</a><a class="tag" taget="_blank" href="/search/java%E5%A4%9A%E7%BA%BF%E7%A8%8B/1.htm">java多线程</a> <div>一.             线程的名字 下面来看一下Thread类的name属性,它的类型是String。它其实就是线程的名字。在Thread类中,有String getName()和void setName(String)两个方法用来设置和获取这个属性的值。 同时,Thr</div> </li> <li><a href="/article/1464.htm" title="JSON串转换成Map以及如何转换到对应的数据类型" target="_blank">JSON串转换成Map以及如何转换到对应的数据类型</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/fastjson/1.htm">fastjson</a><a class="tag" taget="_blank" href="/search/net.sf.json/1.htm">net.sf.json</a> <div>        在实际开发中,难免会碰到JSON串转换成Map的情况,下面来看看这方面的实例。另外,由于fastjson只支持JDK1.5及以上版本,因此在JDK1.4的项目中可以采用net.sf.json来处理。 一.fastjson实例 JsonUtil.java package com.study; impor</div> </li> <li><a href="/article/1591.htm" title="【RPC框架HttpInvoker一】HttpInvoker:Spring自带RPC框架" target="_blank">【RPC框架HttpInvoker一】HttpInvoker:Spring自带RPC框架</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a> <div>HttpInvoker是Spring原生的RPC调用框架,HttpInvoker同Burlap和Hessian一样,提供了一致的服务Exporter以及客户端的服务代理工厂Bean,这篇文章主要是复制粘贴了Hessian与Spring集成一文,【RPC框架Hessian四】Hessian与Spring集成   在 【RPC框架Hessian二】Hessian 对象序列化和反序列化一文中</div> </li> <li><a href="/article/1718.htm" title="【Mahout二】基于Mahout CBayes算法的20newsgroup的脚本分析" target="_blank">【Mahout二】基于Mahout CBayes算法的20newsgroup的脚本分析</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/Mahout/1.htm">Mahout</a> <div>#!/bin/bash # # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information re</div> </li> <li><a href="/article/1845.htm" title="nginx三种获取用户真实ip的方法" target="_blank">nginx三种获取用户真实ip的方法</a> <span class="text-muted">ronin47</span> <div>随着nginx的迅速崛起,越来越多公司将apache更换成nginx. 同时也越来越多人使用nginx作为负载均衡, 并且代理前面可能还加上了CDN加速,但是随之也遇到一个问题:nginx如何获取用户的真实IP地址,如果后端是apache,请跳转到<apache获取用户真实IP地址>,如果是后端真实服务器是nginx,那么继续往下看。 实例环境: 用户IP 120.22.11.11 </div> </li> <li><a href="/article/1972.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>参考了 http://zhedahht.blog.163.com/blog/static/25411174201142733927831/ 但是用java来实现有一个问题。 由于Java无法像C那样“传递参数的地址,函数返回时能得到参数的值”,唯有新建一个辅助类:AuxClass import ljn.help.*; public class BalancedBTree { </div> </li> <li><a href="/article/2099.htm" title="BeanUtils.copyProperties VS PropertyUtils.copyProperties" target="_blank">BeanUtils.copyProperties VS PropertyUtils.copyProperties</a> <span class="text-muted">诸葛不亮</span> <a class="tag" taget="_blank" href="/search/PropertyUtils/1.htm">PropertyUtils</a><a class="tag" taget="_blank" href="/search/BeanUtils/1.htm">BeanUtils</a> <div> BeanUtils.copyProperties VS  PropertyUtils.copyProperties  作为两个bean属性copy的工具类,他们被广泛使用,同时也很容易误用,给人造成困然;比如:昨天发现同事在使用BeanUtils.copyProperties copy有integer类型属性的bean时,没有考虑到会将null转换为0,而后面的业</div> </li> <li><a href="/article/2226.htm" title="[金融与信息安全]最简单的数据结构最安全" target="_blank">[金融与信息安全]最简单的数据结构最安全</a> <span class="text-muted">comsci</span> <a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/1.htm">数据结构</a> <div>       现在最流行的数据库的数据存储文件都具有复杂的文件头格式,用操作系统的记事本软件是无法正常浏览的,这样的情况会有什么问题呢?        从信息安全的角度来看,如果我们数据库系统仅仅把这种格式的数据文件做异地备份,如果相同版本的所有数据库管理系统都同时被攻击,那么</div> </li> <li><a href="/article/2353.htm" title="vi区段删除" target="_blank">vi区段删除</a> <span class="text-muted">Cwind</span> <a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/vi/1.htm">vi</a><a class="tag" taget="_blank" href="/search/%E5%8C%BA%E6%AE%B5%E5%88%A0%E9%99%A4/1.htm">区段删除</a> <div>区段删除是编辑和分析一些冗长的配置文件或日志文件时比较常用的操作。简记下vi区段删除要点备忘。   vi概述    引文中并未将末行模式单独列为一种模式。单不单列并不重要,能区分命令模式与末行模式即可。   vi区段删除步骤: 1. 在末行模式下使用:set nu显示行号 非必须,随光标移动vi右下角也会显示行号,能够正确找到并记录删除开始行</div> </li> <li><a href="/article/2480.htm" title="清除tomcat缓存的方法总结" target="_blank">清除tomcat缓存的方法总结</a> <span class="text-muted">dashuaifu</span> <a class="tag" taget="_blank" href="/search/tomcat/1.htm">tomcat</a><a class="tag" taget="_blank" href="/search/%E7%BC%93%E5%AD%98/1.htm">缓存</a> <div>用tomcat容器,大家可能会发现这样的问题,修改jsp文件后,但用IE打开 依然是以前的Jsp的页面。 出现这种现象的原因主要是tomcat缓存的原因。 解决办法如下: 在jsp文件头加上 <meta http-equiv="Expires" content="0"> <meta http-equiv="kiben&qu</div> </li> <li><a href="/article/2607.htm" title="不要盲目的在项目中使用LESS CSS" target="_blank">不要盲目的在项目中使用LESS CSS</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/Web/1.htm">Web</a><a class="tag" taget="_blank" href="/search/less/1.htm">less</a> <div> 如果你还不知道LESS CSS是什么东西,可以看一下这篇文章,是我一朋友写给新人看的《CSS——LESS》   不可否认,LESS CSS是个强大的工具,它弥补了css没有变量、无法运算等一些“先天缺陷”,但它似乎给我一种错觉,就是为了功能而实现功能。   比如它的引用功能 ? .rounded_corners{     </div> </li> <li><a href="/article/2734.htm" title="[入门]更上一层楼" target="_blank">[入门]更上一层楼</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/PHP/1.htm">PHP</a><a class="tag" taget="_blank" href="/search/yii2/1.htm">yii2</a> <div>更上一层楼 通篇阅读完整个“入门”部分,你就完成了一个完整 Yii 应用的创建。在此过程中你学到了如何实现一些常用功能,例如通过 HTML 表单从用户那获取数据,从数据库中获取数据并以分页形式显示。你还学到了如何通过 Gii 去自动生成代码。使用 Gii 生成代码把 Web 开发中多数繁杂的过程转化为仅仅填写几个表单就行。 本章将介绍一些有助于更好使用 Yii 的资源: </div> </li> <li><a href="/article/2861.htm" title="Apache HttpClient使用详解" target="_blank">Apache HttpClient使用详解</a> <span class="text-muted">eksliang</span> <a class="tag" taget="_blank" href="/search/httpclient/1.htm">httpclient</a><a class="tag" taget="_blank" href="/search/http%E5%8D%8F%E8%AE%AE/1.htm">http协议</a> <div>Http协议的重要性相信不用我多说了,HttpClient相比传统JDK自带的URLConnection,增加了易用性和灵活性(具体区别,日后我们再讨论),它不仅是客户端发送Http请求变得容易,而且也方便了开发人员测试接口(基于Http协议的),即提高了开发的效率,也方便提高代码的健壮性。因此熟练掌握HttpClient是很重要的必修内容,掌握HttpClient后,相信对于Http协议的了解会</div> </li> <li><a href="/article/2988.htm" title="zxing二维码扫描功能" target="_blank">zxing二维码扫描功能</a> <span class="text-muted">gundumw100</span> <a class="tag" taget="_blank" href="/search/android/1.htm">android</a><a class="tag" taget="_blank" href="/search/zxing/1.htm">zxing</a> <div>经常要用到二维码扫描功能 现给出示例代码 import com.google.zxing.WriterException; import com.zxing.activity.CaptureActivity; import com.zxing.encoding.EncodingHandler; import android.app.Activity; import an</div> </li> <li><a href="/article/3115.htm" title="纯HTML+CSS带说明的黄色导航菜单" target="_blank">纯HTML+CSS带说明的黄色导航菜单</a> <span class="text-muted">ini</span> <a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/Web/1.htm">Web</a><a class="tag" taget="_blank" href="/search/html5/1.htm">html5</a><a class="tag" taget="_blank" href="/search/css/1.htm">css</a><a class="tag" taget="_blank" href="/search/hovertree/1.htm">hovertree</a> <div>HoverTree带说明的CSS菜单:纯HTML+CSS结构链接带说明的黄色导航   在线体验效果:http://hovertree.com/texiao/css/1.htm代码如下,保存到HTML文件可以看到效果:   <!DOCTYPE html > <html > <head> <title>HoverTree</div> </li> <li><a href="/article/3242.htm" title="fastjson初始化对性能的影响" target="_blank">fastjson初始化对性能的影响</a> <span class="text-muted">kane_xie</span> <a class="tag" taget="_blank" href="/search/fastjson/1.htm">fastjson</a><a class="tag" taget="_blank" href="/search/%E5%BA%8F%E5%88%97%E5%8C%96/1.htm">序列化</a> <div>之前在项目中序列化是用thrift,性能一般,而且需要用编译器生成新的类,在序列化和反序列化的时候感觉很繁琐,因此想转到json阵营。对比了jackson,gson等框架之后,决定用fastjson,为什么呢,因为看名字感觉很快。。。   网上的说法:   fastjson 是一个性能很好的 Java 语言实现的 JSON 解析器和生成器,来自阿里巴巴的工程师开发。 </div> </li> <li><a href="/article/3369.htm" title="基于Mybatis封装的增删改查实现通用自动化sql" target="_blank">基于Mybatis封装的增删改查实现通用自动化sql</a> <span class="text-muted">mengqingyu</span> <a class="tag" taget="_blank" href="/search/DAO/1.htm">DAO</a> <div>1.基于map或javaBean的增删改查可实现不写dao接口和实现类以及xml,有效的提高开发速度。 2.支持自定义注解包括主键生成、列重复验证、列名、表名等 3.支持批量插入、批量更新、批量删除 <bean id="dynamicSqlSessionTemplate" class="com.mqy.mybatis.support.Dynamic</div> </li> <li><a href="/article/3496.htm" title="js控制input输入框的方法封装(数字,中文,字母,浮点数等)" target="_blank">js控制input输入框的方法封装(数字,中文,字母,浮点数等)</a> <span class="text-muted">qifeifei</span> <a class="tag" taget="_blank" href="/search/javascript+js/1.htm">javascript js</a> <div>在项目开发的时候,经常有一些输入框,控制输入的格式,而不是等输入好了再去检查格式,格式错了就报错,体验不好。 /** 数字,中文,字母,浮点数(+/-/.) 类型输入限制,只要在input标签上加上 jInput="number,chinese,alphabet,floating" 备注:floating属性只能单独用*/     funct</div> </li> <li><a href="/article/3623.htm" title="java 计时器应用" target="_blank">java 计时器应用</a> <span class="text-muted">tangqi609567707</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/timer/1.htm">timer</a> <div>mport java.util.TimerTask;   import java.util.Calendar;   public class MyTask extends TimerTask {        private static final int </div> </li> <li><a href="/article/3750.htm" title="erlang输出调用栈信息" target="_blank">erlang输出调用栈信息</a> <span class="text-muted">wudixiaotie</span> <a class="tag" taget="_blank" href="/search/erlang/1.htm">erlang</a> <div>在erlang otp的开发中,如果调用第三方的应用,会有有些错误会不打印栈信息,因为有可能第三方应用会catch然后输出自己的错误信息,所以对排查bug有很大的阻碍,这样就要求我们自己打印调用的栈信息。用这个函数:erlang:process_display (self (), backtrace).需要注意这个函数只会输出到标准错误输出。 也可以用这个函数:erlang:get_s</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>