learn.lianglianglee.com/专栏/Java 业务开发常见错误 100 例/index.html
2022-08-14 03:40:33 +08:00

216 lines
16 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<!-- saved from url=(0046)https://kaiiiz.github.io/hexo-theme-book-demo/ -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1.0, user-scalable=no">
<link rel="icon" href="/static/favicon.png">
<title>note-submit</title>
<!-- Spectre.css framework -->
<link rel="stylesheet" href="/static/index.css">
<!-- theme css & js -->
<meta name="generator" content="Hexo 4.2.0">
</head>
<body>
<div class="book-container">
<div class="book-sidebar">
<div class="book-brand">
<a href="/">
<img src="/static/favicon.png">
<span>技术文章摘抄</span>
</a>
</div>
<div class="book-menu uncollapsible">
<ul class="uncollapsible">
<li><a href="/" class="current-tab">首页</a></li>
</ul>
<ul class="uncollapsible">
<li><a href="../">上一级</a></li>
</ul>
<ul class="uncollapsible">
<li>
<a href="/PDF">PDF</a>
</li>
<li>
<a href="/专栏">专栏</a>
</li>
<li>
<a href="/恋爱必修课">恋爱必修课</a>
</li>
<li>
<a href="/文章">文章</a>
</li>
<li>
<a href="/极客时间">极客时间</a>
</li>
</ul>
</div>
</div>
<div class="sidebar-toggle" onclick="sidebar_toggle()" onmouseover="add_inner()" onmouseleave="remove_inner()">
<div class="sidebar-toggle-inner"></div>
</div>
<script>
function add_inner() {
let inner = document.querySelector('.sidebar-toggle-inner')
inner.classList.add('show')
}
function remove_inner() {
let inner = document.querySelector('.sidebar-toggle-inner')
inner.classList.remove('show')
}
function sidebar_toggle() {
let sidebar_toggle = document.querySelector('.sidebar-toggle')
let sidebar = document.querySelector('.book-sidebar')
let content = document.querySelector('.off-canvas-content')
if (sidebar_toggle.classList.contains('extend')) { // show
sidebar_toggle.classList.remove('extend')
sidebar.classList.remove('hide')
content.classList.remove('extend')
} else { // hide
sidebar_toggle.classList.add('extend')
sidebar.classList.add('hide')
content.classList.add('extend')
}
}
function open_sidebar() {
let sidebar = document.querySelector('.book-sidebar')
let overlay = document.querySelector('.off-canvas-overlay')
sidebar.classList.add('show')
overlay.classList.add('show')
}
function hide_canvas() {
let sidebar = document.querySelector('.book-sidebar')
let overlay = document.querySelector('.off-canvas-overlay')
sidebar.classList.remove('show')
overlay.classList.remove('show')
}
</script>
<div class="off-canvas-content">
<div class="columns">
<div class="column col-12 col-lg-12">
<div class="book-navbar">
<!-- For Responsive Layout -->
<header class="navbar">
<section class="navbar-section">
<a onclick="open_sidebar()">
<i class="icon icon-menu"></i>
</a>
</section>
</header>
</div>
<div class="book-content"
style="max-width: 960px; margin: 0 auto; overflow-x: auto; overflow-y: hidden;">
<div class="book-post">
<p id="tip" align="center"></p>
<div><!--add content-->
<h1>Java 业务开发常见错误 100 例</h1>
<ul>
<li><a href = '\专栏\Java 业务开发常见错误 100 例\00 开篇词 业务代码真的会有这么多坑?.md.html'>00 开篇词 业务代码真的会有这么多坑?</a></li>
<li><a href = '\专栏\Java 业务开发常见错误 100 例\01 使用了并发工具类库,线程安全就高枕无忧了吗?.md.html'>01 使用了并发工具类库,线程安全就高枕无忧了吗?</a></li>
<li><a href = '\专栏\Java 业务开发常见错误 100 例\02 代码加锁:不要让“锁”事成为烦心事.md.html'>02 代码加锁:不要让“锁”事成为烦心事</a></li>
<li><a href = '\专栏\Java 业务开发常见错误 100 例\03 线程池:业务代码最常用也最容易犯错的组件.md.html'>03 线程池:业务代码最常用也最容易犯错的组件</a></li>
<li><a href = '\专栏\Java 业务开发常见错误 100 例\04 连接池:别让连接池帮了倒忙.md.html'>04 连接池:别让连接池帮了倒忙</a></li>
<li><a href = '\专栏\Java 业务开发常见错误 100 例\05 HTTP调用你考虑到超时、重试、并发了吗.md.html'>05 HTTP调用你考虑到超时、重试、并发了吗</a></li>
<li><a href = '\专栏\Java 业务开发常见错误 100 例\06 2成的业务代码的Spring声明式事务可能都没处理正确.md.html'>06 2成的业务代码的Spring声明式事务可能都没处理正确</a></li>
<li><a href = '\专栏\Java 业务开发常见错误 100 例\07 数据库索引:索引并不是万能药.md.html'>07 数据库索引:索引并不是万能药</a></li>
<li><a href = '\专栏\Java 业务开发常见错误 100 例\08 判等问题:程序里如何确定你就是你?.md.html'>08 判等问题:程序里如何确定你就是你?</a></li>
<li><a href = '\专栏\Java 业务开发常见错误 100 例\09 数值计算:注意精度、舍入和溢出问题.md.html'>09 数值计算:注意精度、舍入和溢出问题</a></li>
<li><a href = '\专栏\Java 业务开发常见错误 100 例\10 集合类坑满地的List列表操作.md.html'>10 集合类坑满地的List列表操作</a></li>
<li><a href = '\专栏\Java 业务开发常见错误 100 例\11 空值处理分不清楚的null和恼人的空指针.md.html'>11 空值处理分不清楚的null和恼人的空指针</a></li>
<li><a href = '\专栏\Java 业务开发常见错误 100 例\12 异常处理:别让自己在出问题的时候变为瞎子.md.html'>12 异常处理:别让自己在出问题的时候变为瞎子</a></li>
<li><a href = '\专栏\Java 业务开发常见错误 100 例\13 日志:日志记录真没你想象的那么简单.md.html'>13 日志:日志记录真没你想象的那么简单</a></li>
<li><a href = '\专栏\Java 业务开发常见错误 100 例\14 文件IO实现高效正确的文件读写并非易事.md.html'>14 文件IO实现高效正确的文件读写并非易事</a></li>
<li><a href = '\专栏\Java 业务开发常见错误 100 例\15 序列化:一来一回你还是原来的你吗?.md.html'>15 序列化:一来一回你还是原来的你吗?</a></li>
<li><a href = '\专栏\Java 业务开发常见错误 100 例\16 用好Java 8的日期时间类少踩一些“老三样”的坑.md.html'>16 用好Java 8的日期时间类少踩一些“老三样”的坑</a></li>
<li><a href = '\专栏\Java 业务开发常见错误 100 例\17 别以为“自动挡”就不可能出现OOM.md.html'>17 别以为“自动挡”就不可能出现OOM</a></li>
<li><a href = '\专栏\Java 业务开发常见错误 100 例\18 当反射、注解和泛型遇到OOP时会有哪些坑.md.html'>18 当反射、注解和泛型遇到OOP时会有哪些坑</a></li>
<li><a href = '\专栏\Java 业务开发常见错误 100 例\19 Spring框架IoC和AOP是扩展的核心.md.html'>19 Spring框架IoC和AOP是扩展的核心</a></li>
<li><a href = '\专栏\Java 业务开发常见错误 100 例\20 Spring框架框架帮我们做了很多工作也带来了复杂度.md.html'>20 Spring框架框架帮我们做了很多工作也带来了复杂度</a></li>
<li><a href = '\专栏\Java 业务开发常见错误 100 例\21 代码重复:搞定代码重复的三个绝招.md.html'>21 代码重复:搞定代码重复的三个绝招</a></li>
<li><a href = '\专栏\Java 业务开发常见错误 100 例\22 接口设计:系统间对话的语言,一定要统一.md.html'>22 接口设计:系统间对话的语言,一定要统一</a></li>
<li><a href = '\专栏\Java 业务开发常见错误 100 例\23 缓存设计:缓存可以锦上添花也可以落井下石.md.html'>23 缓存设计:缓存可以锦上添花也可以落井下石</a></li>
<li><a href = '\专栏\Java 业务开发常见错误 100 例\24 业务代码写完,就意味着生产就绪了?.md.html'>24 业务代码写完,就意味着生产就绪了?</a></li>
<li><a href = '\专栏\Java 业务开发常见错误 100 例\25 异步处理好用,但非常容易用错.md.html'>25 异步处理好用,但非常容易用错</a></li>
<li><a href = '\专栏\Java 业务开发常见错误 100 例\26 数据存储NoSQL与RDBMS如何取长补短、相辅相成.md.html'>26 数据存储NoSQL与RDBMS如何取长补短、相辅相成</a></li>
<li><a href = '\专栏\Java 业务开发常见错误 100 例\27 数据源头:任何客户端的东西都不可信任.md.html'>27 数据源头:任何客户端的东西都不可信任</a></li>
<li><a href = '\专栏\Java 业务开发常见错误 100 例\28 安全兜底:涉及钱时,必须考虑防刷、限量和防重.md.html'>28 安全兜底:涉及钱时,必须考虑防刷、限量和防重</a></li>
<li><a href = '\专栏\Java 业务开发常见错误 100 例\29 数据和代码:数据就是数据,代码就是代码.md.html'>29 数据和代码:数据就是数据,代码就是代码</a></li>
<li><a href = '\专栏\Java 业务开发常见错误 100 例\30 如何正确保存和传输敏感数据?.md.html'>30 如何正确保存和传输敏感数据?</a></li>
<li><a href = '\专栏\Java 业务开发常见错误 100 例\31 加餐1带你吃透课程中Java 8的那些重要知识点.md.html'>31 加餐1带你吃透课程中Java 8的那些重要知识点</a></li>
<li><a href = '\专栏\Java 业务开发常见错误 100 例\32 加餐2带你吃透课程中Java 8的那些重要知识点.md.html'>32 加餐2带你吃透课程中Java 8的那些重要知识点</a></li>
<li><a href = '\专栏\Java 业务开发常见错误 100 例\33 加餐3定位应用问题排错套路很重要.md.html'>33 加餐3定位应用问题排错套路很重要</a></li>
<li><a href = '\专栏\Java 业务开发常见错误 100 例\34 加餐4分析定位Java问题一定要用好这些工具.md.html'>34 加餐4分析定位Java问题一定要用好这些工具</a></li>
<li><a href = '\专栏\Java 业务开发常见错误 100 例\35 加餐5分析定位Java问题一定要用好这些工具.md.html'>35 加餐5分析定位Java问题一定要用好这些工具</a></li>
<li><a href = '\专栏\Java 业务开发常见错误 100 例\36 加餐6这15年来我是如何在工作中学习技术和英语的.md.html'>36 加餐6这15年来我是如何在工作中学习技术和英语的</a></li>
<li><a href = '\专栏\Java 业务开发常见错误 100 例\37 加餐7程序员成长28计.md.html'>37 加餐7程序员成长28计</a></li>
<li><a href = '\专栏\Java 业务开发常见错误 100 例\38 加餐8Java程序从虚拟机迁移到Kubernetes的一些坑.md.html'>38 加餐8Java程序从虚拟机迁移到Kubernetes的一些坑</a></li>
<li><a href = '\专栏\Java 业务开发常见错误 100 例\答疑篇:代码篇思考题集锦(一).md.html'>答疑篇:代码篇思考题集锦(一)</a></li>
<li><a href = '\专栏\Java 业务开发常见错误 100 例\答疑篇:代码篇思考题集锦(三).md.html'>答疑篇:代码篇思考题集锦(三)</a></li>
<li><a href = '\专栏\Java 业务开发常见错误 100 例\答疑篇:代码篇思考题集锦(二).md.html'>答疑篇:代码篇思考题集锦(二)</a></li>
<li><a href = '\专栏\Java 业务开发常见错误 100 例\答疑篇:加餐篇思考题答案合集.md.html'>答疑篇:加餐篇思考题答案合集</a></li>
<li><a href = '\专栏\Java 业务开发常见错误 100 例\答疑篇:安全篇思考题答案合集.md.html'>答疑篇:安全篇思考题答案合集</a></li>
<li><a href = '\专栏\Java 业务开发常见错误 100 例\答疑篇:设计篇思考题答案合集.md.html'>答疑篇:设计篇思考题答案合集</a></li>
<li><a href = '\专栏\Java 业务开发常见错误 100 例\结束语 写代码时,如何才能尽量避免踩坑?.md.html'>结束语 写代码时,如何才能尽量避免踩坑?</a></li>
</ul>
</div>
</div>
<div>
</div>
</div>
</div>
</div>
</div>
<a class="off-canvas-overlay" onclick="hide_canvas()"></a>
</div>
<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v652eace1692a40cfa3763df669d7439c1639079717194"
integrity="sha512-Gi7xpJR8tSkrpF7aordPZQlW2DLtzUlZcumS8dMQjwDHEnw9I7ZLyiOj/6tZStRBGtGgN6ceN6cMH8z7etPGlw=="
data-cf-beacon='{"rayId":"70996b2f083d3d60","version":"2021.12.0","r":1,"token":"1f5d475227ce4f0089a7cff1ab17c0f5","si":100}'
crossorigin="anonymous"></script>
</body>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-NPSEEVD756"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag() {
dataLayer.push(arguments);
}
gtag('js', new Date());
gtag('config', 'G-NPSEEVD756');
var path = window.location.pathname
var cookie = getCookie("lastPath");
console.log(path)
if (path.replace("/", "") === "") {
if (cookie.replace("/", "") !== "") {
console.log(cookie)
document.getElementById("tip").innerHTML = "<a href='" + cookie + "'>跳转到上次进度</a>"
}
} else {
setCookie("lastPath", path)
}
function setCookie(cname, cvalue) {
var d = new Date();
d.setTime(d.getTime() + (180 * 24 * 60 * 60 * 1000));
var expires = "expires=" + d.toGMTString();
document.cookie = cname + "=" + cvalue + "; " + expires + ";path = /";
}
function getCookie(cname) {
var name = cname + "=";
var ca = document.cookie.split(';');
for (var i = 0; i < ca.length; i++) {
var c = ca[i].trim();
if (c.indexOf(name) === 0) return c.substring(name.length, c.length);
}
return "";
}
</script>
</html>