mirror of
https://github.com/jaywcjlove/reference.git
synced 2025-06-17 04:31:22 +08:00

* docs: fix formatting and add Java OOP content in docs
* docs(docs/java.md): add Java abstract class and interface 4e2bc83644
1881 lines
290 KiB
HTML
1881 lines
290 KiB
HTML
<!doctype html>
|
||
<html lang="en" data-color-mode="dark">
|
||
<head>
|
||
<meta charset="utf-8">
|
||
<title>Java 备忘清单
|
||
& java cheatsheet & Quick Reference</title>
|
||
<meta content="width=device-width, initial-scale=1" name="viewport">
|
||
<meta description="该备忘单是针对 Java 初学者的速成课程,有助于复习 Java 语言的基本语法。
|
||
|
||
入门,为开发人员分享快速参考备忘单。">
|
||
<meta keywords="java,reference,Quick,Reference,cheatsheet,cheat,sheet">
|
||
<meta name="author" content="jaywcjlove">
|
||
<meta name="license" content="MIT">
|
||
<meta name="funding" content="https://jaywcjlove.github.io/#/sponsor">
|
||
<meta rel="apple-touch-icon" href="../icons/touch-icon-iphone.png">
|
||
<meta rel="apple-touch-icon" sizes="152x152" href="../icons/touch-icon-ipad.png">
|
||
<meta rel="apple-touch-icon" sizes="180x180" href="../icons/touch-icon-iphone.png">
|
||
<meta rel="apple-touch-icon" sizes="167x167" href="../icons/touch-icon-ipad-retina.png">
|
||
<meta rel="apple-touch-icon" sizes="120x120" href="../icons/touch-icon-iphone-retina.png">
|
||
<link rel="icon" href="../icons/favicon.svg" type="image/svg+xml">
|
||
<link href="../style/style.css" rel="stylesheet">
|
||
<link href="../style/katex.css" rel="stylesheet">
|
||
</head>
|
||
<body><nav class="header-nav"><div class="max-container"><a href="../index.html" class="logo"><svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" height="1em" width="1em">
|
||
<path d="m21.66 10.44-.98 4.18c-.84 3.61-2.5 5.07-5.62 4.77-.5-.04-1.04-.13-1.62-.27l-1.68-.4c-4.17-.99-5.46-3.05-4.48-7.23l.98-4.19c.2-.85.44-1.59.74-2.2 1.17-2.42 3.16-3.07 6.5-2.28l1.67.39c4.19.98 5.47 3.05 4.49 7.23Z" fill="#c9d1d9"></path>
|
||
<path d="M15.06 19.39c-.62.42-1.4.77-2.35 1.08l-1.58.52c-3.97 1.28-6.06.21-7.35-3.76L2.5 13.28c-1.28-3.97-.22-6.07 3.75-7.35l1.58-.52c.41-.13.8-.24 1.17-.31-.3.61-.54 1.35-.74 2.2l-.98 4.19c-.98 4.18.31 6.24 4.48 7.23l1.68.4c.58.14 1.12.23 1.62.27Zm2.43-8.88c-.06 0-.12-.01-.19-.02l-4.85-1.23a.75.75 0 0 1 .37-1.45l4.85 1.23a.748.748 0 0 1-.18 1.47Z" fill="#228e6c"></path>
|
||
<path d="M14.56 13.89c-.06 0-.12-.01-.19-.02l-2.91-.74a.75.75 0 0 1 .37-1.45l2.91.74c.4.1.64.51.54.91-.08.34-.38.56-.72.56Z" fill="#228e6c"></path>
|
||
</svg>
|
||
<span class="title">Quick Reference</span></a><div class="menu"><a href="javascript:void(0);" class="searchbtn" id="searchbtn"><svg xmlns="http://www.w3.org/2000/svg" height="1em" width="1em" viewBox="0 0 18 18">
|
||
<path fill="currentColor" d="M17.71,16.29 L14.31,12.9 C15.4069846,11.5024547 16.0022094,9.77665502 16,8 C16,3.581722 12.418278,0 8,0 C3.581722,0 0,3.581722 0,8 C0,12.418278 3.581722,16 8,16 C9.77665502,16.0022094 11.5024547,15.4069846 12.9,14.31 L16.29,17.71 C16.4777666,17.8993127 16.7333625,18.0057983 17,18.0057983 C17.2666375,18.0057983 17.5222334,17.8993127 17.71,17.71 C17.8993127,17.5222334 18.0057983,17.2666375 18.0057983,17 C18.0057983,16.7333625 17.8993127,16.4777666 17.71,16.29 Z M2,8 C2,4.6862915 4.6862915,2 8,2 C11.3137085,2 14,4.6862915 14,8 C14,11.3137085 11.3137085,14 8,14 C4.6862915,14 2,11.3137085 2,8 Z"></path>
|
||
</svg><span>搜索</span><span>⌘K</span></a><a href="https://github.com/jaywcjlove/reference/blob/main/docs/java.md" class="edit" target="__blank"><svg viewBox="0 0 36 36" fill="currentColor" height="1em" width="1em"><path d="m33 6.4-3.7-3.7a1.71 1.71 0 0 0-2.36 0L23.65 6H6a2 2 0 0 0-2 2v22a2 2 0 0 0 2 2h22a2 2 0 0 0 2-2V11.76l3-3a1.67 1.67 0 0 0 0-2.36ZM18.83 20.13l-4.19.93 1-4.15 9.55-9.57 3.23 3.23ZM29.5 9.43 26.27 6.2l1.85-1.85 3.23 3.23Z"></path><path fill="none" d="M0 0h36v36H0z"></path></svg><span>编辑</span></a><button id="darkMode" type="button"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" class="light" height="1em" width="1em">
|
||
<path d="M6.995 12c0 2.761 2.246 5.007 5.007 5.007s5.007-2.246 5.007-5.007-2.246-5.007-5.007-5.007S6.995 9.239 6.995 12zM11 19h2v3h-2zm0-17h2v3h-2zm-9 9h3v2H2zm17 0h3v2h-3zM5.637 19.778l-1.414-1.414 2.121-2.121 1.414 1.414zM16.242 6.344l2.122-2.122 1.414 1.414-2.122 2.122zM6.344 7.759 4.223 5.637l1.415-1.414 2.12 2.122zm13.434 10.605-1.414 1.414-2.122-2.122 1.414-1.414z"></path>
|
||
</svg>
|
||
<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24" class="dark" height="1em" width="1em">
|
||
<path d="M12 11.807A9.002 9.002 0 0 1 10.049 2a9.942 9.942 0 0 0-5.12 2.735c-3.905 3.905-3.905 10.237 0 14.142 3.906 3.906 10.237 3.905 14.143 0a9.946 9.946 0 0 0 2.735-5.119A9.003 9.003 0 0 1 12 11.807z"></path>
|
||
</svg>
|
||
</button><script src="../js/dark.js?v=1.8.3"></script><a href="https://github.com/jaywcjlove/reference" class="" target="__blank"><svg viewBox="0 0 16 16" fill="currentColor" height="1em" width="1em"><path d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.012 8.012 0 0 0 16 8c0-4.42-3.58-8-8-8z"></path></svg></a></div></div></nav><div class="wrap h1body-exist max-container"><header class="wrap-header h1wrap"><h1 id="java-备忘清单"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 384 512" height="1em" width="1em">
|
||
<path d="M277.74 312.9c9.8-6.7 23.4-12.5 23.4-12.5s-38.7 7-77.2 10.2c-47.1 3.9-97.7 4.7-123.1 1.3-60.1-8 33-30.1 33-30.1s-36.1-2.4-80.6 19c-52.5 25.4 130 37 224.5 12.1zm-85.4-32.1c-19-42.7-83.1-80.2 0-145.8C296 53.2 242.84 0 242.84 0c21.5 84.5-75.6 110.1-110.7 162.6-23.9 35.9 11.7 74.4 60.2 118.2zm114.6-176.2c.1 0-175.2 43.8-91.5 140.2 24.7 28.4-6.5 54-6.5 54s62.7-32.4 33.9-72.9c-26.9-37.8-47.5-56.6 64.1-121.3zm-6.1 270.5a12.19 12.19 0 0 1-2 2.6c128.3-33.7 81.1-118.9 19.8-97.3a17.33 17.33 0 0 0-8.2 6.3 70.45 70.45 0 0 1 11-3c31-6.5 75.5 41.5-20.6 91.4zM348 437.4s14.5 11.9-15.9 21.2c-57.9 17.5-240.8 22.8-291.6.7-18.3-7.9 16-19 26.8-21.3 11.2-2.4 17.7-2 17.7-2-20.3-14.3-131.3 28.1-56.4 40.2C232.84 509.4 401 461.3 348 437.4zM124.44 396c-78.7 22 47.9 67.4 148.1 24.5a185.89 185.89 0 0 1-28.2-13.8c-44.7 8.5-65.4 9.1-106 4.5-33.5-3.8-13.9-15.2-13.9-15.2zm179.8 97.2c-78.7 14.8-175.8 13.1-233.3 3.6 0-.1 11.8 9.7 72.4 13.6 92.2 5.9 233.8-3.3 237.1-46.9 0 0-6.4 16.5-76.2 29.7zM260.64 353c-59.2 11.4-93.5 11.1-136.8 6.6-33.5-3.5-11.6-19.7-11.6-19.7-86.8 28.8 48.2 61.4 169.5 25.9a60.37 60.37 0 0 1-21.1-12.8z"></path>
|
||
</svg>
|
||
<a aria-hidden="true" tabindex="-1" href="#java-备忘清单"><span class="icon icon-link"></span></a>Java 备忘清单</h1><div class="wrap-body">
|
||
<p>该备忘单是针对 Java 初学者的速成课程,有助于复习 Java 语言的基本语法。</p>
|
||
</div></header><div class="menu-tocs"><div class="menu-btn"><svg aria-hidden="true" fill="currentColor" height="1em" width="1em" viewBox="0 0 16 16" version="1.1" data-view-component="true">
|
||
<path fill-rule="evenodd" d="M2 4a1 1 0 100-2 1 1 0 000 2zm3.75-1.5a.75.75 0 000 1.5h8.5a.75.75 0 000-1.5h-8.5zm0 5a.75.75 0 000 1.5h8.5a.75.75 0 000-1.5h-8.5zm0 5a.75.75 0 000 1.5h8.5a.75.75 0 000-1.5h-8.5zM3 8a1 1 0 11-2 0 1 1 0 012 0zm-1 6a1 1 0 100-2 1 1 0 000 2z"></path>
|
||
</svg></div><div class="menu-modal"><a aria-hidden="true" class="leve2 tocs-link" data-num="2" href="#入门">入门</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#hellojava">Hello.java</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#变量-variables">变量 Variables</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#原始数据类型">原始数据类型</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#字符串-strings">字符串 Strings</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#循环-loops">循环 Loops</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#数组-arrays">数组 Arrays</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#交换变量-swap">交换变量 Swap</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#类型转换-type-casting">类型转换 Type Casting</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#条件语句-conditionals">条件语句 Conditionals</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#用户输入">用户输入</a><a aria-hidden="true" class="leve2 tocs-link" data-num="2" href="#java-字符串">Java 字符串</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#基本的">基本的</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#字符串连接">字符串连接</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#字符串生成器">字符串生成器</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#比较">比较</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#操纵">操纵</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#信息">信息</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#不可变">不可变</a><a aria-hidden="true" class="leve2 tocs-link" data-num="2" href="#java-数组">Java 数组</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#声明-declare">声明 Declare</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#修改-modify">修改 Modify</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#循环-读--写">循环 (读 & 写)</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#loop-read">Loop (Read)</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#二维数组-multidimensional-arrays">二维数组 Multidimensional Arrays</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#排序-sort">排序 Sort</a><a aria-hidden="true" class="leve2 tocs-link" data-num="2" href="#java-条件语句">Java 条件语句</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#运算符">运算符</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#if-else">If else</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#switch">Switch</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#三元运算符">三元运算符</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#逻辑运算符">逻辑运算符</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#比较运算">比较运算</a><a aria-hidden="true" class="leve2 tocs-link" data-num="2" href="#java-循环">Java 循环</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#for-循环">For 循环</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#增强的-for-循环">增强的 For 循环</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#while-循环">While 循环</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#do-while-循环">Do While 循环</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#继续语句">继续语句</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#中断语句">中断语句</a><a aria-hidden="true" class="leve2 tocs-link" data-num="2" href="#java-面向对象">Java 面向对象</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#类的定义">类的定义</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#类中的变量">类中的变量</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#对象的创建">对象的创建</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#对象的继承">对象的继承</a><a aria-hidden="true" class="leve4 tocs-link" data-num="4" href="#java继承的特点">Java继承的特点</a><a aria-hidden="true" class="leve4 tocs-link" data-num="4" href="#super-与-this">super 与 this</a><a aria-hidden="true" class="leve4 tocs-link" data-num="4" href="#final-关键字">final 关键字</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#java的重写override与重载overload">Java的重写(Override)与重载(Overload)</a><a aria-hidden="true" class="leve4 tocs-link" data-num="4" href="#重写override">重写(Override)</a><a aria-hidden="true" class="leve4 tocs-link" data-num="4" href="#重载overload">重载(Overload)</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#java-抽象类">Java 抽象类</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#java-接口">Java 接口</a><a aria-hidden="true" class="leve4 tocs-link" data-num="4" href="#接口的定义">接口的定义</a><a aria-hidden="true" class="leve4 tocs-link" data-num="4" href="#接口的实现">接口的实现</a><a aria-hidden="true" class="leve2 tocs-link" data-num="2" href="#java-多线程">Java 多线程</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#创建线程">创建线程</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#线程池">线程池</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#synchronized">synchronized</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#线程编排">线程编排</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#threadlocal">ThreadLocal</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#线程等待与唤醒">线程等待与唤醒</a><a aria-hidden="true" class="leve2 tocs-link" data-num="2" href="#java-框架搜集">Java 框架搜集</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#java-集合">Java 集合</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#arraylist">ArrayList</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#hashmap">HashMap</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#concurrenthashmap">ConcurrentHashMap</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#hashset">HashSet</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#arraydeque">ArrayDeque</a><a aria-hidden="true" class="leve2 tocs-link" data-num="2" href="#java-io流">Java I/O流</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#常见的类和操作">常见的类和操作</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#字节流">字节流</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#字符流">字符流</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#数据流">数据流</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#对象流">对象流</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#序列化与反序列化">序列化与反序列化</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#标准输入输出流">标准输入输出流</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#基本操作">基本操作</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#关闭流">关闭流</a><a aria-hidden="true" class="leve2 tocs-link" data-num="2" href="#java-stream-流">Java Stream 流</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#创建流">创建流</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#中间操作">中间操作</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#终端操作">终端操作</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#并行流">并行流</a><a aria-hidden="true" class="leve2 tocs-link" data-num="2" href="#反射">反射</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#获取-class-对象">获取 Class 对象</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#获取类的信息">获取类的信息</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#创建对象实例">创建对象实例</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#获取和设置字段值">获取和设置字段值</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#处理泛型">处理泛型</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#调用方法">调用方法</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#其他常用操作">其他常用操作</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#处理注解">处理注解</a><a aria-hidden="true" class="leve2 tocs-link" data-num="2" href="#方法引用">方法引用</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#方法引用-1">方法引用</a><a aria-hidden="true" class="leve4 tocs-link" data-num="4" href="#使用方式">使用方式</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#静态方法引用">静态方法引用</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#实例方法引用">实例方法引用</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#构造方法引用">构造方法引用</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#数组构造方法引用">数组构造方法引用</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#对象中的方法引用">对象中的方法引用</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#对象中的静态方法引用">对象中的静态方法引用</a><a aria-hidden="true" class="leve2 tocs-link" data-num="2" href="#杂项-misc">杂项 Misc</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#访问修饰符">访问修饰符</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#常用表达">常用表达</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#注释-comment">注释 Comment</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#关键字">关键字</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#数学方法">数学方法</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#异常-trycatchfinally">异常 Try/Catch/Finally</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#util工具类">util工具类</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#collections-工具类">Collections 工具类</a><a aria-hidden="true" class="leve2 tocs-link" data-num="2" href="#操纵数据库">操纵数据库</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#jdbc">JDBC</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#jdbc注册驱动">JDBC注册驱动</a><a aria-hidden="true" class="leve2 tocs-link" data-num="2" href="#另见">另见</a></div></div><div class="h1wrap-body"><div class="wrap h2body-exist"><div class="wrap-header h2wrap"><h2 id="入门"><a aria-hidden="true" tabindex="-1" href="#入门"><span class="icon icon-link"></span></a>入门</h2><div class="wrap-body">
|
||
</div></div><div class="h2wrap-body"><div class="wrap h3body-not-exist row-span-2"><div class="wrap-header h3wrap"><h3 id="hellojava"><a aria-hidden="true" tabindex="-1" href="#hellojava"><span class="icon icon-link"></span></a>Hello.java</h3><div class="wrap-body">
|
||
<!--rehype:wrap-class=row-span-2-->
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token keyword">public</span> <span class="token keyword">class</span> <span class="token class-name">Hello</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token comment">// 主要方法</span>
|
||
</span><span class="code-line"> <span class="token keyword">public</span> <span class="token keyword">static</span> <span class="token keyword">void</span> <span class="token function">main</span><span class="token punctuation">(</span><span class="token class-name">String</span><span class="token punctuation">[</span><span class="token punctuation">]</span> args<span class="token punctuation">)</span>
|
||
</span><span class="code-line"> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token comment">// 输出: Hello, world!</span>
|
||
</span><span class="code-line"> <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token string">"Hello, world!"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"> <span class="token punctuation">}</span>
|
||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||
</span></code></pre>
|
||
<p>编译和运行</p>
|
||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ javac Hello.java
|
||
</span><span class="code-line">$ <span class="token function">java</span> Hello
|
||
</span><span class="code-line">Hello, world<span class="token operator">!</span>
|
||
</span></code></pre>
|
||
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="变量-variables"><a aria-hidden="true" tabindex="-1" href="#变量-variables"><span class="icon icon-link"></span></a>变量 Variables</h3><div class="wrap-body">
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token keyword">int</span> num <span class="token operator">=</span> <span class="token number">5</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token keyword">float</span> floatNum <span class="token operator">=</span> <span class="token number">5.99f</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token keyword">char</span> letter <span class="token operator">=</span> <span class="token char">'D'</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token keyword">boolean</span> bool <span class="token operator">=</span> <span class="token boolean">true</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token class-name">String</span> site <span class="token operator">=</span> <span class="token string">"jaywcjlove.github.io"</span><span class="token punctuation">;</span>
|
||
</span></code></pre>
|
||
</div></div></div><div class="wrap h3body-not-exist row-span-2"><div class="wrap-header h3wrap"><h3 id="原始数据类型"><a aria-hidden="true" tabindex="-1" href="#原始数据类型"><span class="icon icon-link"></span></a>原始数据类型</h3><div class="wrap-body">
|
||
<!--rehype:wrap-class=row-span-2-->
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<table class="show-header"><thead><tr><th>数据类型</th><th>大小</th><th>默认</th><th>范围</th></tr></thead><tbody><tr><td><code>byte</code></td><td>1 byte</td><td>0</td><td>-128 ^to^ 127</td></tr><tr><td><code>short</code></td><td>2 byte</td><td>0</td><td>-2^15^ ^to^ 2^15^-1</td></tr><tr><td><code>int</code></td><td>4 byte</td><td>0</td><td>-2^31^ ^to^ 2^31^-1</td></tr><tr><td><code>long</code></td><td>8 byte</td><td>0</td><td>-2^63^ ^to^ 2^63^-1</td></tr><tr><td><code>float</code></td><td>4 byte</td><td>0.0f</td><td><em>N/A</em></td></tr><tr><td><code>double</code></td><td>8 byte</td><td>0.0d</td><td><em>N/A</em></td></tr><tr><td><code>char</code></td><td>2 byte</td><td>\u0000</td><td>0 ^to^ 65535</td></tr><tr><td><code>boolean</code></td><td><em>N/A</em></td><td>false</td><td>true / false</td></tr></tbody></table>
|
||
<!--rehype:className=show-header-->
|
||
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="字符串-strings"><a aria-hidden="true" tabindex="-1" href="#字符串-strings"><span class="icon icon-link"></span></a>字符串 Strings</h3><div class="wrap-body">
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token class-name">String</span> first <span class="token operator">=</span> <span class="token string">"John"</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token class-name">String</span> last <span class="token operator">=</span> <span class="token string">"Doe"</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token class-name">String</span> name <span class="token operator">=</span> first <span class="token operator">+</span> <span class="token string">" "</span> <span class="token operator">+</span> last<span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>name<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span></code></pre>
|
||
<p>查看: <a href="#java-%E5%AD%97%E7%AC%A6%E4%B8%B2">Strings</a></p>
|
||
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="循环-loops"><a aria-hidden="true" tabindex="-1" href="#循环-loops"><span class="icon icon-link"></span></a>循环 Loops</h3><div class="wrap-body">
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token class-name">String</span> word <span class="token operator">=</span> <span class="token string">"QuickRef"</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token keyword">for</span> <span class="token punctuation">(</span><span class="token keyword">char</span> c<span class="token operator">:</span> word<span class="token punctuation">.</span><span class="token function">toCharArray</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">print</span><span class="token punctuation">(</span>c <span class="token operator">+</span> <span class="token string">"-"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||
</span><span class="code-line"><span class="token comment">// 输出: Q-u-i-c-k-R-e-f-</span>
|
||
</span></code></pre>
|
||
<p>查看: <a href="#java-%E5%BE%AA%E7%8E%AF">Loops</a></p>
|
||
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="数组-arrays"><a aria-hidden="true" tabindex="-1" href="#数组-arrays"><span class="icon icon-link"></span></a>数组 Arrays</h3><div class="wrap-body">
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token keyword">char</span><span class="token punctuation">[</span><span class="token punctuation">]</span> chars <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token keyword">char</span><span class="token punctuation">[</span><span class="token number">10</span><span class="token punctuation">]</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line">chars<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token char">'a'</span>
|
||
</span><span class="code-line">chars<span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token char">'b'</span>
|
||
</span><span class="code-line"><span class="token class-name">String</span><span class="token punctuation">[</span><span class="token punctuation">]</span> letters <span class="token operator">=</span> <span class="token punctuation">{</span><span class="token string">"A"</span><span class="token punctuation">,</span> <span class="token string">"B"</span><span class="token punctuation">,</span> <span class="token string">"C"</span><span class="token punctuation">}</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token keyword">int</span><span class="token punctuation">[</span><span class="token punctuation">]</span> mylist <span class="token operator">=</span> <span class="token punctuation">{</span><span class="token number">100</span><span class="token punctuation">,</span> <span class="token number">200</span><span class="token punctuation">}</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token keyword">boolean</span><span class="token punctuation">[</span><span class="token punctuation">]</span> answers <span class="token operator">=</span> <span class="token punctuation">{</span><span class="token boolean">true</span><span class="token punctuation">,</span> <span class="token boolean">false</span><span class="token punctuation">}</span><span class="token punctuation">;</span>
|
||
</span></code></pre>
|
||
<p>查看: <a href="#java-%E6%95%B0%E7%BB%84">Arrays</a></p>
|
||
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="交换变量-swap"><a aria-hidden="true" tabindex="-1" href="#交换变量-swap"><span class="icon icon-link"></span></a>交换变量 Swap</h3><div class="wrap-body">
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token keyword">int</span> a <span class="token operator">=</span> <span class="token number">1</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token keyword">int</span> b <span class="token operator">=</span> <span class="token number">2</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>a <span class="token operator">+</span> <span class="token string">" "</span> <span class="token operator">+</span> b<span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// 1 2</span>
|
||
</span><span class="code-line"><span class="token keyword">int</span> temp <span class="token operator">=</span> a<span class="token punctuation">;</span>
|
||
</span><span class="code-line">a <span class="token operator">=</span> b<span class="token punctuation">;</span>
|
||
</span><span class="code-line">b <span class="token operator">=</span> temp<span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>a <span class="token operator">+</span> <span class="token string">" "</span> <span class="token operator">+</span> b<span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// 2 1</span>
|
||
</span></code></pre>
|
||
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="类型转换-type-casting"><a aria-hidden="true" tabindex="-1" href="#类型转换-type-casting"><span class="icon icon-link"></span></a>类型转换 Type Casting</h3><div class="wrap-body">
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token comment">// Widening</span>
|
||
</span><span class="code-line"><span class="token comment">// byte<short<int<long<float<double</span>
|
||
</span><span class="code-line"><span class="token keyword">int</span> i <span class="token operator">=</span> <span class="token number">10</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token keyword">long</span> l <span class="token operator">=</span> i<span class="token punctuation">;</span> <span class="token comment">// 10</span>
|
||
</span><span class="code-line"><span class="token comment">// Narrowing</span>
|
||
</span><span class="code-line"><span class="token keyword">double</span> d <span class="token operator">=</span> <span class="token number">10.02</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token keyword">long</span> l <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token keyword">long</span><span class="token punctuation">)</span>d<span class="token punctuation">;</span> <span class="token comment">// 10</span>
|
||
</span><span class="code-line"><span class="token class-name">String</span><span class="token punctuation">.</span><span class="token function">valueOf</span><span class="token punctuation">(</span><span class="token number">10</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// "10"</span>
|
||
</span><span class="code-line"><span class="token class-name">Integer</span><span class="token punctuation">.</span><span class="token function">parseInt</span><span class="token punctuation">(</span><span class="token string">"10"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// 10</span>
|
||
</span><span class="code-line"><span class="token class-name">Double</span><span class="token punctuation">.</span><span class="token function">parseDouble</span><span class="token punctuation">(</span><span class="token string">"10"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// 10.0</span>
|
||
</span></code></pre>
|
||
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="条件语句-conditionals"><a aria-hidden="true" tabindex="-1" href="#条件语句-conditionals"><span class="icon icon-link"></span></a>条件语句 Conditionals</h3><div class="wrap-body">
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token keyword">int</span> j <span class="token operator">=</span> <span class="token number">10</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token keyword">if</span> <span class="token punctuation">(</span>j <span class="token operator">==</span> <span class="token number">10</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token string">"I get printed"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token punctuation">}</span> <span class="token keyword">else</span> <span class="token keyword">if</span> <span class="token punctuation">(</span>j <span class="token operator">></span> <span class="token number">10</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token string">"I don't"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token punctuation">}</span> <span class="token keyword">else</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token string">"I also don't"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||
</span></code></pre>
|
||
<p>查看: [Conditionals](#条件语句 Conditionals)</p>
|
||
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="用户输入"><a aria-hidden="true" tabindex="-1" href="#用户输入"><span class="icon icon-link"></span></a>用户输入</h3><div class="wrap-body">
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token class-name">Scanner</span> in <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Scanner</span><span class="token punctuation">(</span><span class="token class-name">System</span><span class="token punctuation">.</span>in<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token class-name">String</span> str <span class="token operator">=</span> in<span class="token punctuation">.</span><span class="token function">nextLine</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>str<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token keyword">int</span> num <span class="token operator">=</span> in<span class="token punctuation">.</span><span class="token function">nextInt</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>num<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span></code></pre>
|
||
</div></div></div></div></div><div class="wrap h2body-exist"><div class="wrap-header h2wrap"><h2 id="java-字符串"><a aria-hidden="true" tabindex="-1" href="#java-字符串"><span class="icon icon-link"></span></a>Java 字符串</h2><div class="wrap-body">
|
||
</div></div><div class="h2wrap-body"><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="基本的"><a aria-hidden="true" tabindex="-1" href="#基本的"><span class="icon icon-link"></span></a>基本的</h3><div class="wrap-body">
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token class-name">String</span> str1 <span class="token operator">=</span> <span class="token string">"value"</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token class-name">String</span> str2 <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">String</span><span class="token punctuation">(</span><span class="token string">"value"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token class-name">String</span> str3 <span class="token operator">=</span> <span class="token class-name">String</span><span class="token punctuation">.</span><span class="token function">valueOf</span><span class="token punctuation">(</span><span class="token number">123</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span></code></pre>
|
||
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="字符串连接"><a aria-hidden="true" tabindex="-1" href="#字符串连接"><span class="icon icon-link"></span></a>字符串连接</h3><div class="wrap-body">
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token class-name">String</span> s <span class="token operator">=</span> <span class="token number">3</span> <span class="token operator">+</span> <span class="token string">"str"</span> <span class="token operator">+</span> <span class="token number">3</span><span class="token punctuation">;</span> <span class="token comment">// 3str3</span>
|
||
</span><span class="code-line"><span class="token class-name">String</span> s <span class="token operator">=</span> <span class="token number">3</span> <span class="token operator">+</span> <span class="token number">3</span> <span class="token operator">+</span> <span class="token string">"str"</span><span class="token punctuation">;</span> <span class="token comment">// 6str</span>
|
||
</span><span class="code-line"><span class="token class-name">String</span> s <span class="token operator">=</span> <span class="token string">"3"</span> <span class="token operator">+</span> <span class="token number">3</span> <span class="token operator">+</span> <span class="token string">"str"</span><span class="token punctuation">;</span> <span class="token comment">// 33str</span>
|
||
</span><span class="code-line"><span class="token class-name">String</span> s <span class="token operator">=</span> <span class="token string">"3"</span> <span class="token operator">+</span> <span class="token string">"3"</span> <span class="token operator">+</span> <span class="token string">"23"</span><span class="token punctuation">;</span> <span class="token comment">// 3323</span>
|
||
</span><span class="code-line"><span class="token class-name">String</span> s <span class="token operator">=</span> <span class="token string">""</span> <span class="token operator">+</span> <span class="token number">3</span> <span class="token operator">+</span> <span class="token number">3</span> <span class="token operator">+</span> <span class="token string">"23"</span><span class="token punctuation">;</span> <span class="token comment">// 3323</span>
|
||
</span><span class="code-line"><span class="token class-name">String</span> s <span class="token operator">=</span> <span class="token number">3</span> <span class="token operator">+</span> <span class="token number">3</span> <span class="token operator">+</span> <span class="token number">23</span><span class="token punctuation">;</span> <span class="token comment">// 29</span>
|
||
</span></code></pre>
|
||
</div></div></div><div class="wrap h3body-not-exist row-span-3"><div class="wrap-header h3wrap"><h3 id="字符串生成器"><a aria-hidden="true" tabindex="-1" href="#字符串生成器"><span class="icon icon-link"></span></a>字符串生成器</h3><div class="wrap-body">
|
||
<!--rehype:wrap-class=row-span-3-->
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token class-name">StringBuilder</span> sb <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">StringBuilder</span><span class="token punctuation">(</span><span class="token number">10</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span></code></pre>
|
||
<hr>
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line">┌───┬───┬───┬───┬───┬───┬───┬───┬───┐
|
||
</span><span class="code-line"><span class="token operator">|</span> <span class="token operator">|</span> <span class="token operator">|</span> <span class="token operator">|</span> <span class="token operator">|</span> <span class="token operator">|</span> <span class="token operator">|</span> <span class="token operator">|</span> <span class="token operator">|</span> <span class="token operator">|</span>
|
||
</span><span class="code-line">└───┴───┴───┴───┴───┴───┴───┴───┴───┘
|
||
</span><span class="code-line"><span class="token number">0</span> <span class="token number">1</span> <span class="token number">2</span> <span class="token number">3</span> <span class="token number">4</span> <span class="token number">5</span> <span class="token number">6</span> <span class="token number">7</span> <span class="token number">8</span> <span class="token number">9</span>
|
||
</span></code></pre>
|
||
<hr>
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line">sb<span class="token punctuation">.</span><span class="token function">append</span><span class="token punctuation">(</span><span class="token string">"Reference"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span></code></pre>
|
||
<hr>
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line">┌───┬───┬───┬───┬───┬───┬───┬───┬───┐
|
||
</span><span class="code-line"><span class="token operator">|</span> <span class="token class-name">R</span> <span class="token operator">|</span> e <span class="token operator">|</span> f <span class="token operator">|</span> e <span class="token operator">|</span> r <span class="token operator">|</span> e <span class="token operator">|</span> n <span class="token operator">|</span> c <span class="token operator">|</span> e <span class="token operator">|</span>
|
||
</span><span class="code-line">└───┴───┴───┴───┴───┴───┴───┴───┴───┘
|
||
</span><span class="code-line"><span class="token number">0</span> <span class="token number">1</span> <span class="token number">2</span> <span class="token number">3</span> <span class="token number">4</span> <span class="token number">5</span> <span class="token number">6</span> <span class="token number">7</span> <span class="token number">8</span> <span class="token number">9</span>
|
||
</span></code></pre>
|
||
<hr>
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line">sb<span class="token punctuation">.</span><span class="token function">delete</span><span class="token punctuation">(</span><span class="token number">3</span><span class="token punctuation">,</span> <span class="token number">9</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span></code></pre>
|
||
<hr>
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line">┌───┬───┬───┬───┬───┬───┬───┬───┬───┐
|
||
</span><span class="code-line"><span class="token operator">|</span> <span class="token class-name">R</span> <span class="token operator">|</span> e <span class="token operator">|</span> f <span class="token operator">|</span> <span class="token operator">|</span> <span class="token operator">|</span> <span class="token operator">|</span> <span class="token operator">|</span> <span class="token operator">|</span> <span class="token operator">|</span>
|
||
</span><span class="code-line">└───┴───┴───┴───┴───┴───┴───┴───┴───┘
|
||
</span><span class="code-line"><span class="token number">0</span> <span class="token number">1</span> <span class="token number">2</span> <span class="token number">3</span> <span class="token number">4</span> <span class="token number">5</span> <span class="token number">6</span> <span class="token number">7</span> <span class="token number">8</span> <span class="token number">9</span>
|
||
</span></code></pre>
|
||
<hr>
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line">sb<span class="token punctuation">.</span><span class="token function">insert</span><span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">,</span> <span class="token string">"My "</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span></code></pre>
|
||
<hr>
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line">┌───┬───┬───┬───┬───┬───┬───┬───┬───┐
|
||
</span><span class="code-line"><span class="token operator">|</span> <span class="token class-name">M</span> <span class="token operator">|</span> y <span class="token operator">|</span> <span class="token operator">|</span> <span class="token class-name">R</span> <span class="token operator">|</span> e <span class="token operator">|</span> f <span class="token operator">|</span> <span class="token operator">|</span> <span class="token operator">|</span> <span class="token operator">|</span>
|
||
</span><span class="code-line">└───┴───┴───┴───┴───┴───┴───┴───┴───┘
|
||
</span><span class="code-line"><span class="token number">0</span> <span class="token number">1</span> <span class="token number">2</span> <span class="token number">3</span> <span class="token number">4</span> <span class="token number">5</span> <span class="token number">6</span> <span class="token number">7</span> <span class="token number">8</span> <span class="token number">9</span>
|
||
</span></code></pre>
|
||
<hr>
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line">sb<span class="token punctuation">.</span><span class="token function">append</span><span class="token punctuation">(</span><span class="token string">"!"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span></code></pre>
|
||
<hr>
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line">┌───┬───┬───┬───┬───┬───┬───┬───┬───┐
|
||
</span><span class="code-line"><span class="token operator">|</span> <span class="token class-name">M</span> <span class="token operator">|</span> y <span class="token operator">|</span> <span class="token operator">|</span> <span class="token class-name">R</span> <span class="token operator">|</span> e <span class="token operator">|</span> f <span class="token operator">|</span> <span class="token operator">!</span> <span class="token operator">|</span> <span class="token operator">|</span> <span class="token operator">|</span>
|
||
</span><span class="code-line">└───┴───┴───┴───┴───┴───┴───┴───┴───┘
|
||
</span><span class="code-line"><span class="token number">0</span> <span class="token number">1</span> <span class="token number">2</span> <span class="token number">3</span> <span class="token number">4</span> <span class="token number">5</span> <span class="token number">6</span> <span class="token number">7</span> <span class="token number">8</span> <span class="token number">9</span>
|
||
</span></code></pre>
|
||
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="比较"><a aria-hidden="true" tabindex="-1" href="#比较"><span class="icon icon-link"></span></a>比较</h3><div class="wrap-body">
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token class-name">String</span> s1 <span class="token operator">=</span> <span class="token string">"QuickRef"</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token class-name">String</span> s2 <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">String</span><span class="token punctuation">(</span><span class="token string">"QuickRef"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line">s1 <span class="token operator">==</span> s2 <span class="token comment">// false</span>
|
||
</span><span class="code-line">s1<span class="token punctuation">.</span><span class="token function">equals</span><span class="token punctuation">(</span>s2<span class="token punctuation">)</span> <span class="token comment">// true</span>
|
||
</span><span class="code-line"><span class="token comment">// intern 方法获得字符串常量池中的惟一引用</span>
|
||
</span><span class="code-line">s1 <span class="token operator">==</span> s2<span class="token punctuation">.</span><span class="token function">intern</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">// true</span>
|
||
</span><span class="code-line"><span class="token string">"AB"</span><span class="token punctuation">.</span><span class="token function">equalsIgnoreCase</span><span class="token punctuation">(</span><span class="token string">"ab"</span><span class="token punctuation">)</span> <span class="token comment">// true</span>
|
||
</span></code></pre>
|
||
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="操纵"><a aria-hidden="true" tabindex="-1" href="#操纵"><span class="icon icon-link"></span></a>操纵</h3><div class="wrap-body">
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token class-name">String</span> str <span class="token operator">=</span> <span class="token string">"Abcd"</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line">str<span class="token punctuation">.</span><span class="token function">toUpperCase</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// ABCD</span>
|
||
</span><span class="code-line">str<span class="token punctuation">.</span><span class="token function">toLowerCase</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// abcd</span>
|
||
</span><span class="code-line">str<span class="token punctuation">.</span><span class="token function">concat</span><span class="token punctuation">(</span><span class="token string">"#"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// Abcd#</span>
|
||
</span><span class="code-line">str<span class="token punctuation">.</span><span class="token function">replace</span><span class="token punctuation">(</span><span class="token string">"b"</span><span class="token punctuation">,</span> <span class="token string">"-"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// A-cd</span>
|
||
</span><span class="code-line"><span class="token string">" abc "</span><span class="token punctuation">.</span><span class="token function">trim</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// abc</span>
|
||
</span><span class="code-line"><span class="token string">"ab"</span><span class="token punctuation">.</span><span class="token function">toCharArray</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// {'a', 'b'}</span>
|
||
</span></code></pre>
|
||
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="信息"><a aria-hidden="true" tabindex="-1" href="#信息"><span class="icon icon-link"></span></a>信息</h3><div class="wrap-body">
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token class-name">String</span> str <span class="token operator">=</span> <span class="token string">"abcd"</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line">str<span class="token punctuation">.</span><span class="token function">charAt</span><span class="token punctuation">(</span><span class="token number">2</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// c</span>
|
||
</span><span class="code-line">str<span class="token punctuation">.</span><span class="token function">indexOf</span><span class="token punctuation">(</span><span class="token string">"a"</span><span class="token punctuation">)</span> <span class="token comment">// 0</span>
|
||
</span><span class="code-line">str<span class="token punctuation">.</span><span class="token function">indexOf</span><span class="token punctuation">(</span><span class="token string">"z"</span><span class="token punctuation">)</span> <span class="token comment">// -1</span>
|
||
</span><span class="code-line">str<span class="token punctuation">.</span><span class="token function">length</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// 4</span>
|
||
</span><span class="code-line">str<span class="token punctuation">.</span><span class="token function">toString</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// abcd</span>
|
||
</span><span class="code-line">str<span class="token punctuation">.</span><span class="token function">substring</span><span class="token punctuation">(</span><span class="token number">2</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// cd</span>
|
||
</span><span class="code-line">str<span class="token punctuation">.</span><span class="token function">substring</span><span class="token punctuation">(</span><span class="token number">2</span><span class="token punctuation">,</span><span class="token number">3</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// c</span>
|
||
</span><span class="code-line">str<span class="token punctuation">.</span><span class="token function">contains</span><span class="token punctuation">(</span><span class="token string">"c"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// true</span>
|
||
</span><span class="code-line">str<span class="token punctuation">.</span><span class="token function">endsWith</span><span class="token punctuation">(</span><span class="token string">"d"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// true</span>
|
||
</span><span class="code-line">str<span class="token punctuation">.</span><span class="token function">startsWith</span><span class="token punctuation">(</span><span class="token string">"a"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// true</span>
|
||
</span><span class="code-line">str<span class="token punctuation">.</span><span class="token function">isEmpty</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// false</span>
|
||
</span></code></pre>
|
||
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="不可变"><a aria-hidden="true" tabindex="-1" href="#不可变"><span class="icon icon-link"></span></a>不可变</h3><div class="wrap-body">
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token class-name">String</span> str <span class="token operator">=</span> <span class="token string">"hello"</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line">str<span class="token punctuation">.</span><span class="token function">concat</span><span class="token punctuation">(</span><span class="token string">"world"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token comment">// 输出: hello</span>
|
||
</span><span class="code-line"><span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>str<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span></code></pre>
|
||
<hr>
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token class-name">String</span> str <span class="token operator">=</span> <span class="token string">"hello"</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token class-name">String</span> concat <span class="token operator">=</span> str<span class="token punctuation">.</span><span class="token function">concat</span><span class="token punctuation">(</span><span class="token string">"world"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token comment">// 输出: helloworld</span>
|
||
</span><span class="code-line"><span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>concat<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span></code></pre>
|
||
<p>一旦创建就不能修改,任何修改都会创建一个新的String</p>
|
||
</div></div></div></div></div><div class="wrap h2body-exist"><div class="wrap-header h2wrap"><h2 id="java-数组"><a aria-hidden="true" tabindex="-1" href="#java-数组"><span class="icon icon-link"></span></a>Java 数组</h2><div class="wrap-body">
|
||
</div></div><div class="h2wrap-body"><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="声明-declare"><a aria-hidden="true" tabindex="-1" href="#声明-declare"><span class="icon icon-link"></span></a>声明 Declare</h3><div class="wrap-body">
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token keyword">int</span><span class="token punctuation">[</span><span class="token punctuation">]</span> a1<span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token keyword">int</span><span class="token punctuation">[</span><span class="token punctuation">]</span> a2 <span class="token operator">=</span> <span class="token punctuation">{</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">,</span> <span class="token number">3</span><span class="token punctuation">}</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token keyword">int</span><span class="token punctuation">[</span><span class="token punctuation">]</span> a3 <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token keyword">int</span><span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">{</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">,</span> <span class="token number">3</span><span class="token punctuation">}</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token keyword">int</span><span class="token punctuation">[</span><span class="token punctuation">]</span> a4 <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token keyword">int</span><span class="token punctuation">[</span><span class="token number">3</span><span class="token punctuation">]</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line">a4<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token number">1</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line">a4<span class="token punctuation">[</span><span class="token number">2</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token number">2</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line">a4<span class="token punctuation">[</span><span class="token number">3</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token number">3</span><span class="token punctuation">;</span> <span class="token comment">// 会出现索引越界异常</span>
|
||
</span></code></pre>
|
||
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="修改-modify"><a aria-hidden="true" tabindex="-1" href="#修改-modify"><span class="icon icon-link"></span></a>修改 Modify</h3><div class="wrap-body">
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token keyword">int</span><span class="token punctuation">[</span><span class="token punctuation">]</span> a <span class="token operator">=</span> <span class="token punctuation">{</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">,</span> <span class="token number">3</span><span class="token punctuation">}</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>a<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// 1</span>
|
||
</span><span class="code-line">a<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token number">9</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>a<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// 9</span>
|
||
</span><span class="code-line"><span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>a<span class="token punctuation">.</span>length<span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// 3</span>
|
||
</span></code></pre>
|
||
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="循环-读--写"><a aria-hidden="true" tabindex="-1" href="#循环-读--写"><span class="icon icon-link"></span></a>循环 (读 & 写)</h3><div class="wrap-body">
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token keyword">int</span><span class="token punctuation">[</span><span class="token punctuation">]</span> arr <span class="token operator">=</span> <span class="token punctuation">{</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">,</span> <span class="token number">3</span><span class="token punctuation">}</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token keyword">for</span> <span class="token punctuation">(</span><span class="token keyword">int</span> i<span class="token operator">=</span><span class="token number">0</span><span class="token punctuation">;</span> i <span class="token operator"><</span> arr<span class="token punctuation">.</span>length<span class="token punctuation">;</span> i<span class="token operator">++</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> arr<span class="token punctuation">[</span>i<span class="token punctuation">]</span> <span class="token operator">=</span> arr<span class="token punctuation">[</span>i<span class="token punctuation">]</span> <span class="token operator">*</span> <span class="token number">2</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"> <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">print</span><span class="token punctuation">(</span>arr<span class="token punctuation">[</span>i<span class="token punctuation">]</span> <span class="token operator">+</span> <span class="token string">" "</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||
</span><span class="code-line"><span class="token comment">// 输出: 2 4 6</span>
|
||
</span></code></pre>
|
||
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="loop-read"><a aria-hidden="true" tabindex="-1" href="#loop-read"><span class="icon icon-link"></span></a>Loop (Read)</h3><div class="wrap-body">
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token class-name">String</span><span class="token punctuation">[</span><span class="token punctuation">]</span> arr <span class="token operator">=</span> <span class="token punctuation">{</span><span class="token string">"a"</span><span class="token punctuation">,</span> <span class="token string">"b"</span><span class="token punctuation">,</span> <span class="token string">"c"</span><span class="token punctuation">}</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token keyword">for</span> <span class="token punctuation">(</span><span class="token keyword">int</span> a<span class="token operator">:</span> arr<span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">print</span><span class="token punctuation">(</span>a <span class="token operator">+</span> <span class="token string">" "</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||
</span><span class="code-line"><span class="token comment">// 输出: a b c</span>
|
||
</span></code></pre>
|
||
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="二维数组-multidimensional-arrays"><a aria-hidden="true" tabindex="-1" href="#二维数组-multidimensional-arrays"><span class="icon icon-link"></span></a>二维数组 Multidimensional Arrays</h3><div class="wrap-body">
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token keyword">int</span><span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token punctuation">]</span> matrix <span class="token operator">=</span> <span class="token punctuation">{</span><span class="token punctuation">{</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">,</span> <span class="token number">3</span><span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token punctuation">{</span><span class="token number">4</span><span class="token punctuation">,</span> <span class="token number">5</span><span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token punctuation">{</span><span class="token number">6</span><span class="token punctuation">}</span><span class="token punctuation">}</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token keyword">int</span> x <span class="token operator">=</span> matrix<span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token comment">// 4</span>
|
||
</span><span class="code-line"><span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token class-name">Arrays</span><span class="token punctuation">.</span><span class="token function">deepToString</span><span class="token punctuation">(</span>matrix<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token comment">// 输出: [[1, 2, 3], [4, 5], [6]]</span>
|
||
</span><span class="code-line"><span class="token keyword">for</span> <span class="token punctuation">(</span><span class="token keyword">int</span> i <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">;</span> i <span class="token operator"><</span> matrix<span class="token punctuation">.</span>length<span class="token punctuation">;</span> <span class="token operator">++</span>i<span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token keyword">for</span><span class="token punctuation">(</span><span class="token keyword">int</span> j <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">;</span> j <span class="token operator"><</span> matrix<span class="token punctuation">[</span>i<span class="token punctuation">]</span><span class="token punctuation">.</span>length<span class="token punctuation">;</span> <span class="token operator">++</span>j<span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>matrix<span class="token punctuation">[</span>i<span class="token punctuation">]</span><span class="token punctuation">[</span>j<span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"> <span class="token punctuation">}</span>
|
||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||
</span><span class="code-line"><span class="token comment">// 输出: 1 2 3 4 5 6</span>
|
||
</span></code></pre>
|
||
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="排序-sort"><a aria-hidden="true" tabindex="-1" href="#排序-sort"><span class="icon icon-link"></span></a>排序 Sort</h3><div class="wrap-body">
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token keyword">char</span><span class="token punctuation">[</span><span class="token punctuation">]</span> chars <span class="token operator">=</span> <span class="token punctuation">{</span><span class="token char">'b'</span><span class="token punctuation">,</span> <span class="token char">'a'</span><span class="token punctuation">,</span> <span class="token char">'c'</span><span class="token punctuation">}</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token class-name">Arrays</span><span class="token punctuation">.</span><span class="token function">sort</span><span class="token punctuation">(</span>chars<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token comment">// [a, b, c]</span>
|
||
</span><span class="code-line"><span class="token class-name">Arrays</span><span class="token punctuation">.</span><span class="token function">toString</span><span class="token punctuation">(</span>chars<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span></code></pre>
|
||
</div></div></div></div></div><div class="wrap h2body-exist"><div class="wrap-header h2wrap"><h2 id="java-条件语句"><a aria-hidden="true" tabindex="-1" href="#java-条件语句"><span class="icon icon-link"></span></a>Java 条件语句</h2><div class="wrap-body">
|
||
</div></div><div class="h2wrap-body"><div class="wrap h3body-not-exist row-span-3"><div class="wrap-header h3wrap"><h3 id="运算符"><a aria-hidden="true" tabindex="-1" href="#运算符"><span class="icon icon-link"></span></a>运算符</h3><div class="wrap-body">
|
||
<!--rehype:wrap-class=row-span-3-->
|
||
<ul class="style-round">
|
||
<li><code>+</code> <em>(加法运算符(也用于字符串连接))</em></li>
|
||
<li><code>-</code> <em>(减法运算符)</em></li>
|
||
<li><code>*</code> <em>(乘法运算符)</em></li>
|
||
<li><code>/</code> <em>(分区运算符)</em></li>
|
||
<li><code>%</code> <em>(余数运算符)</em></li>
|
||
<li><code>=</code> <em>(简单赋值运算符)</em></li>
|
||
<li><code>++</code> <em>(增量运算符;将值增加 1)</em></li>
|
||
<li><code>--</code> <em>(递减运算符;将值减 1)</em></li>
|
||
<li><code>!</code> <em>(逻辑补码运算符;反转布尔值)</em></li>
|
||
</ul>
|
||
<!--rehype:className=style-round-->
|
||
<hr>
|
||
<ul class="cols-2 style-round">
|
||
<li><code>==</code> <em>(等于)</em></li>
|
||
<li><code>!=</code> <em>(不等于)</em></li>
|
||
<li><code>></code> <em>(比...更棒)</em></li>
|
||
<li><code>>=</code> <em>(大于或等于)</em></li>
|
||
<li><code><</code> <em>(少于)</em></li>
|
||
<li><code><=</code> <em>(小于或等于)</em></li>
|
||
</ul>
|
||
<!--rehype:className=cols-2 style-round-->
|
||
<hr>
|
||
<ul class="style-round">
|
||
<li><code>&&</code> <em>条件与</em></li>
|
||
<li><code>||</code> <em>条件或</em></li>
|
||
<li><a href="#%E4%B8%89%E5%85%83%E8%BF%90%E7%AE%97%E7%AC%A6">?:</a> <em>三元(if-then-else 语句的简写)</em></li>
|
||
</ul>
|
||
<!--rehype:className=style-round-->
|
||
<hr>
|
||
<ul class="style-round">
|
||
<li><code>instanceof</code> <em>(将对象与指定类型进行比较)</em></li>
|
||
</ul>
|
||
<!--rehype:className=style-round-->
|
||
<hr>
|
||
<ul class="cols-2 style-round">
|
||
<li><code>~</code> <em>(一元按位补码)</em></li>
|
||
<li><code><<</code> <em>(签名左移)</em></li>
|
||
<li><code>>></code> <em>(有符号右移)</em></li>
|
||
<li><code>>>></code> <em>(无符号右移)</em></li>
|
||
<li><code>&</code> <em>(按位与)</em></li>
|
||
<li><code>^</code> <em>(按位异或)</em></li>
|
||
<li><code>|</code> <em>(按位包含 OR)</em></li>
|
||
</ul>
|
||
<!--rehype:className=cols-2 style-round-->
|
||
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="if-else"><a aria-hidden="true" tabindex="-1" href="#if-else"><span class="icon icon-link"></span></a>If else</h3><div class="wrap-body">
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token keyword">int</span> k <span class="token operator">=</span> <span class="token number">15</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token keyword">if</span> <span class="token punctuation">(</span>k <span class="token operator">></span> <span class="token number">20</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token punctuation">}</span> <span class="token keyword">else</span> <span class="token keyword">if</span> <span class="token punctuation">(</span>k <span class="token operator">></span> <span class="token number">10</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token number">2</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token punctuation">}</span> <span class="token keyword">else</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token number">3</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||
</span></code></pre>
|
||
</div></div></div><div class="wrap h3body-not-exist row-span-2"><div class="wrap-header h3wrap"><h3 id="switch"><a aria-hidden="true" tabindex="-1" href="#switch"><span class="icon icon-link"></span></a>Switch</h3><div class="wrap-body">
|
||
<!--rehype:wrap-class=row-span-2-->
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token keyword">int</span> month <span class="token operator">=</span> <span class="token number">3</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token class-name">String</span> str<span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token keyword">switch</span> <span class="token punctuation">(</span>month<span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token keyword">case</span> <span class="token number">1</span><span class="token operator">:</span>
|
||
</span><span class="code-line"> str <span class="token operator">=</span> <span class="token string">"January"</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"> <span class="token keyword">break</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"> <span class="token keyword">case</span> <span class="token number">2</span><span class="token operator">:</span>
|
||
</span><span class="code-line"> str <span class="token operator">=</span> <span class="token string">"February"</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"> <span class="token keyword">break</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"> <span class="token keyword">case</span> <span class="token number">3</span><span class="token operator">:</span>
|
||
</span><span class="code-line"> str <span class="token operator">=</span> <span class="token string">"March"</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"> <span class="token keyword">break</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"> <span class="token keyword">default</span><span class="token operator">:</span>
|
||
</span><span class="code-line"> str <span class="token operator">=</span> <span class="token string">"Some other month"</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"> <span class="token keyword">break</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||
</span><span class="code-line"><span class="token comment">// 输出: Result March</span>
|
||
</span><span class="code-line"><span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token string">"Result "</span> <span class="token operator">+</span> str<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span></code></pre>
|
||
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="三元运算符"><a aria-hidden="true" tabindex="-1" href="#三元运算符"><span class="icon icon-link"></span></a>三元运算符</h3><div class="wrap-body">
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token keyword">int</span> a <span class="token operator">=</span> <span class="token number">10</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token keyword">int</span> b <span class="token operator">=</span> <span class="token number">20</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token keyword">int</span> max <span class="token operator">=</span> <span class="token punctuation">(</span>a <span class="token operator">></span> b<span class="token punctuation">)</span> <span class="token operator">?</span> a <span class="token operator">:</span> b<span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token comment">// 输出: 20</span>
|
||
</span><span class="code-line"><span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>max<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span></code></pre>
|
||
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="逻辑运算符"><a aria-hidden="true" tabindex="-1" href="#逻辑运算符"><span class="icon icon-link"></span></a>逻辑运算符</h3><div class="wrap-body">
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token comment">// 与运算</span>
|
||
</span><span class="code-line"><span class="token keyword">if</span> <span class="token punctuation">(</span>condition1 <span class="token operator">&&</span> condition2<span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token comment">// 如果 condition1 和 condition2 都成立</span>
|
||
</span><span class="code-line"> <span class="token comment">// 则执行此处的代码</span>
|
||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"><span class="token comment">// 或运算</span>
|
||
</span><span class="code-line"><span class="token keyword">if</span> <span class="token punctuation">(</span>condition1 <span class="token operator">||</span> condition2<span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token comment">// 如果condition1或condition2任意一个成立</span>
|
||
</span><span class="code-line"> <span class="token comment">// 则执行此处的代码</span>
|
||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"><span class="token comment">// 非运算</span>
|
||
</span><span class="code-line"><span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token operator">!</span>condition<span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token comment">// 如果条件不成立,则执行此处的代码</span>
|
||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||
</span></code></pre>
|
||
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="比较运算"><a aria-hidden="true" tabindex="-1" href="#比较运算"><span class="icon icon-link"></span></a>比较运算</h3><div class="wrap-body">
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token comment">// 等于</span>
|
||
</span><span class="code-line"><span class="token keyword">if</span> <span class="token punctuation">(</span>a <span class="token operator">==</span> b<span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token comment">// 如果a等于b,则执行此处的代码</span>
|
||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"><span class="token comment">// 不等于</span>
|
||
</span><span class="code-line"><span class="token keyword">if</span> <span class="token punctuation">(</span>a <span class="token operator">!=</span> b<span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token comment">// 如果a不等于b,则执行此处的代码</span>
|
||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"><span class="token comment">// 大于、大于等于、小于、小于等于</span>
|
||
</span><span class="code-line"><span class="token keyword">if</span> <span class="token punctuation">(</span>a <span class="token operator">></span> b<span class="token punctuation">)</span> <span class="token punctuation">{</span><span class="token punctuation">}</span>
|
||
</span><span class="code-line"><span class="token keyword">if</span> <span class="token punctuation">(</span>a <span class="token operator">>=</span> b<span class="token punctuation">)</span> <span class="token punctuation">{</span><span class="token punctuation">}</span>
|
||
</span><span class="code-line"><span class="token keyword">if</span> <span class="token punctuation">(</span>a <span class="token operator"><</span> b<span class="token punctuation">)</span> <span class="token punctuation">{</span><span class="token punctuation">}</span>
|
||
</span><span class="code-line"><span class="token keyword">if</span> <span class="token punctuation">(</span>a <span class="token operator"><=</span> b<span class="token punctuation">)</span> <span class="token punctuation">{</span><span class="token punctuation">}</span>
|
||
</span></code></pre>
|
||
</div></div></div></div></div><div class="wrap h2body-exist"><div class="wrap-header h2wrap"><h2 id="java-循环"><a aria-hidden="true" tabindex="-1" href="#java-循环"><span class="icon icon-link"></span></a>Java 循环</h2><div class="wrap-body">
|
||
</div></div><div class="h2wrap-body"><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="for-循环"><a aria-hidden="true" tabindex="-1" href="#for-循环"><span class="icon icon-link"></span></a>For 循环</h3><div class="wrap-body">
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token keyword">for</span> <span class="token punctuation">(</span><span class="token keyword">int</span> i <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">;</span> i <span class="token operator"><</span> <span class="token number">10</span><span class="token punctuation">;</span> i<span class="token operator">++</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">print</span><span class="token punctuation">(</span>i<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||
</span><span class="code-line"><span class="token comment">// 输出: 0123456789</span>
|
||
</span></code></pre>
|
||
<hr>
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token keyword">for</span> <span class="token punctuation">(</span><span class="token keyword">int</span> i <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">,</span>j <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">;</span> i <span class="token operator"><</span> <span class="token number">3</span><span class="token punctuation">;</span> i<span class="token operator">++</span><span class="token punctuation">,</span>j<span class="token operator">--</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">print</span><span class="token punctuation">(</span>j <span class="token operator">+</span> <span class="token string">"|"</span> <span class="token operator">+</span> i <span class="token operator">+</span> <span class="token string">" "</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||
</span><span class="code-line"><span class="token comment">// 输出: 0|0 -1|1 -2|2</span>
|
||
</span></code></pre>
|
||
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="增强的-for-循环"><a aria-hidden="true" tabindex="-1" href="#增强的-for-循环"><span class="icon icon-link"></span></a>增强的 For 循环</h3><div class="wrap-body">
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token keyword">int</span><span class="token punctuation">[</span><span class="token punctuation">]</span> numbers <span class="token operator">=</span> <span class="token punctuation">{</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">2</span><span class="token punctuation">,</span><span class="token number">3</span><span class="token punctuation">,</span><span class="token number">4</span><span class="token punctuation">,</span><span class="token number">5</span><span class="token punctuation">}</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token keyword">for</span> <span class="token punctuation">(</span><span class="token keyword">int</span> number<span class="token operator">:</span> numbers<span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">print</span><span class="token punctuation">(</span>number<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||
</span><span class="code-line"><span class="token comment">// 输出: 12345</span>
|
||
</span></code></pre>
|
||
<p>用于循环数组或列表</p>
|
||
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="while-循环"><a aria-hidden="true" tabindex="-1" href="#while-循环"><span class="icon icon-link"></span></a>While 循环</h3><div class="wrap-body">
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token keyword">int</span> count <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token keyword">while</span> <span class="token punctuation">(</span>count <span class="token operator"><</span> <span class="token number">5</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">print</span><span class="token punctuation">(</span>count<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"> count<span class="token operator">++</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||
</span><span class="code-line"><span class="token comment">// 输出: 01234</span>
|
||
</span></code></pre>
|
||
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="do-while-循环"><a aria-hidden="true" tabindex="-1" href="#do-while-循环"><span class="icon icon-link"></span></a>Do While 循环</h3><div class="wrap-body">
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token keyword">int</span> count <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token keyword">do</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">print</span><span class="token punctuation">(</span>count<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"> count<span class="token operator">++</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token punctuation">}</span> <span class="token keyword">while</span> <span class="token punctuation">(</span>count <span class="token operator"><</span> <span class="token number">5</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token comment">// 输出: 01234</span>
|
||
</span></code></pre>
|
||
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="继续语句"><a aria-hidden="true" tabindex="-1" href="#继续语句"><span class="icon icon-link"></span></a>继续语句</h3><div class="wrap-body">
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token keyword">for</span> <span class="token punctuation">(</span><span class="token keyword">int</span> i <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">;</span> i <span class="token operator"><</span> <span class="token number">5</span><span class="token punctuation">;</span> i<span class="token operator">++</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token keyword">if</span> <span class="token punctuation">(</span>i <span class="token operator">==</span> <span class="token number">3</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token keyword">continue</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"> <span class="token punctuation">}</span>
|
||
</span><span class="code-line"> <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">print</span><span class="token punctuation">(</span>i<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||
</span><span class="code-line"><span class="token comment">// 输出: 0124</span>
|
||
</span></code></pre>
|
||
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="中断语句"><a aria-hidden="true" tabindex="-1" href="#中断语句"><span class="icon icon-link"></span></a>中断语句</h3><div class="wrap-body">
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token keyword">for</span> <span class="token punctuation">(</span><span class="token keyword">int</span> i <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">;</span> i <span class="token operator"><</span> <span class="token number">5</span><span class="token punctuation">;</span> i<span class="token operator">++</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">print</span><span class="token punctuation">(</span>i<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"> <span class="token keyword">if</span> <span class="token punctuation">(</span>i <span class="token operator">==</span> <span class="token number">3</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token keyword">break</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"> <span class="token punctuation">}</span>
|
||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||
</span><span class="code-line"><span class="token comment">// 输出: 0123</span>
|
||
</span></code></pre>
|
||
</div></div></div></div></div><div class="wrap h2body-exist"><div class="wrap-header h2wrap"><h2 id="java-面向对象"><a aria-hidden="true" tabindex="-1" href="#java-面向对象"><span class="icon icon-link"></span></a>Java 面向对象</h2><div class="wrap-body">
|
||
</div></div><div class="h2wrap-body"><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="类的定义"><a aria-hidden="true" tabindex="-1" href="#类的定义"><span class="icon icon-link"></span></a>类的定义</h3><div class="wrap-body">
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token keyword">public</span> <span class="token keyword">class</span> <span class="token class-name">Dog</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token keyword">private</span> <span class="token class-name">String</span> name<span class="token punctuation">;</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"> <span class="token comment">// 构造方法无无返回值,方法名与类名相同</span>
|
||
</span><span class="code-line"> <span class="token comment">// 一个类可以有多个构造方法</span>
|
||
</span><span class="code-line"> <span class="token comment">//Java 默认提供一个构造方法</span>
|
||
</span><span class="code-line"> <span class="token keyword">public</span> <span class="token class-name">Dog</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token punctuation">}</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"> <span class="token keyword">public</span> <span class="token class-name">Dog</span><span class="token punctuation">(</span><span class="token class-name">String</span> name<span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token keyword">this</span><span class="token punctuation">.</span>name <span class="token operator">=</span> name<span class="token punctuation">;</span>
|
||
</span><span class="code-line"> <span class="token punctuation">}</span>
|
||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||
</span></code></pre>
|
||
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="类中的变量"><a aria-hidden="true" tabindex="-1" href="#类中的变量"><span class="icon icon-link"></span></a>类中的变量</h3><div class="wrap-body">
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token keyword">public</span> <span class="token keyword">class</span> <span class="token class-name">Dog</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token comment">// 成员变量</span>
|
||
</span><span class="code-line"> <span class="token keyword">private</span> <span class="token class-name">String</span> name<span class="token punctuation">;</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"> <span class="token comment">// 类变量</span>
|
||
</span><span class="code-line"> <span class="token comment">// 多对象将会共享同一个类变量</span>
|
||
</span><span class="code-line"> <span class="token keyword">static</span> <span class="token keyword">int</span> val <span class="token operator">=</span> <span class="token number">10</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"> <span class="token keyword">public</span> <span class="token keyword">void</span> <span class="token class-name">Say</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token comment">// 局部变量</span>
|
||
</span><span class="code-line"> <span class="token class-name">String</span> sentence <span class="token operator">=</span> <span class="token string">"hello"</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"> <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>sentence<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"> <span class="token punctuation">}</span>
|
||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||
</span></code></pre>
|
||
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="对象的创建"><a aria-hidden="true" tabindex="-1" href="#对象的创建"><span class="icon icon-link"></span></a>对象的创建</h3><div class="wrap-body">
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token class-name">Dog</span> myDog <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Dog</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// 调用无参构造函数</span>
|
||
</span><span class="code-line"><span class="token class-name">Dog</span> myDog2 <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Dog</span><span class="token punctuation">(</span><span class="token string">"aaa"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// 调用对应参数列表的构造函数</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"><span class="token comment">// 调用方法</span>
|
||
</span><span class="code-line"><span class="token class-name"><span class="token namespace">myDog<span class="token punctuation">.</span></span>Say</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span></code></pre>
|
||
</div></div></div><div class="wrap h3body-exist"><div class="wrap-header h3wrap"><h3 id="对象的继承"><a aria-hidden="true" tabindex="-1" href="#对象的继承"><span class="icon icon-link"></span></a>对象的继承</h3><div class="wrap-body">
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token keyword">public</span> <span class="token class-name">Animal</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"> <span class="token keyword">public</span> <span class="token class-name">String</span> name<span class="token punctuation">;</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"> <span class="token keyword">public</span> <span class="token class-name">Animal</span><span class="token punctuation">(</span><span class="token class-name">String</span> name<span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token keyword">this</span><span class="token punctuation">.</span>name <span class="token operator">=</span> name<span class="token punctuation">;</span>
|
||
</span><span class="code-line"> <span class="token punctuation">}</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"> <span class="token keyword">public</span> <span class="token keyword">void</span> <span class="token function">eat</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token string">"eat something"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"> <span class="token punctuation">}</span>
|
||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"><span class="token comment">// Dog类继承Animal类</span>
|
||
</span><span class="code-line"><span class="token keyword">public</span> <span class="token class-name">Dog</span> <span class="token keyword">extends</span> <span class="token class-name">Animal</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token comment">// 调用父类的构造函数</span>
|
||
</span><span class="code-line"> <span class="token keyword">public</span> <span class="token class-name">Dog</span><span class="token punctuation">(</span><span class="token class-name">String</span> name<span class="token punctuation">)</span><span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token keyword">super</span><span class="token punctuation">(</span>name<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"> <span class="token punctuation">}</span>
|
||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||
</span></code></pre>
|
||
<p>请注意Java不支持多继承,只能够单继承,但支持多重继承
|
||
即,一个类最多只有一个父类,但可以有爷爷类和太爷爷类</p>
|
||
<h4 id="java继承的特点"><a aria-hidden="true" tabindex="-1" href="#java继承的特点"><span class="icon icon-link"></span></a>Java继承的特点</h4>
|
||
<ul>
|
||
<li>子类拥有父类的非private的属性、方法</li>
|
||
<li>子类可以有自己的属性、方法</li>
|
||
<li>子类可以重写父类的方法</li>
|
||
</ul>
|
||
<h4 id="super-与-this"><a aria-hidden="true" tabindex="-1" href="#super-与-this"><span class="icon icon-link"></span></a>super 与 this</h4>
|
||
<p>super引用当前类的父类
|
||
this引用自身</p>
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token keyword">class</span> <span class="token class-name">Animal</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token keyword">void</span> <span class="token function">eat</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token string">"animal : eat"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"> <span class="token punctuation">}</span>
|
||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"><span class="token keyword">class</span> <span class="token class-name">Dog</span> <span class="token keyword">extends</span> <span class="token class-name">Animal</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token keyword">void</span> <span class="token function">eat</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token string">"dog : eat"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"> <span class="token punctuation">}</span>
|
||
</span><span class="code-line"> <span class="token keyword">void</span> <span class="token function">eatTest</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token keyword">this</span><span class="token punctuation">.</span><span class="token function">eat</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// this 调用自己的方法</span>
|
||
</span><span class="code-line"> <span class="token keyword">super</span><span class="token punctuation">.</span><span class="token function">eat</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// super 调用父类方法</span>
|
||
</span><span class="code-line"> <span class="token punctuation">}</span>
|
||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||
</span></code></pre>
|
||
<h4 id="final-关键字"><a aria-hidden="true" tabindex="-1" href="#final-关键字"><span class="icon icon-link"></span></a>final 关键字</h4>
|
||
<p>被final 关键字修饰的类不能够被继承
|
||
被final 关键字修饰的方法不能被子类重写</p>
|
||
</div></div></div><div class="wrap h3body-exist"><div class="wrap-header h3wrap"><h3 id="java的重写override与重载overload"><a aria-hidden="true" tabindex="-1" href="#java的重写override与重载overload"><span class="icon icon-link"></span></a>Java的重写(Override)与重载(Overload)</h3><div class="wrap-body">
|
||
<h4 id="重写override"><a aria-hidden="true" tabindex="-1" href="#重写override"><span class="icon icon-link"></span></a>重写(Override)</h4>
|
||
<p>重写者位于被重写者的子类中
|
||
重写者的签名必须与被重写者的签名相同</p>
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token keyword">class</span> <span class="token class-name">Animal</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token comment">// 被重写者</span>
|
||
</span><span class="code-line"> <span class="token keyword">void</span> <span class="token class-name">Say</span><span class="token punctuation">(</span><span class="token class-name">String</span> sentence<span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token string">"Animal say: "</span> <span class="token operator">+</span> sentence<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"> <span class="token punctuation">}</span>
|
||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"><span class="token keyword">class</span> <span class="token class-name">Dog</span> <span class="token keyword">extends</span> <span class="token class-name">Animal</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token comment">// 重写者</span>
|
||
</span><span class="code-line"> <span class="token comment">// 重写者位于被重写者的子类</span>
|
||
</span><span class="code-line"> <span class="token keyword">void</span> <span class="token class-name">Say</span><span class="token punctuation">(</span><span class="token class-name">String</span> sentence<span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token comment">// 签名与被重写者相同</span>
|
||
</span><span class="code-line"> <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token string">"Dog say: "</span> <span class="token operator">+</span> sentence<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"> <span class="token punctuation">}</span>
|
||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||
</span></code></pre>
|
||
<h4 id="重载overload"><a aria-hidden="true" tabindex="-1" href="#重载overload"><span class="icon icon-link"></span></a>重载(Overload)</h4>
|
||
<p>重载位于同一类内部
|
||
签名必须不同</p>
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token keyword">public</span> <span class="token keyword">class</span> <span class="token class-name">Overloading</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token keyword">public</span> <span class="token keyword">int</span> <span class="token function">test</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token string">"test1"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"> <span class="token keyword">return</span> <span class="token number">1</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"> <span class="token punctuation">}</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"> <span class="token keyword">public</span> <span class="token keyword">void</span> <span class="token function">test</span><span class="token punctuation">(</span><span class="token keyword">int</span> a<span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token string">"test2"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"> <span class="token punctuation">}</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"> <span class="token comment">//以下两个参数类型顺序不同</span>
|
||
</span><span class="code-line"> <span class="token keyword">public</span> <span class="token class-name">String</span> <span class="token function">test</span><span class="token punctuation">(</span><span class="token keyword">int</span> a<span class="token punctuation">,</span><span class="token class-name">String</span> s<span class="token punctuation">)</span><span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token string">"test3"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"> <span class="token keyword">return</span> <span class="token string">"returntest3"</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"> <span class="token punctuation">}</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"> <span class="token keyword">public</span> <span class="token class-name">String</span> <span class="token function">test</span><span class="token punctuation">(</span><span class="token class-name">String</span> s<span class="token punctuation">,</span><span class="token keyword">int</span> a<span class="token punctuation">)</span><span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token string">"test4"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"> <span class="token keyword">return</span> <span class="token string">"returntest4"</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"> <span class="token punctuation">}</span>
|
||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||
</span></code></pre>
|
||
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="java-抽象类"><a aria-hidden="true" tabindex="-1" href="#java-抽象类"><span class="icon icon-link"></span></a>Java 抽象类</h3><div class="wrap-body">
|
||
<p>抽象类不能被实例化为对象,因此,抽象类必须被继承才能够使用
|
||
抽象类使用abstract 关键字进行修饰</p>
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token keyword">public</span> <span class="token keyword">abstract</span> <span class="token keyword">class</span> <span class="token class-name">Animal</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token class-name">String</span> name<span class="token punctuation">;</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"> <span class="token keyword">public</span> <span class="token class-name">Animal</span><span class="token punctuation">(</span><span class="token class-name">String</span> name<span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token keyword">this</span><span class="token punctuation">.</span>name <span class="token operator">=</span> name<span class="token punctuation">;</span>
|
||
</span><span class="code-line"> <span class="token punctuation">}</span>
|
||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"><span class="token keyword">public</span> <span class="token keyword">class</span> <span class="token class-name">Dog</span> <span class="token keyword">extends</span> <span class="token class-name">Animal</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token keyword">public</span> <span class="token class-name">Dog</span><span class="token punctuation">(</span><span class="token class-name">String</span> name<span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token keyword">super</span><span class="token punctuation">(</span>name<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"> <span class="token punctuation">}</span>
|
||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||
</span></code></pre>
|
||
<p>使用abstract 关键字修饰的方法是抽象方法
|
||
抽象方法必须包含在抽象类中
|
||
子类必须重写父类中的所有抽象方法,除非子类也是抽象类</p>
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token keyword">public</span> <span class="token keyword">abstract</span> <span class="token keyword">class</span> <span class="token class-name">Animal</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token class-name">String</span> name<span class="token punctuation">;</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"> <span class="token keyword">public</span> <span class="token class-name">Animal</span><span class="token punctuation">(</span><span class="token class-name">String</span> name<span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token keyword">this</span><span class="token punctuation">.</span>name <span class="token operator">=</span> name<span class="token punctuation">;</span>
|
||
</span><span class="code-line"> <span class="token punctuation">}</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"> <span class="token keyword">public</span> <span class="token keyword">abstract</span> <span class="token keyword">void</span> <span class="token class-name">Say</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"><span class="token keyword">public</span> <span class="token keyword">class</span> <span class="token class-name">Dog</span> <span class="token keyword">extends</span> <span class="token class-name">Animal</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token keyword">public</span> <span class="token class-name">Dog</span><span class="token punctuation">(</span><span class="token class-name">String</span> name<span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token keyword">super</span><span class="token punctuation">(</span>name<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"> <span class="token punctuation">}</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"> <span class="token keyword">public</span> <span class="token keyword">void</span> <span class="token class-name">Say</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token string">"Dog"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"> <span class="token punctuation">}</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||
</span></code></pre>
|
||
</div></div></div><div class="wrap h3body-exist"><div class="wrap-header h3wrap"><h3 id="java-接口"><a aria-hidden="true" tabindex="-1" href="#java-接口"><span class="icon icon-link"></span></a>Java 接口</h3><div class="wrap-body">
|
||
<h4 id="接口的定义"><a aria-hidden="true" tabindex="-1" href="#接口的定义"><span class="icon icon-link"></span></a>接口的定义</h4>
|
||
<p>与类的继承不同,接口可以继承多个接口</p>
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token punctuation">[</span>可见度<span class="token punctuation">]</span> <span class="token keyword">interface</span> 接口名称 <span class="token punctuation">[</span><span class="token keyword">extends</span> 其他的接口名<span class="token punctuation">]</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token comment">// 声明变量</span>
|
||
</span><span class="code-line"> <span class="token comment">// 抽象方法</span>
|
||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||
</span></code></pre>
|
||
<h4 id="接口的实现"><a aria-hidden="true" tabindex="-1" href="#接口的实现"><span class="icon icon-link"></span></a>接口的实现</h4>
|
||
<p>一个类可以实现多个接口
|
||
类必须实现接口的所有方法,除非该类是抽象类</p>
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token keyword">public</span> <span class="token keyword">interface</span> <span class="token class-name">Animal</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token keyword">public</span> <span class="token keyword">void</span> <span class="token function">eat</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"> <span class="token keyword">public</span> <span class="token keyword">void</span> <span class="token function">say</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"><span class="token keyword">public</span> <span class="token keyword">class</span> <span class="token class-name">Dog</span> <span class="token keyword">implements</span> <span class="token class-name">Animal</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token keyword">public</span> <span class="token keyword">void</span> <span class="token function">eat</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token string">"Dog eat something"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"> <span class="token punctuation">}</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"> <span class="token keyword">public</span> <span class="token keyword">void</span> <span class="token function">say</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token string">"Dog say something"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"> <span class="token punctuation">}</span>
|
||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||
</span></code></pre>
|
||
</div></div></div></div></div><div class="wrap h2body-exist"><div class="wrap-header h2wrap"><h2 id="java-多线程"><a aria-hidden="true" tabindex="-1" href="#java-多线程"><span class="icon icon-link"></span></a>Java 多线程</h2><div class="wrap-body">
|
||
</div></div><div class="h2wrap-body"><div class="wrap h3body-not-exist row-span-2 col-span-2"><div class="wrap-header h3wrap"><h3 id="创建线程"><a aria-hidden="true" tabindex="-1" href="#创建线程"><span class="icon icon-link"></span></a>创建线程</h3><div class="wrap-body">
|
||
<!--rehype:wrap-class=row-span-2 col-span-2-->
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token comment">// 实现Runnable接口</span>
|
||
</span><span class="code-line"><span class="token keyword">public</span> <span class="token keyword">class</span> <span class="token class-name">RunnableThread</span> <span class="token keyword">implements</span> <span class="token class-name">Runnable</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token annotation punctuation">@Override</span>
|
||
</span><span class="code-line"> <span class="token keyword">public</span> <span class="token keyword">void</span> <span class="token function">run</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token comment">// todo something</span>
|
||
</span><span class="code-line"> <span class="token punctuation">}</span>
|
||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||
</span></code></pre>
|
||
<p>实现Callable接口,T 替换成实际类型</p>
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token keyword">public</span> <span class="token keyword">class</span> <span class="token class-name">CallableTask</span> <span class="token keyword">implements</span> <span class="token class-name">Callable</span><span class="token generics"><span class="token punctuation"><</span><span class="token class-name">T</span><span class="token punctuation">></span></span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token annotation punctuation">@Override</span>
|
||
</span><span class="code-line"> <span class="token keyword">public</span> <span class="token class-name">T</span> <span class="token function">call</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token keyword">throws</span> <span class="token class-name">Exception</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token comment">// todo something</span>
|
||
</span><span class="code-line"> <span class="token keyword">return</span> <span class="token keyword">null</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"> <span class="token punctuation">}</span>
|
||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||
</span></code></pre>
|
||
<p>继承Thrad类</p>
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token keyword">public</span> <span class="token keyword">class</span> <span class="token class-name">ExtendsThread</span> <span class="token keyword">extends</span> <span class="token class-name">Thread</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token annotation punctuation">@Override</span>
|
||
</span><span class="code-line"> <span class="token keyword">public</span> <span class="token keyword">void</span> <span class="token function">run</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token comment">// todo something</span>
|
||
</span><span class="code-line"> <span class="token punctuation">}</span>
|
||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||
</span></code></pre>
|
||
<p>运行线程</p>
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token keyword">public</span> <span class="token keyword">static</span> <span class="token keyword">void</span> <span class="token function">main</span><span class="token punctuation">(</span><span class="token class-name">String</span><span class="token punctuation">[</span><span class="token punctuation">]</span> args<span class="token punctuation">)</span> <span class="token keyword">throws</span> <span class="token class-name">ExecutionException</span><span class="token punctuation">,</span> <span class="token class-name">InterruptedException</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token keyword">new</span> <span class="token class-name">Thread</span><span class="token punctuation">(</span><span class="token keyword">new</span> <span class="token class-name">RunnableThread</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">start</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"> <span class="token keyword">new</span> <span class="token class-name">ExtendsThread2</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">start</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"> <span class="token class-name">FutureTask</span><span class="token generics"><span class="token punctuation"><</span><span class="token class-name">Integer</span><span class="token punctuation">></span></span> integerFutureTask <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">FutureTask</span><span class="token generics"><span class="token punctuation"><</span><span class="token punctuation">></span></span><span class="token punctuation">(</span><span class="token keyword">new</span> <span class="token class-name">CallableTask</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"> integerFutureTask<span class="token punctuation">.</span><span class="token function">run</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||
</span><span class="code-line">
|
||
</span></code></pre>
|
||
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="线程池"><a aria-hidden="true" tabindex="-1" href="#线程池"><span class="icon icon-link"></span></a>线程池</h3><div class="wrap-body">
|
||
<ul>
|
||
<li>corePoolSize: 核心线程数</li>
|
||
<li>maximumPoolSize: 最大线程数</li>
|
||
<li>keepAliveTime: 线程空闲时间</li>
|
||
<li>timeUni: 线程空闲时间单位</li>
|
||
<li>workQueue: 线程等待队列</li>
|
||
<li>threadFactory: 线程创建工厂</li>
|
||
<li>handler: 拒绝策略</li>
|
||
</ul>
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token class-name">ThreadPoolExecutor</span> threadPoolExecutor
|
||
</span><span class="code-line"> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ThreadPoolExecutor</span><span class="token punctuation">(</span>
|
||
</span><span class="code-line"> <span class="token number">2</span><span class="token punctuation">,</span> <span class="token number">5</span><span class="token punctuation">,</span>
|
||
</span><span class="code-line"> <span class="token number">5</span><span class="token punctuation">,</span> <span class="token class-name">TimeUnit</span><span class="token punctuation">.</span><span class="token constant">SECONDS</span><span class="token punctuation">,</span>
|
||
</span><span class="code-line"> <span class="token keyword">new</span> <span class="token class-name">ArrayBlockingQueue</span><span class="token generics"><span class="token punctuation"><</span><span class="token punctuation">></span></span><span class="token punctuation">(</span><span class="token number">10</span><span class="token punctuation">)</span><span class="token punctuation">,</span>
|
||
</span><span class="code-line"> <span class="token keyword">new</span> <span class="token class-name">DefaultThreadFactory</span><span class="token punctuation">(</span><span class="token string">"pollName"</span><span class="token punctuation">)</span><span class="token punctuation">,</span>
|
||
</span><span class="code-line"> <span class="token keyword">new</span> <span class="token class-name">ThreadPoolExecutor<span class="token punctuation">.</span>CallerRunsPolicy</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||
</span><span class="code-line"><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"><span class="token comment">// 内置的线程池, 不推荐生产使用</span>
|
||
</span><span class="code-line"><span class="token class-name">Executors</span><span class="token punctuation">.</span><span class="token function">newCachedThreadPool</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token class-name">Executors</span><span class="token punctuation">.</span><span class="token function">newFixedThreadPool</span><span class="token punctuation">(</span><span class="token number">10</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token class-name">Executors</span><span class="token punctuation">.</span><span class="token function">newScheduledThreadPool</span><span class="token punctuation">(</span><span class="token number">10</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token class-name">Executors</span><span class="token punctuation">.</span><span class="token function">newSingleThreadExecutor</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span></code></pre>
|
||
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="synchronized"><a aria-hidden="true" tabindex="-1" href="#synchronized"><span class="icon icon-link"></span></a>synchronized</h3><div class="wrap-body">
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token comment">// 代码块</span>
|
||
</span><span class="code-line"><span class="token keyword">synchronized</span><span class="token punctuation">(</span>obj<span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span>
|
||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"><span class="token comment">// (静态)方法</span>
|
||
</span><span class="code-line"><span class="token keyword">public</span> <span class="token keyword">synchronized</span>
|
||
</span><span class="code-line"> <span class="token punctuation">(</span><span class="token keyword">static</span><span class="token punctuation">)</span> <span class="token keyword">void</span> <span class="token function">methodName</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span>
|
||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||
</span></code></pre>
|
||
</div></div></div><div class="wrap h3body-not-exist row-span-2 col-span-2"><div class="wrap-header h3wrap"><h3 id="线程编排"><a aria-hidden="true" tabindex="-1" href="#线程编排"><span class="icon icon-link"></span></a>线程编排</h3><div class="wrap-body">
|
||
<!--rehype:wrap-class=row-span-2 col-span-2-->
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token comment">// CountDownLatch</span>
|
||
</span><span class="code-line"><span class="token class-name">CountDownLatch</span> countDownLatch <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">CountDownLatch</span><span class="token punctuation">(</span><span class="token number">2</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token keyword">new</span> <span class="token class-name">Thread</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">-></span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token keyword">try</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span>
|
||
</span><span class="code-line"> <span class="token punctuation">}</span><span class="token keyword">finally</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> countDownLatch<span class="token punctuation">.</span><span class="token function">countDown</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"> <span class="token punctuation">}</span>
|
||
</span><span class="code-line"><span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">start</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line">countDownLatch<span class="token punctuation">.</span><span class="token function">await</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span></code></pre>
|
||
<p>CompletableFuture</p>
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token class-name">CompletableFuture</span><span class="token generics"><span class="token punctuation"><</span><span class="token class-name">Void</span><span class="token punctuation">></span></span> task1 <span class="token operator">=</span> <span class="token class-name">CompletableFuture</span><span class="token punctuation">.</span><span class="token function">runAsync</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">-></span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token class-name">CompletableFuture</span><span class="token generics"><span class="token punctuation"><</span><span class="token class-name">Void</span><span class="token punctuation">></span></span> task2 <span class="token operator">=</span> <span class="token class-name">CompletableFuture</span><span class="token punctuation">.</span><span class="token function">runAsync</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">-></span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token class-name">CompletableFuture</span><span class="token generics"><span class="token punctuation"><</span><span class="token class-name">Void</span><span class="token punctuation">></span></span> task3 <span class="token operator">=</span> <span class="token class-name">CompletableFuture</span><span class="token punctuation">.</span><span class="token function">runAsync</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">-></span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token class-name">CompletableFuture</span><span class="token punctuation">.</span><span class="token function">allOf</span><span class="token punctuation">(</span>task1<span class="token punctuation">,</span> task2<span class="token punctuation">,</span> task3<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span></code></pre>
|
||
<p>Semaphore</p>
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token class-name">Semaphore</span> semaphore <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Semaphore</span><span class="token punctuation">(</span><span class="token number">5</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token keyword">try</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> semaphore<span class="token punctuation">.</span><span class="token function">acquire</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token punctuation">}</span> <span class="token keyword">finally</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> semaphore<span class="token punctuation">.</span><span class="token function">release</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||
</span></code></pre>
|
||
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="threadlocal"><a aria-hidden="true" tabindex="-1" href="#threadlocal"><span class="icon icon-link"></span></a>ThreadLocal</h3><div class="wrap-body">
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token class-name">ThreadLocal</span><span class="token generics"><span class="token punctuation"><</span><span class="token class-name">Integer</span><span class="token punctuation">></span></span> threadLocal
|
||
</span><span class="code-line"> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ThreadLocal</span><span class="token generics"><span class="token punctuation"><</span><span class="token punctuation">></span></span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span></code></pre>
|
||
<p>使用完之后一定要记得 <code>remove</code>, 否则会内存泄露</p>
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line">threadLocal<span class="token punctuation">.</span><span class="token function">set</span><span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line">threadLocal<span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line">threadLocal<span class="token punctuation">.</span><span class="token function">remove</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span></code></pre>
|
||
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="线程等待与唤醒"><a aria-hidden="true" tabindex="-1" href="#线程等待与唤醒"><span class="icon icon-link"></span></a>线程等待与唤醒</h3><div class="wrap-body">
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token comment">// 需要synchronized修饰的代码块才能使用</span>
|
||
</span><span class="code-line"><span class="token function">wait</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token function">notify</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token function">notifyAll</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"><span class="token comment">// 使用lock的条件唤醒</span>
|
||
</span><span class="code-line"><span class="token class-name">ReentrantLock</span> lock <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ReentrantLock</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token class-name">Condition</span> condition<span class="token operator">=</span> lock<span class="token punctuation">.</span><span class="token function">newCondition</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line">lock<span class="token punctuation">.</span><span class="token function">lock</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token keyword">try</span><span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token comment">// 当前线程唤醒或等待</span>
|
||
</span><span class="code-line"> condition<span class="token punctuation">.</span><span class="token function">await</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"> condition<span class="token punctuation">.</span><span class="token function">signal</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"> condition<span class="token punctuation">.</span><span class="token function">signalAll</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token punctuation">}</span> <span class="token keyword">finally</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> lock<span class="token punctuation">.</span>unlock
|
||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"><span class="token comment">// LockSupport,可以先unpark,后续park不会阻塞线程</span>
|
||
</span><span class="code-line"><span class="token class-name">LockSupport</span><span class="token punctuation">.</span><span class="token function">park</span><span class="token punctuation">(</span>obj<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token class-name">LockSupport</span><span class="token punctuation">.</span><span class="token function">unpark</span><span class="token punctuation">(</span>thread<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span></code></pre>
|
||
</div></div></div></div></div><div class="wrap h2body-exist"><div class="wrap-header h2wrap"><h2 id="java-框架搜集"><a aria-hidden="true" tabindex="-1" href="#java-框架搜集"><span class="icon icon-link"></span></a>Java 框架搜集</h2><div class="wrap-body">
|
||
</div></div><div class="h2wrap-body"><div class="wrap h3body-not-exist col-span-2 row-span-2"><div class="wrap-header h3wrap"><h3 id="java-集合"><a aria-hidden="true" tabindex="-1" href="#java-集合"><span class="icon icon-link"></span></a>Java 集合</h3><div class="wrap-body">
|
||
<!--rehype:wrap-class=col-span-2 row-span-2-->
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<table class="show-header"><thead><tr><th align="left">集合</th><th align="left">Interface</th><th align="left">有序</th><th align="left">已排序</th><th align="left">线程安全</th><th align="left">复制</th><th align="left">Nullable</th></tr></thead><tbody><tr><td align="left"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html">ArrayList</a></td><td align="left">List</td><td align="left">Y</td><td align="left"><em>N</em></td><td align="left"><em>N</em></td><td align="left">Y</td><td align="left">Y</td></tr><tr><td align="left"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Vector.html">Vector</a></td><td align="left">List</td><td align="left">Y</td><td align="left"><em>N</em></td><td align="left">Y</td><td align="left">Y</td><td align="left">Y</td></tr><tr><td align="left"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/LinkedList.html">LinkedList</a></td><td align="left">List, Deque</td><td align="left">Y</td><td align="left"><em>N</em></td><td align="left"><em>N</em></td><td align="left">Y</td><td align="left">Y</td></tr><tr><td align="left"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CopyOnWriteArrayList.html">CopyOnWriteArrayList</a></td><td align="left">List</td><td align="left">Y</td><td align="left"><em>N</em></td><td align="left">Y</td><td align="left">Y</td><td align="left">Y</td></tr><tr><td align="left"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html">HashSet</a></td><td align="left">Set</td><td align="left"><em>N</em></td><td align="left"><em>N</em></td><td align="left"><em>N</em></td><td align="left"><em>N</em></td><td align="left">One <code>null</code></td></tr><tr><td align="left"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/LinkedHashSet.html">LinkedHashSet</a></td><td align="left">Set</td><td align="left">Y</td><td align="left"><em>N</em></td><td align="left"><em>N</em></td><td align="left"><em>N</em></td><td align="left">One <code>null</code></td></tr><tr><td align="left"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/TreeSet.html">TreeSet</a></td><td align="left">Set</td><td align="left">Y</td><td align="left">Y</td><td align="left"><em>N</em></td><td align="left"><em>N</em></td><td align="left"><em>N</em></td></tr><tr><td align="left"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CopyOnWriteArraySet.html">CopyOnWriteArraySet</a></td><td align="left">Set</td><td align="left">Y</td><td align="left"><em>N</em></td><td align="left">Y</td><td align="left"><em>N</em></td><td align="left">One <code>null</code></td></tr><tr><td align="left"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentSkipListSet.html">ConcurrentSkipListSet</a></td><td align="left">Set</td><td align="left">Y</td><td align="left">Y</td><td align="left">Y</td><td align="left"><em>N</em></td><td align="left"><em>N</em></td></tr><tr><td align="left"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html">HashMap</a></td><td align="left">Map</td><td align="left"><em>N</em></td><td align="left"><em>N</em></td><td align="left"><em>N</em></td><td align="left"><em>N (key)</em></td><td align="left">One <code>null</code> <em>(key)</em></td></tr><tr><td align="left"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Hashtable.html">HashTable</a></td><td align="left">Map</td><td align="left"><em>N</em></td><td align="left"><em>N</em></td><td align="left">Y</td><td align="left"><em>N (key)</em></td><td align="left"><em>N (key)</em></td></tr><tr><td align="left"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/LinkedHashMap.html">LinkedHashMap</a></td><td align="left">Map</td><td align="left">Y</td><td align="left"><em>N</em></td><td align="left"><em>N</em></td><td align="left"><em>N (key)</em></td><td align="left">One <code>null</code> <em>(key)</em></td></tr><tr><td align="left"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/TreeMap.html">TreeMap</a></td><td align="left">Map</td><td align="left">Y</td><td align="left">Y</td><td align="left"><em>N</em></td><td align="left"><em>N (key)</em></td><td align="left"><em>N (key)</em></td></tr><tr><td align="left"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentHashMap.html">ConcurrentHashMap</a></td><td align="left">Map</td><td align="left"><em>N</em></td><td align="left"><em>N</em></td><td align="left">Y</td><td align="left"><em>N (key)</em></td><td align="left"><em>N</em></td></tr><tr><td align="left"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentSkipListMap.html">ConcurrentSkipListMap</a></td><td align="left">Map</td><td align="left">Y</td><td align="left">Y</td><td align="left">Y</td><td align="left"><em>N (key)</em></td><td align="left"><em>N</em></td></tr><tr><td align="left"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayDeque.html">ArrayDeque</a></td><td align="left">Deque</td><td align="left">Y</td><td align="left"><em>N</em></td><td align="left"><em>N</em></td><td align="left">Y</td><td align="left"><em>N</em></td></tr><tr><td align="left"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/PriorityQueue.html">PriorityQueue</a></td><td align="left">Queue</td><td align="left">Y</td><td align="left"><em>N</em></td><td align="left"><em>N</em></td><td align="left">Y</td><td align="left"><em>N</em></td></tr><tr><td align="left"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentLinkedQueue.html">ConcurrentLinkedQueue</a></td><td align="left">Queue</td><td align="left">Y</td><td align="left"><em>N</em></td><td align="left">Y</td><td align="left">Y</td><td align="left"><em>N</em></td></tr><tr><td align="left"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentLinkedDeque.html">ConcurrentLinkedDeque</a></td><td align="left">Deque</td><td align="left">Y</td><td align="left"><em>N</em></td><td align="left">Y</td><td align="left">Y</td><td align="left"><em>N</em></td></tr><tr><td align="left"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ArrayBlockingQueue.html">ArrayBlockingQueue</a></td><td align="left">Queue</td><td align="left">Y</td><td align="left"><em>N</em></td><td align="left">Y</td><td align="left">Y</td><td align="left"><em>N</em></td></tr><tr><td align="left"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/LinkedBlockingDeque.html">LinkedBlockingDeque</a></td><td align="left">Deque</td><td align="left">Y</td><td align="left"><em>N</em></td><td align="left">Y</td><td align="left">Y</td><td align="left"><em>N</em></td></tr><tr><td align="left"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/PriorityBlockingQueue.html">PriorityBlockingQueue</a></td><td align="left">Queue</td><td align="left">Y</td><td align="left"><em>N</em></td><td align="left">Y</td><td align="left">Y</td><td align="left"><em>N</em></td></tr></tbody></table>
|
||
<!--rehype:className=show-header-->
|
||
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="arraylist"><a aria-hidden="true" tabindex="-1" href="#arraylist"><span class="icon icon-link"></span></a>ArrayList</h3><div class="wrap-body">
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token class-name">List</span><span class="token generics"><span class="token punctuation"><</span><span class="token class-name">Integer</span><span class="token punctuation">></span></span> nums <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ArrayList</span><span class="token generics"><span class="token punctuation"><</span><span class="token punctuation">></span></span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token comment">// 添加</span>
|
||
</span><span class="code-line">nums<span class="token punctuation">.</span><span class="token function">add</span><span class="token punctuation">(</span><span class="token number">2</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line">nums<span class="token punctuation">.</span><span class="token function">add</span><span class="token punctuation">(</span><span class="token number">5</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line">nums<span class="token punctuation">.</span><span class="token function">add</span><span class="token punctuation">(</span><span class="token number">8</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token comment">// 检索</span>
|
||
</span><span class="code-line"><span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>nums<span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token comment">// 为循环迭代编制索引</span>
|
||
</span><span class="code-line"><span class="token keyword">for</span> <span class="token punctuation">(</span><span class="token keyword">int</span> i <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">;</span> i <span class="token operator"><</span> nums<span class="token punctuation">.</span><span class="token function">size</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> i<span class="token operator">++</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>nums<span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span>i<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||
</span><span class="code-line">nums<span class="token punctuation">.</span><span class="token function">remove</span><span class="token punctuation">(</span>nums<span class="token punctuation">.</span><span class="token function">size</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">-</span> <span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line">nums<span class="token punctuation">.</span><span class="token function">remove</span><span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// 非常慢</span>
|
||
</span><span class="code-line"><span class="token keyword">for</span> <span class="token punctuation">(</span><span class="token class-name">Integer</span> value <span class="token operator">:</span> nums<span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>value<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||
</span><span class="code-line"><span class="token comment">// lambda 打印元素</span>
|
||
</span><span class="code-line">nums<span class="token punctuation">.</span><span class="token function">forEach</span><span class="token punctuation">(</span>
|
||
</span><span class="code-line"> e <span class="token operator">-></span> <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>e<span class="token punctuation">.</span><span class="token function">toString</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
|
||
</span><span class="code-line"><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span></code></pre>
|
||
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="hashmap"><a aria-hidden="true" tabindex="-1" href="#hashmap"><span class="icon icon-link"></span></a>HashMap</h3><div class="wrap-body">
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token class-name">Map</span><span class="token generics"><span class="token punctuation"><</span><span class="token class-name">Integer</span><span class="token punctuation">,</span> <span class="token class-name">String</span><span class="token punctuation">></span></span> m <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">HashMap</span><span class="token generics"><span class="token punctuation"><</span><span class="token punctuation">></span></span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line">m<span class="token punctuation">.</span><span class="token function">put</span><span class="token punctuation">(</span><span class="token number">5</span><span class="token punctuation">,</span> <span class="token string">"Five"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line">m<span class="token punctuation">.</span><span class="token function">put</span><span class="token punctuation">(</span><span class="token number">8</span><span class="token punctuation">,</span> <span class="token string">"Eight"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line">m<span class="token punctuation">.</span><span class="token function">put</span><span class="token punctuation">(</span><span class="token number">6</span><span class="token punctuation">,</span> <span class="token string">"Six"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line">m<span class="token punctuation">.</span><span class="token function">put</span><span class="token punctuation">(</span><span class="token number">4</span><span class="token punctuation">,</span> <span class="token string">"Four"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line">m<span class="token punctuation">.</span><span class="token function">put</span><span class="token punctuation">(</span><span class="token number">2</span><span class="token punctuation">,</span> <span class="token string">"Two"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token comment">// 检索</span>
|
||
</span><span class="code-line"><span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>m<span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span><span class="token number">6</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token comment">// Lambda forEach</span>
|
||
</span><span class="code-line">m<span class="token punctuation">.</span><span class="token function">forEach</span><span class="token punctuation">(</span><span class="token punctuation">(</span>key<span class="token punctuation">,</span> value<span class="token punctuation">)</span> <span class="token operator">-></span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token class-name">String</span> msg <span class="token operator">=</span> key <span class="token operator">+</span> <span class="token string">": "</span> <span class="token operator">+</span> value<span class="token punctuation">;</span>
|
||
</span><span class="code-line"> <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>msg<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span></code></pre>
|
||
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="concurrenthashmap"><a aria-hidden="true" tabindex="-1" href="#concurrenthashmap"><span class="icon icon-link"></span></a>ConcurrentHashMap</h3><div class="wrap-body">
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token class-name">ConcurrentHashMap</span><span class="token generics"><span class="token punctuation"><</span><span class="token class-name">Integer</span><span class="token punctuation">,</span> <span class="token class-name">String</span><span class="token punctuation">></span></span> m
|
||
</span><span class="code-line"> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ConcurrentHashMap</span><span class="token generics"><span class="token punctuation"><</span><span class="token punctuation">></span></span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line">m<span class="token punctuation">.</span><span class="token function">put</span><span class="token punctuation">(</span><span class="token number">100</span><span class="token punctuation">,</span> <span class="token string">"Hello"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line">m<span class="token punctuation">.</span><span class="token function">put</span><span class="token punctuation">(</span><span class="token number">101</span><span class="token punctuation">,</span> <span class="token string">"Geeks"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line">m<span class="token punctuation">.</span><span class="token function">put</span><span class="token punctuation">(</span><span class="token number">102</span><span class="token punctuation">,</span> <span class="token string">"Geeks"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token comment">// 移除</span>
|
||
</span><span class="code-line">m<span class="token punctuation">.</span><span class="token function">remove</span><span class="token punctuation">(</span><span class="token number">101</span><span class="token punctuation">,</span> <span class="token string">"Geeks"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"><span class="token comment">// 如果不存在,就添加,存在就不变更</span>
|
||
</span><span class="code-line">m<span class="token punctuation">.</span><span class="token function">putIfAbsent</span><span class="token punctuation">(</span><span class="token number">103</span><span class="token punctuation">,</span> <span class="token string">"Hello"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"><span class="token comment">// 替换</span>
|
||
</span><span class="code-line">m<span class="token punctuation">.</span><span class="token function">replace</span><span class="token punctuation">(</span><span class="token number">101</span><span class="token punctuation">,</span> <span class="token string">"Hello"</span><span class="token punctuation">,</span> <span class="token string">"For"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>m<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span></code></pre>
|
||
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="hashset"><a aria-hidden="true" tabindex="-1" href="#hashset"><span class="icon icon-link"></span></a>HashSet</h3><div class="wrap-body">
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token class-name">Set</span><span class="token generics"><span class="token punctuation"><</span><span class="token class-name">String</span><span class="token punctuation">></span></span> set <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">HashSet</span><span class="token generics"><span class="token punctuation"><</span><span class="token punctuation">></span></span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token keyword">if</span> <span class="token punctuation">(</span>set<span class="token punctuation">.</span><span class="token function">isEmpty</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token string">"Empty!"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||
</span><span class="code-line">set<span class="token punctuation">.</span><span class="token function">add</span><span class="token punctuation">(</span><span class="token string">"dog"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line">set<span class="token punctuation">.</span><span class="token function">add</span><span class="token punctuation">(</span><span class="token string">"cat"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line">set<span class="token punctuation">.</span><span class="token function">add</span><span class="token punctuation">(</span><span class="token string">"mouse"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line">set<span class="token punctuation">.</span><span class="token function">add</span><span class="token punctuation">(</span><span class="token string">"snake"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line">set<span class="token punctuation">.</span><span class="token function">add</span><span class="token punctuation">(</span><span class="token string">"bear"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token keyword">if</span> <span class="token punctuation">(</span>set<span class="token punctuation">.</span><span class="token function">contains</span><span class="token punctuation">(</span><span class="token string">"cat"</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token string">"Contains cat"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||
</span><span class="code-line">set<span class="token punctuation">.</span><span class="token function">remove</span><span class="token punctuation">(</span><span class="token string">"cat"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token keyword">for</span> <span class="token punctuation">(</span><span class="token class-name">String</span> element <span class="token operator">:</span> set<span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>element<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||
</span><span class="code-line">set<span class="token punctuation">.</span><span class="token function">forEach</span><span class="token punctuation">(</span>
|
||
</span><span class="code-line"> e <span class="token operator">-></span> <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>e<span class="token punctuation">.</span><span class="token function">toString</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
|
||
</span><span class="code-line"><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span></code></pre>
|
||
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="arraydeque"><a aria-hidden="true" tabindex="-1" href="#arraydeque"><span class="icon icon-link"></span></a>ArrayDeque</h3><div class="wrap-body">
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token class-name">Deque</span><span class="token generics"><span class="token punctuation"><</span><span class="token class-name">String</span><span class="token punctuation">></span></span> a <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ArrayDeque</span><span class="token generics"><span class="token punctuation"><</span><span class="token punctuation">></span></span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token comment">// 使用 add()</span>
|
||
</span><span class="code-line">a<span class="token punctuation">.</span><span class="token function">add</span><span class="token punctuation">(</span><span class="token string">"Dog"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token comment">// 使用 addFirst()</span>
|
||
</span><span class="code-line">a<span class="token punctuation">.</span><span class="token function">addFirst</span><span class="token punctuation">(</span><span class="token string">"Cat"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token comment">// 使用 addLast()</span>
|
||
</span><span class="code-line">a<span class="token punctuation">.</span><span class="token function">addLast</span><span class="token punctuation">(</span><span class="token string">"Horse"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token comment">// [Cat, Dog, Horse]</span>
|
||
</span><span class="code-line"><span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>a<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token comment">// 访问元素</span>
|
||
</span><span class="code-line"><span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>a<span class="token punctuation">.</span><span class="token function">peek</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token comment">// 移除元素</span>
|
||
</span><span class="code-line"><span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>a<span class="token punctuation">.</span><span class="token function">pop</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span></code></pre>
|
||
</div></div></div></div></div><div class="wrap h2body-exist"><div class="wrap-header h2wrap"><h2 id="java-io流"><a aria-hidden="true" tabindex="-1" href="#java-io流"><span class="icon icon-link"></span></a>Java I/O流</h2><div class="wrap-body">
|
||
</div></div><div class="h2wrap-body"><div class="wrap h3body-not-exist row-span-5"><div class="wrap-header h3wrap"><h3 id="常见的类和操作"><a aria-hidden="true" tabindex="-1" href="#常见的类和操作"><span class="icon icon-link"></span></a>常见的类和操作</h3><div class="wrap-body">
|
||
<!--rehype:wrap-class=row-span-5-->
|
||
<p>字节流</p>
|
||
<ul>
|
||
<li><code>InputStream</code> 字节输入流的抽象基类</li>
|
||
<li><code>FileInputStream</code> 从文件中读取字节的输入流</li>
|
||
<li><code>ByteArrayInputStream</code> 从字节数组中读取字节的输入流</li>
|
||
<li><code>OutputStream</code> 字节输出流的抽象基类</li>
|
||
<li><code>FileOutputStream</code> 向文件中写入字节的输出流</li>
|
||
<li><code>ByteArrayOutputStream</code> 将字节写入到字节数组的输出流</li>
|
||
</ul>
|
||
<p>字符流</p>
|
||
<ul>
|
||
<li><code>Reader</code> 字符输入流的抽象基类</li>
|
||
<li><code>FileReader</code> 从文件中读取字符的输入流</li>
|
||
<li><code>BufferedReader</code> 带缓冲区的字符输入流</li>
|
||
<li><code>InputStreamReader</code> 字节流到字符流的桥接器</li>
|
||
<li><code>Writer</code> 字符输出流的抽象基类</li>
|
||
<li><code>FileWriter</code> 向文件中写入字符的输出流</li>
|
||
<li><code>BufferedWriter</code> 带缓冲区的字符输出流</li>
|
||
<li><code>OutputStreamWriter</code> 字符流到字节流的桥接器</li>
|
||
</ul>
|
||
<p>对象流</p>
|
||
<ul>
|
||
<li><code>ObjectInputStream</code> 从输入流中读取Java对象的流</li>
|
||
<li><code>ObjectOutputStream</code> 将Java对象写入输出流的流</li>
|
||
</ul>
|
||
<p>缓冲流</p>
|
||
<ul>
|
||
<li><code>BufferedInputStream</code> 带缓冲区的字节输入流</li>
|
||
<li><code>BufferedOutputStream</code> 带缓冲区的字节输出流</li>
|
||
<li><code>BufferedReader</code> 带缓冲区的字符输入流</li>
|
||
<li><code>BufferedWriter</code> 带缓冲区的字符输出流</li>
|
||
</ul>
|
||
<p>数据流</p>
|
||
<ul>
|
||
<li><code>DataInputStream</code> 从输入流中读取基本数据类型的数据</li>
|
||
<li><code>DataOutputStream</code> 将基本数据类型数据写入输出流</li>
|
||
</ul>
|
||
<p>文件类</p>
|
||
<ul>
|
||
<li><code>File</code> 文件和目录路径名的抽象表示</li>
|
||
<li><code>FileReader</code> 从文件中读取字符的输入流</li>
|
||
<li><code>FileWriter</code> 向文件中写入字符的输出流</li>
|
||
</ul>
|
||
<p>输入输出异常处理</p>
|
||
<ul>
|
||
<li><code>IOException</code> Java I/O操作中的通用异常</li>
|
||
<li><code>FileNotFoundException</code> 当试图打开指定文件失败时抛出</li>
|
||
<li><code>EOFException</code> 在尝试读取流的末尾时抛出</li>
|
||
</ul>
|
||
<p>其他流</p>
|
||
<ul>
|
||
<li><code>PrintStream</code> 打印格式化表示的对象的输出流</li>
|
||
<li><code>PrintWriter</code> 格式化的文本输出流</li>
|
||
<li><code>RandomAccessFile</code> 随机访问文件的类,支持读取和写入操作</li>
|
||
</ul>
|
||
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="字节流"><a aria-hidden="true" tabindex="-1" href="#字节流"><span class="icon icon-link"></span></a>字节流</h3><div class="wrap-body">
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token comment">// 文件输入流</span>
|
||
</span><span class="code-line"><span class="token class-name">InputStream</span> inputStream
|
||
</span><span class="code-line"> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">FileInputStream</span><span class="token punctuation">(</span><span class="token string">"input.txt"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"><span class="token comment">// 文件输出流</span>
|
||
</span><span class="code-line"><span class="token class-name">OutputStream</span> outputStream
|
||
</span><span class="code-line"> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">FileOutputStream</span><span class="token punctuation">(</span><span class="token string">"output.txt"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"><span class="token comment">// 缓冲字节输入流</span>
|
||
</span><span class="code-line"><span class="token class-name">InputStream</span> bufferedInputStream
|
||
</span><span class="code-line"> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">BufferedInputStream</span><span class="token punctuation">(</span>inputStream<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"><span class="token comment">// 缓冲字节输出流</span>
|
||
</span><span class="code-line"><span class="token class-name">OutputStream</span> bufferedOutputStream
|
||
</span><span class="code-line"> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">BufferedOutputStream</span><span class="token punctuation">(</span>outputStream<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span></code></pre>
|
||
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="字符流"><a aria-hidden="true" tabindex="-1" href="#字符流"><span class="icon icon-link"></span></a>字符流</h3><div class="wrap-body">
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token comment">// 文件字符输入流</span>
|
||
</span><span class="code-line"><span class="token class-name">Reader</span> fileReader
|
||
</span><span class="code-line"> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">FileReader</span><span class="token punctuation">(</span><span class="token string">"input.txt"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"><span class="token comment">// 文件字符输出流</span>
|
||
</span><span class="code-line"><span class="token class-name">Writer</span> fileWriter
|
||
</span><span class="code-line"> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">FileWriter</span><span class="token punctuation">(</span><span class="token string">"output.txt"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"><span class="token comment">// 缓冲字符输入流</span>
|
||
</span><span class="code-line"><span class="token class-name">Reader</span> bufferedFileReader
|
||
</span><span class="code-line"> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">BufferedReader</span><span class="token punctuation">(</span>
|
||
</span><span class="code-line"> <span class="token keyword">new</span> <span class="token class-name">FileReader</span><span class="token punctuation">(</span><span class="token string">"input.txt"</span><span class="token punctuation">)</span>
|
||
</span><span class="code-line"> <span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"><span class="token comment">// 缓冲字符输出流</span>
|
||
</span><span class="code-line"><span class="token class-name">Writer</span> bufferedFileWriter
|
||
</span><span class="code-line"> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">BufferedWriter</span><span class="token punctuation">(</span>
|
||
</span><span class="code-line"> <span class="token keyword">new</span> <span class="token class-name">FileWriter</span><span class="token punctuation">(</span><span class="token string">"output.txt"</span><span class="token punctuation">)</span>
|
||
</span><span class="code-line"> <span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span></code></pre>
|
||
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="数据流"><a aria-hidden="true" tabindex="-1" href="#数据流"><span class="icon icon-link"></span></a>数据流</h3><div class="wrap-body">
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token comment">// 数据输入流</span>
|
||
</span><span class="code-line"><span class="token class-name">DataInputStream</span> dataInputStream
|
||
</span><span class="code-line"> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">DataInputStream</span><span class="token punctuation">(</span>inputStream<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"><span class="token comment">// 数据输出流</span>
|
||
</span><span class="code-line"><span class="token class-name">DataOutputStream</span> dataOutputStream
|
||
</span><span class="code-line"> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">DataOutputStream</span><span class="token punctuation">(</span>outputStream<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span></code></pre>
|
||
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="对象流"><a aria-hidden="true" tabindex="-1" href="#对象流"><span class="icon icon-link"></span></a>对象流</h3><div class="wrap-body">
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token comment">// 对象输入流</span>
|
||
</span><span class="code-line"><span class="token class-name">ObjectInputStream</span> objectInputStream
|
||
</span><span class="code-line"> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ObjectInputStream</span><span class="token punctuation">(</span>inputStream<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"><span class="token comment">// 对象输出流</span>
|
||
</span><span class="code-line"><span class="token class-name">ObjectOutputStream</span> objectOutputStream
|
||
</span><span class="code-line"> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ObjectOutputStream</span><span class="token punctuation">(</span>outputStream<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span></code></pre>
|
||
</div></div></div><div class="wrap h3body-not-exist col-span-2"><div class="wrap-header h3wrap"><h3 id="序列化与反序列化"><a aria-hidden="true" tabindex="-1" href="#序列化与反序列化"><span class="icon icon-link"></span></a>序列化与反序列化</h3><div class="wrap-body">
|
||
<!--rehype:wrap-class=col-span-2-->
|
||
<p>序列化对象到文件</p>
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token keyword">try</span> <span class="token punctuation">(</span>
|
||
</span><span class="code-line"> <span class="token class-name">ObjectOutputStream</span> objectOutputStream
|
||
</span><span class="code-line"> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ObjectOutputStream</span><span class="token punctuation">(</span><span class="token keyword">new</span> <span class="token class-name">FileOutputStream</span><span class="token punctuation">(</span><span class="token string">"object.dat"</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
|
||
</span><span class="code-line"><span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> objectOutputStream<span class="token punctuation">.</span><span class="token function">writeObject</span><span class="token punctuation">(</span>object<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||
</span></code></pre>
|
||
<p>从文件反序列化对象</p>
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token keyword">try</span> <span class="token punctuation">(</span>
|
||
</span><span class="code-line"> <span class="token class-name">ObjectInputStream</span> objectInputStream
|
||
</span><span class="code-line"> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ObjectInputStream</span><span class="token punctuation">(</span><span class="token keyword">new</span> <span class="token class-name">FileInputStream</span><span class="token punctuation">(</span><span class="token string">"object.dat"</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
|
||
</span><span class="code-line"><span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token class-name">Object</span> object <span class="token operator">=</span> objectInputStream<span class="token punctuation">.</span><span class="token function">readObject</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||
</span></code></pre>
|
||
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="标准输入输出流"><a aria-hidden="true" tabindex="-1" href="#标准输入输出流"><span class="icon icon-link"></span></a>标准输入输出流</h3><div class="wrap-body">
|
||
<p>标准输入流</p>
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token class-name">InputStream</span> standardInputStream
|
||
</span><span class="code-line"> <span class="token operator">=</span> <span class="token class-name">System</span><span class="token punctuation">.</span>in<span class="token punctuation">;</span>
|
||
</span></code></pre>
|
||
<p>标准输出流</p>
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token class-name">PrintStream</span> standardOutputStream
|
||
</span><span class="code-line"> <span class="token operator">=</span> <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">;</span>
|
||
</span></code></pre>
|
||
</div></div></div><div class="wrap h3body-not-exist row-span-2"><div class="wrap-header h3wrap"><h3 id="基本操作"><a aria-hidden="true" tabindex="-1" href="#基本操作"><span class="icon icon-link"></span></a>基本操作</h3><div class="wrap-body">
|
||
<!--rehype:wrap-class=row-span-2-->
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token comment">// 读取字节数据</span>
|
||
</span><span class="code-line"><span class="token keyword">int</span> byteData <span class="token operator">=</span> inputStream<span class="token punctuation">.</span><span class="token function">read</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"><span class="token comment">// 写入字节数据</span>
|
||
</span><span class="code-line">outputStream<span class="token punctuation">.</span><span class="token function">write</span><span class="token punctuation">(</span>byteData<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"><span class="token comment">// 读取字符数据</span>
|
||
</span><span class="code-line"><span class="token keyword">int</span> charData <span class="token operator">=</span> reader<span class="token punctuation">.</span><span class="token function">read</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"><span class="token comment">// 写入字符数据</span>
|
||
</span><span class="code-line">writer<span class="token punctuation">.</span><span class="token function">write</span><span class="token punctuation">(</span>charData<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span></code></pre>
|
||
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="关闭流"><a aria-hidden="true" tabindex="-1" href="#关闭流"><span class="icon icon-link"></span></a>关闭流</h3><div class="wrap-body">
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token comment">// 关闭输入流</span>
|
||
</span><span class="code-line">inputStream<span class="token punctuation">.</span><span class="token function">close</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"><span class="token comment">// 关闭输出流</span>
|
||
</span><span class="code-line">outputStream<span class="token punctuation">.</span><span class="token function">close</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span></code></pre>
|
||
</div></div></div></div></div><div class="wrap h2body-exist"><div class="wrap-header h2wrap"><h2 id="java-stream-流"><a aria-hidden="true" tabindex="-1" href="#java-stream-流"><span class="icon icon-link"></span></a>Java Stream 流</h2><div class="wrap-body">
|
||
<!--rehype:body-class=cols-2-->
|
||
</div></div><div class="h2wrap-body cols-2"><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="创建流"><a aria-hidden="true" tabindex="-1" href="#创建流"><span class="icon icon-link"></span></a>创建流</h3><div class="wrap-body">
|
||
<p>从集合创建流</p>
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token class-name">List</span><span class="token generics"><span class="token punctuation"><</span><span class="token class-name">String</span><span class="token punctuation">></span></span> list <span class="token operator">=</span> <span class="token class-name">Arrays</span><span class="token punctuation">.</span><span class="token function">asList</span><span class="token punctuation">(</span><span class="token string">"a"</span><span class="token punctuation">,</span> <span class="token string">"b"</span><span class="token punctuation">,</span> <span class="token string">"c"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token class-name">Stream</span><span class="token generics"><span class="token punctuation"><</span><span class="token class-name">String</span><span class="token punctuation">></span></span> streamFromList <span class="token operator">=</span> list<span class="token punctuation">.</span><span class="token function">stream</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span></code></pre>
|
||
<p>从数组创建流</p>
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token class-name">String</span><span class="token punctuation">[</span><span class="token punctuation">]</span> array <span class="token operator">=</span> <span class="token punctuation">{</span><span class="token string">"d"</span><span class="token punctuation">,</span> <span class="token string">"e"</span><span class="token punctuation">,</span> <span class="token string">"f"</span><span class="token punctuation">}</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token class-name">Stream</span><span class="token generics"><span class="token punctuation"><</span><span class="token class-name">String</span><span class="token punctuation">></span></span> streamFromArray <span class="token operator">=</span> <span class="token class-name">Arrays</span><span class="token punctuation">.</span><span class="token function">stream</span><span class="token punctuation">(</span>array<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span></code></pre>
|
||
<p>创建空流</p>
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token class-name">Stream</span><span class="token generics"><span class="token punctuation"><</span><span class="token class-name">String</span><span class="token punctuation">></span></span> emptyStream <span class="token operator">=</span> <span class="token class-name">Stream</span><span class="token punctuation">.</span><span class="token function">empty</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span></code></pre>
|
||
<p>创建无限流</p>
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token class-name">Stream</span><span class="token generics"><span class="token punctuation"><</span><span class="token class-name">Integer</span><span class="token punctuation">></span></span> infiniteStream <span class="token operator">=</span> <span class="token class-name">Stream</span><span class="token punctuation">.</span><span class="token function">iterate</span><span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">,</span> n <span class="token operator">-></span> n <span class="token operator">+</span> <span class="token number">2</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span></code></pre>
|
||
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="中间操作"><a aria-hidden="true" tabindex="-1" href="#中间操作"><span class="icon icon-link"></span></a>中间操作</h3><div class="wrap-body">
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token comment">// 过滤</span>
|
||
</span><span class="code-line"><span class="token class-name">Stream</span><span class="token generics"><span class="token punctuation"><</span><span class="token class-name">String</span><span class="token punctuation">></span></span> filteredStream <span class="token operator">=</span> list<span class="token punctuation">.</span><span class="token function">stream</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">filter</span><span class="token punctuation">(</span>
|
||
</span><span class="code-line"> s <span class="token operator">-></span> s<span class="token punctuation">.</span><span class="token function">startsWith</span><span class="token punctuation">(</span><span class="token string">"a"</span><span class="token punctuation">)</span>
|
||
</span><span class="code-line"><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"><span class="token comment">// 映射</span>
|
||
</span><span class="code-line"><span class="token class-name">Stream</span><span class="token generics"><span class="token punctuation"><</span><span class="token class-name">Integer</span><span class="token punctuation">></span></span> mappedStream <span class="token operator">=</span> list<span class="token punctuation">.</span><span class="token function">stream</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">map</span><span class="token punctuation">(</span><span class="token class-name">String</span><span class="token operator">::</span><span class="token function">length</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"><span class="token comment">// 排序</span>
|
||
</span><span class="code-line"><span class="token class-name">Stream</span><span class="token generics"><span class="token punctuation"><</span><span class="token class-name">String</span><span class="token punctuation">></span></span> sortedStream <span class="token operator">=</span> list<span class="token punctuation">.</span><span class="token function">stream</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">sorted</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"><span class="token comment">// 去重</span>
|
||
</span><span class="code-line"><span class="token class-name">Stream</span><span class="token generics"><span class="token punctuation"><</span><span class="token class-name">String</span><span class="token punctuation">></span></span> distinctStream <span class="token operator">=</span> list<span class="token punctuation">.</span><span class="token function">stream</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">distinct</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"><span class="token comment">// 截断</span>
|
||
</span><span class="code-line"><span class="token class-name">Stream</span><span class="token generics"><span class="token punctuation"><</span><span class="token class-name">String</span><span class="token punctuation">></span></span> limitedStream <span class="token operator">=</span> list<span class="token punctuation">.</span><span class="token function">stream</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">limit</span><span class="token punctuation">(</span><span class="token number">2</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"><span class="token comment">// 跳过</span>
|
||
</span><span class="code-line"><span class="token class-name">Stream</span><span class="token generics"><span class="token punctuation"><</span><span class="token class-name">String</span><span class="token punctuation">></span></span> skippedStream <span class="token operator">=</span> list<span class="token punctuation">.</span><span class="token function">stream</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">skip</span><span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span></code></pre>
|
||
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="终端操作"><a aria-hidden="true" tabindex="-1" href="#终端操作"><span class="icon icon-link"></span></a>终端操作</h3><div class="wrap-body">
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token comment">// 聚合操作</span>
|
||
</span><span class="code-line"><span class="token class-name">Optional</span><span class="token generics"><span class="token punctuation"><</span><span class="token class-name">String</span><span class="token punctuation">></span></span> anyElement <span class="token operator">=</span> list<span class="token punctuation">.</span><span class="token function">stream</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">findAny</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token class-name">Optional</span><span class="token generics"><span class="token punctuation"><</span><span class="token class-name">String</span><span class="token punctuation">></span></span> firstElement <span class="token operator">=</span> list<span class="token punctuation">.</span><span class="token function">stream</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">findFirst</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token keyword">long</span> count <span class="token operator">=</span> list<span class="token punctuation">.</span><span class="token function">stream</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">count</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token class-name">Optional</span><span class="token generics"><span class="token punctuation"><</span><span class="token class-name">String</span><span class="token punctuation">></span></span> maxElement <span class="token operator">=</span> list<span class="token punctuation">.</span><span class="token function">stream</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||
</span><span class="code-line"> <span class="token punctuation">.</span><span class="token function">max</span><span class="token punctuation">(</span><span class="token class-name">Comparator</span><span class="token punctuation">.</span><span class="token function">naturalOrder</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token class-name">Optional</span><span class="token generics"><span class="token punctuation"><</span><span class="token class-name">String</span><span class="token punctuation">></span></span> minElement <span class="token operator">=</span> list<span class="token punctuation">.</span><span class="token function">stream</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||
</span><span class="code-line"> <span class="token punctuation">.</span><span class="token function">min</span><span class="token punctuation">(</span><span class="token class-name">Comparator</span><span class="token punctuation">.</span><span class="token function">naturalOrder</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"><span class="token comment">// 检查匹配</span>
|
||
</span><span class="code-line"><span class="token keyword">boolean</span> anyMatch <span class="token operator">=</span> list<span class="token punctuation">.</span><span class="token function">stream</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">anyMatch</span><span class="token punctuation">(</span>s <span class="token operator">-></span> s<span class="token punctuation">.</span><span class="token function">contains</span><span class="token punctuation">(</span><span class="token string">"a"</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token keyword">boolean</span> allMatch <span class="token operator">=</span> list<span class="token punctuation">.</span><span class="token function">stream</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">allMatch</span><span class="token punctuation">(</span>s <span class="token operator">-></span> s<span class="token punctuation">.</span><span class="token function">length</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">==</span> <span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token keyword">boolean</span> noneMatch <span class="token operator">=</span> list<span class="token punctuation">.</span><span class="token function">stream</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">noneMatch</span><span class="token punctuation">(</span>s <span class="token operator">-></span> s<span class="token punctuation">.</span><span class="token function">contains</span><span class="token punctuation">(</span><span class="token string">"z"</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"><span class="token comment">// 归约</span>
|
||
</span><span class="code-line"><span class="token class-name">Optional</span><span class="token generics"><span class="token punctuation"><</span><span class="token class-name">String</span><span class="token punctuation">></span></span> reducedString <span class="token operator">=</span> list<span class="token punctuation">.</span><span class="token function">stream</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||
</span><span class="code-line"> <span class="token punctuation">.</span><span class="token function">reduce</span><span class="token punctuation">(</span><span class="token punctuation">(</span>s1<span class="token punctuation">,</span> s2<span class="token punctuation">)</span> <span class="token operator">-></span> s1 <span class="token operator">+</span> s2<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token class-name">String</span> reducedStringWithIdentity <span class="token operator">=</span> list<span class="token punctuation">.</span><span class="token function">stream</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||
</span><span class="code-line"> <span class="token punctuation">.</span><span class="token function">reduce</span><span class="token punctuation">(</span><span class="token string">"Start:"</span><span class="token punctuation">,</span> <span class="token punctuation">(</span>s1<span class="token punctuation">,</span> s2<span class="token punctuation">)</span> <span class="token operator">-></span> s1 <span class="token operator">+</span> s2<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"><span class="token comment">// 收集</span>
|
||
</span><span class="code-line"><span class="token class-name">List</span><span class="token generics"><span class="token punctuation"><</span><span class="token class-name">String</span><span class="token punctuation">></span></span> collectedList <span class="token operator">=</span> list<span class="token punctuation">.</span><span class="token function">stream</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||
</span><span class="code-line"> <span class="token punctuation">.</span><span class="token function">collect</span><span class="token punctuation">(</span><span class="token class-name">Collectors</span><span class="token punctuation">.</span><span class="token function">toList</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token class-name">Set</span><span class="token generics"><span class="token punctuation"><</span><span class="token class-name">String</span><span class="token punctuation">></span></span> collectedSet <span class="token operator">=</span> list<span class="token punctuation">.</span><span class="token function">stream</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||
</span><span class="code-line"> <span class="token punctuation">.</span><span class="token function">collect</span><span class="token punctuation">(</span><span class="token class-name">Collectors</span><span class="token punctuation">.</span><span class="token function">toSet</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token class-name">Map</span><span class="token generics"><span class="token punctuation"><</span><span class="token class-name">Integer</span><span class="token punctuation">,</span> <span class="token class-name">String</span><span class="token punctuation">></span></span> collectedMap <span class="token operator">=</span> list<span class="token punctuation">.</span><span class="token function">stream</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||
</span><span class="code-line"> <span class="token punctuation">.</span><span class="token function">collect</span><span class="token punctuation">(</span>
|
||
</span><span class="code-line"> <span class="token class-name">Collectors</span><span class="token punctuation">.</span><span class="token function">toMap</span><span class="token punctuation">(</span><span class="token class-name">String</span><span class="token operator">::</span><span class="token function">length</span><span class="token punctuation">,</span> <span class="token class-name">Function</span><span class="token punctuation">.</span><span class="token function">identity</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
|
||
</span><span class="code-line"> <span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span></code></pre>
|
||
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="并行流"><a aria-hidden="true" tabindex="-1" href="#并行流"><span class="icon icon-link"></span></a>并行流</h3><div class="wrap-body">
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token class-name">List</span><span class="token generics"><span class="token punctuation"><</span><span class="token class-name">String</span><span class="token punctuation">></span></span> list <span class="token operator">=</span> <span class="token class-name">Arrays</span><span class="token punctuation">.</span><span class="token function">asList</span><span class="token punctuation">(</span><span class="token string">"a"</span><span class="token punctuation">,</span> <span class="token string">"b"</span><span class="token punctuation">,</span> <span class="token string">"c"</span><span class="token punctuation">,</span> <span class="token string">"d"</span><span class="token punctuation">,</span> <span class="token string">"e"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token class-name">List</span><span class="token generics"><span class="token punctuation"><</span><span class="token class-name">String</span><span class="token punctuation">></span></span> upperCaseList <span class="token operator">=</span> list<span class="token punctuation">.</span><span class="token function">parallelStream</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||
</span><span class="code-line"> <span class="token punctuation">.</span><span class="token function">map</span><span class="token punctuation">(</span><span class="token class-name">String</span><span class="token operator">::</span><span class="token function">toUpperCase</span><span class="token punctuation">)</span>
|
||
</span><span class="code-line"> <span class="token punctuation">.</span><span class="token function">collect</span><span class="token punctuation">(</span><span class="token class-name">Collectors</span><span class="token punctuation">.</span><span class="token function">toList</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span></code></pre>
|
||
</div></div></div></div></div><div class="wrap h2body-exist"><div class="wrap-header h2wrap"><h2 id="反射"><a aria-hidden="true" tabindex="-1" href="#反射"><span class="icon icon-link"></span></a>反射</h2><div class="wrap-body">
|
||
<p>这些是使用 Java 反射时常见的操作。使用反射需要注意性能和安全性问题,尽量避免在性能要求高的地方过度使用。</p>
|
||
</div></div><div class="h2wrap-body"><div class="wrap h3body-not-exist col-span-2"><div class="wrap-header h3wrap"><h3 id="获取-class-对象"><a aria-hidden="true" tabindex="-1" href="#获取-class-对象"><span class="icon icon-link"></span></a>获取 Class 对象</h3><div class="wrap-body">
|
||
<!--rehype:wrap-class=col-span-2-->
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token comment">// 通过类名获取Class对象</span>
|
||
</span><span class="code-line"><span class="token class-name">Class</span><span class="token generics"><span class="token punctuation"><</span><span class="token operator">?</span><span class="token punctuation">></span></span> clazz1 <span class="token operator">=</span> <span class="token class-name">MyClass</span><span class="token punctuation">.</span><span class="token keyword">class</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"><span class="token comment">// 通过对象获取Class对象</span>
|
||
</span><span class="code-line"><span class="token class-name">MyClass</span> obj <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">MyClass</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token class-name">Class</span><span class="token generics"><span class="token punctuation"><</span><span class="token operator">?</span><span class="token punctuation">></span></span> clazz2 <span class="token operator">=</span> obj<span class="token punctuation">.</span><span class="token function">getClass</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"><span class="token comment">// 通过完整类名字符串获取Class对象</span>
|
||
</span><span class="code-line"><span class="token class-name">Class</span><span class="token generics"><span class="token punctuation"><</span><span class="token operator">?</span><span class="token punctuation">></span></span> clazz3 <span class="token operator">=</span> <span class="token class-name">Class</span><span class="token punctuation">.</span><span class="token function">forName</span><span class="token punctuation">(</span><span class="token string">"com.example.MyClass"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span></code></pre>
|
||
</div></div></div><div class="wrap h3body-not-exist row-span-2"><div class="wrap-header h3wrap"><h3 id="获取类的信息"><a aria-hidden="true" tabindex="-1" href="#获取类的信息"><span class="icon icon-link"></span></a>获取类的信息</h3><div class="wrap-body">
|
||
<!--rehype:wrap-class=row-span-2-->
|
||
<p>获取类的名称</p>
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token class-name">String</span> className <span class="token operator">=</span> clazz<span class="token punctuation">.</span><span class="token function">getName</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span></code></pre>
|
||
<p>获取类的修饰符</p>
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token keyword">int</span> modifiers <span class="token operator">=</span> clazz<span class="token punctuation">.</span><span class="token function">getModifiers</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span></code></pre>
|
||
<p>获取类的包信息</p>
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token class-name">Package</span> pkg <span class="token operator">=</span> clazz<span class="token punctuation">.</span><span class="token function">getPackage</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span></code></pre>
|
||
<p>获取类的父类</p>
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token class-name">Class</span><span class="token generics"><span class="token punctuation"><</span><span class="token operator">?</span><span class="token punctuation">></span></span> superClass <span class="token operator">=</span> clazz<span class="token punctuation">.</span><span class="token function">getSuperclass</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span></code></pre>
|
||
<p>获取类实现的接口</p>
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token class-name">Class</span><span class="token generics"><span class="token punctuation"><</span><span class="token operator">?</span><span class="token punctuation">></span></span><span class="token punctuation">[</span><span class="token punctuation">]</span> interfaces <span class="token operator">=</span> clazz<span class="token punctuation">.</span><span class="token function">getInterfaces</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span></code></pre>
|
||
</div></div></div><div class="wrap h3body-not-exist col-span-2"><div class="wrap-header h3wrap"><h3 id="创建对象实例"><a aria-hidden="true" tabindex="-1" href="#创建对象实例"><span class="icon icon-link"></span></a>创建对象实例</h3><div class="wrap-body">
|
||
<!--rehype:wrap-class=col-span-2-->
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token comment">// 使用默认构造函数创建对象</span>
|
||
</span><span class="code-line"><span class="token class-name">MyClass</span> instance <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token class-name">MyClass</span><span class="token punctuation">)</span> clazz<span class="token punctuation">.</span><span class="token function">newInstance</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"><span class="token comment">// 使用带参数的构造函数创建对象</span>
|
||
</span><span class="code-line"><span class="token class-name">Constructor</span><span class="token generics"><span class="token punctuation"><</span><span class="token operator">?</span><span class="token punctuation">></span></span> constructor <span class="token operator">=</span> clazz<span class="token punctuation">.</span><span class="token function">getConstructor</span><span class="token punctuation">(</span><span class="token class-name">String</span><span class="token punctuation">.</span><span class="token keyword">class</span><span class="token punctuation">,</span> <span class="token keyword">int</span><span class="token punctuation">.</span><span class="token keyword">class</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token class-name">MyClass</span> instanceWithArgs <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token class-name">MyClass</span><span class="token punctuation">)</span> constructor<span class="token punctuation">.</span><span class="token function">newInstance</span><span class="token punctuation">(</span><span class="token string">"example"</span><span class="token punctuation">,</span> <span class="token number">123</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span></code></pre>
|
||
</div></div></div><div class="wrap h3body-not-exist col-span-2"><div class="wrap-header h3wrap"><h3 id="获取和设置字段值"><a aria-hidden="true" tabindex="-1" href="#获取和设置字段值"><span class="icon icon-link"></span></a>获取和设置字段值</h3><div class="wrap-body">
|
||
<!--rehype:wrap-class=col-span-2-->
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token comment">// 获取字段值</span>
|
||
</span><span class="code-line"><span class="token class-name">Field</span> field <span class="token operator">=</span> clazz<span class="token punctuation">.</span><span class="token function">getDeclaredField</span><span class="token punctuation">(</span><span class="token string">"fieldName"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line">field<span class="token punctuation">.</span><span class="token function">setAccessible</span><span class="token punctuation">(</span><span class="token boolean">true</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// 如果字段是私有的,需要设置可访问</span>
|
||
</span><span class="code-line"><span class="token class-name">Object</span> value <span class="token operator">=</span> field<span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span>instance<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"><span class="token comment">// 设置字段值</span>
|
||
</span><span class="code-line">field<span class="token punctuation">.</span><span class="token function">set</span><span class="token punctuation">(</span>instance<span class="token punctuation">,</span> newValue<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span></code></pre>
|
||
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="处理泛型"><a aria-hidden="true" tabindex="-1" href="#处理泛型"><span class="icon icon-link"></span></a>处理泛型</h3><div class="wrap-body">
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token comment">// 获取泛型信息</span>
|
||
</span><span class="code-line"><span class="token class-name">Type</span> genericType <span class="token operator">=</span> field<span class="token punctuation">.</span><span class="token function">getGenericType</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span></code></pre>
|
||
</div></div></div><div class="wrap h3body-not-exist col-span-2"><div class="wrap-header h3wrap"><h3 id="调用方法"><a aria-hidden="true" tabindex="-1" href="#调用方法"><span class="icon icon-link"></span></a>调用方法</h3><div class="wrap-body">
|
||
<!--rehype:wrap-class=col-span-2-->
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token comment">// 获取方法</span>
|
||
</span><span class="code-line"><span class="token class-name">Method</span> method <span class="token operator">=</span> clazz<span class="token punctuation">.</span><span class="token function">getDeclaredMethod</span><span class="token punctuation">(</span><span class="token string">"methodName"</span><span class="token punctuation">,</span> parameterTypes<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line">method<span class="token punctuation">.</span><span class="token function">setAccessible</span><span class="token punctuation">(</span><span class="token boolean">true</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// 如果方法是私有的,需要设置可访问</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"><span class="token comment">// 调用方法</span>
|
||
</span><span class="code-line"><span class="token class-name">Object</span> result <span class="token operator">=</span> method<span class="token punctuation">.</span><span class="token function">invoke</span><span class="token punctuation">(</span>instance<span class="token punctuation">,</span> args<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span></code></pre>
|
||
</div></div></div><div class="wrap h3body-not-exist row-span-2"><div class="wrap-header h3wrap"><h3 id="其他常用操作"><a aria-hidden="true" tabindex="-1" href="#其他常用操作"><span class="icon icon-link"></span></a>其他常用操作</h3><div class="wrap-body">
|
||
<!--rehype:wrap-class=row-span-2-->
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token comment">// 判断是否是数组、枚举、注解等</span>
|
||
</span><span class="code-line"><span class="token keyword">boolean</span> isArray <span class="token operator">=</span> clazz<span class="token punctuation">.</span><span class="token function">isArray</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token keyword">boolean</span> isEnum <span class="token operator">=</span> clazz<span class="token punctuation">.</span><span class="token function">isEnum</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token keyword">boolean</span> isAnnotation <span class="token operator">=</span> clazz<span class="token punctuation">.</span><span class="token function">isAnnotation</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"><span class="token comment">// 获取构造函数、字段、方法等</span>
|
||
</span><span class="code-line"><span class="token class-name">Constructor</span><span class="token generics"><span class="token punctuation"><</span><span class="token operator">?</span><span class="token punctuation">></span></span><span class="token punctuation">[</span><span class="token punctuation">]</span> constructors <span class="token operator">=</span> clazz<span class="token punctuation">.</span><span class="token function">getConstructors</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token class-name">Field</span><span class="token punctuation">[</span><span class="token punctuation">]</span> fields <span class="token operator">=</span> clazz<span class="token punctuation">.</span><span class="token function">getDeclaredFields</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token class-name">Method</span><span class="token punctuation">[</span><span class="token punctuation">]</span> methods <span class="token operator">=</span> clazz<span class="token punctuation">.</span><span class="token function">getDeclaredMethods</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span></code></pre>
|
||
</div></div></div><div class="wrap h3body-not-exist col-span-2"><div class="wrap-header h3wrap"><h3 id="处理注解"><a aria-hidden="true" tabindex="-1" href="#处理注解"><span class="icon icon-link"></span></a>处理注解</h3><div class="wrap-body">
|
||
<!--rehype:wrap-class=col-span-2-->
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token comment">// 获取注解信息</span>
|
||
</span><span class="code-line"><span class="token class-name">Annotation</span> annotation <span class="token operator">=</span> field<span class="token punctuation">.</span><span class="token function">getAnnotation</span><span class="token punctuation">(</span><span class="token class-name">MyAnnotation</span><span class="token punctuation">.</span><span class="token keyword">class</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span></code></pre>
|
||
</div></div></div></div></div><div class="wrap h2body-exist"><div class="wrap-header h2wrap"><h2 id="方法引用"><a aria-hidden="true" tabindex="-1" href="#方法引用"><span class="icon icon-link"></span></a>方法引用</h2><div class="wrap-body">
|
||
</div></div><div class="h2wrap-body"><div class="wrap h3body-exist row-span-3"><div class="wrap-header h3wrap"><h3 id="方法引用-1"><a aria-hidden="true" tabindex="-1" href="#方法引用-1"><span class="icon icon-link"></span></a>方法引用</h3><div class="wrap-body">
|
||
<!--rehype:wrap-class=row-span-3-->
|
||
<p>Java 的 <code>Consumer</code> 接口里的 <code>accept</code> 方法接受参数但不返回值。要让它打印传入的参数,可以这样做:</p>
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token class-name">Consumer</span><span class="token generics"><span class="token punctuation"><</span><span class="token class-name">String</span><span class="token punctuation">></span></span> test <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Consumer</span><span class="token generics"><span class="token punctuation"><</span><span class="token class-name">String</span><span class="token punctuation">></span></span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token annotation punctuation">@Override</span>
|
||
</span><span class="code-line"> <span class="token keyword">public</span> <span class="token keyword">void</span> <span class="token function">accept</span><span class="token punctuation">(</span><span class="token class-name">String</span> s<span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>s<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"> <span class="token punctuation">}</span>
|
||
</span><span class="code-line"> <span class="token punctuation">}</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line">test<span class="token punctuation">.</span><span class="token function">accept</span><span class="token punctuation">(</span><span class="token string">"test"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span></code></pre>
|
||
<p>更简单的,我们可以直接传入Lambda表达式</p>
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token class-name">Consumer</span><span class="token generics"><span class="token punctuation"><</span><span class="token class-name">String</span><span class="token punctuation">></span></span> test <span class="token operator">=</span> <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token operator">::</span><span class="token function">println</span><span class="token punctuation">;</span>
|
||
</span></code></pre>
|
||
<p>方法引用通过方法的名字指向一个方法,使语言构造更简洁,减少冗余代码。</p>
|
||
<h4 id="使用方式"><a aria-hidden="true" tabindex="-1" href="#使用方式"><span class="icon icon-link"></span></a>使用方式</h4>
|
||
<ul>
|
||
<li>引用方法</li>
|
||
<li>引用构造方法</li>
|
||
<li>引用数组</li>
|
||
</ul>
|
||
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="静态方法引用"><a aria-hidden="true" tabindex="-1" href="#静态方法引用"><span class="icon icon-link"></span></a>静态方法引用</h3><div class="wrap-body">
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token class-name">Comparator</span><span class="token generics"><span class="token punctuation"><</span><span class="token class-name">Integer</span><span class="token punctuation">></span></span> comparator <span class="token operator">=</span> <span class="token class-name">Math</span><span class="token operator">::</span><span class="token function">max</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"><span class="token keyword">int</span> result <span class="token operator">=</span> comparator<span class="token punctuation">.</span><span class="token function">compare</span><span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token comment">// 返回 2</span>
|
||
</span></code></pre>
|
||
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="实例方法引用"><a aria-hidden="true" tabindex="-1" href="#实例方法引用"><span class="icon icon-link"></span></a>实例方法引用</h3><div class="wrap-body">
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token class-name">String</span> str <span class="token operator">=</span> <span class="token string">"HELLO"</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"><span class="token class-name">String</span> lowerCase <span class="token operator">=</span> str<span class="token operator">::</span><span class="token function">toLowerCase</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token comment">// 返回 "hello"</span>
|
||
</span></code></pre>
|
||
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="构造方法引用"><a aria-hidden="true" tabindex="-1" href="#构造方法引用"><span class="icon icon-link"></span></a>构造方法引用</h3><div class="wrap-body">
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token class-name">Supplier</span><span class="token generics"><span class="token punctuation"><</span><span class="token class-name">String</span><span class="token punctuation">></span></span> supplier <span class="token operator">=</span> <span class="token class-name">String</span><span class="token operator">::</span><span class="token keyword">new</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"><span class="token class-name">String</span> str <span class="token operator">=</span> supplier<span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token comment">// 返回一个空字符串</span>
|
||
</span></code></pre>
|
||
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="数组构造方法引用"><a aria-hidden="true" tabindex="-1" href="#数组构造方法引用"><span class="icon icon-link"></span></a>数组构造方法引用</h3><div class="wrap-body">
|
||
<pre class="wrap-text"><code class="language-java code-highlight"><span class="code-line"><span class="token class-name">Function</span><span class="token operator"><</span><span class="token class-name">Integer</span><span class="token punctuation">,</span> <span class="token class-name">String</span><span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token operator">></span> function <span class="token operator">=</span> <span class="token class-name">String</span><span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token operator">::</span><span class="token keyword">new</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"><span class="token class-name">String</span><span class="token punctuation">[</span><span class="token punctuation">]</span> array <span class="token operator">=</span> function<span class="token punctuation">.</span><span class="token function">apply</span><span class="token punctuation">(</span><span class="token number">5</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token comment">// 返回 5 个空字符串的数组</span>
|
||
</span></code></pre>
|
||
<!--rehype:className=wrap-text-->
|
||
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="对象中的方法引用"><a aria-hidden="true" tabindex="-1" href="#对象中的方法引用"><span class="icon icon-link"></span></a>对象中的方法引用</h3><div class="wrap-body">
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token class-name">String</span> someStr <span class="token operator">=</span> <span class="token string">"HELLO"</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"><span class="token class-name">String</span> lowerCase <span class="token operator">=</span> someStr<span class="token operator">::</span><span class="token function">toLowerCase</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token comment">// 返回 "hello"</span>
|
||
</span></code></pre>
|
||
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="对象中的静态方法引用"><a aria-hidden="true" tabindex="-1" href="#对象中的静态方法引用"><span class="icon icon-link"></span></a>对象中的静态方法引用</h3><div class="wrap-body">
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token class-name">SomeClass</span> someObject <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">SomeClass</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"><span class="token keyword">int</span> result <span class="token operator">=</span> someObject<span class="token operator">::</span><span class="token function">staticMethod</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token comment">// 调用静态方法</span>
|
||
</span></code></pre>
|
||
</div></div></div></div></div><div class="wrap h2body-exist"><div class="wrap-header h2wrap"><h2 id="杂项-misc"><a aria-hidden="true" tabindex="-1" href="#杂项-misc"><span class="icon icon-link"></span></a>杂项 Misc</h2><div class="wrap-body">
|
||
</div></div><div class="h2wrap-body"><div class="wrap h3body-not-exist col-span-2"><div class="wrap-header h3wrap"><h3 id="访问修饰符"><a aria-hidden="true" tabindex="-1" href="#访问修饰符"><span class="icon icon-link"></span></a>访问修饰符</h3><div class="wrap-body">
|
||
<!--rehype:wrap-class=col-span-2-->
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<table class="show-header"><thead><tr><th>修饰符</th><th>Class</th><th>Package</th><th>Subclass</th><th>World</th></tr></thead><tbody><tr><td>public</td><td>Y</td><td>Y</td><td>Y</td><td>Y</td></tr><tr><td>protected</td><td>Y</td><td>Y</td><td>Y</td><td><em>N</em></td></tr><tr><td>no modifier</td><td>Y</td><td>Y</td><td><em>N</em></td><td><em>N</em></td></tr><tr><td>private</td><td>Y</td><td><em>N</em></td><td><em>N</em></td><td><em>N</em></td></tr></tbody></table>
|
||
<!--rehype:className=show-header-->
|
||
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="常用表达"><a aria-hidden="true" tabindex="-1" href="#常用表达"><span class="icon icon-link"></span></a>常用表达</h3><div class="wrap-body">
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token class-name">String</span> text <span class="token operator">=</span> <span class="token string">"I am learning Java"</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token comment">// 删除所有空格</span>
|
||
</span><span class="code-line">text<span class="token punctuation">.</span><span class="token function">replaceAll</span><span class="token punctuation">(</span><span class="token string">"\\s+"</span><span class="token punctuation">,</span> <span class="token string">""</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token comment">// 拆分字符串</span>
|
||
</span><span class="code-line">text<span class="token punctuation">.</span><span class="token function">split</span><span class="token punctuation">(</span><span class="token string">"\\|"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line">text<span class="token punctuation">.</span><span class="token function">split</span><span class="token punctuation">(</span><span class="token class-name">Pattern</span><span class="token punctuation">.</span><span class="token function">quote</span><span class="token punctuation">(</span><span class="token string">"|"</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span></code></pre>
|
||
<p>查看: <a href="./regex.html#java-%E4%B8%AD%E7%9A%84%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F">Regex in java</a></p>
|
||
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="注释-comment"><a aria-hidden="true" tabindex="-1" href="#注释-comment"><span class="icon icon-link"></span></a>注释 Comment</h3><div class="wrap-body">
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token comment">// 我是单行注释!</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"><span class="token comment">/*
|
||
</span></span><span class="code-line"><span class="token comment">而我是一个
|
||
</span></span><span class="code-line"><span class="token comment">多行注释!
|
||
</span></span><span class="code-line"><span class="token comment">*/</span>
|
||
</span><span class="code-line"><span class="token doc-comment comment">/**
|
||
</span></span><span class="code-line"><span class="token doc-comment comment"> * 这个
|
||
</span></span><span class="code-line"><span class="token doc-comment comment"> * 是
|
||
</span></span><span class="code-line"><span class="token doc-comment comment"> * 文档
|
||
</span></span><span class="code-line"><span class="token doc-comment comment"> * 注释
|
||
</span></span><span class="code-line"><span class="token doc-comment comment"> */</span>
|
||
</span></code></pre>
|
||
</div></div></div><div class="wrap h3body-not-exist col-span-2"><div class="wrap-header h3wrap"><h3 id="关键字"><a aria-hidden="true" tabindex="-1" href="#关键字"><span class="icon icon-link"></span></a>关键字</h3><div class="wrap-body">
|
||
<!--rehype:wrap-class=col-span-2-->
|
||
<ul class="cols-7 style-none">
|
||
<li>abstract</li>
|
||
<li>continue</li>
|
||
<li>for</li>
|
||
<li>new</li>
|
||
<li>switch</li>
|
||
<li>assert</li>
|
||
<li>default</li>
|
||
<li>goto</li>
|
||
<li>package</li>
|
||
<li>synchronized</li>
|
||
<li>boolean</li>
|
||
<li>do</li>
|
||
<li>if</li>
|
||
<li>private</li>
|
||
<li>this</li>
|
||
<li>break</li>
|
||
<li>double</li>
|
||
<li>implements</li>
|
||
<li>protected</li>
|
||
<li>throw</li>
|
||
<li>byte</li>
|
||
<li>else</li>
|
||
<li>import</li>
|
||
<li>public</li>
|
||
<li>throws</li>
|
||
<li>case</li>
|
||
<li>enum</li>
|
||
<li>instanceof</li>
|
||
<li>return</li>
|
||
<li>transient</li>
|
||
<li>catch</li>
|
||
<li>extends</li>
|
||
<li>int</li>
|
||
<li>short</li>
|
||
<li>try</li>
|
||
<li>char</li>
|
||
<li>final</li>
|
||
<li>interface</li>
|
||
<li>static</li>
|
||
<li>void</li>
|
||
<li>class</li>
|
||
<li>finally</li>
|
||
<li>long</li>
|
||
<li>strictfp</li>
|
||
<li>volatile</li>
|
||
<li>const</li>
|
||
<li>float</li>
|
||
<li>native</li>
|
||
<li>super</li>
|
||
<li>while</li>
|
||
</ul>
|
||
<!--rehype:className=cols-7 style-none-->
|
||
</div></div></div><div class="wrap h3body-not-exist row-span-2"><div class="wrap-header h3wrap"><h3 id="数学方法"><a aria-hidden="true" tabindex="-1" href="#数学方法"><span class="icon icon-link"></span></a>数学方法</h3><div class="wrap-body">
|
||
<!--rehype:wrap-class=row-span-2-->
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<table><thead><tr><th align="left">方法</th><th align="left">说明</th></tr></thead><tbody><tr><td align="left"><code>Math.max(a,b)</code></td><td align="left"><code>a</code> 和 <code>b</code> 的最大值</td></tr><tr><td align="left"><code>Math.min(a,b)</code></td><td align="left"><code>a</code> 和 <code>b</code> 的最小值</td></tr><tr><td align="left"><code>Math.abs(a)</code></td><td align="left">绝对值</td></tr><tr><td align="left"><code>Math.sqrt(a)</code></td><td align="left"><code>a</code> 的平方根</td></tr><tr><td align="left"><code>Math.pow(a,b)</code></td><td align="left"><code>b</code> 的幂</td></tr><tr><td align="left"><code>Math.round(a)</code></td><td align="left">最接近的整数</td></tr><tr><td align="left"><code>Math.sin(ang)</code></td><td align="left">正弦</td></tr><tr><td align="left"><code>Math.cos(ang)</code></td><td align="left"><code>ang</code> 的余弦</td></tr><tr><td align="left"><code>Math.tan(ang)</code></td><td align="left"><code>ang</code> 的切线</td></tr><tr><td align="left"><code>Math.asin(ang)</code></td><td align="left"><code>ang</code> 的反正弦</td></tr><tr><td align="left"><code>Math.log(a)</code></td><td align="left"><code>a</code> 的自然对数</td></tr><tr><td align="left"><code>Math.toDegrees(rad)</code></td><td align="left">以度为单位的角度弧度</td></tr><tr><td align="left"><code>Math.toRadians(deg)</code></td><td align="left">以弧度为单位的角度度</td></tr></tbody></table>
|
||
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="异常-trycatchfinally"><a aria-hidden="true" tabindex="-1" href="#异常-trycatchfinally"><span class="icon icon-link"></span></a>异常 Try/Catch/Finally</h3><div class="wrap-body">
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token keyword">try</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token comment">// something</span>
|
||
</span><span class="code-line"><span class="token punctuation">}</span> <span class="token keyword">catch</span> <span class="token punctuation">(</span><span class="token class-name">Exception</span> e<span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> e<span class="token punctuation">.</span><span class="token function">printStackTrace</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token punctuation">}</span> <span class="token keyword">finally</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token string">"always printed"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||
</span></code></pre>
|
||
</div></div></div><div class="wrap h3body-not-exist row-span-2"><div class="wrap-header h3wrap"><h3 id="util工具类"><a aria-hidden="true" tabindex="-1" href="#util工具类"><span class="icon icon-link"></span></a>util工具类</h3><div class="wrap-body">
|
||
<!--rehype:wrap-class=row-span-2-->
|
||
<ul>
|
||
<li><code>ArrayDeque</code>: 可调整大小的数组双端队列,实现了Deque接口</li>
|
||
<li><code>Arrays</code>: 提供静态工厂,允许将数组视为列表</li>
|
||
<li><code>Collections</code>: 包含操作集合或返回集合的静态方法</li>
|
||
<li><code>Date</code>: 表示特定时间瞬间,精度为毫秒</li>
|
||
<li><code>Dictionary</code>: 抽象父类,可用于键值对映射,例如Hashtable</li>
|
||
<li><code>EnumMap</code>: 专门用于枚举键的Map实现</li>
|
||
<li><code>EnumSet</code>: 专门用于枚举键的Set实现</li>
|
||
<li><code>Formatter</code>: 提供对布局、对齐、数字、字符串和日期/时间数据的格式化支持,以及特定于语言环境的输出</li>
|
||
<li><code>SecureRandom</code>: 生成安全的伪随机数流的实例</li>
|
||
<li><code>UUID</code>: 表示不可变的通用唯一标识符</li>
|
||
<li><code>Vector</code>: 实现了可增长的对象数组</li>
|
||
<li><code>LocalDate</code>: 表示无时区的日期,仅包含年月日,不可变且线程安全,适用于Java 8及更高版本</li>
|
||
<li><code>LocalTime</code>: 表示无时区的时间,仅包含时分秒,不可变且线程安全,适用于Java 8及更高版本</li>
|
||
<li><code>LocalDateTime</code>: 表示无时区的日期时间,包含年月日时分秒,不可变且线程安全,适用于Java 8及更高版本</li>
|
||
</ul>
|
||
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="collections-工具类"><a aria-hidden="true" tabindex="-1" href="#collections-工具类"><span class="icon icon-link"></span></a>Collections 工具类</h3><div class="wrap-body">
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token comment">// 计算出现频率</span>
|
||
</span><span class="code-line"><span class="token class-name">List</span><span class="token generics"><span class="token punctuation"><</span><span class="token class-name">Integer</span><span class="token punctuation">></span></span> list <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ArrayList</span><span class="token generics"><span class="token punctuation"><</span><span class="token punctuation">></span></span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line">list<span class="token punctuation">.</span><span class="token function">add</span><span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line">list<span class="token punctuation">.</span><span class="token function">add</span><span class="token punctuation">(</span><span class="token number">2</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line">list<span class="token punctuation">.</span><span class="token function">add</span><span class="token punctuation">(</span><span class="token number">2</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line">list<span class="token punctuation">.</span><span class="token function">add</span><span class="token punctuation">(</span><span class="token number">3</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line">list<span class="token punctuation">.</span><span class="token function">add</span><span class="token punctuation">(</span><span class="token number">3</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line">list<span class="token punctuation">.</span><span class="token function">add</span><span class="token punctuation">(</span><span class="token number">3</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token keyword">int</span> frequency <span class="token operator">=</span> <span class="token class-name">Collections</span>
|
||
</span><span class="code-line"> <span class="token punctuation">.</span><span class="token function">frequency</span><span class="token punctuation">(</span>list<span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// frequency = 2</span>
|
||
</span></code></pre>
|
||
</div></div></div></div></div><div class="wrap h2body-exist"><div class="wrap-header h2wrap"><h2 id="操纵数据库"><a aria-hidden="true" tabindex="-1" href="#操纵数据库"><span class="icon icon-link"></span></a>操纵数据库</h2><div class="wrap-body">
|
||
</div></div><div class="h2wrap-body"><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="jdbc"><a aria-hidden="true" tabindex="-1" href="#jdbc"><span class="icon icon-link"></span></a>JDBC</h3><div class="wrap-body">
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token class-name">String</span> url <span class="token operator">=</span> <span class="token string">"jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=UTC"</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token class-name">String</span> user <span class="token operator">=</span> <span class="token string">"root"</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token class-name">String</span> password <span class="token operator">=</span> <span class="token string">"123456"</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token class-name">String</span> sql <span class="token operator">=</span> <span class="token string">"SELECT 1 as a, '2' as b"</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token class-name">String</span> preparedSql <span class="token operator">=</span> <span class="token string">"SELECT * FROM t_user WHERE id = ?"</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"><span class="token class-name">Connection</span> conn <span class="token operator">=</span> <span class="token keyword">null</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token class-name">Statement</span> sm <span class="token operator">=</span> <span class="token keyword">null</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token class-name">ResultSet</span> rs <span class="token operator">=</span> <span class="token keyword">null</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token keyword">try</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token comment">// 1.注册驱动</span>
|
||
</span><span class="code-line"> <span class="token class-name">Class</span><span class="token punctuation">.</span><span class="token function">forName</span><span class="token punctuation">(</span><span class="token string">"com.mysql.cj.jdbc.Driver"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token punctuation">}</span> <span class="token keyword">catch</span> <span class="token punctuation">(</span><span class="token class-name">ClassNotFoundException</span> e<span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token comment">// 驱动找不到</span>
|
||
</span><span class="code-line"> <span class="token keyword">throw</span> <span class="token keyword">new</span> <span class="token class-name">RuntimeException</span><span class="token punctuation">(</span>e<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"><span class="token comment">// 2.建立连接</span>
|
||
</span><span class="code-line"><span class="token keyword">try</span> <span class="token punctuation">(</span><span class="token class-name">Connection</span> connection <span class="token operator">=</span> <span class="token class-name">DriverManager</span><span class="token punctuation">.</span><span class="token function">getConnection</span><span class="token punctuation">(</span>url<span class="token punctuation">,</span> user<span class="token punctuation">,</span> password<span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"> conn <span class="token operator">=</span> connection<span class="token punctuation">;</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"> <span class="token comment">// 3.创建Statement对象</span>
|
||
</span><span class="code-line"> <span class="token keyword">try</span> <span class="token punctuation">(</span><span class="token class-name">Statement</span> statement <span class="token operator">=</span> connection<span class="token punctuation">.</span><span class="token function">createStatement</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"> sm <span class="token operator">=</span> statement<span class="token punctuation">;</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"> <span class="token comment">// 4.执行SQL语句</span>
|
||
</span><span class="code-line"> <span class="token keyword">try</span> <span class="token punctuation">(</span><span class="token class-name">ResultSet</span> resultSet <span class="token operator">=</span> statement<span class="token punctuation">.</span><span class="token function">executeQuery</span><span class="token punctuation">(</span>sql<span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"> rs <span class="token operator">=</span> resultSet<span class="token punctuation">;</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"> <span class="token comment">// 5.处理结果集</span>
|
||
</span><span class="code-line"> <span class="token keyword">while</span> <span class="token punctuation">(</span>resultSet<span class="token punctuation">.</span><span class="token function">next</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token comment">// 按照列名取值</span>
|
||
</span><span class="code-line"> <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>resultSet<span class="token punctuation">.</span><span class="token function">getLong</span><span class="token punctuation">(</span><span class="token string">"a"</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"> <span class="token comment">// 按照索引取值</span>
|
||
</span><span class="code-line"> <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>resultSet<span class="token punctuation">.</span><span class="token function">getString</span><span class="token punctuation">(</span><span class="token number">2</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"> <span class="token punctuation">}</span>
|
||
</span><span class="code-line"> <span class="token punctuation">}</span>
|
||
</span><span class="code-line"> <span class="token punctuation">}</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"> <span class="token comment">// 3.创建PreparedStatement对象</span>
|
||
</span><span class="code-line"> <span class="token keyword">try</span> <span class="token punctuation">(</span><span class="token class-name">PreparedStatement</span> preparedStatement <span class="token operator">=</span> connection<span class="token punctuation">.</span><span class="token function">prepareStatement</span><span class="token punctuation">(</span>preparedSql<span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"> sm <span class="token operator">=</span> preparedStatement<span class="token punctuation">;</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"> preparedStatement<span class="token punctuation">.</span><span class="token function">setLong</span><span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">1_000L</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"> <span class="token comment">// 4.执行SQL语句</span>
|
||
</span><span class="code-line"> <span class="token keyword">try</span> <span class="token punctuation">(</span><span class="token class-name">ResultSet</span> resultSet <span class="token operator">=</span> preparedStatement<span class="token punctuation">.</span><span class="token function">executeQuery</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"> rs <span class="token operator">=</span> resultSet<span class="token punctuation">;</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"> <span class="token comment">// 5.处理结果集</span>
|
||
</span><span class="code-line"> <span class="token keyword">while</span> <span class="token punctuation">(</span>resultSet<span class="token punctuation">.</span><span class="token function">next</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>resultSet<span class="token punctuation">.</span><span class="token function">getLong</span><span class="token punctuation">(</span><span class="token string">"id"</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"> <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>resultSet<span class="token punctuation">.</span><span class="token function">getString</span><span class="token punctuation">(</span><span class="token number">2</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"> <span class="token punctuation">}</span>
|
||
</span><span class="code-line"> <span class="token punctuation">}</span>
|
||
</span><span class="code-line"> <span class="token punctuation">}</span>
|
||
</span><span class="code-line"><span class="token punctuation">}</span> <span class="token keyword">catch</span> <span class="token punctuation">(</span><span class="token class-name">SQLException</span> e<span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token comment">// 数据库异常</span>
|
||
</span><span class="code-line"> <span class="token keyword">throw</span> <span class="token keyword">new</span> <span class="token class-name">RuntimeException</span><span class="token punctuation">(</span>e<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token punctuation">}</span> <span class="token keyword">finally</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token comment">// 6.关闭资源</span>
|
||
</span><span class="code-line"> <span class="token comment">// 上面的try块里已经自动关闭,否则(JDK 7以前)按照以下顺序关闭</span>
|
||
</span><span class="code-line"> <span class="token comment">// 先打开的后关闭,后打开的先关闭</span>
|
||
</span><span class="code-line"> <span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token keyword">null</span> <span class="token operator">!=</span> rs<span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token keyword">try</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> rs<span class="token punctuation">.</span><span class="token function">close</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"> <span class="token punctuation">}</span> <span class="token keyword">catch</span> <span class="token punctuation">(</span><span class="token class-name">SQLException</span> ignored<span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token punctuation">}</span>
|
||
</span><span class="code-line"> <span class="token punctuation">}</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"> <span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token keyword">null</span> <span class="token operator">!=</span> sm<span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token keyword">try</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> sm<span class="token punctuation">.</span><span class="token function">close</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"> <span class="token punctuation">}</span> <span class="token keyword">catch</span> <span class="token punctuation">(</span><span class="token class-name">SQLException</span> ignored<span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token punctuation">}</span>
|
||
</span><span class="code-line"> <span class="token punctuation">}</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"> <span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token keyword">null</span> <span class="token operator">!=</span> conn<span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token keyword">try</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> conn<span class="token punctuation">.</span><span class="token function">close</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"> <span class="token punctuation">}</span> <span class="token keyword">catch</span> <span class="token punctuation">(</span><span class="token class-name">SQLException</span> ignored<span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
</span><span class="code-line"> <span class="token punctuation">}</span>
|
||
</span><span class="code-line"> <span class="token punctuation">}</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"> <span class="token comment">// 也可以直接工具类, 注意顺序</span>
|
||
</span><span class="code-line"> <span class="token class-name">IOUtils</span><span class="token punctuation">.</span><span class="token function">close</span><span class="token punctuation">(</span>rs<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"> <span class="token class-name">IOUtils</span><span class="token punctuation">.</span><span class="token function">close</span><span class="token punctuation">(</span>sm<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"> <span class="token class-name">IOUtils</span><span class="token punctuation">.</span><span class="token function">close</span><span class="token punctuation">(</span>conn<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||
</span></code></pre>
|
||
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="jdbc注册驱动"><a aria-hidden="true" tabindex="-1" href="#jdbc注册驱动"><span class="icon icon-link"></span></a>JDBC注册驱动</h3><div class="wrap-body">
|
||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token class-name">Class</span><span class="token punctuation">.</span><span class="token function">forName</span><span class="token punctuation">(</span><span class="token string">"com.mysql.cj.jdbc.Driver"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"><span class="token class-name">DriverManager</span><span class="token punctuation">.</span><span class="token function">registerDriver</span><span class="token punctuation">(</span><span class="token keyword">new</span> <span class="token class-name"><span class="token namespace">org<span class="token punctuation">.</span>postgresql<span class="token punctuation">.</span></span>Driver</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"><span class="token comment">// 支持多个同时注册</span>
|
||
</span><span class="code-line"><span class="token class-name">System</span><span class="token punctuation">.</span><span class="token function">setProperty</span><span class="token punctuation">(</span><span class="token string">"jdbc.drivers"</span><span class="token punctuation">,</span> <span class="token string">"com.mysql.cj.jdbc.Driver:org.postgresql.Driver"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span></code></pre>
|
||
</div></div></div></div></div><div class="wrap h2body-not-exist"><div class="wrap-header h2wrap"><h2 id="另见"><a aria-hidden="true" tabindex="-1" href="#另见"><span class="icon icon-link"></span></a>另见</h2><div class="wrap-body">
|
||
<ul>
|
||
<li><a href="https://www.oracle.com/cn/java/">Java 官网</a> <em>(oracle.com/cn/java)</em></li>
|
||
</ul>
|
||
</div></div><div class="h2wrap-body"></div></div></div><script src="https://giscus.app/client.js" data-repo="jaywcjlove/reference" data-repo-id="R_kgDOID2-Mw" data-category="Q&A" data-category-id="DIC_kwDOID2-M84CS5wo" data-mapping="pathname" data-strict="0" data-reactions-enabled="1" data-emit-metadata="0" data-input-position="bottom" data-theme="dark" data-lang="zh-CN" crossorigin="anonymous" async></script><div class="giscus"></div></div><footer class="footer-wrap"><footer class="max-container">© 2022 <a href="https://wangchujiang.com/#/app" target="_blank">Kenny Wang</a>.</footer></footer><script src="../data.js?v=1.8.3" defer></script><script src="../js/fuse.min.js?v=1.8.3" defer></script><script src="../js/main.js?v=1.8.3" defer></script><div id="mysearch"><div class="mysearch-box"><div class="mysearch-input"><div><svg xmlns="http://www.w3.org/2000/svg" height="1em" width="1em" viewBox="0 0 18 18">
|
||
<path fill="currentColor" d="M17.71,16.29 L14.31,12.9 C15.4069846,11.5024547 16.0022094,9.77665502 16,8 C16,3.581722 12.418278,0 8,0 C3.581722,0 0,3.581722 0,8 C0,12.418278 3.581722,16 8,16 C9.77665502,16.0022094 11.5024547,15.4069846 12.9,14.31 L16.29,17.71 C16.4777666,17.8993127 16.7333625,18.0057983 17,18.0057983 C17.2666375,18.0057983 17.5222334,17.8993127 17.71,17.71 C17.8993127,17.5222334 18.0057983,17.2666375 18.0057983,17 C18.0057983,16.7333625 17.8993127,16.4777666 17.71,16.29 Z M2,8 C2,4.6862915 4.6862915,2 8,2 C11.3137085,2 14,4.6862915 14,8 C14,11.3137085 11.3137085,14 8,14 C4.6862915,14 2,11.3137085 2,8 Z"></path>
|
||
</svg><input id="mysearch-input" type="search" placeholder="搜索" autocomplete="off"><div class="mysearch-clear"></div></div><button id="mysearch-close" type="button">搜索</button></div><div class="mysearch-result"><div id="mysearch-menu"></div><div id="mysearch-content"></div></div></div></div></body>
|
||
</html>
|