mirror of
https://github.com/m-lamonaca/dev-notes.git
synced 2025-04-07 03:16:41 +00:00
7640 lines
No EOL
310 KiB
HTML
7640 lines
No EOL
310 KiB
HTML
|
|
<!doctype html>
|
|
<html lang="en" class="no-js">
|
|
<head>
|
|
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width,initial-scale=1">
|
|
|
|
|
|
<meta name="author" content="Marcello Lamonaca">
|
|
|
|
|
|
<link rel="canonical" href="http://m-lamonaca.github.io/dev-notes/languages/java/java.html">
|
|
|
|
|
|
<link rel="prev" href="../dotnet/database/entity-framework.html">
|
|
|
|
|
|
<link rel="next" href="java-collection-framework.html">
|
|
|
|
|
|
<link rel="icon" href="../../assets/images/favicon.png">
|
|
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.34">
|
|
|
|
|
|
|
|
<title>Java - Dev Notes</title>
|
|
|
|
|
|
|
|
<link rel="stylesheet" href="../../assets/stylesheets/main.35f28582.min.css">
|
|
|
|
|
|
<link rel="stylesheet" href="../../assets/stylesheets/palette.06af60db.min.css">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<script src="https://unpkg.com/iframe-worker/shim"></script>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback">
|
|
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
|
|
|
|
|
|
|
|
<script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<meta property="og:type" content="website" >
|
|
|
|
<meta property="og:title" content="Java - Dev Notes" >
|
|
|
|
<meta property="og:description" content="None" >
|
|
|
|
<meta property="og:image" content="http://m-lamonaca.github.io/dev-notes/assets/images/social/languages/java/java.png" >
|
|
|
|
<meta property="og:image:type" content="image/png" >
|
|
|
|
<meta property="og:image:width" content="1200" >
|
|
|
|
<meta property="og:image:height" content="630" >
|
|
|
|
<meta property="og:url" content="http://m-lamonaca.github.io/dev-notes/languages/java/java.html" >
|
|
|
|
<meta name="twitter:card" content="summary_large_image" >
|
|
|
|
<meta name="twitter:title" content="Java - Dev Notes" >
|
|
|
|
<meta name="twitter:description" content="None" >
|
|
|
|
<meta name="twitter:image" content="http://m-lamonaca.github.io/dev-notes/assets/images/social/languages/java/java.png" >
|
|
|
|
|
|
|
|
</head>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<body dir="ltr" data-md-color-scheme="default" data-md-color-primary="orange" data-md-color-accent="deep-orange">
|
|
|
|
|
|
<input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
|
|
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
|
|
<label class="md-overlay" for="__drawer"></label>
|
|
<div data-md-component="skip">
|
|
|
|
|
|
<a href="#java" class="md-skip">
|
|
Skip to content
|
|
</a>
|
|
|
|
</div>
|
|
<div data-md-component="announce">
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<header class="md-header md-header--shadow md-header--lifted" data-md-component="header">
|
|
<nav class="md-header__inner md-grid" aria-label="Header">
|
|
<a href="../../index.html" title="Dev Notes" class="md-header__button md-logo" aria-label="Dev Notes" data-md-component="logo">
|
|
|
|
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!--! Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M392.8 1.2c-17-4.9-34.7 5-39.6 22l-128 448c-4.9 17 5 34.7 22 39.6s34.7-5 39.6-22l128-448c4.9-17-5-34.7-22-39.6m80.6 120.1c-12.5 12.5-12.5 32.8 0 45.3l89.3 89.4-89.4 89.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l112-112c12.5-12.5 12.5-32.8 0-45.3l-112-112c-12.5-12.5-32.8-12.5-45.3 0zm-306.7 0c-12.5-12.5-32.8-12.5-45.3 0l-112 112c-12.5 12.5-12.5 32.8 0 45.3l112 112c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256l89.4-89.4c12.5-12.5 12.5-32.8 0-45.3"/></svg>
|
|
|
|
</a>
|
|
<label class="md-header__button md-icon" for="__drawer">
|
|
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg>
|
|
</label>
|
|
<div class="md-header__title" data-md-component="header-title">
|
|
<div class="md-header__ellipsis">
|
|
<div class="md-header__topic">
|
|
<span class="md-ellipsis">
|
|
Dev Notes
|
|
</span>
|
|
</div>
|
|
<div class="md-header__topic" data-md-component="header-topic">
|
|
<span class="md-ellipsis">
|
|
|
|
Java
|
|
|
|
</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<form class="md-header__option" data-md-component="palette">
|
|
|
|
|
|
|
|
|
|
<input class="md-option" data-md-color-media="(prefers-color-scheme: light)" data-md-color-scheme="default" data-md-color-primary="orange" data-md-color-accent="deep-orange" aria-label="Switch to dark mode" type="radio" name="__palette" id="__palette_0">
|
|
|
|
<label class="md-header__button md-icon" title="Switch to dark mode" for="__palette_1" hidden>
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg>
|
|
</label>
|
|
|
|
|
|
|
|
|
|
|
|
<input class="md-option" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-scheme="slate" data-md-color-primary="orange" data-md-color-accent="deep-orange" aria-label="Switch to light mode" type="radio" name="__palette" id="__palette_1">
|
|
|
|
<label class="md-header__button md-icon" title="Switch to light mode" for="__palette_0" hidden>
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg>
|
|
</label>
|
|
|
|
|
|
</form>
|
|
|
|
|
|
|
|
<script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
|
|
|
|
|
|
|
|
<label class="md-header__button md-icon" for="__search">
|
|
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
|
|
</label>
|
|
<div class="md-search" data-md-component="search" role="dialog">
|
|
<label class="md-search__overlay" for="__search"></label>
|
|
<div class="md-search__inner" role="search">
|
|
<form class="md-search__form" name="search">
|
|
<input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
|
|
<label class="md-search__icon md-icon" for="__search">
|
|
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
|
|
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg>
|
|
</label>
|
|
<nav class="md-search__options" aria-label="Search">
|
|
|
|
<button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
|
|
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg>
|
|
</button>
|
|
</nav>
|
|
|
|
</form>
|
|
<div class="md-search__output">
|
|
<div class="md-search__scrollwrap" tabindex="0" data-md-scrollfix>
|
|
<div class="md-search-result" data-md-component="search-result">
|
|
<div class="md-search-result__meta">
|
|
Initializing search
|
|
</div>
|
|
<ol class="md-search-result__list" role="presentation"></ol>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<div class="md-header__source">
|
|
<a href="https://github.com/m-lamonaca/dev-notes" title="Go to repository" class="md-source" data-md-component="source">
|
|
<div class="md-source__icon md-icon">
|
|
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81"/></svg>
|
|
</div>
|
|
<div class="md-source__repository">
|
|
GitHub
|
|
</div>
|
|
</a>
|
|
</div>
|
|
|
|
</nav>
|
|
|
|
|
|
|
|
<nav class="md-tabs" aria-label="Tabs" data-md-component="tabs">
|
|
<div class="md-grid">
|
|
<ul class="md-tabs__list">
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-tabs__item">
|
|
<a href="../../index.html" class="md-tabs__link">
|
|
|
|
|
|
|
|
|
|
Home
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-tabs__item">
|
|
<a href="../../containers/docker.html" class="md-tabs__link">
|
|
|
|
|
|
|
|
|
|
Containers
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-tabs__item">
|
|
<a href="../../databases/redis.html" class="md-tabs__link">
|
|
|
|
|
|
|
|
|
|
Databases
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-tabs__item md-tabs__item--active">
|
|
<a href="../html/html.html" class="md-tabs__link">
|
|
|
|
|
|
|
|
|
|
Languages
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-tabs__item">
|
|
<a href="../../misc/git.html" class="md-tabs__link">
|
|
|
|
|
|
|
|
|
|
Misc
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-tabs__item">
|
|
<a href="../../linux/filesystem/file-links.html" class="md-tabs__link">
|
|
|
|
|
|
|
|
|
|
Linux
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</ul>
|
|
</div>
|
|
</nav>
|
|
|
|
|
|
</header>
|
|
|
|
<div class="md-container" data-md-component="container">
|
|
|
|
|
|
|
|
|
|
<main class="md-main" data-md-component="main">
|
|
<div class="md-main__inner md-grid">
|
|
|
|
|
|
|
|
<div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
|
|
<div class="md-sidebar__scrollwrap">
|
|
<div class="md-sidebar__inner">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<nav class="md-nav md-nav--primary md-nav--lifted" aria-label="Navigation" data-md-level="0">
|
|
<label class="md-nav__title" for="__drawer">
|
|
<a href="../../index.html" title="Dev Notes" class="md-nav__button md-logo" aria-label="Dev Notes" data-md-component="logo">
|
|
|
|
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!--! Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M392.8 1.2c-17-4.9-34.7 5-39.6 22l-128 448c-4.9 17 5 34.7 22 39.6s34.7-5 39.6-22l128-448c4.9-17-5-34.7-22-39.6m80.6 120.1c-12.5 12.5-12.5 32.8 0 45.3l89.3 89.4-89.4 89.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l112-112c12.5-12.5 12.5-32.8 0-45.3l-112-112c-12.5-12.5-32.8-12.5-45.3 0zm-306.7 0c-12.5-12.5-32.8-12.5-45.3 0l-112 112c-12.5 12.5-12.5 32.8 0 45.3l112 112c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256l89.4-89.4c12.5-12.5 12.5-32.8 0-45.3"/></svg>
|
|
|
|
</a>
|
|
Dev Notes
|
|
</label>
|
|
|
|
<div class="md-nav__source">
|
|
<a href="https://github.com/m-lamonaca/dev-notes" title="Go to repository" class="md-source" data-md-component="source">
|
|
<div class="md-source__icon md-icon">
|
|
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81"/></svg>
|
|
</div>
|
|
<div class="md-source__repository">
|
|
GitHub
|
|
</div>
|
|
</a>
|
|
</div>
|
|
|
|
<ul class="md-nav__list" data-md-scrollfix>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../index.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Home
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item md-nav__item--nested">
|
|
|
|
|
|
|
|
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2" >
|
|
|
|
|
|
<label class="md-nav__link" for="__nav_2" id="__nav_2_label" tabindex="0">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Containers
|
|
</span>
|
|
|
|
|
|
<span class="md-nav__icon md-icon"></span>
|
|
</label>
|
|
|
|
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="false">
|
|
<label class="md-nav__title" for="__nav_2">
|
|
<span class="md-nav__icon md-icon"></span>
|
|
Containers
|
|
</label>
|
|
<ul class="md-nav__list" data-md-scrollfix>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../containers/docker.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Docker
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../containers/kubernetes.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Kubernetes
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item md-nav__item--nested">
|
|
|
|
|
|
|
|
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3" >
|
|
|
|
|
|
<label class="md-nav__link" for="__nav_3" id="__nav_3_label" tabindex="0">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Databases
|
|
</span>
|
|
|
|
|
|
<span class="md-nav__icon md-icon"></span>
|
|
</label>
|
|
|
|
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="false">
|
|
<label class="md-nav__title" for="__nav_3">
|
|
<span class="md-nav__icon md-icon"></span>
|
|
Databases
|
|
</label>
|
|
<ul class="md-nav__list" data-md-scrollfix>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../databases/redis.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Redis
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../databases/sql.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
SQL
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../databases/mongo-db.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
MongoDB
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested">
|
|
|
|
|
|
|
|
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4" checked>
|
|
|
|
|
|
<label class="md-nav__link" for="__nav_4" id="__nav_4_label" tabindex="">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Languages
|
|
</span>
|
|
|
|
|
|
<span class="md-nav__icon md-icon"></span>
|
|
</label>
|
|
|
|
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_4_label" aria-expanded="true">
|
|
<label class="md-nav__title" for="__nav_4">
|
|
<span class="md-nav__icon md-icon"></span>
|
|
Languages
|
|
</label>
|
|
<ul class="md-nav__list" data-md-scrollfix>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../html/html.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
HTML
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../markdown.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Markdown
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../css/css.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
CSS
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../c/c.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
C
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../kotlin/kotlin.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Kotlin
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../swift/swift.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Swift
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
|
|
|
|
|
|
|
|
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_7" >
|
|
|
|
|
|
<label class="md-nav__link" for="__nav_4_7" id="__nav_4_7_label" tabindex="">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Assembly
|
|
</span>
|
|
|
|
|
|
<span class="md-nav__icon md-icon"></span>
|
|
</label>
|
|
|
|
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_4_7_label" aria-expanded="false">
|
|
<label class="md-nav__title" for="__nav_4_7">
|
|
<span class="md-nav__icon md-icon"></span>
|
|
Assembly
|
|
</label>
|
|
<ul class="md-nav__list" data-md-scrollfix>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../assembly/intel.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Intel
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../assembly/riscv.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
RISC-V
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
|
|
|
|
|
|
|
|
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_8" >
|
|
|
|
|
|
<label class="md-nav__link" for="__nav_4_8" id="__nav_4_8_label" tabindex="">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Python
|
|
</span>
|
|
|
|
|
|
<span class="md-nav__icon md-icon"></span>
|
|
</label>
|
|
|
|
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_4_8_label" aria-expanded="false">
|
|
<label class="md-nav__title" for="__nav_4_8">
|
|
<span class="md-nav__icon md-icon"></span>
|
|
Python
|
|
</label>
|
|
<ul class="md-nav__list" data-md-scrollfix>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../python/python.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Python
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item md-nav__item--nested">
|
|
|
|
|
|
|
|
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_8_2" >
|
|
|
|
|
|
<label class="md-nav__link" for="__nav_4_8_2" id="__nav_4_8_2_label" tabindex="0">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Modules
|
|
</span>
|
|
|
|
|
|
<span class="md-nav__icon md-icon"></span>
|
|
</label>
|
|
|
|
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_4_8_2_label" aria-expanded="false">
|
|
<label class="md-nav__title" for="__nav_4_8_2">
|
|
<span class="md-nav__icon md-icon"></span>
|
|
Modules
|
|
</label>
|
|
<ul class="md-nav__list" data-md-scrollfix>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../python/modules/argparse.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
argparse
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../python/modules/collections.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
collection
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../python/modules/csv.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
csv
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../python/modules/ftplib.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
ftplib
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../python/modules/itertools.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
itertools
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../python/modules/json.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
json
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../python/modules/logging.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
logging
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../python/modules/shutil.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
shutil
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../python/modules/smtplib.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
smtplib
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../python/modules/socket.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
socket
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../python/modules/sqlite.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
sqlite
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../python/modules/time-datetime.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
time & datetime
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../python/modules/unittest.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
unittest
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item md-nav__item--nested">
|
|
|
|
|
|
|
|
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_8_3" >
|
|
|
|
|
|
<label class="md-nav__link" for="__nav_4_8_3" id="__nav_4_8_3_label" tabindex="0">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Libraries
|
|
</span>
|
|
|
|
|
|
<span class="md-nav__icon md-icon"></span>
|
|
</label>
|
|
|
|
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_4_8_3_label" aria-expanded="false">
|
|
<label class="md-nav__title" for="__nav_4_8_3">
|
|
<span class="md-nav__icon md-icon"></span>
|
|
Libraries
|
|
</label>
|
|
<ul class="md-nav__list" data-md-scrollfix>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../python/libs/tkinter.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
TKinter
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../python/libs/numpy.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Numpy
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../python/libs/pandas.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Pandas
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../python/libs/seaborn.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Seaborn
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../python/libs/requests.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Requests
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../python/libs/beautiful-soup.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Beatiful Soup
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
|
|
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
|
|
|
|
|
|
|
|
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_9" >
|
|
|
|
|
|
<label class="md-nav__link" for="__nav_4_9" id="__nav_4_9_label" tabindex="">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
.NET
|
|
</span>
|
|
|
|
|
|
<span class="md-nav__icon md-icon"></span>
|
|
</label>
|
|
|
|
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_4_9_label" aria-expanded="false">
|
|
<label class="md-nav__title" for="__nav_4_9">
|
|
<span class="md-nav__icon md-icon"></span>
|
|
.NET
|
|
</label>
|
|
<ul class="md-nav__list" data-md-scrollfix>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item md-nav__item--nested">
|
|
|
|
|
|
|
|
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_9_1" >
|
|
|
|
|
|
<label class="md-nav__link" for="__nav_4_9_1" id="__nav_4_9_1_label" tabindex="0">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
C#
|
|
</span>
|
|
|
|
|
|
<span class="md-nav__icon md-icon"></span>
|
|
</label>
|
|
|
|
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_4_9_1_label" aria-expanded="false">
|
|
<label class="md-nav__title" for="__nav_4_9_1">
|
|
<span class="md-nav__icon md-icon"></span>
|
|
C#
|
|
</label>
|
|
<ul class="md-nav__list" data-md-scrollfix>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../dotnet/csharp/csharp.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
C#
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../dotnet/csharp/linq.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Linq
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../dotnet/csharp/collections.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Collections
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../dotnet/csharp/reactive-extensions.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Reactive Extensions
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../dotnet/csharp/async-programming.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Async Programming
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../dotnet/csharp/unit-tests.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Unit Tests
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item md-nav__item--nested">
|
|
|
|
|
|
|
|
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_9_2" >
|
|
|
|
|
|
<label class="md-nav__link" for="__nav_4_9_2" id="__nav_4_9_2_label" tabindex="0">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
ASP.NET
|
|
</span>
|
|
|
|
|
|
<span class="md-nav__icon md-icon"></span>
|
|
</label>
|
|
|
|
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_4_9_2_label" aria-expanded="false">
|
|
<label class="md-nav__title" for="__nav_4_9_2">
|
|
<span class="md-nav__icon md-icon"></span>
|
|
ASP.NET
|
|
</label>
|
|
<ul class="md-nav__list" data-md-scrollfix>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../dotnet/asp.net/minimal-api.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Minimal API
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../dotnet/asp.net/filters.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
FIlters
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../dotnet/asp.net/middleware.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Middleware
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../dotnet/asp.net/razor-syntax.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Razor Syntax
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../dotnet/asp.net/blazor.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Blazor
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../dotnet/asp.net/signalr.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
SignalR
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../dotnet/asp.net/web-forms.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Web Forms
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item md-nav__item--nested">
|
|
|
|
|
|
|
|
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_9_3" >
|
|
|
|
|
|
<label class="md-nav__link" for="__nav_4_9_3" id="__nav_4_9_3_label" tabindex="0">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Database
|
|
</span>
|
|
|
|
|
|
<span class="md-nav__icon md-icon"></span>
|
|
</label>
|
|
|
|
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_4_9_3_label" aria-expanded="false">
|
|
<label class="md-nav__title" for="__nav_4_9_3">
|
|
<span class="md-nav__icon md-icon"></span>
|
|
Database
|
|
</label>
|
|
<ul class="md-nav__list" data-md-scrollfix>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../dotnet/database/ado.net.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
ADO.NET
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../dotnet/database/entity-framework.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Entity Framework
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
|
|
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested">
|
|
|
|
|
|
|
|
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_10" checked>
|
|
|
|
|
|
<label class="md-nav__link" for="__nav_4_10" id="__nav_4_10_label" tabindex="">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Java
|
|
</span>
|
|
|
|
|
|
<span class="md-nav__icon md-icon"></span>
|
|
</label>
|
|
|
|
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_4_10_label" aria-expanded="true">
|
|
<label class="md-nav__title" for="__nav_4_10">
|
|
<span class="md-nav__icon md-icon"></span>
|
|
Java
|
|
</label>
|
|
<ul class="md-nav__list" data-md-scrollfix>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item md-nav__item--active">
|
|
|
|
<input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
|
|
|
|
|
|
|
|
|
|
|
|
<label class="md-nav__link md-nav__link--active" for="__toc">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Java
|
|
</span>
|
|
|
|
|
|
<span class="md-nav__icon md-icon"></span>
|
|
</label>
|
|
|
|
<a href="java.html" class="md-nav__link md-nav__link--active">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Java
|
|
</span>
|
|
|
|
|
|
</a>
|
|
|
|
|
|
|
|
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<label class="md-nav__title" for="__toc">
|
|
<span class="md-nav__icon md-icon"></span>
|
|
Table of contents
|
|
</label>
|
|
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#basics" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Basics
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="Basics">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#main-method-entry-point-of-algorithm" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Main Method (entry point of algorithm)
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#variable-assignment" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Variable Assignment
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#constant-definition-outside-of-main-methodfunction" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Constant Definition (outside of main method/function)
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#constant-definition-inside-main-methodfunction" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Constant Definition (inside main method/function)
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#screen-output" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Screen Output
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#output-formatting" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Output Formatting
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#keyboard-input" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Keyboard Input
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="Keyboard Input">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#primitive-types" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Primitive Types
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#floating-point-numbers-precision-calcs" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Floating-Point numbers & Precision Calcs
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#type-conversion-casting-type-checking" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Type Conversion (casting) & Type checking
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#wrapper-classes" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Wrapper Classes
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#string-char" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
String & Char
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#special-characters" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Special Characters
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#string-concatenation" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
String Concatenation
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#string-conversion-to-number" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
String Conversion to Number
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#string-class-methods" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
String Class Methods
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#mathematical-operations" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Mathematical Operations
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#arithmetic-operators" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Arithmetic Operators
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#comparison-operators" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Comparison Operators
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#logical-operators" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Logical Operators
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#bitwise-operators" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Bitwise Operators
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#compound-assignment-operators" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Compound Assignment Operators
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#operator-precedence" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Operator Precedence
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#short-circuit-evaluation" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Short Circuit Evaluation
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#decision-statements" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Decision Statements
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="Decision Statements">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#if-else" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
If Else
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#if-else-if-else" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
If, Else If, Else
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#ternary-operator" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Ternary Operator
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#switch" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Switch
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#loop-statements" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Loop Statements
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="Loop Statements">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#while-loop" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
While Loop
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#do-while-loop" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Do While Loop
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#for-loop" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
For Loop
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#foreach-loop" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Foreach Loop
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#multiple-iterators-in-for-loop" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Multiple iterators in For Loop
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#forced-program-termination" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Forced Program Termination
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#assertion-checks" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Assertion Checks
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#static-methods" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Static Methods
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="Static Methods">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#static-void-method-definition" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Static Void Method Definition
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#static-method-definition" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Static Method Definition
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#static-method-invocation" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Static Method Invocation
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#array" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Array
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#array-declaration" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Array Declaration
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#array-creation-by-initialization" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Array Creation by Initialization
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="Array Creation by Initialization">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#arrays-as-method-parameters" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Arrays as method parameters
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#equality-of-arrays" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Equality of Arrays
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#methods-returning-arrays" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Methods returning Arrays
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#variable-numbers-of-parameters-in-a-method" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Variable numbers of parameters in a method
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="Variable numbers of parameters in a method">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#multi-dimensional-arrays" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Multi-Dimensional Arrays
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#multi-dimensional-arrays-as-parameters" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Multi-Dimensional Arrays as parameters
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#methods-returning-multi-dimensional-arrays" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Methods returning multi-dimensional arrays
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#array-length-of-multi-dimensional-arrays" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Array Length of multi-dimensional arrays
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#irregular-table-visualization" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Irregular Table Visualization
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#recursion-guidelines" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Recursion Guidelines
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#exception-handling" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Exception Handling
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="Exception Handling">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#try-catch-finally" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Try-Catch-Finally
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#try-with-resources" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Try with Resources
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#throw-throws" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Throw & Throws
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#defining-personalized-exceptions" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Defining Personalized Exceptions
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#object-oriented-programming" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Object Oriented Programming
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="Object Oriented Programming">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#access-modifiers" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Access Modifiers
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#instance-method-definition" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Instance Method Definition
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#void-instance-method" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Void Instance Method
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#class-definition" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Class Definition
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#this-identifier" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
This identifier
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#classes-and-reference-addresses" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Classes and Reference Addresses
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#constructors" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Constructors
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#static-variables" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Static Variables
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#getters-setter-methods" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Getters & Setter Methods
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#tostring-method" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
ToString() Method
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#static-methods-in-classes" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Static Methods in Classes
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#method-overloading" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Method Overloading
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#inheritance-method-overriding" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Inheritance & Method Overriding
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#abstract-classes-abstract-methods" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Abstract Classes & Abstract Methods
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#interfaces" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Interfaces
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#enumerations" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Enumerations
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#anonymous-classes" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Anonymous Classes
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#cloning" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Cloning
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#generics" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Generics
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="Generics">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#multiple-generics" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Multiple Generics
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#parameters-constraints" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Parameters Constraints
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#generic-methods" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Generic Methods
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#file-io" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
File I/O
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="File I/O">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#text-files" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Text Files
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="Text Files">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#writing-on-a-file" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Writing on a file
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#reading-from-a-file" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Reading from a file
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#file-class" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
File() class
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#binary-files" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Binary Files
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="Binary Files">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#writing-to-a-binary-file" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Writing to a binary file
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#reading-from-a-binary-file" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Reading from a binary file
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#object-array-io-with-binary-files-serialization" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Object & Array I/O with Binary Files (Serialization)
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#functional-programming-in-java" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Functional Programming in Java
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="Functional Programming in Java">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#functional-interfaces" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Functional Interfaces
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#streams" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Streams
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#lambda-expressions" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Lambda Expressions
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="java-collection-framework.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Java Collection Framework
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="dao.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
DAO
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item md-nav__item--nested">
|
|
|
|
|
|
|
|
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_10_4" >
|
|
|
|
|
|
<label class="md-nav__link" for="__nav_4_10_4" id="__nav_4_10_4_label" tabindex="0">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Web
|
|
</span>
|
|
|
|
|
|
<span class="md-nav__icon md-icon"></span>
|
|
</label>
|
|
|
|
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_4_10_4_label" aria-expanded="false">
|
|
<label class="md-nav__title" for="__nav_4_10_4">
|
|
<span class="md-nav__icon md-icon"></span>
|
|
Web
|
|
</label>
|
|
<ul class="md-nav__list" data-md-scrollfix>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="web/servlet.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Serverlet
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item md-nav__item--nested">
|
|
|
|
|
|
|
|
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_10_4_2" >
|
|
|
|
|
|
<label class="md-nav__link" for="__nav_4_10_4_2" id="__nav_4_10_4_2_label" tabindex="0">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Spring
|
|
</span>
|
|
|
|
|
|
<span class="md-nav__icon md-icon"></span>
|
|
</label>
|
|
|
|
<nav class="md-nav" data-md-level="4" aria-labelledby="__nav_4_10_4_2_label" aria-expanded="false">
|
|
<label class="md-nav__title" for="__nav_4_10_4_2">
|
|
<span class="md-nav__icon md-icon"></span>
|
|
Spring
|
|
</label>
|
|
<ul class="md-nav__list" data-md-scrollfix>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="spring/pom.xml.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
POM
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="spring/spring-project.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Project Structure
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
|
|
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
|
|
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
|
|
|
|
|
|
|
|
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_11" >
|
|
|
|
|
|
<label class="md-nav__link" for="__nav_4_11" id="__nav_4_11_label" tabindex="">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
PHP
|
|
</span>
|
|
|
|
|
|
<span class="md-nav__icon md-icon"></span>
|
|
</label>
|
|
|
|
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_4_11_label" aria-expanded="false">
|
|
<label class="md-nav__title" for="__nav_4_11">
|
|
<span class="md-nav__icon md-icon"></span>
|
|
PHP
|
|
</label>
|
|
<ul class="md-nav__list" data-md-scrollfix>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../php/php.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
PHP
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../php/database.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Database
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../php/web.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Web
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../php/dependency-injection.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Dependency Injection
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../php/unit-tests.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Unit Tests
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../php/composer.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Composer
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../php/psr-7.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
PSR 7
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../php/plates-templating.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Plates
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item md-nav__item--nested">
|
|
|
|
|
|
|
|
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_11_9" >
|
|
|
|
|
|
<label class="md-nav__link" for="__nav_4_11_9" id="__nav_4_11_9_label" tabindex="0">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Simple MVC
|
|
</span>
|
|
|
|
|
|
<span class="md-nav__icon md-icon"></span>
|
|
</label>
|
|
|
|
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_4_11_9_label" aria-expanded="false">
|
|
<label class="md-nav__title" for="__nav_4_11_9">
|
|
<span class="md-nav__icon md-icon"></span>
|
|
Simple MVC
|
|
</label>
|
|
<ul class="md-nav__list" data-md-scrollfix>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../php/simple-mvc/simple-mvc.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Simple MVC
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../php/simple-mvc/rest-api.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
REST API
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
|
|
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
|
|
|
|
|
|
|
|
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_12" >
|
|
|
|
|
|
<label class="md-nav__link" for="__nav_4_12" id="__nav_4_12_label" tabindex="">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Rust
|
|
</span>
|
|
|
|
|
|
<span class="md-nav__icon md-icon"></span>
|
|
</label>
|
|
|
|
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_4_12_label" aria-expanded="false">
|
|
<label class="md-nav__title" for="__nav_4_12">
|
|
<span class="md-nav__icon md-icon"></span>
|
|
Rust
|
|
</label>
|
|
<ul class="md-nav__list" data-md-scrollfix>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../rust/rust.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Rust
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../rust/macros.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Macros
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../rust/cargo.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Cargo
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../rust/concurrency.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Concurrency
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../rust/unit-tests.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Unit Tests
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
|
|
|
|
|
|
|
|
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_13" >
|
|
|
|
|
|
<label class="md-nav__link" for="__nav_4_13" id="__nav_4_13_label" tabindex="">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Javascript
|
|
</span>
|
|
|
|
|
|
<span class="md-nav__icon md-icon"></span>
|
|
</label>
|
|
|
|
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_4_13_label" aria-expanded="false">
|
|
<label class="md-nav__title" for="__nav_4_13">
|
|
<span class="md-nav__icon md-icon"></span>
|
|
Javascript
|
|
</label>
|
|
<ul class="md-nav__list" data-md-scrollfix>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../javascript/javascript.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Javascript
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../javascript/dom.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
DOM
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../javascript/events-animation.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Events & Animation
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../javascript/ajax.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
AJAX
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../javascript/jquery.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
jQuery
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item md-nav__item--nested">
|
|
|
|
|
|
|
|
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_13_6" >
|
|
|
|
|
|
<label class="md-nav__link" for="__nav_4_13_6" id="__nav_4_13_6_label" tabindex="0">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
React
|
|
</span>
|
|
|
|
|
|
<span class="md-nav__icon md-icon"></span>
|
|
</label>
|
|
|
|
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_4_13_6_label" aria-expanded="false">
|
|
<label class="md-nav__title" for="__nav_4_13_6">
|
|
<span class="md-nav__icon md-icon"></span>
|
|
React
|
|
</label>
|
|
<ul class="md-nav__list" data-md-scrollfix>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../javascript/react/react.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
React
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../javascript/react/react-router.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
React Router
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../javascript/react/react-tests.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
React Tests
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../javascript/react/redux.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Redux
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../javascript/react/redux-tests.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Redux Tests
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../javascript/svelte/svelte.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Svelte
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
|
|
|
|
|
|
|
|
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_14" >
|
|
|
|
|
|
<label class="md-nav__link" for="__nav_4_14" id="__nav_4_14_label" tabindex="">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
PowerShell
|
|
</span>
|
|
|
|
|
|
<span class="md-nav__icon md-icon"></span>
|
|
</label>
|
|
|
|
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_4_14_label" aria-expanded="false">
|
|
<label class="md-nav__title" for="__nav_4_14">
|
|
<span class="md-nav__icon md-icon"></span>
|
|
PowerShell
|
|
</label>
|
|
<ul class="md-nav__list" data-md-scrollfix>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../powershell/scripting.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Scripting
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../powershell/commands.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Commands
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
|
|
|
|
|
|
|
|
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_15" >
|
|
|
|
|
|
<label class="md-nav__link" for="__nav_4_15" id="__nav_4_15_label" tabindex="">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Bash
|
|
</span>
|
|
|
|
|
|
<span class="md-nav__icon md-icon"></span>
|
|
</label>
|
|
|
|
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_4_15_label" aria-expanded="false">
|
|
<label class="md-nav__title" for="__nav_4_15">
|
|
<span class="md-nav__icon md-icon"></span>
|
|
Bash
|
|
</label>
|
|
<ul class="md-nav__list" data-md-scrollfix>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../bash/scripting.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Scripting
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../bash/commands.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Commands
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
|
|
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item md-nav__item--nested">
|
|
|
|
|
|
|
|
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_5" >
|
|
|
|
|
|
<label class="md-nav__link" for="__nav_5" id="__nav_5_label" tabindex="0">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Misc
|
|
</span>
|
|
|
|
|
|
<span class="md-nav__icon md-icon"></span>
|
|
</label>
|
|
|
|
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_5_label" aria-expanded="false">
|
|
<label class="md-nav__title" for="__nav_5">
|
|
<span class="md-nav__icon md-icon"></span>
|
|
Misc
|
|
</label>
|
|
<ul class="md-nav__list" data-md-scrollfix>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../misc/git.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Git
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../misc/graph-ql.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
GraphQL
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../misc/regular-expressions.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
RegEx
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../misc/ssh.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
SSH
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../misc/web-components.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
WebComponents
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item md-nav__item--nested">
|
|
|
|
|
|
|
|
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_6" >
|
|
|
|
|
|
<label class="md-nav__link" for="__nav_6" id="__nav_6_label" tabindex="0">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Linux
|
|
</span>
|
|
|
|
|
|
<span class="md-nav__icon md-icon"></span>
|
|
</label>
|
|
|
|
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_6_label" aria-expanded="false">
|
|
<label class="md-nav__title" for="__nav_6">
|
|
<span class="md-nav__icon md-icon"></span>
|
|
Linux
|
|
</label>
|
|
<ul class="md-nav__list" data-md-scrollfix>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item md-nav__item--nested">
|
|
|
|
|
|
|
|
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_6_1" >
|
|
|
|
|
|
<label class="md-nav__link" for="__nav_6_1" id="__nav_6_1_label" tabindex="0">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Filesystem
|
|
</span>
|
|
|
|
|
|
<span class="md-nav__icon md-icon"></span>
|
|
</label>
|
|
|
|
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_6_1_label" aria-expanded="false">
|
|
<label class="md-nav__title" for="__nav_6_1">
|
|
<span class="md-nav__icon md-icon"></span>
|
|
Filesystem
|
|
</label>
|
|
<ul class="md-nav__list" data-md-scrollfix>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../linux/filesystem/file-links.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
File Links
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../linux/filesystem/procfs.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
/proc
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../linux/filesystem/sysfs.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
/sys
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item md-nav__item--nested">
|
|
|
|
|
|
|
|
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_6_2" >
|
|
|
|
|
|
<label class="md-nav__link" for="__nav_6_2" id="__nav_6_2_label" tabindex="0">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
System Init
|
|
</span>
|
|
|
|
|
|
<span class="md-nav__icon md-icon"></span>
|
|
</label>
|
|
|
|
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_6_2_label" aria-expanded="false">
|
|
<label class="md-nav__title" for="__nav_6_2">
|
|
<span class="md-nav__icon md-icon"></span>
|
|
System Init
|
|
</label>
|
|
<ul class="md-nav__list" data-md-scrollfix>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../linux/init/systemd.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Systemd
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../linux/init/open-rc.html" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
OpenRC
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
|
|
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
|
|
|
|
</ul>
|
|
</nav>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
<div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
|
|
<div class="md-sidebar__scrollwrap">
|
|
<div class="md-sidebar__inner">
|
|
|
|
|
|
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<label class="md-nav__title" for="__toc">
|
|
<span class="md-nav__icon md-icon"></span>
|
|
Table of contents
|
|
</label>
|
|
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#basics" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Basics
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="Basics">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#main-method-entry-point-of-algorithm" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Main Method (entry point of algorithm)
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#variable-assignment" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Variable Assignment
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#constant-definition-outside-of-main-methodfunction" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Constant Definition (outside of main method/function)
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#constant-definition-inside-main-methodfunction" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Constant Definition (inside main method/function)
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#screen-output" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Screen Output
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#output-formatting" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Output Formatting
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#keyboard-input" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Keyboard Input
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="Keyboard Input">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#primitive-types" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Primitive Types
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#floating-point-numbers-precision-calcs" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Floating-Point numbers & Precision Calcs
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#type-conversion-casting-type-checking" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Type Conversion (casting) & Type checking
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#wrapper-classes" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Wrapper Classes
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#string-char" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
String & Char
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#special-characters" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Special Characters
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#string-concatenation" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
String Concatenation
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#string-conversion-to-number" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
String Conversion to Number
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#string-class-methods" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
String Class Methods
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#mathematical-operations" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Mathematical Operations
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#arithmetic-operators" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Arithmetic Operators
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#comparison-operators" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Comparison Operators
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#logical-operators" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Logical Operators
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#bitwise-operators" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Bitwise Operators
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#compound-assignment-operators" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Compound Assignment Operators
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#operator-precedence" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Operator Precedence
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#short-circuit-evaluation" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Short Circuit Evaluation
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#decision-statements" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Decision Statements
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="Decision Statements">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#if-else" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
If Else
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#if-else-if-else" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
If, Else If, Else
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#ternary-operator" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Ternary Operator
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#switch" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Switch
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#loop-statements" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Loop Statements
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="Loop Statements">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#while-loop" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
While Loop
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#do-while-loop" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Do While Loop
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#for-loop" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
For Loop
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#foreach-loop" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Foreach Loop
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#multiple-iterators-in-for-loop" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Multiple iterators in For Loop
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#forced-program-termination" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Forced Program Termination
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#assertion-checks" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Assertion Checks
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#static-methods" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Static Methods
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="Static Methods">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#static-void-method-definition" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Static Void Method Definition
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#static-method-definition" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Static Method Definition
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#static-method-invocation" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Static Method Invocation
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#array" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Array
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#array-declaration" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Array Declaration
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#array-creation-by-initialization" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Array Creation by Initialization
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="Array Creation by Initialization">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#arrays-as-method-parameters" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Arrays as method parameters
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#equality-of-arrays" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Equality of Arrays
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#methods-returning-arrays" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Methods returning Arrays
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#variable-numbers-of-parameters-in-a-method" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Variable numbers of parameters in a method
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="Variable numbers of parameters in a method">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#multi-dimensional-arrays" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Multi-Dimensional Arrays
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#multi-dimensional-arrays-as-parameters" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Multi-Dimensional Arrays as parameters
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#methods-returning-multi-dimensional-arrays" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Methods returning multi-dimensional arrays
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#array-length-of-multi-dimensional-arrays" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Array Length of multi-dimensional arrays
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#irregular-table-visualization" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Irregular Table Visualization
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#recursion-guidelines" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Recursion Guidelines
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#exception-handling" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Exception Handling
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="Exception Handling">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#try-catch-finally" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Try-Catch-Finally
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#try-with-resources" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Try with Resources
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#throw-throws" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Throw & Throws
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#defining-personalized-exceptions" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Defining Personalized Exceptions
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#object-oriented-programming" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Object Oriented Programming
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="Object Oriented Programming">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#access-modifiers" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Access Modifiers
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#instance-method-definition" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Instance Method Definition
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#void-instance-method" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Void Instance Method
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#class-definition" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Class Definition
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#this-identifier" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
This identifier
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#classes-and-reference-addresses" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Classes and Reference Addresses
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#constructors" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Constructors
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#static-variables" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Static Variables
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#getters-setter-methods" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Getters & Setter Methods
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#tostring-method" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
ToString() Method
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#static-methods-in-classes" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Static Methods in Classes
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#method-overloading" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Method Overloading
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#inheritance-method-overriding" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Inheritance & Method Overriding
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#abstract-classes-abstract-methods" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Abstract Classes & Abstract Methods
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#interfaces" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Interfaces
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#enumerations" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Enumerations
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#anonymous-classes" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Anonymous Classes
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#cloning" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Cloning
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#generics" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Generics
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="Generics">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#multiple-generics" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Multiple Generics
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#parameters-constraints" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Parameters Constraints
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#generic-methods" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Generic Methods
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#file-io" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
File I/O
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="File I/O">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#text-files" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Text Files
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="Text Files">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#writing-on-a-file" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Writing on a file
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#reading-from-a-file" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Reading from a file
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#file-class" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
File() class
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#binary-files" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Binary Files
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="Binary Files">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#writing-to-a-binary-file" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Writing to a binary file
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#reading-from-a-binary-file" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Reading from a binary file
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#object-array-io-with-binary-files-serialization" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Object & Array I/O with Binary Files (Serialization)
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#functional-programming-in-java" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Functional Programming in Java
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="Functional Programming in Java">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#functional-interfaces" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Functional Interfaces
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#streams" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Streams
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#lambda-expressions" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Lambda Expressions
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
|
|
</nav>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
<div class="md-content" data-md-component="content">
|
|
<article class="md-content__inner md-typeset">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<h1 id="java">Java</h1>
|
|
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">Java</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-1">1</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-2">2</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-3">3</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-1" name="__codelineno-0-1"></a><span class="c1">//single line comment</span>
|
|
<a id="__codelineno-0-2" name="__codelineno-0-2"></a><span class="cm">/* multi line comment */</span>
|
|
<a id="__codelineno-0-3" name="__codelineno-0-3"></a><span class="cm">/** javaDoc docstring */</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th>Java element</th>
|
|
<th>Case</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td>package</td>
|
|
<td>lowercase</td>
|
|
</tr>
|
|
<tr>
|
|
<td>class</td>
|
|
<td>PascalCase</td>
|
|
</tr>
|
|
<tr>
|
|
<td>variable</td>
|
|
<td>camelCase</td>
|
|
</tr>
|
|
<tr>
|
|
<td>method</td>
|
|
<td>camelCase</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h2 id="basics">Basics</h2>
|
|
<p>Package definition: <code>package <package_location>;</code></p>
|
|
<h3 id="main-method-entry-point-of-algorithm">Main Method (entry point of algorithm)</h3>
|
|
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">Java</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-1-1">1</a></span>
|
|
<span class="normal"><a href="#__codelineno-1-2">2</a></span>
|
|
<span class="normal"><a href="#__codelineno-1-3">3</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-1-1" name="__codelineno-1-1"></a><span class="kd">public</span><span class="w"> </span><span class="kd">static</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">main</span><span class="w"> </span><span class="p">(</span><span class="n">String</span><span class="o">[]</span><span class="w"> </span><span class="n">args</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
|
|
<a id="__codelineno-1-2" name="__codelineno-1-2"></a><span class="w"> </span><span class="c1">//code here</span>
|
|
<a id="__codelineno-1-3" name="__codelineno-1-3"></a><span class="p">}</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
<h3 id="variable-assignment">Variable Assignment</h3>
|
|
<p><code>Type variable_1 = <expr>, ..., variable_n = <expr>;</code></p>
|
|
<h3 id="constant-definition-outside-of-main-methodfunction">Constant Definition (outside of main method/function)</h3>
|
|
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">Java</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-2-1">1</a></span>
|
|
<span class="normal"><a href="#__codelineno-2-2">2</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-2-1" name="__codelineno-2-1"></a><span class="kd">public</span><span class="w"> </span><span class="kd">static</span><span class="w"> </span><span class="kd">final</span><span class="w"> </span><span class="n">Type</span><span class="w"> </span><span class="n">CONSTANT_NAME</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">value</span><span class="p">;</span>
|
|
<a id="__codelineno-2-2" name="__codelineno-2-2"></a><span class="kd">public</span><span class="w"> </span><span class="kd">static</span><span class="w"> </span><span class="kd">final</span><span class="w"> </span><span class="kt">double</span><span class="w"> </span><span class="n">PI</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">3.14159</span><span class="p">;</span><span class="w"> </span><span class="c1">//example</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
<h3 id="constant-definition-inside-main-methodfunction">Constant Definition (inside main method/function)</h3>
|
|
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">Java</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-3-1">1</a></span>
|
|
<span class="normal"><a href="#__codelineno-3-2">2</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-3-1" name="__codelineno-3-1"></a><span class="kd">final</span><span class="w"> </span><span class="n">Type</span><span class="w"> </span><span class="n">CONSTANT_NAME</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">value</span><span class="p">;</span>
|
|
<a id="__codelineno-3-2" name="__codelineno-3-2"></a><span class="kd">final</span><span class="w"> </span><span class="kt">double</span><span class="w"> </span><span class="n">PI</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">3.14159</span><span class="p">;</span><span class="w"> </span><span class="c1">//example</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
<h3 id="screen-output">Screen Output</h3>
|
|
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">Java</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-4-1">1</a></span>
|
|
<span class="normal"><a href="#__codelineno-4-2">2</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-4-1" name="__codelineno-4-1"></a><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="n">output_1</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">_</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">output_n</span><span class="p">);</span><span class="w"> </span><span class="c1">//newline at every invocation</span>
|
|
<a id="__codelineno-4-2" name="__codelineno-4-2"></a><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">print</span><span class="p">(</span><span class="n">output_1</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">_</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">output_n</span><span class="p">);</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
<h3 id="output-formatting">Output Formatting</h3>
|
|
<p><a href="https://dzone.com/articles/java-string-format-examples">String.format() Examples</a></p>
|
|
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">Java</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-5-1">1</a></span>
|
|
<span class="normal"><a href="#__codelineno-5-2">2</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-5-1" name="__codelineno-5-1"></a><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">printf</span><span class="p">(</span><span class="s">"string %.."</span><span class="p">,</span><span class="w"> </span><span class="n">variable</span><span class="p">);</span>
|
|
<a id="__codelineno-5-2" name="__codelineno-5-2"></a><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="n">String</span><span class="p">.</span><span class="na">format</span><span class="p">(</span><span class="n">format</span><span class="p">,</span><span class="w"> </span><span class="n">args</span><span class="p">));</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
<p>Methods inherited from C. The value pf the variable substitutes %.<br />
|
|
<code>%d</code> int, <code>%f</code> float, <code>%c</code> char, <code>%s</code> string, <code>%e</code> scientific notation.<br />
|
|
<code>%digitNumber.decimalDigitNumber</code> specifies the space occupied by the output.</p>
|
|
<p><code>NumberFormat</code> class is used to format a number output.</p>
|
|
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">Java</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-6-1">1</a></span>
|
|
<span class="normal"><a href="#__codelineno-6-2">2</a></span>
|
|
<span class="normal"><a href="#__codelineno-6-3">3</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-6-1" name="__codelineno-6-1"></a><span class="n">Locale</span><span class="w"> </span><span class="n">locale</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Locale</span><span class="p">(</span><span class="s">"language"</span><span class="p">,</span><span class="w"> </span><span class="s">"country"</span><span class="p">);</span><span class="w"> </span><span class="c1">// as defined by IETF lang tag, RCF 5646, RCF 4647</span>
|
|
<a id="__codelineno-6-2" name="__codelineno-6-2"></a><span class="n">NumberFormat</span><span class="w"> </span><span class="n">fmt</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">NumberFormat</span><span class="p">.</span><span class="na">getCurrencyInstance</span><span class="p">(</span><span class="n">locale</span><span class="p">);</span><span class="w"> </span><span class="c1">// format a number as a currency based on a Locale</span>
|
|
<a id="__codelineno-6-3" name="__codelineno-6-3"></a><span class="n">fmt</span><span class="p">.</span><span class="na">format</span><span class="p">(</span><span class="n">number</span><span class="p">);</span><span class="w"> </span><span class="c1">// apply format to a number, returns a String</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
<h2 id="keyboard-input">Keyboard Input</h2>
|
|
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">Java</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-7-1"> 1</a></span>
|
|
<span class="normal"><a href="#__codelineno-7-2"> 2</a></span>
|
|
<span class="normal"><a href="#__codelineno-7-3"> 3</a></span>
|
|
<span class="normal"><a href="#__codelineno-7-4"> 4</a></span>
|
|
<span class="normal"><a href="#__codelineno-7-5"> 5</a></span>
|
|
<span class="normal"><a href="#__codelineno-7-6"> 6</a></span>
|
|
<span class="normal"><a href="#__codelineno-7-7"> 7</a></span>
|
|
<span class="normal"><a href="#__codelineno-7-8"> 8</a></span>
|
|
<span class="normal"><a href="#__codelineno-7-9"> 9</a></span>
|
|
<span class="normal"><a href="#__codelineno-7-10">10</a></span>
|
|
<span class="normal"><a href="#__codelineno-7-11">11</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-7-1" name="__codelineno-7-1"></a><span class="kn">import</span><span class="w"> </span><span class="nn">java.util.Scanner</span><span class="p">;</span><span class="w"> </span><span class="c1">//package import</span>
|
|
<a id="__codelineno-7-2" name="__codelineno-7-2"></a><span class="n">Scanner</span><span class="w"> </span><span class="n">scanner</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Scanner</span><span class="p">(</span><span class="n">System</span><span class="p">.</span><span class="na">in</span><span class="p">);</span><span class="w"> </span><span class="c1">//Scanner obj init</span>
|
|
<a id="__codelineno-7-3" name="__codelineno-7-3"></a><span class="n">scanner</span><span class="p">.</span><span class="na">useDelimiter</span><span class="p">(</span><span class="s">"delimitatore"</span><span class="p">);</span><span class="w"> </span><span class="c1">//delimiter setting</span>
|
|
<a id="__codelineno-7-4" name="__codelineno-7-4"></a><span class="n">scanner</span><span class="p">.</span><span class="na">close</span><span class="p">()</span><span class="w"> </span><span class="c1">//closing of Scanner, releases memory</span>
|
|
<a id="__codelineno-7-5" name="__codelineno-7-5"></a>
|
|
<a id="__codelineno-7-6" name="__codelineno-7-6"></a><span class="kt">int</span><span class="w"> </span><span class="n">variable_int_1</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">scanner</span><span class="p">.</span><span class="na">nextInt</span><span class="p">();</span><span class="w"> </span><span class="c1">//takes integer number</span>
|
|
<a id="__codelineno-7-7" name="__codelineno-7-7"></a><span class="n">String</span><span class="w"> </span><span class="n">string_1</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">scanner</span><span class="p">.</span><span class="na">nextLine</span><span class="p">();</span><span class="w"> </span><span class="c1">//takes line of text (\n ends line)</span>
|
|
<a id="__codelineno-7-8" name="__codelineno-7-8"></a><span class="n">String</span><span class="w"> </span><span class="n">string_1</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">scanner</span><span class="p">.</span><span class="na">next</span><span class="p">();</span><span class="w"> </span><span class="c1">//takes text (space ends word)</span>
|
|
<a id="__codelineno-7-9" name="__codelineno-7-9"></a><span class="kt">double</span><span class="w"> </span><span class="n">variable_double_1</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">scanner</span><span class="p">.</span><span class="na">nextDouble</span><span class="p">();</span><span class="w"> </span><span class="c1">//takes double decimal number</span>
|
|
<a id="__codelineno-7-10" name="__codelineno-7-10"></a><span class="kt">boolean</span><span class="w"> </span><span class="n">variable_bool</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">scanner</span><span class="p">.</span><span class="na">nextBoolean</span><span class="p">();</span><span class="w"> </span><span class="c1">//takes boolean value</span>
|
|
<a id="__codelineno-7-11" name="__codelineno-7-11"></a><span class="c1">//(TRUE, FALSE, true, false, True, False)</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
<p>The <code>nextLine()</code> method imports from the <strong>last</strong> <code>\n</code>.<br />
|
|
Thus when switching to a different input method is necessary to call <code>nextLine()</code> one more time to avoid errors.</p>
|
|
<h3 id="primitive-types">Primitive Types</h3>
|
|
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">Java</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-8-1">1</a></span>
|
|
<span class="normal"><a href="#__codelineno-8-2">2</a></span>
|
|
<span class="normal"><a href="#__codelineno-8-3">3</a></span>
|
|
<span class="normal"><a href="#__codelineno-8-4">4</a></span>
|
|
<span class="normal"><a href="#__codelineno-8-5">5</a></span>
|
|
<span class="normal"><a href="#__codelineno-8-6">6</a></span>
|
|
<span class="normal"><a href="#__codelineno-8-7">7</a></span>
|
|
<span class="normal"><a href="#__codelineno-8-8">8</a></span>
|
|
<span class="normal"><a href="#__codelineno-8-9">9</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-8-1" name="__codelineno-8-1"></a><span class="n">TYPE</span><span class="w"> </span><span class="n">WRAPPER</span><span class="w"> </span><span class="n">SIZE</span><span class="w"> </span><span class="n">MIN_VALUE</span><span class="w"> </span><span class="n">MAX_VALUE</span>
|
|
<a id="__codelineno-8-2" name="__codelineno-8-2"></a><span class="kt">int</span><span class="w"> </span><span class="n">Integer</span><span class="w"> </span><span class="o">-</span><span class="mi">2147483648</span><span class="w"> </span><span class="mi">2147483647</span>
|
|
<a id="__codelineno-8-3" name="__codelineno-8-3"></a><span class="kt">byte</span><span class="w"> </span><span class="n">Byte</span><span class="w"> </span><span class="mi">8</span><span class="w"> </span><span class="n">bit</span><span class="w"> </span><span class="o">-</span><span class="mi">128</span><span class="w"> </span><span class="mi">127</span>
|
|
<a id="__codelineno-8-4" name="__codelineno-8-4"></a><span class="kt">short</span><span class="w"> </span><span class="n">Short</span><span class="w"> </span><span class="mi">16</span><span class="w"> </span><span class="n">bit</span><span class="w"> </span><span class="o">-</span><span class="mi">32768</span><span class="w"> </span><span class="mi">32767</span>
|
|
<a id="__codelineno-8-5" name="__codelineno-8-5"></a><span class="kt">long</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="n">L</span><span class="w"> </span><span class="n">Long</span><span class="w"> </span><span class="mi">32</span><span class="w"> </span><span class="n">bit</span><span class="w"> </span><span class="o">-</span><span class="mi">9223372036854775808</span><span class="w"> </span><span class="mi">9223372036854775807</span>
|
|
<a id="__codelineno-8-6" name="__codelineno-8-6"></a><span class="kt">float</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="n">f</span><span class="w"> </span><span class="n">Float</span><span class="w"> </span><span class="mi">32</span><span class="w"> </span><span class="n">bit</span><span class="w"> </span><span class="mf">1.4</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="mi">10</span><span class="o">^-</span><span class="mi">45</span><span class="w"> </span><span class="mf">3.4028235</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="mi">10</span><span class="o">^</span><span class="mi">38</span>
|
|
<a id="__codelineno-8-7" name="__codelineno-8-7"></a><span class="kt">double</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="n">d</span><span class="w"> </span><span class="n">Double</span><span class="w"> </span><span class="mi">64</span><span class="w"> </span><span class="n">bit</span><span class="w"> </span><span class="mf">4.9</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="mi">10</span><span class="o">^-</span><span class="mi">324</span><span class="w"> </span><span class="mf">1.7976931348623157</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="mi">10</span><span class="o">^</span><span class="mi">308</span>
|
|
<a id="__codelineno-8-8" name="__codelineno-8-8"></a><span class="kt">char</span><span class="w"> </span><span class="n">Character</span><span class="w"> </span><span class="mi">16</span><span class="w"> </span><span class="n">bit</span><span class="w"> </span><span class="n">U</span><span class="o">+</span><span class="mo">0000</span><span class="w"> </span><span class="p">(</span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="n">U</span><span class="o">+</span><span class="n">FFFF</span><span class="w"> </span><span class="p">(</span><span class="mi">65535</span><span class="p">)</span>
|
|
<a id="__codelineno-8-9" name="__codelineno-8-9"></a><span class="kt">boolean</span><span class="w"> </span><span class="n">Boolean</span><span class="w"> </span><span class="kc">false</span><span class="w"> </span><span class="kc">true</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
<p>Digits can be separated by _ (underscore).<br />
|
|
If not specified int & double are the default types.</p>
|
|
<h3 id="floating-point-numbers-precision-calcs">Floating-Point numbers & Precision Calcs</h3>
|
|
<p>Don't use <code>==</code> or <code>!=</code> to confront floating value numbers since they use approximation or have a lot of digits.<br />
|
|
It's best to check if the difference between two numbers is small enough.<br />
|
|
For high precision calcs is best to use <code>BigDecimal</code>.</p>
|
|
<h3 id="type-conversion-casting-type-checking">Type Conversion (casting) & Type checking</h3>
|
|
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">Java</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-9-1">1</a></span>
|
|
<span class="normal"><a href="#__codelineno-9-2">2</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-9-1" name="__codelineno-9-1"></a><span class="n">Type</span><span class="w"> </span><span class="n">variable</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="n">Type</span><span class="p">)</span><span class="w"> </span><span class="o"><</span><span class="n">expression</span><span class="o">></span><span class="p">;</span><span class="w"> </span><span class="c1">// convert to other Type</span>
|
|
<a id="__codelineno-9-2" name="__codelineno-9-2"></a><span class="kd">var</span><span class="w"> </span><span class="n">instanceof</span><span class="w"> </span><span class="n">Type</span><span class="p">;</span><span class="w"> </span><span class="c1">// true if var is an instance of Type</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
<h3 id="wrapper-classes">Wrapper Classes</h3>
|
|
<p>Every primitive type has a corresponding wrapper class.<br />
|
|
Wrapper classes permits the creation of an object with the same type of a primitive type but with added methods and constants.</p>
|
|
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">Java</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-10-1"> 1</a></span>
|
|
<span class="normal"><a href="#__codelineno-10-2"> 2</a></span>
|
|
<span class="normal"><a href="#__codelineno-10-3"> 3</a></span>
|
|
<span class="normal"><a href="#__codelineno-10-4"> 4</a></span>
|
|
<span class="normal"><a href="#__codelineno-10-5"> 5</a></span>
|
|
<span class="normal"><a href="#__codelineno-10-6"> 6</a></span>
|
|
<span class="normal"><a href="#__codelineno-10-7"> 7</a></span>
|
|
<span class="normal"><a href="#__codelineno-10-8"> 8</a></span>
|
|
<span class="normal"><a href="#__codelineno-10-9"> 9</a></span>
|
|
<span class="normal"><a href="#__codelineno-10-10">10</a></span>
|
|
<span class="normal"><a href="#__codelineno-10-11">11</a></span>
|
|
<span class="normal"><a href="#__codelineno-10-12">12</a></span>
|
|
<span class="normal"><a href="#__codelineno-10-13">13</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-10-1" name="__codelineno-10-1"></a><span class="n">WrapperClass</span><span class="w"> </span><span class="n">objectName</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">WrapperClass</span><span class="p">(</span><span class="n">primitiveValue</span><span class="p">);</span><span class="w"> </span><span class="c1">//declaration</span>
|
|
<a id="__codelineno-10-2" name="__codelineno-10-2"></a><span class="n">WrapperClass</span><span class="w"> </span><span class="n">objectName</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">primitiveValue</span><span class="p">;</span><span class="w"> </span><span class="c1">//shortened declaration</span>
|
|
<a id="__codelineno-10-3" name="__codelineno-10-3"></a>
|
|
<a id="__codelineno-10-4" name="__codelineno-10-4"></a>
|
|
<a id="__codelineno-10-5" name="__codelineno-10-5"></a><span class="n">Type</span><span class="w"> </span><span class="n">variable</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">object</span><span class="p">.</span><span class="o"><</span><span class="n">Type</span><span class="o">></span><span class="n">Value</span><span class="p">();</span><span class="w"> </span><span class="c1">//unboxing</span>
|
|
<a id="__codelineno-10-6" name="__codelineno-10-6"></a><span class="n">Type</span><span class="w"> </span><span class="n">variable</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">object</span><span class="p">;</span><span class="w"> </span><span class="c1">//autoboxing</span>
|
|
<a id="__codelineno-10-7" name="__codelineno-10-7"></a><span class="n">Type</span><span class="w"> </span><span class="n">variable</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">WrapperClass</span><span class="p">(</span><span class="n">primitiveValue</span><span class="p">);</span><span class="w"> </span><span class="c1">//automatic unboxing</span>
|
|
<a id="__codelineno-10-8" name="__codelineno-10-8"></a>
|
|
<a id="__codelineno-10-9" name="__codelineno-10-9"></a><span class="n">WrapperClass</span><span class="p">.</span><span class="na">MIN_VALUE</span><span class="w"> </span><span class="c1">//constant holding min possible value of wrapper class</span>
|
|
<a id="__codelineno-10-10" name="__codelineno-10-10"></a><span class="n">WrapperClass</span><span class="p">.</span><span class="na">MAX_VALUE</span><span class="w"> </span><span class="c1">//constant holding man possible value of wrapper class</span>
|
|
<a id="__codelineno-10-11" name="__codelineno-10-11"></a>
|
|
<a id="__codelineno-10-12" name="__codelineno-10-12"></a><span class="n">WrapperClass</span><span class="p">.</span><span class="na">parseClasseWrapper</span><span class="p">(</span><span class="n">string</span><span class="p">);</span><span class="w"> </span><span class="c1">// converts the tring to the wrapper class, NumberFOrmatException on error</span>
|
|
<a id="__codelineno-10-13" name="__codelineno-10-13"></a><span class="n">WrapperClass</span><span class="p">.</span><span class="na">toString</span><span class="p">(</span><span class="n">primitive</span><span class="p">);</span><span class="w"> </span><span class="c1">// converts the wrapper class value to a string</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
<h3 id="string-char">String & Char</h3>
|
|
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">Java</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-11-1">1</a></span>
|
|
<span class="normal"><a href="#__codelineno-11-2">2</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-11-1" name="__codelineno-11-1"></a><span class="n">String</span><span class="w"> </span><span class="n">string</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">"text"</span><span class="p">;</span><span class="w"> </span><span class="c1">//strings always in double quotes</span>
|
|
<a id="__codelineno-11-2" name="__codelineno-11-2"></a><span class="kt">char</span><span class="w"> </span><span class="n">character</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="sc">'C'</span><span class="p">;</span><span class="w"> </span><span class="c1">//chars always in single quotes</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
<h3 id="special-characters">Special Characters</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th>Escape Character</th>
|
|
<th>Character</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td><code>\n</code></td>
|
|
<td>new line</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>\t</code></td>
|
|
<td>tab</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>\b</code></td>
|
|
<td>backspace</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>\r</code></td>
|
|
<td>carriage return</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>\f</code></td>
|
|
<td>form feed</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>\\</code></td>
|
|
<td>backslash</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>\"</code></td>
|
|
<td>double quote</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>\u<4_hex_digits></code></td>
|
|
<td>unicode characters</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>\x<digits></code></td>
|
|
<td>hexadecimal characters</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>\o<digits></code></td>
|
|
<td>octal characters</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>\<digits></code></td>
|
|
<td>ASCII character</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3 id="string-concatenation">String Concatenation</h3>
|
|
<p>The value of the variable is appende to the string literal.<br />
|
|
<code>"text" + variable</code><br />
|
|
String are immutable. Concatenation creates a new string.</p>
|
|
<h3 id="string-conversion-to-number">String Conversion to Number</h3>
|
|
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">Java</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-12-1">1</a></span>
|
|
<span class="normal"><a href="#__codelineno-12-2">2</a></span>
|
|
<span class="normal"><a href="#__codelineno-12-3">3</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-12-1" name="__codelineno-12-1"></a><span class="kt">double</span><span class="w"> </span><span class="n">d</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">Double</span><span class="p">.</span><span class="na">parseDouble</span><span class="p">(</span><span class="n">string</span><span class="p">);</span>
|
|
<a id="__codelineno-12-2" name="__codelineno-12-2"></a><span class="kt">float</span><span class="w"> </span><span class="n">f</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">Float</span><span class="p">.</span><span class="na">parseFloat</span><span class="p">(</span><span class="n">string</span><span class="p">);</span>
|
|
<a id="__codelineno-12-3" name="__codelineno-12-3"></a><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">integer</span><span class="p">.</span><span class="na">parseInt</span><span class="p">(</span><span class="n">string</span><span class="p">);</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
<h3 id="string-class-methods">String Class Methods</h3>
|
|
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">Java</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-13-1"> 1</a></span>
|
|
<span class="normal"><a href="#__codelineno-13-2"> 2</a></span>
|
|
<span class="normal"><a href="#__codelineno-13-3"> 3</a></span>
|
|
<span class="normal"><a href="#__codelineno-13-4"> 4</a></span>
|
|
<span class="normal"><a href="#__codelineno-13-5"> 5</a></span>
|
|
<span class="normal"><a href="#__codelineno-13-6"> 6</a></span>
|
|
<span class="normal"><a href="#__codelineno-13-7"> 7</a></span>
|
|
<span class="normal"><a href="#__codelineno-13-8"> 8</a></span>
|
|
<span class="normal"><a href="#__codelineno-13-9"> 9</a></span>
|
|
<span class="normal"><a href="#__codelineno-13-10">10</a></span>
|
|
<span class="normal"><a href="#__codelineno-13-11">11</a></span>
|
|
<span class="normal"><a href="#__codelineno-13-12">12</a></span>
|
|
<span class="normal"><a href="#__codelineno-13-13">13</a></span>
|
|
<span class="normal"><a href="#__codelineno-13-14">14</a></span>
|
|
<span class="normal"><a href="#__codelineno-13-15">15</a></span>
|
|
<span class="normal"><a href="#__codelineno-13-16">16</a></span>
|
|
<span class="normal"><a href="#__codelineno-13-17">17</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-13-1" name="__codelineno-13-1"></a><span class="n">string</span><span class="p">.</span><span class="na">equals</span><span class="p">(</span><span class="n">otherString</span><span class="p">);</span><span class="w"> </span><span class="c1">// returns TRUE if the strings are equal</span>
|
|
<a id="__codelineno-13-2" name="__codelineno-13-2"></a><span class="n">string</span><span class="p">.</span><span class="na">equalsIgnoreCase</span><span class="p">(</span><span class="n">otherString</span><span class="p">);</span><span class="w"> </span><span class="c1">// returns TRUE if the strings are equals ignoring the case</span>
|
|
<a id="__codelineno-13-3" name="__codelineno-13-3"></a><span class="n">string</span><span class="p">.</span><span class="na">charAt</span><span class="p">(</span><span class="n">index</span><span class="p">);</span><span class="w"> </span><span class="c1">// returns the character at position INDEX</span>
|
|
<a id="__codelineno-13-4" name="__codelineno-13-4"></a><span class="n">string</span><span class="p">.</span><span class="na">startsWith</span><span class="p">(</span><span class="n">otherString</span><span class="p">);</span><span class="w"> </span><span class="c1">// returns TRUE if string starts with otherString</span>
|
|
<a id="__codelineno-13-5" name="__codelineno-13-5"></a><span class="n">string</span><span class="p">.</span><span class="na">endsWith</span><span class="p">(</span><span class="n">otherString</span><span class="p">)</span><span class="w"> </span><span class="c1">// returns TRUE if string ends with otherString</span>
|
|
<a id="__codelineno-13-6" name="__codelineno-13-6"></a><span class="n">string</span><span class="p">.</span><span class="na">concat</span><span class="p">(</span><span class="n">otherString</span><span class="p">);</span><span class="w"> </span><span class="c1">// concatenation of two strings</span>
|
|
<a id="__codelineno-13-7" name="__codelineno-13-7"></a><span class="n">string</span><span class="p">.</span><span class="na">indexOf</span><span class="p">(</span><span class="n">otherString</span><span class="p">);</span><span class="w"> </span><span class="c1">// returns index of the first occurrence of other string</span>
|
|
<a id="__codelineno-13-8" name="__codelineno-13-8"></a><span class="n">string</span><span class="p">.</span><span class="na">lastIndexOf</span><span class="p">(</span><span class="n">otherString</span><span class="p">);</span><span class="w"> </span><span class="c1">// returns index of the last occurrence of other string</span>
|
|
<a id="__codelineno-13-9" name="__codelineno-13-9"></a><span class="n">string</span><span class="p">.</span><span class="na">length</span><span class="p">();</span><span class="w"> </span><span class="c1">// returns the length of the string</span>
|
|
<a id="__codelineno-13-10" name="__codelineno-13-10"></a><span class="n">string</span><span class="p">.</span><span class="na">toLowerCase</span><span class="p">();</span><span class="w"> </span><span class="c1">// transform the string in uppercase characters</span>
|
|
<a id="__codelineno-13-11" name="__codelineno-13-11"></a><span class="n">string</span><span class="p">.</span><span class="na">toUpperCase</span><span class="p">();</span><span class="w"> </span><span class="c1">// transform the string in lowercase characters</span>
|
|
<a id="__codelineno-13-12" name="__codelineno-13-12"></a><span class="n">string</span><span class="p">.</span><span class="na">replace</span><span class="p">(</span><span class="n">character</span><span class="p">,</span><span class="w"> </span><span class="n">newCharacter</span><span class="p">);</span><span class="w"> </span><span class="c1">// substitutes character with newCharacter</span>
|
|
<a id="__codelineno-13-13" name="__codelineno-13-13"></a><span class="n">string</span><span class="p">.</span><span class="na">replaceAll</span><span class="p">(</span><span class="n">regex</span><span class="p">,</span><span class="w"> </span><span class="n">replacement</span><span class="p">);</span>
|
|
<a id="__codelineno-13-14" name="__codelineno-13-14"></a><span class="n">string</span><span class="p">.</span><span class="na">substring</span><span class="p">(</span><span class="n">start</span><span class="p">,</span><span class="w"> </span><span class="n">end</span><span class="p">);</span><span class="w"> </span><span class="c1">// returns a substring starting as START and ending at END (included)</span>
|
|
<a id="__codelineno-13-15" name="__codelineno-13-15"></a><span class="n">string</span><span class="p">.</span><span class="na">trim</span><span class="p">();</span><span class="w"> </span><span class="c1">// removes spaces before and after the string</span>
|
|
<a id="__codelineno-13-16" name="__codelineno-13-16"></a><span class="n">string</span><span class="p">.</span><span class="na">Split</span><span class="p">(</span><span class="n">delimiter</span><span class="p">);</span><span class="w"> </span><span class="c1">// return a String[] generated by splitting string at the occurrence of delimiter</span>
|
|
<a id="__codelineno-13-17" name="__codelineno-13-17"></a><span class="n">string</span><span class="p">.</span><span class="na">compareTo</span><span class="p">(</span><span class="n">otherString</span><span class="p">);</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
<p><code>compareTo()</code> returns a number: </p>
|
|
<ul>
|
|
<li><code>-1</code> if <code>string</code> precedes <code>otherString</code></li>
|
|
<li><code>0</code> if the strings are equal </li>
|
|
<li><code>1</code> if <code>otherString</code> precedes <code>string</code></li>
|
|
</ul>
|
|
<p><code>compareTo()</code> compares the lexicographic order (based on UNICODE).<br />
|
|
To compare in alphabetical order both strings must have the same case.</p>
|
|
<h3 id="mathematical-operations">Mathematical Operations</h3>
|
|
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">Java</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-14-1"> 1</a></span>
|
|
<span class="normal"><a href="#__codelineno-14-2"> 2</a></span>
|
|
<span class="normal"><a href="#__codelineno-14-3"> 3</a></span>
|
|
<span class="normal"><a href="#__codelineno-14-4"> 4</a></span>
|
|
<span class="normal"><a href="#__codelineno-14-5"> 5</a></span>
|
|
<span class="normal"><a href="#__codelineno-14-6"> 6</a></span>
|
|
<span class="normal"><a href="#__codelineno-14-7"> 7</a></span>
|
|
<span class="normal"><a href="#__codelineno-14-8"> 8</a></span>
|
|
<span class="normal"><a href="#__codelineno-14-9"> 9</a></span>
|
|
<span class="normal"><a href="#__codelineno-14-10">10</a></span>
|
|
<span class="normal"><a href="#__codelineno-14-11">11</a></span>
|
|
<span class="normal"><a href="#__codelineno-14-12">12</a></span>
|
|
<span class="normal"><a href="#__codelineno-14-13">13</a></span>
|
|
<span class="normal"><a href="#__codelineno-14-14">14</a></span>
|
|
<span class="normal"><a href="#__codelineno-14-15">15</a></span>
|
|
<span class="normal"><a href="#__codelineno-14-16">16</a></span>
|
|
<span class="normal"><a href="#__codelineno-14-17">17</a></span>
|
|
<span class="normal"><a href="#__codelineno-14-18">18</a></span>
|
|
<span class="normal"><a href="#__codelineno-14-19">19</a></span>
|
|
<span class="normal"><a href="#__codelineno-14-20">20</a></span>
|
|
<span class="normal"><a href="#__codelineno-14-21">21</a></span>
|
|
<span class="normal"><a href="#__codelineno-14-22">22</a></span>
|
|
<span class="normal"><a href="#__codelineno-14-23">23</a></span>
|
|
<span class="normal"><a href="#__codelineno-14-24">24</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-14-1" name="__codelineno-14-1"></a><span class="n">Math</span><span class="p">.</span><span class="na">PI</span><span class="w"> </span><span class="c1">// value of pi</span>
|
|
<a id="__codelineno-14-2" name="__codelineno-14-2"></a><span class="n">Math</span><span class="p">.</span><span class="na">E</span><span class="w"> </span><span class="c1">// value of e</span>
|
|
<a id="__codelineno-14-3" name="__codelineno-14-3"></a>
|
|
<a id="__codelineno-14-4" name="__codelineno-14-4"></a><span class="n">Math</span><span class="p">.</span><span class="na">abs</span><span class="p">(</span><span class="n">x</span><span class="p">);</span><span class="w"> </span><span class="c1">//absolute value of x</span>
|
|
<a id="__codelineno-14-5" name="__codelineno-14-5"></a><span class="n">Math</span><span class="p">.</span><span class="na">acos</span><span class="p">(</span><span class="n">x</span><span class="p">);</span>
|
|
<a id="__codelineno-14-6" name="__codelineno-14-6"></a><span class="n">Math</span><span class="p">.</span><span class="na">asin</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
|
|
<a id="__codelineno-14-7" name="__codelineno-14-7"></a><span class="n">Math</span><span class="p">.</span><span class="na">atan</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
|
|
<a id="__codelineno-14-8" name="__codelineno-14-8"></a><span class="n">Math</span><span class="p">.</span><span class="na">atan2</span><span class="p">(</span><span class="n">y</span><span class="p">,</span><span class="w"> </span><span class="n">x</span><span class="p">)</span>
|
|
<a id="__codelineno-14-9" name="__codelineno-14-9"></a><span class="n">Math</span><span class="p">.</span><span class="na">ceil</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
|
|
<a id="__codelineno-14-10" name="__codelineno-14-10"></a><span class="n">Math</span><span class="p">.</span><span class="na">cos</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
|
|
<a id="__codelineno-14-11" name="__codelineno-14-11"></a><span class="n">Math</span><span class="p">.</span><span class="na">exp</span><span class="p">(</span><span class="n">x</span><span class="p">);</span><span class="w"> </span><span class="c1">//e^x</span>
|
|
<a id="__codelineno-14-12" name="__codelineno-14-12"></a><span class="n">Math</span><span class="p">.</span><span class="na">floor</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
|
|
<a id="__codelineno-14-13" name="__codelineno-14-13"></a><span class="n">Math</span><span class="p">.</span><span class="na">log</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
|
|
<a id="__codelineno-14-14" name="__codelineno-14-14"></a><span class="n">Math</span><span class="p">.</span><span class="na">max</span><span class="p">(</span><span class="n">x</span><span class="p">,</span><span class="w"> </span><span class="n">y</span><span class="p">)</span>
|
|
<a id="__codelineno-14-15" name="__codelineno-14-15"></a><span class="n">Math</span><span class="p">.</span><span class="na">min</span><span class="p">(</span><span class="n">x</span><span class="p">,</span><span class="w"> </span><span class="n">y</span><span class="p">)</span>
|
|
<a id="__codelineno-14-16" name="__codelineno-14-16"></a><span class="n">Math</span><span class="p">.</span><span class="na">pow</span><span class="p">(</span><span class="n">x</span><span class="p">,</span><span class="w"> </span><span class="n">y</span><span class="p">);</span><span class="w"> </span><span class="c1">//x^y</span>
|
|
<a id="__codelineno-14-17" name="__codelineno-14-17"></a><span class="n">Math</span><span class="p">.</span><span class="na">random</span><span class="p">()</span>
|
|
<a id="__codelineno-14-18" name="__codelineno-14-18"></a><span class="n">Math</span><span class="p">.</span><span class="na">rint</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
|
|
<a id="__codelineno-14-19" name="__codelineno-14-19"></a><span class="n">Math</span><span class="p">.</span><span class="na">round</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
|
|
<a id="__codelineno-14-20" name="__codelineno-14-20"></a><span class="n">Math</span><span class="p">.</span><span class="na">sin</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
|
|
<a id="__codelineno-14-21" name="__codelineno-14-21"></a><span class="n">Math</span><span class="p">.</span><span class="na">sqrt</span><span class="p">(</span><span class="n">x</span><span class="p">);</span><span class="w"> </span><span class="c1">//square root, x^(1/2)</span>
|
|
<a id="__codelineno-14-22" name="__codelineno-14-22"></a><span class="n">Math</span><span class="p">.</span><span class="na">tan</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
|
|
<a id="__codelineno-14-23" name="__codelineno-14-23"></a><span class="n">Math</span><span class="p">.</span><span class="na">toDegrees</span><span class="p">(</span><span class="n">rad</span><span class="p">)</span>
|
|
<a id="__codelineno-14-24" name="__codelineno-14-24"></a><span class="n">Math</span><span class="p">.</span><span class="na">toRadians</span><span class="p">(</span><span class="n">deg</span><span class="p">)</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
<h3 id="arithmetic-operators">Arithmetic Operators</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th>operator</th>
|
|
<th>operation</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td>a <code>+</code> b</td>
|
|
<td>sum</td>
|
|
</tr>
|
|
<tr>
|
|
<td>a <code>-</code> b</td>
|
|
<td>subtraction</td>
|
|
</tr>
|
|
<tr>
|
|
<td>a <code>*</code> b</td>
|
|
<td>multiplication</td>
|
|
</tr>
|
|
<tr>
|
|
<td>a <code>/</code> b</td>
|
|
<td>division</td>
|
|
</tr>
|
|
<tr>
|
|
<td>a <code>%</code> b</td>
|
|
<td>modulo</td>
|
|
</tr>
|
|
<tr>
|
|
<td>a<code>++</code></td>
|
|
<td>increment</td>
|
|
</tr>
|
|
<tr>
|
|
<td>a<code>--</code></td>
|
|
<td>decrement</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3 id="comparison-operators">Comparison Operators</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th>operator</th>
|
|
<th>operation</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td>a <code>==</code> b</td>
|
|
<td>equal to</td>
|
|
</tr>
|
|
<tr>
|
|
<td>a <code>!=</code> b</td>
|
|
<td>not equal to</td>
|
|
</tr>
|
|
<tr>
|
|
<td>a <code>></code> b</td>
|
|
<td>greater than</td>
|
|
</tr>
|
|
<tr>
|
|
<td>a <code><</code> b</td>
|
|
<td>lesser than</td>
|
|
</tr>
|
|
<tr>
|
|
<td>a <code>>=</code> b</td>
|
|
<td>greater than or equal to</td>
|
|
</tr>
|
|
<tr>
|
|
<td>a <code><=</code> b</td>
|
|
<td>lesser than or equal to</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3 id="logical-operators">Logical Operators</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th>operator</th>
|
|
<th>operation</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td><code>!</code>a</td>
|
|
<td>logical negation (<strong>NOT</strong>)</td>
|
|
</tr>
|
|
<tr>
|
|
<td>a <code>&&</code> b,</td>
|
|
<td>logical <strong>AND</strong></td>
|
|
</tr>
|
|
<tr>
|
|
<td>a <code>||</code> b,</td>
|
|
<td>logical <strong>OR</strong></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3 id="bitwise-operators">Bitwise Operators</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th>operator</th>
|
|
<th>operation</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td><code>~</code>a</td>
|
|
<td>bitwise <strong>NOT</strong></td>
|
|
</tr>
|
|
<tr>
|
|
<td>a <code>&</code> b</td>
|
|
<td>bitwise <strong>AND</strong></td>
|
|
</tr>
|
|
<tr>
|
|
<td>a <code>|</code> b</td>
|
|
<td>bitwise <strong>OR</strong></td>
|
|
</tr>
|
|
<tr>
|
|
<td>a <code>^</code> b</td>
|
|
<td>bitwise <strong>XOR</strong></td>
|
|
</tr>
|
|
<tr>
|
|
<td>a <code><<</code> b</td>
|
|
<td>bitwise left shift</td>
|
|
</tr>
|
|
<tr>
|
|
<td>a <code>>></code> b</td>
|
|
<td>bitwise right shift</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3 id="compound-assignment-operators">Compound Assignment Operators</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th>operator</th>
|
|
<th>operation</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td>a <code>+=</code> b</td>
|
|
<td>a = a + b</td>
|
|
</tr>
|
|
<tr>
|
|
<td>a <code>-=</code> b</td>
|
|
<td>a = a - b</td>
|
|
</tr>
|
|
<tr>
|
|
<td>a <code>*=</code> b</td>
|
|
<td>a = a * b</td>
|
|
</tr>
|
|
<tr>
|
|
<td>a <code>/=</code> b</td>
|
|
<td>a = a / b</td>
|
|
</tr>
|
|
<tr>
|
|
<td>a <code>%=</code> b</td>
|
|
<td>a = a % b</td>
|
|
</tr>
|
|
<tr>
|
|
<td>a <code>&=</code> b</td>
|
|
<td>a = a & b</td>
|
|
</tr>
|
|
<tr>
|
|
<td>a <code>|=</code> b</td>
|
|
<td>a = a</td>
|
|
</tr>
|
|
<tr>
|
|
<td>a <code>^=</code> b</td>
|
|
<td>a = a ^ b</td>
|
|
</tr>
|
|
<tr>
|
|
<td>a <code><<=</code> b</td>
|
|
<td>a = a << b</td>
|
|
</tr>
|
|
<tr>
|
|
<td>a <code>>>=</code> b</td>
|
|
<td>a = a >> b</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3 id="operator-precedence">Operator Precedence</h3>
|
|
<ol>
|
|
<li>unary operators <code>++</code> , <code>--</code>, <code>!</code></li>
|
|
<li>binary arithmetic operators <code>*</code>, <code>/</code>, <code>%</code></li>
|
|
<li>binary arithmetic operators <code>+</code>, <code>-</code></li>
|
|
<li>boolean operators <code><</code>, <code>></code> , <code><=</code>, <code>>=</code></li>
|
|
<li>boolean operators <code>==</code>, <code>!=</code></li>
|
|
<li>bitwise operator <code>&</code></li>
|
|
<li>bitwise operator <code>|</code></li>
|
|
<li>logical operator <code>&&</code></li>
|
|
<li>logical operator <code>||</code></li>
|
|
</ol>
|
|
<h3 id="short-circuit-evaluation">Short Circuit Evaluation</h3>
|
|
<p>If in <code>(expressionA || expressionB)</code> expressionA results <code>true</code>, Java returns <code>true</code> without evaluating expressionB.<br />
|
|
If in <code>(expressionA && expressionB)</code> expressionA results <code>false</code>, Java returns <code>false</code> without evaluating expressionB.<br />
|
|
Full evaluation can be forced using <code>&</code> and <code>|</code>.</p>
|
|
<h2 id="decision-statements">Decision Statements</h2>
|
|
<h3 id="if-else"><code>If Else</code></h3>
|
|
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">Java</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-15-1">1</a></span>
|
|
<span class="normal"><a href="#__codelineno-15-2">2</a></span>
|
|
<span class="normal"><a href="#__codelineno-15-3">3</a></span>
|
|
<span class="normal"><a href="#__codelineno-15-4">4</a></span>
|
|
<span class="normal"><a href="#__codelineno-15-5">5</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-15-1" name="__codelineno-15-1"></a><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">condition</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
|
|
<a id="__codelineno-15-2" name="__codelineno-15-2"></a><span class="w"> </span><span class="c1">//code here</span>
|
|
<a id="__codelineno-15-3" name="__codelineno-15-3"></a><span class="p">}</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="p">{</span>
|
|
<a id="__codelineno-15-4" name="__codelineno-15-4"></a><span class="w"> </span><span class="c1">//code here</span>
|
|
<a id="__codelineno-15-5" name="__codelineno-15-5"></a><span class="p">}</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
<h3 id="if-else-if-else"><code>If, Else If, Else</code></h3>
|
|
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">Java</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-16-1">1</a></span>
|
|
<span class="normal"><a href="#__codelineno-16-2">2</a></span>
|
|
<span class="normal"><a href="#__codelineno-16-3">3</a></span>
|
|
<span class="normal"><a href="#__codelineno-16-4">4</a></span>
|
|
<span class="normal"><a href="#__codelineno-16-5">5</a></span>
|
|
<span class="normal"><a href="#__codelineno-16-6">6</a></span>
|
|
<span class="normal"><a href="#__codelineno-16-7">7</a></span>
|
|
<span class="normal"><a href="#__codelineno-16-8">8</a></span>
|
|
<span class="normal"><a href="#__codelineno-16-9">9</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-16-1" name="__codelineno-16-1"></a><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">condition</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
|
|
<a id="__codelineno-16-2" name="__codelineno-16-2"></a><span class="w"> </span><span class="c1">//code here</span>
|
|
<a id="__codelineno-16-3" name="__codelineno-16-3"></a><span class="p">}</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">condition</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
|
|
<a id="__codelineno-16-4" name="__codelineno-16-4"></a><span class="w"> </span><span class="c1">//code here</span>
|
|
<a id="__codelineno-16-5" name="__codelineno-16-5"></a><span class="p">}</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">condition</span><span class="p">){</span>
|
|
<a id="__codelineno-16-6" name="__codelineno-16-6"></a><span class="w"> </span><span class="c1">//code here</span>
|
|
<a id="__codelineno-16-7" name="__codelineno-16-7"></a><span class="p">}</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="p">{</span>
|
|
<a id="__codelineno-16-8" name="__codelineno-16-8"></a><span class="w"> </span><span class="c1">//code here</span>
|
|
<a id="__codelineno-16-9" name="__codelineno-16-9"></a><span class="p">}</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
<h3 id="ternary-operator">Ternary Operator</h3>
|
|
<p><code>(condition) ? istruzione_1 : istruzione_2;</code><br />
|
|
if condition is <code>true</code> executes instruction1 otherwise executes instruction2.</p>
|
|
<h3 id="switch"><code>Switch</code></h3>
|
|
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">Java</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-17-1"> 1</a></span>
|
|
<span class="normal"><a href="#__codelineno-17-2"> 2</a></span>
|
|
<span class="normal"><a href="#__codelineno-17-3"> 3</a></span>
|
|
<span class="normal"><a href="#__codelineno-17-4"> 4</a></span>
|
|
<span class="normal"><a href="#__codelineno-17-5"> 5</a></span>
|
|
<span class="normal"><a href="#__codelineno-17-6"> 6</a></span>
|
|
<span class="normal"><a href="#__codelineno-17-7"> 7</a></span>
|
|
<span class="normal"><a href="#__codelineno-17-8"> 8</a></span>
|
|
<span class="normal"><a href="#__codelineno-17-9"> 9</a></span>
|
|
<span class="normal"><a href="#__codelineno-17-10">10</a></span>
|
|
<span class="normal"><a href="#__codelineno-17-11">11</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-17-1" name="__codelineno-17-1"></a><span class="k">switch</span><span class="w"> </span><span class="p">(</span><span class="n">matchExpression</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
|
|
<a id="__codelineno-17-2" name="__codelineno-17-2"></a><span class="w"> </span><span class="k">case</span><span class="w"> </span><span class="n">matchingPattern</span><span class="p">:</span>
|
|
<a id="__codelineno-17-3" name="__codelineno-17-3"></a><span class="w"> </span><span class="c1">//code here</span>
|
|
<a id="__codelineno-17-4" name="__codelineno-17-4"></a><span class="w"> </span><span class="k">break</span><span class="p">;</span>
|
|
<a id="__codelineno-17-5" name="__codelineno-17-5"></a><span class="w"> </span><span class="k">case</span><span class="w"> </span><span class="n">matchingPattern</span><span class="p">:</span>
|
|
<a id="__codelineno-17-6" name="__codelineno-17-6"></a><span class="w"> </span><span class="c1">//code here</span>
|
|
<a id="__codelineno-17-7" name="__codelineno-17-7"></a><span class="w"> </span><span class="k">break</span><span class="p">;</span>
|
|
<a id="__codelineno-17-8" name="__codelineno-17-8"></a><span class="w"> </span><span class="k">default</span><span class="p">:</span>
|
|
<a id="__codelineno-17-9" name="__codelineno-17-9"></a><span class="w"> </span><span class="c1">//code here</span>
|
|
<a id="__codelineno-17-10" name="__codelineno-17-10"></a><span class="w"> </span><span class="k">break</span><span class="p">;</span>
|
|
<a id="__codelineno-17-11" name="__codelineno-17-11"></a><span class="p">}</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
<p>Omitting the <code>break</code> keyword causes multiple branches to execute the same code.</p>
|
|
<h2 id="loop-statements">Loop Statements</h2>
|
|
<h3 id="while-loop"><code>While</code> Loop</h3>
|
|
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">Java</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-18-1">1</a></span>
|
|
<span class="normal"><a href="#__codelineno-18-2">2</a></span>
|
|
<span class="normal"><a href="#__codelineno-18-3">3</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-18-1" name="__codelineno-18-1"></a><span class="k">while</span><span class="w"> </span><span class="p">(</span><span class="n">condition</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
|
|
<a id="__codelineno-18-2" name="__codelineno-18-2"></a><span class="w"> </span><span class="c1">//code here</span>
|
|
<a id="__codelineno-18-3" name="__codelineno-18-3"></a><span class="p">}</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
<h3 id="do-while-loop"><code>Do While</code> Loop</h3>
|
|
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">Java</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-19-1">1</a></span>
|
|
<span class="normal"><a href="#__codelineno-19-2">2</a></span>
|
|
<span class="normal"><a href="#__codelineno-19-3">3</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-19-1" name="__codelineno-19-1"></a><span class="k">do</span><span class="w"> </span><span class="p">{</span>
|
|
<a id="__codelineno-19-2" name="__codelineno-19-2"></a><span class="w"> </span><span class="c1">//code here</span>
|
|
<a id="__codelineno-19-3" name="__codelineno-19-3"></a><span class="p">}</span><span class="w"> </span><span class="k">while</span><span class="w"> </span><span class="p">(</span><span class="n">espressione_booleana</span><span class="p">);</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
<p>Loop body executed <em>at least</em> one time</p>
|
|
<h3 id="for-loop"><code>For</code> Loop</h3>
|
|
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">Java</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-20-1">1</a></span>
|
|
<span class="normal"><a href="#__codelineno-20-2">2</a></span>
|
|
<span class="normal"><a href="#__codelineno-20-3">3</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-20-1" name="__codelineno-20-1"></a><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="n">initializer</span><span class="p">;</span><span class="w"> </span><span class="n">condition</span><span class="p">;</span><span class="w"> </span><span class="n">iterator</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
|
|
<a id="__codelineno-20-2" name="__codelineno-20-2"></a><span class="w"> </span><span class="c1">//code here</span>
|
|
<a id="__codelineno-20-3" name="__codelineno-20-3"></a><span class="p">}</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
<h3 id="foreach-loop"><code>Foreach</code> Loop</h3>
|
|
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">Java</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-21-1">1</a></span>
|
|
<span class="normal"><a href="#__codelineno-21-2">2</a></span>
|
|
<span class="normal"><a href="#__codelineno-21-3">3</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-21-1" name="__codelineno-21-1"></a><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="n">Type</span><span class="w"> </span><span class="n">variable</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="n">iterable</span><span class="p">){</span>
|
|
<a id="__codelineno-21-2" name="__codelineno-21-2"></a><span class="w"> </span><span class="c1">//code here</span>
|
|
<a id="__codelineno-21-3" name="__codelineno-21-3"></a><span class="p">}</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
<h3 id="multiple-iterators-in-for-loop">Multiple iterators in <code>For</code> Loop</h3>
|
|
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">Java</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-22-1">1</a></span>
|
|
<span class="normal"><a href="#__codelineno-22-2">2</a></span>
|
|
<span class="normal"><a href="#__codelineno-22-3">3</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-22-1" name="__codelineno-22-1"></a><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="n">initializer1</span><span class="p">,</span><span class="w"> </span><span class="n">initializer2</span><span class="p">;</span><span class="w"> </span><span class="n">condition</span><span class="p">;</span><span class="w"> </span><span class="n">iterator1</span><span class="p">,</span><span class="w"> </span><span class="n">iterator2</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
|
|
<a id="__codelineno-22-2" name="__codelineno-22-2"></a><span class="w"> </span><span class="c1">//code here</span>
|
|
<a id="__codelineno-22-3" name="__codelineno-22-3"></a><span class="p">}</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
<p>The iterator declared in the for is a local variable and can be used only in the for loop block.</p>
|
|
<h3 id="forced-program-termination">Forced Program Termination</h3>
|
|
<p><code>System.exit(returnedValue);</code> forces the termination of the program execution returning a specified value.</p>
|
|
<h3 id="assertion-checks">Assertion Checks</h3>
|
|
<p>If the assertion check is enabled (<code>java -ebableassetrions programName</code>) the execution of the algorithm is terminated if an assertion fails.<br />
|
|
Assertions can be used to check if a variable has a wanted value in a precise point in the code (Sanity Check).</p>
|
|
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">Java</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-23-1">1</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-23-1" name="__codelineno-23-1"></a><span class="k">assert</span><span class="w"> </span><span class="o"><</span><span class="n">booleanExpression</span><span class="o">></span><span class="p">;</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
<h2 id="static-methods">Static Methods</h2>
|
|
<p>Static methods are not bound to an <em>instance</em> of a class but they act on the class <em>itself</em>. </p>
|
|
<h3 id="static-void-method-definition">Static Void Method Definition</h3>
|
|
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">Java</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-24-1">1</a></span>
|
|
<span class="normal"><a href="#__codelineno-24-2">2</a></span>
|
|
<span class="normal"><a href="#__codelineno-24-3">3</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-24-1" name="__codelineno-24-1"></a><span class="kd">static</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">methodName</span><span class="w"> </span><span class="p">(</span><span class="n">parameters</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
|
|
<a id="__codelineno-24-2" name="__codelineno-24-2"></a><span class="w"> </span><span class="c1">//code here</span>
|
|
<a id="__codelineno-24-3" name="__codelineno-24-3"></a><span class="p">}</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
<h3 id="static-method-definition">Static Method Definition</h3>
|
|
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">Java</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-25-1">1</a></span>
|
|
<span class="normal"><a href="#__codelineno-25-2">2</a></span>
|
|
<span class="normal"><a href="#__codelineno-25-3">3</a></span>
|
|
<span class="normal"><a href="#__codelineno-25-4">4</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-25-1" name="__codelineno-25-1"></a><span class="kd">static</span><span class="w"> </span><span class="n">tipo_metodo</span><span class="w"> </span><span class="nf">methodName</span><span class="w"> </span><span class="p">(</span><span class="n">parameters</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
|
|
<a id="__codelineno-25-2" name="__codelineno-25-2"></a><span class="w"> </span><span class="c1">//code here</span>
|
|
<a id="__codelineno-25-3" name="__codelineno-25-3"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="o"><</span><span class="n">espressione</span><span class="o">></span><span class="p">;</span><span class="w"> </span><span class="c1">//returned type MUST match method type</span>
|
|
<a id="__codelineno-25-4" name="__codelineno-25-4"></a><span class="p">}</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
<h3 id="static-method-invocation">Static Method Invocation</h3>
|
|
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">Java</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-26-1">1</a></span>
|
|
<span class="normal"><a href="#__codelineno-26-2">2</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-26-1" name="__codelineno-26-1"></a><span class="n">methodName</span><span class="p">(</span><span class="n">arguments</span><span class="p">);</span>
|
|
<a id="__codelineno-26-2" name="__codelineno-26-2"></a><span class="n">ClassName</span><span class="p">.</span><span class="na">methodName</span><span class="p">(</span><span class="n">arguments</span><span class="p">);</span><span class="w"> </span><span class="c1">//if method is used outside its class</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
<h2 id="array">Array</h2>
|
|
<h2 id="array-declaration">Array Declaration</h2>
|
|
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">Java</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-27-1">1</a></span>
|
|
<span class="normal"><a href="#__codelineno-27-2">2</a></span>
|
|
<span class="normal"><a href="#__codelineno-27-3">3</a></span>
|
|
<span class="normal"><a href="#__codelineno-27-4">4</a></span>
|
|
<span class="normal"><a href="#__codelineno-27-5">5</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-27-1" name="__codelineno-27-1"></a><span class="n">Type</span><span class="o">[]</span><span class="w"> </span><span class="n">arrayName</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Type</span><span class="o">[</span><span class="n">dimension</span><span class="o">]</span><span class="p">;</span>
|
|
<a id="__codelineno-27-2" name="__codelineno-27-2"></a>
|
|
<a id="__codelineno-27-3" name="__codelineno-27-3"></a><span class="n">Type</span><span class="w"> </span><span class="n">arrayName</span><span class="o">[]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Type</span><span class="o">[</span><span class="n">dimension</span><span class="o">]</span><span class="p">;</span>
|
|
<a id="__codelineno-27-4" name="__codelineno-27-4"></a>
|
|
<a id="__codelineno-27-5" name="__codelineno-27-5"></a><span class="n">arrayName</span><span class="p">.</span><span class="na">length</span><span class="w"> </span><span class="c1">//length of the array</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
<p>Its possible to break the declaration in two lines </p>
|
|
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">Java</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-28-1">1</a></span>
|
|
<span class="normal"><a href="#__codelineno-28-2">2</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-28-1" name="__codelineno-28-1"></a><span class="n">Type</span><span class="o">[]</span><span class="w"> </span><span class="n">arrayName</span><span class="p">;</span>
|
|
<a id="__codelineno-28-2" name="__codelineno-28-2"></a><span class="n">arrayType</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Type</span><span class="o">[</span><span class="n">dimension</span><span class="o">]</span><span class="p">;</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
<h2 id="array-creation-by-initialization">Array Creation by Initialization</h2>
|
|
<p><code>Type[] arrayName = {value1, value2, ...}</code><br />
|
|
Array dimension is determined by the number of values.</p>
|
|
<h3 id="arrays-as-method-parameters">Arrays as method parameters</h3>
|
|
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">Java</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-29-1">1</a></span>
|
|
<span class="normal"><a href="#__codelineno-29-2">2</a></span>
|
|
<span class="normal"><a href="#__codelineno-29-3">3</a></span>
|
|
<span class="normal"><a href="#__codelineno-29-4">4</a></span>
|
|
<span class="normal"><a href="#__codelineno-29-5">5</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-29-1" name="__codelineno-29-1"></a><span class="kd">static</span><span class="w"> </span><span class="n">Type</span><span class="w"> </span><span class="nf">methodName</span><span class="w"> </span><span class="p">(</span><span class="n">Type</span><span class="o">[]</span><span class="w"> </span><span class="n">arrayName</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
|
|
<a id="__codelineno-29-2" name="__codelineno-29-2"></a><span class="w"> </span><span class="c1">//code here</span>
|
|
<a id="__codelineno-29-3" name="__codelineno-29-3"></a><span class="p">}</span>
|
|
<a id="__codelineno-29-4" name="__codelineno-29-4"></a>
|
|
<a id="__codelineno-29-5" name="__codelineno-29-5"></a><span class="n">methodName</span><span class="p">(</span><span class="n">arrayName</span><span class="p">);</span><span class="w"> </span><span class="c1">//[] omitted when passing array as argument</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
<p>Single elements of an array can be passed to a method. Array dimension can be omitted. </p>
|
|
<h3 id="equality-of-arrays">Equality of Arrays</h3>
|
|
<p>As arrays ar object in Java, the operators <code>==</code> and <code>!=</code> confront the memory address of the arrays.<br />
|
|
Array contents must be confronted by looping through the array.</p>
|
|
<h3 id="methods-returning-arrays">Methods returning Arrays</h3>
|
|
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">Java</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-30-1">1</a></span>
|
|
<span class="normal"><a href="#__codelineno-30-2">2</a></span>
|
|
<span class="normal"><a href="#__codelineno-30-3">3</a></span>
|
|
<span class="normal"><a href="#__codelineno-30-4">4</a></span>
|
|
<span class="normal"><a href="#__codelineno-30-5">5</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-30-1" name="__codelineno-30-1"></a><span class="kd">static</span><span class="w"> </span><span class="n">Type</span><span class="o">[]</span><span class="w"> </span><span class="nf">methodName</span><span class="w"> </span><span class="p">(</span><span class="n">parameters</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
|
|
<a id="__codelineno-30-2" name="__codelineno-30-2"></a><span class="w"> </span><span class="n">Type</span><span class="o">[]</span><span class="w"> </span><span class="n">arrayName</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Type</span><span class="o">[</span><span class="n">dimension</span><span class="o">]</span><span class="p">;</span><span class="w"> </span><span class="c1">//array declaration</span>
|
|
<a id="__codelineno-30-3" name="__codelineno-30-3"></a><span class="w"> </span><span class="c1">//array valorization</span>
|
|
<a id="__codelineno-30-4" name="__codelineno-30-4"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">arrayName</span><span class="p">;</span>
|
|
<a id="__codelineno-30-5" name="__codelineno-30-5"></a><span class="p">}</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
<h2 id="variable-numbers-of-parameters-in-a-method">Variable numbers of parameters in a method</h2>
|
|
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">Java</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-31-1">1</a></span>
|
|
<span class="normal"><a href="#__codelineno-31-2">2</a></span>
|
|
<span class="normal"><a href="#__codelineno-31-3">3</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-31-1" name="__codelineno-31-1"></a><span class="kd">static</span><span class="w"> </span><span class="n">Type</span><span class="w"> </span><span class="nf">methodName</span><span class="w"> </span><span class="p">(</span><span class="n">parameters</span><span class="p">,</span><span class="w"> </span><span class="n">tipo</span><span class="o">[]</span><span class="w"> </span><span class="n">ArrayName</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
|
|
<a id="__codelineno-31-2" name="__codelineno-31-2"></a><span class="w"> </span><span class="c1">//code here</span>
|
|
<a id="__codelineno-31-3" name="__codelineno-31-3"></a><span class="p">}</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
<p>It's not necessary to specify a dimension of the array, it's determined by Java</p>
|
|
<h3 id="multi-dimensional-arrays">Multi-Dimensional Arrays</h3>
|
|
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">Java</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-32-1">1</a></span>
|
|
<span class="normal"><a href="#__codelineno-32-2">2</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-32-1" name="__codelineno-32-1"></a><span class="n">Type</span><span class="o">[]</span><span class="p">...</span><span class="o">[]</span><span class="w"> </span><span class="n">arrayName</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Type</span><span class="o">[</span><span class="n">dimension1</span><span class="o">]</span><span class="p">...</span><span class="o">[</span><span class="n">dimensionN</span><span class="o">]</span><span class="p">;</span>
|
|
<a id="__codelineno-32-2" name="__codelineno-32-2"></a><span class="n">Type</span><span class="w"> </span><span class="n">arrayName</span><span class="o">[]</span><span class="p">...</span><span class="o">[]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Type</span><span class="o">[</span><span class="n">dimension1</span><span class="o">]</span><span class="p">...</span><span class="o">[</span><span class="n">dimensionN</span><span class="o">]</span><span class="p">;</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
<h3 id="multi-dimensional-arrays-as-parameters">Multi-Dimensional Arrays as parameters</h3>
|
|
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">Java</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-33-1">1</a></span>
|
|
<span class="normal"><a href="#__codelineno-33-2">2</a></span>
|
|
<span class="normal"><a href="#__codelineno-33-3">3</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-33-1" name="__codelineno-33-1"></a><span class="kd">static</span><span class="w"> </span><span class="n">Type</span><span class="w"> </span><span class="nf">methodName</span><span class="w"> </span><span class="p">(</span><span class="n">Type</span><span class="o">[]</span><span class="p">...</span><span class="o">[]</span><span class="w"> </span><span class="n">ArrayName</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
|
|
<a id="__codelineno-33-2" name="__codelineno-33-2"></a><span class="w"> </span><span class="c1">//code here</span>
|
|
<a id="__codelineno-33-3" name="__codelineno-33-3"></a><span class="p">}</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
<h3 id="methods-returning-multi-dimensional-arrays">Methods returning multi-dimensional arrays</h3>
|
|
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">Java</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-34-1">1</a></span>
|
|
<span class="normal"><a href="#__codelineno-34-2">2</a></span>
|
|
<span class="normal"><a href="#__codelineno-34-3">3</a></span>
|
|
<span class="normal"><a href="#__codelineno-34-4">4</a></span>
|
|
<span class="normal"><a href="#__codelineno-34-5">5</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-34-1" name="__codelineno-34-1"></a><span class="kd">static</span><span class="w"> </span><span class="n">Type</span><span class="o">[]</span><span class="p">...</span><span class="o">[]</span><span class="w"> </span><span class="nf">methodName</span><span class="w"> </span><span class="p">(</span><span class="n">parameters</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
|
|
<a id="__codelineno-34-2" name="__codelineno-34-2"></a><span class="w"> </span><span class="n">Type</span><span class="o">[]</span><span class="p">...</span><span class="o">[]</span><span class="w"> </span><span class="n">array</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Type</span><span class="o">[</span><span class="n">dimension1</span><span class="o">]</span><span class="p">...</span><span class="o">[</span><span class="n">dimensionN</span><span class="o">]</span><span class="p">;</span>
|
|
<a id="__codelineno-34-3" name="__codelineno-34-3"></a><span class="w"> </span><span class="c1">//array valorization</span>
|
|
<a id="__codelineno-34-4" name="__codelineno-34-4"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">array</span><span class="p">;</span>
|
|
<a id="__codelineno-34-5" name="__codelineno-34-5"></a><span class="p">}</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
<h3 id="array-length-of-multi-dimensional-arrays">Array Length of multi-dimensional arrays</h3>
|
|
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">Java</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-35-1">1</a></span>
|
|
<span class="normal"><a href="#__codelineno-35-2">2</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-35-1" name="__codelineno-35-1"></a><span class="n">array</span><span class="p">.</span><span class="na">length</span><span class="w"> </span><span class="c1">//row length</span>
|
|
<a id="__codelineno-35-2" name="__codelineno-35-2"></a><span class="n">array</span><span class="o">[</span><span class="n">rowIndex</span><span class="o">]</span><span class="p">.</span><span class="na">length</span><span class="w"> </span><span class="c1">//column length</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
<h3 id="irregular-table-visualization">Irregular Table Visualization</h3>
|
|
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">Java</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-36-1">1</a></span>
|
|
<span class="normal"><a href="#__codelineno-36-2">2</a></span>
|
|
<span class="normal"><a href="#__codelineno-36-3">3</a></span>
|
|
<span class="normal"><a href="#__codelineno-36-4">4</a></span>
|
|
<span class="normal"><a href="#__codelineno-36-5">5</a></span>
|
|
<span class="normal"><a href="#__codelineno-36-6">6</a></span>
|
|
<span class="normal"><a href="#__codelineno-36-7">7</a></span>
|
|
<span class="normal"><a href="#__codelineno-36-8">8</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-36-1" name="__codelineno-36-1"></a><span class="kd">static</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">viewTable</span><span class="w"> </span><span class="p">(</span><span class="n">Type</span><span class="o">[][]</span><span class="w"> </span><span class="n">matrix</span><span class="p">){</span>
|
|
<a id="__codelineno-36-2" name="__codelineno-36-2"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">row</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">row</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="n">matrix</span><span class="p">.</span><span class="na">length</span><span class="p">;</span><span class="w"> </span><span class="n">row</span><span class="o">++</span><span class="p">){</span><span class="w"> </span><span class="c1">//run through the rows</span>
|
|
<a id="__codelineno-36-3" name="__codelineno-36-3"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">column</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">column</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="n">arrayName</span><span class="o">[</span><span class="n">row</span><span class="o">]</span><span class="p">.</span><span class="na">length</span><span class="p">;</span><span class="w"> </span><span class="n">column</span><span class="o">++</span><span class="p">){</span><span class="w"> </span><span class="c1">//run through the columns</span>
|
|
<a id="__codelineno-36-4" name="__codelineno-36-4"></a><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">put</span><span class="p">.</span><span class="na">print</span><span class="p">(</span><span class="n">arrayName</span><span class="o">[</span><span class="n">row</span><span class="o">][</span><span class="n">column</span><span class="o">]</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="s">"\t"</span><span class="p">);</span><span class="w"> </span><span class="c1">//print item followed by a tab</span>
|
|
<a id="__codelineno-36-5" name="__codelineno-36-5"></a><span class="w"> </span><span class="p">}</span>
|
|
<a id="__codelineno-36-6" name="__codelineno-36-6"></a><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">();</span><span class="w"> </span><span class="c1">//newline after each matrix row</span>
|
|
<a id="__codelineno-36-7" name="__codelineno-36-7"></a><span class="w"> </span><span class="p">}</span>
|
|
<a id="__codelineno-36-8" name="__codelineno-36-8"></a><span class="p">}</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
<h2 id="recursion-guidelines">Recursion Guidelines</h2>
|
|
<p>The core of the recursion must be constituted by a <em>conditional instruction</em> that permits to handle the cases based on the method argument.<br />
|
|
<em>At least one</em> of the alternatives must contain a recursive call to che method. The call must resolve reduced version of the task handled by the method.<br />
|
|
<em>At leats one</em> of the alternatives must not contain a recursive call or it must produce a value that constitutes a base case or an arrest value.</p>
|
|
<h2 id="exception-handling">Exception Handling</h2>
|
|
<p>An <strong>Exception</strong> is an object used to signal an anomalous event.
|
|
<strong>Checked Exceptions</strong> must be handled in a catch meanwhile <strong>Unchecked Exceptions</strong> do not need to be cached like <code>RuntimeException</code>.
|
|
Unchecked exceptions usually mean that there is an error in the logic of the program that must be fixed.</p>
|
|
<h3 id="try-catch-finally"><code>Try-Catch-Finally</code></h3>
|
|
<p>This construct permits to monitor what happens in a block of code and to specify what to do in case of errors (<em>exceptions</em>).</p>
|
|
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">Java</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-37-1"> 1</a></span>
|
|
<span class="normal"><a href="#__codelineno-37-2"> 2</a></span>
|
|
<span class="normal"><a href="#__codelineno-37-3"> 3</a></span>
|
|
<span class="normal"><a href="#__codelineno-37-4"> 4</a></span>
|
|
<span class="normal"><a href="#__codelineno-37-5"> 5</a></span>
|
|
<span class="normal"><a href="#__codelineno-37-6"> 6</a></span>
|
|
<span class="normal"><a href="#__codelineno-37-7"> 7</a></span>
|
|
<span class="normal"><a href="#__codelineno-37-8"> 8</a></span>
|
|
<span class="normal"><a href="#__codelineno-37-9"> 9</a></span>
|
|
<span class="normal"><a href="#__codelineno-37-10">10</a></span>
|
|
<span class="normal"><a href="#__codelineno-37-11">11</a></span>
|
|
<span class="normal"><a href="#__codelineno-37-12">12</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-37-1" name="__codelineno-37-1"></a><span class="k">try</span><span class="w"> </span><span class="p">{</span>
|
|
<a id="__codelineno-37-2" name="__codelineno-37-2"></a><span class="w"> </span><span class="c1">//monitored code</span>
|
|
<a id="__codelineno-37-3" name="__codelineno-37-3"></a><span class="p">}</span><span class="w"> </span><span class="k">catch</span><span class="w"> </span><span class="p">(</span><span class="n">SpecificException</span><span class="w"> </span><span class="n">e</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
|
|
<a id="__codelineno-37-4" name="__codelineno-37-4"></a><span class="w"> </span><span class="c1">//in case of errors use this</span>
|
|
<a id="__codelineno-37-5" name="__codelineno-37-5"></a><span class="p">}</span><span class="w"> </span><span class="k">catch</span><span class="w"> </span><span class="p">(</span><span class="n">SpecificException1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">SpecificException2</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="p">...</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">SpecificExceptionN</span><span class="w"> </span><span class="n">e</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
|
|
<a id="__codelineno-37-6" name="__codelineno-37-6"></a><span class="w"> </span><span class="c1">//in case of errors use this</span>
|
|
<a id="__codelineno-37-7" name="__codelineno-37-7"></a><span class="p">}</span><span class="w"> </span><span class="k">catch</span><span class="w"> </span><span class="p">(</span><span class="n">Exception</span><span class="w"> </span><span class="n">e</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
|
|
<a id="__codelineno-37-8" name="__codelineno-37-8"></a><span class="w"> </span><span class="c1">//in case of error use this</span>
|
|
<a id="__codelineno-37-9" name="__codelineno-37-9"></a><span class="w"> </span><span class="n">e</span><span class="p">.</span><span class="na">getMessage</span><span class="p">();</span><span class="w"> </span><span class="c1">// access to Exception error message</span>
|
|
<a id="__codelineno-37-10" name="__codelineno-37-10"></a><span class="p">}</span><span class="w"> </span><span class="k">finally</span><span class="w"> </span><span class="p">{</span>
|
|
<a id="__codelineno-37-11" name="__codelineno-37-11"></a><span class="w"> </span><span class="c1">//code executed anyways</span>
|
|
<a id="__codelineno-37-12" name="__codelineno-37-12"></a><span class="p">}</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
<p>A <code>try-catch</code> construct can handle multiple exceptions at once. Every <code>catch</code> is analyzed in sequence and is executed the first to happen thus is best to leave a generic exception last.</p>
|
|
<h3 id="try-with-resources">Try with Resources</h3>
|
|
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">Java</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-38-1">1</a></span>
|
|
<span class="normal"><a href="#__codelineno-38-2">2</a></span>
|
|
<span class="normal"><a href="#__codelineno-38-3">3</a></span>
|
|
<span class="normal"><a href="#__codelineno-38-4">4</a></span>
|
|
<span class="normal"><a href="#__codelineno-38-5">5</a></span>
|
|
<span class="normal"><a href="#__codelineno-38-6">6</a></span>
|
|
<span class="normal"><a href="#__codelineno-38-7">7</a></span>
|
|
<span class="normal"><a href="#__codelineno-38-8">8</a></span>
|
|
<span class="normal"><a href="#__codelineno-38-9">9</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-38-1" name="__codelineno-38-1"></a><span class="k">try</span><span class="w"> </span><span class="p">(</span>
|
|
<a id="__codelineno-38-2" name="__codelineno-38-2"></a><span class="w"> </span><span class="c1">//resource definition</span>
|
|
<a id="__codelineno-38-3" name="__codelineno-38-3"></a><span class="p">){</span>
|
|
<a id="__codelineno-38-4" name="__codelineno-38-4"></a><span class="w"> </span><span class="c1">//dangerous code</span>
|
|
<a id="__codelineno-38-5" name="__codelineno-38-5"></a><span class="p">}</span><span class="w"> </span><span class="k">catch</span><span class="w"> </span><span class="p">(</span><span class="n">Exception</span><span class="w"> </span><span class="n">e</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
|
|
<a id="__codelineno-38-6" name="__codelineno-38-6"></a><span class="w"> </span><span class="c1">//in case of error use this</span>
|
|
<a id="__codelineno-38-7" name="__codelineno-38-7"></a><span class="p">}</span><span class="w"> </span><span class="k">finally</span><span class="w"> </span><span class="p">{</span>
|
|
<a id="__codelineno-38-8" name="__codelineno-38-8"></a><span class="w"> </span><span class="c1">//code executed anyway</span>
|
|
<a id="__codelineno-38-9" name="__codelineno-38-9"></a><span class="p">}</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
<h3 id="throw-throws"><code>Throw</code> & <code>Throws</code></h3>
|
|
<p>The <code>throw</code> keyword is used to generate a custom exception in a point of the code.<br />
|
|
<code>throw</code> is used together with an exception type.</p>
|
|
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">Java</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-39-1">1</a></span>
|
|
<span class="normal"><a href="#__codelineno-39-2">2</a></span>
|
|
<span class="normal"><a href="#__codelineno-39-3">3</a></span>
|
|
<span class="normal"><a href="#__codelineno-39-4">4</a></span>
|
|
<span class="normal"><a href="#__codelineno-39-5">5</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-39-1" name="__codelineno-39-1"></a><span class="n">Type</span><span class="w"> </span><span class="nf">methodName</span><span class="p">(</span><span class="n">parameters</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
|
|
<a id="__codelineno-39-2" name="__codelineno-39-2"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">condition</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
|
|
<a id="__codelineno-39-3" name="__codelineno-39-3"></a><span class="w"> </span><span class="k">throw</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Exception</span><span class="p">(</span><span class="s">"error message"</span><span class="p">);</span>
|
|
<a id="__codelineno-39-4" name="__codelineno-39-4"></a><span class="w"> </span><span class="p">}</span>
|
|
<a id="__codelineno-39-5" name="__codelineno-39-5"></a><span class="p">}</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
<p>The <code>throws</code> keyword is used to indicate what exception Type may be thrown by a method.<br />
|
|
<code>throws</code> is used together with a exception class. It's used to send the exception to the method caller.</p>
|
|
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">Java</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-40-1">1</a></span>
|
|
<span class="normal"><a href="#__codelineno-40-2">2</a></span>
|
|
<span class="normal"><a href="#__codelineno-40-3">3</a></span>
|
|
<span class="normal"><a href="#__codelineno-40-4">4</a></span>
|
|
<span class="normal"><a href="#__codelineno-40-5">5</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-40-1" name="__codelineno-40-1"></a><span class="n">Type</span><span class="w"> </span><span class="nf">methodName</span><span class="p">(</span><span class="n">parameters</span><span class="p">)</span><span class="w"> </span><span class="kd">throws</span><span class="w"> </span><span class="n">ExceptionClass</span><span class="w"> </span><span class="p">{</span>
|
|
<a id="__codelineno-40-2" name="__codelineno-40-2"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">condition</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
|
|
<a id="__codelineno-40-3" name="__codelineno-40-3"></a><span class="w"> </span><span class="k">throw</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">SpecificException</span><span class="p">(</span><span class="s">"error message"</span><span class="p">);</span>
|
|
<a id="__codelineno-40-4" name="__codelineno-40-4"></a><span class="w"> </span><span class="p">}</span>
|
|
<a id="__codelineno-40-5" name="__codelineno-40-5"></a><span class="p">}</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
<h3 id="defining-personalized-exceptions">Defining Personalized Exceptions</h3>
|
|
<p>A user-defined exception has to inherit from <code>Exception</code> or one of it's descendants.</p>
|
|
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">Java</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-41-1"> 1</a></span>
|
|
<span class="normal"><a href="#__codelineno-41-2"> 2</a></span>
|
|
<span class="normal"><a href="#__codelineno-41-3"> 3</a></span>
|
|
<span class="normal"><a href="#__codelineno-41-4"> 4</a></span>
|
|
<span class="normal"><a href="#__codelineno-41-5"> 5</a></span>
|
|
<span class="normal"><a href="#__codelineno-41-6"> 6</a></span>
|
|
<span class="normal"><a href="#__codelineno-41-7"> 7</a></span>
|
|
<span class="normal"><a href="#__codelineno-41-8"> 8</a></span>
|
|
<span class="normal"><a href="#__codelineno-41-9"> 9</a></span>
|
|
<span class="normal"><a href="#__codelineno-41-10">10</a></span>
|
|
<span class="normal"><a href="#__codelineno-41-11">11</a></span>
|
|
<span class="normal"><a href="#__codelineno-41-12">12</a></span>
|
|
<span class="normal"><a href="#__codelineno-41-13">13</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-41-1" name="__codelineno-41-1"></a><span class="kd">public</span><span class="w"> </span><span class="kd">class</span> <span class="nc">CustomException</span><span class="w"> </span><span class="kd">extends</span><span class="w"> </span><span class="n">Exception</span><span class="w"> </span><span class="p">{</span>
|
|
<a id="__codelineno-41-2" name="__codelineno-41-2"></a>
|
|
<a id="__codelineno-41-3" name="__codelineno-41-3"></a><span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="nf">CustomException</span><span class="p">(){</span>
|
|
<a id="__codelineno-41-4" name="__codelineno-41-4"></a><span class="w"> </span><span class="kd">super</span><span class="p">(</span><span class="s">"Base Message"</span><span class="p">);</span><span class="w"> </span><span class="c1">// ese Exception constructor</span>
|
|
<a id="__codelineno-41-5" name="__codelineno-41-5"></a><span class="w"> </span><span class="p">}</span>
|
|
<a id="__codelineno-41-6" name="__codelineno-41-6"></a>
|
|
<a id="__codelineno-41-7" name="__codelineno-41-7"></a><span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="nf">CustomException</span><span class="p">(</span><span class="n">string</span><span class="w"> </span><span class="n">message</span><span class="p">){</span>
|
|
<a id="__codelineno-41-8" name="__codelineno-41-8"></a><span class="w"> </span><span class="kd">super</span><span class="p">(</span><span class="n">message</span><span class="p">);</span>
|
|
<a id="__codelineno-41-9" name="__codelineno-41-9"></a><span class="w"> </span><span class="p">}</span>
|
|
<a id="__codelineno-41-10" name="__codelineno-41-10"></a>
|
|
<a id="__codelineno-41-11" name="__codelineno-41-11"></a><span class="w"> </span><span class="c1">// CustomException inherits getMessage() from Exception</span>
|
|
<a id="__codelineno-41-12" name="__codelineno-41-12"></a>
|
|
<a id="__codelineno-41-13" name="__codelineno-41-13"></a><span class="p">}</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
<h2 id="object-oriented-programming">Object Oriented Programming</h2>
|
|
<h3 id="access-modifiers">Access Modifiers</h3>
|
|
<p><code>public</code> variables, methods, classes are usable outside of class of definition.<br />
|
|
<code>private</code> variables, methods, classes are <em>only</em> usable inside class of definition.<br />
|
|
<code>protected</code> variables, methods, classes can be accessed <em>only</em> by defining class, it's descendants and the package.<br />
|
|
<code>final</code> classes and methods cannot be extended or overridden.
|
|
If not specified variables, methods and classes are <em>only</em> accessible from the same package.</p>
|
|
<h3 id="instance-method-definition">Instance Method Definition</h3>
|
|
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">Java</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-42-1">1</a></span>
|
|
<span class="normal"><a href="#__codelineno-42-2">2</a></span>
|
|
<span class="normal"><a href="#__codelineno-42-3">3</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-42-1" name="__codelineno-42-1"></a><span class="n">Type</span><span class="w"> </span><span class="nf">methodName</span><span class="w"> </span><span class="p">(</span><span class="n">parameters</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
|
|
<a id="__codelineno-42-2" name="__codelineno-42-2"></a><span class="w"> </span><span class="c1">//code here</span>
|
|
<a id="__codelineno-42-3" name="__codelineno-42-3"></a><span class="p">}</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
<h3 id="void-instance-method"><code>Void</code> Instance Method</h3>
|
|
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">Java</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-43-1">1</a></span>
|
|
<span class="normal"><a href="#__codelineno-43-2">2</a></span>
|
|
<span class="normal"><a href="#__codelineno-43-3">3</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-43-1" name="__codelineno-43-1"></a><span class="kt">void</span><span class="w"> </span><span class="nf">methodName</span><span class="w"> </span><span class="p">(</span><span class="n">parameters</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
|
|
<a id="__codelineno-43-2" name="__codelineno-43-2"></a><span class="w"> </span><span class="c1">//code here</span>
|
|
<a id="__codelineno-43-3" name="__codelineno-43-3"></a><span class="p">}</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
<h3 id="class-definition">Class Definition</h3>
|
|
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">Java</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-44-1"> 1</a></span>
|
|
<span class="normal"><a href="#__codelineno-44-2"> 2</a></span>
|
|
<span class="normal"><a href="#__codelineno-44-3"> 3</a></span>
|
|
<span class="normal"><a href="#__codelineno-44-4"> 4</a></span>
|
|
<span class="normal"><a href="#__codelineno-44-5"> 5</a></span>
|
|
<span class="normal"><a href="#__codelineno-44-6"> 6</a></span>
|
|
<span class="normal"><a href="#__codelineno-44-7"> 7</a></span>
|
|
<span class="normal"><a href="#__codelineno-44-8"> 8</a></span>
|
|
<span class="normal"><a href="#__codelineno-44-9"> 9</a></span>
|
|
<span class="normal"><a href="#__codelineno-44-10">10</a></span>
|
|
<span class="normal"><a href="#__codelineno-44-11">11</a></span>
|
|
<span class="normal"><a href="#__codelineno-44-12">12</a></span>
|
|
<span class="normal"><a href="#__codelineno-44-13">13</a></span>
|
|
<span class="normal"><a href="#__codelineno-44-14">14</a></span>
|
|
<span class="normal"><a href="#__codelineno-44-15">15</a></span>
|
|
<span class="normal"><a href="#__codelineno-44-16">16</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-44-1" name="__codelineno-44-1"></a><span class="kd">public</span><span class="w"> </span><span class="kd">class</span> <span class="nc">ClassName</span><span class="w"> </span><span class="p">{</span>
|
|
<a id="__codelineno-44-2" name="__codelineno-44-2"></a><span class="w"> </span><span class="c1">//instance variables declaration</span>
|
|
<a id="__codelineno-44-3" name="__codelineno-44-3"></a>
|
|
<a id="__codelineno-44-4" name="__codelineno-44-4"></a><span class="w"> </span><span class="c1">//instantiation block</span>
|
|
<a id="__codelineno-44-5" name="__codelineno-44-5"></a><span class="w"> </span><span class="p">{</span>
|
|
<a id="__codelineno-44-6" name="__codelineno-44-6"></a><span class="w"> </span><span class="c1">// this code is called before the constructor when an object is instantiated</span>
|
|
<a id="__codelineno-44-7" name="__codelineno-44-7"></a><span class="w"> </span><span class="p">}</span>
|
|
<a id="__codelineno-44-8" name="__codelineno-44-8"></a>
|
|
<a id="__codelineno-44-9" name="__codelineno-44-9"></a><span class="w"> </span><span class="c1">//constructors definition</span>
|
|
<a id="__codelineno-44-10" name="__codelineno-44-10"></a>
|
|
<a id="__codelineno-44-11" name="__codelineno-44-11"></a><span class="w"> </span><span class="c1">// getters & setters</span>
|
|
<a id="__codelineno-44-12" name="__codelineno-44-12"></a>
|
|
<a id="__codelineno-44-13" name="__codelineno-44-13"></a><span class="w"> </span><span class="c1">// override of superclass' methods</span>
|
|
<a id="__codelineno-44-14" name="__codelineno-44-14"></a>
|
|
<a id="__codelineno-44-15" name="__codelineno-44-15"></a><span class="w"> </span><span class="c1">//instance methods definition</span>
|
|
<a id="__codelineno-44-16" name="__codelineno-44-16"></a><span class="p">}</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
<h3 id="this-identifier"><code>This</code> identifier</h3>
|
|
<p><code>this.instanceVariable</code> identifies the instance variable
|
|
It's possible to use <code>this</code> to distinguish between instance and static variables with the same name.</p>
|
|
<h3 id="classes-and-reference-addresses">Classes and Reference Addresses</h3>
|
|
<p>A an instance of a class doesn't contain an object of that class but a memory address in which the object is memorized.<br />
|
|
operations of assignment (<code>=</code>) and confront (<code>==</code>) act on the memory address and not on the values of the objects.<br />
|
|
To confront object is necessary to define a <code>equals()</code> method that checks if the values of the object attributes are equal. </p>
|
|
<h3 id="constructors">Constructors</h3>
|
|
<p>Constructors are special methods that are invoked with the <code>new</code> operator when an object is instantiated.<br />
|
|
Constructors assign the starting values of the object attributes.<br />
|
|
If a constructor id defined Java doesn't create the default constructor.</p>
|
|
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">Java</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-45-1"> 1</a></span>
|
|
<span class="normal"><a href="#__codelineno-45-2"> 2</a></span>
|
|
<span class="normal"><a href="#__codelineno-45-3"> 3</a></span>
|
|
<span class="normal"><a href="#__codelineno-45-4"> 4</a></span>
|
|
<span class="normal"><a href="#__codelineno-45-5"> 5</a></span>
|
|
<span class="normal"><a href="#__codelineno-45-6"> 6</a></span>
|
|
<span class="normal"><a href="#__codelineno-45-7"> 7</a></span>
|
|
<span class="normal"><a href="#__codelineno-45-8"> 8</a></span>
|
|
<span class="normal"><a href="#__codelineno-45-9"> 9</a></span>
|
|
<span class="normal"><a href="#__codelineno-45-10">10</a></span>
|
|
<span class="normal"><a href="#__codelineno-45-11">11</a></span>
|
|
<span class="normal"><a href="#__codelineno-45-12">12</a></span>
|
|
<span class="normal"><a href="#__codelineno-45-13">13</a></span>
|
|
<span class="normal"><a href="#__codelineno-45-14">14</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-45-1" name="__codelineno-45-1"></a><span class="kd">class</span> <span class="nf">ClassName</span><span class="w"> </span><span class="p">(){</span>
|
|
<a id="__codelineno-45-2" name="__codelineno-45-2"></a>
|
|
<a id="__codelineno-45-3" name="__codelineno-45-3"></a><span class="w"> </span><span class="c1">//attributes declaration (aka instance variables)</span>
|
|
<a id="__codelineno-45-4" name="__codelineno-45-4"></a>
|
|
<a id="__codelineno-45-5" name="__codelineno-45-5"></a><span class="w"> </span><span class="c1">//constructor</span>
|
|
<a id="__codelineno-45-6" name="__codelineno-45-6"></a><span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="nf">ClassName</span><span class="p">(</span><span class="n">parameters</span><span class="p">){</span>
|
|
<a id="__codelineno-45-7" name="__codelineno-45-7"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="na">attribute</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">value</span><span class="p">;</span><span class="w"> </span><span class="c1">//value is passed to the constructor at obj instantiation</span>
|
|
<a id="__codelineno-45-8" name="__codelineno-45-8"></a><span class="w"> </span><span class="p">}</span>
|
|
<a id="__codelineno-45-9" name="__codelineno-45-9"></a>
|
|
<a id="__codelineno-45-10" name="__codelineno-45-10"></a><span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="nf">ClassName</span><span class="p">(</span><span class="n">parameters</span><span class="p">,</span><span class="w"> </span><span class="n">otherParameters</span><span class="p">){</span>
|
|
<a id="__codelineno-45-11" name="__codelineno-45-11"></a><span class="w"> </span><span class="k">this</span><span class="p">(</span><span class="n">parameters</span><span class="p">);</span><span class="w"> </span><span class="c1">// invoke other constructor for subset of parameters, must be FIRST INSTRUCTION</span>
|
|
<a id="__codelineno-45-12" name="__codelineno-45-12"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="na">attribute</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">value</span><span class="p">;</span><span class="w"> </span><span class="c1">// deal with the remaining parameters</span>
|
|
<a id="__codelineno-45-13" name="__codelineno-45-13"></a><span class="w"> </span><span class="p">}</span>
|
|
<a id="__codelineno-45-14" name="__codelineno-45-14"></a><span class="p">}</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
<h3 id="static-variables">Static Variables</h3>
|
|
<p><code>Type staticVariable = value;</code><br />
|
|
Static variables are shared by all objects of a class and all static method can act upon them.<br />
|
|
Static variable do not belong to the class objects.</p>
|
|
<h3 id="getters-setter-methods">Getters & Setter Methods</h3>
|
|
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">Java</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-46-1">1</a></span>
|
|
<span class="normal"><a href="#__codelineno-46-2">2</a></span>
|
|
<span class="normal"><a href="#__codelineno-46-3">3</a></span>
|
|
<span class="normal"><a href="#__codelineno-46-4">4</a></span>
|
|
<span class="normal"><a href="#__codelineno-46-5">5</a></span>
|
|
<span class="normal"><a href="#__codelineno-46-6">6</a></span>
|
|
<span class="normal"><a href="#__codelineno-46-7">7</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-46-1" name="__codelineno-46-1"></a><span class="kd">public</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">setAttribute</span><span class="p">(</span><span class="n">Type</span><span class="w"> </span><span class="n">attribute</span><span class="p">){</span>
|
|
<a id="__codelineno-46-2" name="__codelineno-46-2"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="na">attribute</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">attribute</span><span class="p">;</span>
|
|
<a id="__codelineno-46-3" name="__codelineno-46-3"></a><span class="p">}</span>
|
|
<a id="__codelineno-46-4" name="__codelineno-46-4"></a>
|
|
<a id="__codelineno-46-5" name="__codelineno-46-5"></a><span class="kd">public</span><span class="w"> </span><span class="n">Type</span><span class="w"> </span><span class="nf">getAttribute</span><span class="p">(){</span>
|
|
<a id="__codelineno-46-6" name="__codelineno-46-6"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="na">attribute</span><span class="p">;</span>
|
|
<a id="__codelineno-46-7" name="__codelineno-46-7"></a><span class="p">}</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
<h3 id="tostring-method"><code>ToString()</code> Method</h3>
|
|
<p>Automatically returns a string if the object is directly called in a print method.</p>
|
|
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">Java</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-47-1">1</a></span>
|
|
<span class="normal"><a href="#__codelineno-47-2">2</a></span>
|
|
<span class="normal"><a href="#__codelineno-47-3">3</a></span>
|
|
<span class="normal"><a href="#__codelineno-47-4">4</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-47-1" name="__codelineno-47-1"></a><span class="nd">@Override</span>
|
|
<a id="__codelineno-47-2" name="__codelineno-47-2"></a><span class="n">Public</span><span class="w"> </span><span class="n">String</span><span class="w"> </span><span class="nf">toString</span><span class="p">(){</span>
|
|
<a id="__codelineno-47-3" name="__codelineno-47-3"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="s">"string-representation-of-object"</span>
|
|
<a id="__codelineno-47-4" name="__codelineno-47-4"></a><span class="p">}</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
<h3 id="static-methods-in-classes">Static Methods in Classes</h3>
|
|
<p>Static methods are used to effectuate operations not applied to objects.<br />
|
|
Outside of the class of definition that are invoked with ClassName.methodName()<br />
|
|
Static method <strong>cannot</strong> act on instance variables. </p>
|
|
<h3 id="method-overloading">Method Overloading</h3>
|
|
<p>A class can have multiple methods with the same name given that each method has a different number or type of parameters (different method <em>signature</em>). </p>
|
|
<h3 id="inheritance-method-overriding">Inheritance & Method Overriding</h3>
|
|
<p>Child classes inherit all methods and attributes from parent class.<br />
|
|
Child methods can <em>override</em> parent methods to adapt their functionality.<br />
|
|
Overriding and overridden classes <strong>must</strong> have the same name.
|
|
A child class can inherit from <em>only</em> one parent class.</p>
|
|
<p>Child class <strong>must</strong> implement a constructor that instantiates the parent (super) class.<br />
|
|
<code>super()</code> instantiates the superclass of the child class.</p>
|
|
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">Java</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-48-1"> 1</a></span>
|
|
<span class="normal"><a href="#__codelineno-48-2"> 2</a></span>
|
|
<span class="normal"><a href="#__codelineno-48-3"> 3</a></span>
|
|
<span class="normal"><a href="#__codelineno-48-4"> 4</a></span>
|
|
<span class="normal"><a href="#__codelineno-48-5"> 5</a></span>
|
|
<span class="normal"><a href="#__codelineno-48-6"> 6</a></span>
|
|
<span class="normal"><a href="#__codelineno-48-7"> 7</a></span>
|
|
<span class="normal"><a href="#__codelineno-48-8"> 8</a></span>
|
|
<span class="normal"><a href="#__codelineno-48-9"> 9</a></span>
|
|
<span class="normal"><a href="#__codelineno-48-10">10</a></span>
|
|
<span class="normal"><a href="#__codelineno-48-11">11</a></span>
|
|
<span class="normal"><a href="#__codelineno-48-12">12</a></span>
|
|
<span class="normal"><a href="#__codelineno-48-13">13</a></span>
|
|
<span class="normal"><a href="#__codelineno-48-14">14</a></span>
|
|
<span class="normal"><a href="#__codelineno-48-15">15</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-48-1" name="__codelineno-48-1"></a><span class="kd">class</span> <span class="nc">ChildClass</span><span class="w"> </span><span class="kd">extends</span><span class="w"> </span><span class="n">ParentClass</span><span class="p">{</span>
|
|
<a id="__codelineno-48-2" name="__codelineno-48-2"></a>
|
|
<a id="__codelineno-48-3" name="__codelineno-48-3"></a><span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="nf">ChildClass</span><span class="p">(</span><span class="n">parentParameters</span><span class="p">,</span><span class="w"> </span><span class="n">childParameters</span><span class="p">){</span>
|
|
<a id="__codelineno-48-4" name="__codelineno-48-4"></a><span class="w"> </span><span class="kd">super</span><span class="p">(</span><span class="n">parentParameters</span><span class="p">);</span><span class="w"> </span><span class="c1">// if omitted super() is calls (parent's default constructor)</span>
|
|
<a id="__codelineno-48-5" name="__codelineno-48-5"></a><span class="w"> </span><span class="c1">// assignments of child attributes</span>
|
|
<a id="__codelineno-48-6" name="__codelineno-48-6"></a><span class="w"> </span><span class="p">}</span>
|
|
<a id="__codelineno-48-7" name="__codelineno-48-7"></a>
|
|
<a id="__codelineno-48-8" name="__codelineno-48-8"></a><span class="w"> </span><span class="c1">//calls overrides parent class (must have same name)</span>
|
|
<a id="__codelineno-48-9" name="__codelineno-48-9"></a><span class="w"> </span><span class="nd">@Override</span>
|
|
<a id="__codelineno-48-10" name="__codelineno-48-10"></a><span class="w"> </span><span class="n">Type</span><span class="w"> </span><span class="nf">methodName</span><span class="p">(</span><span class="n">parameters</span><span class="p">){</span>
|
|
<a id="__codelineno-48-11" name="__codelineno-48-11"></a><span class="w"> </span><span class="c1">//code here</span>
|
|
<a id="__codelineno-48-12" name="__codelineno-48-12"></a><span class="w"> </span><span class="p">}</span>
|
|
<a id="__codelineno-48-13" name="__codelineno-48-13"></a>
|
|
<a id="__codelineno-48-14" name="__codelineno-48-14"></a><span class="w"> </span><span class="kd">super</span><span class="p">().</span><span class="na">methodName</span><span class="p">(</span><span class="n">parameters</span><span class="p">);</span><span class="w"> </span><span class="c1">// calls the parent's method</span>
|
|
<a id="__codelineno-48-15" name="__codelineno-48-15"></a><span class="p">}</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
<p>An overridden method that returns a <code>ParentClass</code> can be overridden to return a <code>ChildClass</code>. This is the only case in which an overridden method can change the returned type.
|
|
An overridden method can change the access modifier as long as the new modifier is more "permissive".</p>
|
|
<p>A <code>ParentClass</code> type can contain a <code>ChildClass</code> object. This is useful for using collections and arrays of objects.</p>
|
|
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">Java</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-49-1">1</a></span>
|
|
<span class="normal"><a href="#__codelineno-49-2">2</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-49-1" name="__codelineno-49-1"></a><span class="n">ParentClass</span><span class="w"> </span><span class="n">objectName</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ChildClass</span><span class="p">();</span><span class="w"> </span><span class="c1">// upcast</span>
|
|
<a id="__codelineno-49-2" name="__codelineno-49-2"></a><span class="p">(</span><span class="n">ChildClass</span><span class="p">)</span><span class="n">ParentClassObject</span><span class="p">;</span><span class="w"> </span><span class="c1">// downcast</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
<h3 id="abstract-classes-abstract-methods">Abstract Classes & Abstract Methods</h3>
|
|
<p>An Abstract Class is a particular class that contains an Abstract Method.
|
|
This type of class cannot be instantiated but is used leave the specific implementation of some of it's methods to extending classes.
|
|
Abstract classes are marked by the <code>abstract</code> keyword.</p>
|
|
<p>An abstract method is a method without implementation.<br />
|
|
The methods <strong>must</strong> be <code>public</code> and marked with the <code>abstract</code> keyword.</p>
|
|
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">Java</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-50-1">1</a></span>
|
|
<span class="normal"><a href="#__codelineno-50-2">2</a></span>
|
|
<span class="normal"><a href="#__codelineno-50-3">3</a></span>
|
|
<span class="normal"><a href="#__codelineno-50-4">4</a></span>
|
|
<span class="normal"><a href="#__codelineno-50-5">5</a></span>
|
|
<span class="normal"><a href="#__codelineno-50-6">6</a></span>
|
|
<span class="normal"><a href="#__codelineno-50-7">7</a></span>
|
|
<span class="normal"><a href="#__codelineno-50-8">8</a></span>
|
|
<span class="normal"><a href="#__codelineno-50-9">9</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-50-1" name="__codelineno-50-1"></a><span class="c1">//abstract class</span>
|
|
<a id="__codelineno-50-2" name="__codelineno-50-2"></a><span class="kd">abstract</span><span class="w"> </span><span class="kd">class</span> <span class="nc">className</span><span class="p">{</span>
|
|
<a id="__codelineno-50-3" name="__codelineno-50-3"></a><span class="w"> </span><span class="c1">//attributes here</span>
|
|
<a id="__codelineno-50-4" name="__codelineno-50-4"></a><span class="w"> </span><span class="c1">//constructor here</span>
|
|
<a id="__codelineno-50-5" name="__codelineno-50-5"></a><span class="w"> </span><span class="c1">//getters & setters here</span>
|
|
<a id="__codelineno-50-6" name="__codelineno-50-6"></a>
|
|
<a id="__codelineno-50-7" name="__codelineno-50-7"></a><span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="kd">abstract</span><span class="w"> </span><span class="n">Type</span><span class="w"> </span><span class="nf">methodName</span><span class="p">();</span><span class="w"> </span><span class="c1">//no method code</span>
|
|
<a id="__codelineno-50-8" name="__codelineno-50-8"></a>
|
|
<a id="__codelineno-50-9" name="__codelineno-50-9"></a><span class="p">}</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
<h3 id="interfaces">Interfaces</h3>
|
|
<p>An Interface is a class with <em>only</em> abstract methods. An interface has more flexibility than an abstract class.<br />
|
|
Interfaces are used to set requirements for child classes without specifying how to satisfy those requirements since it's methods will be implemented in child classes.<br />
|
|
An Interface is marked by the <code>interface</code> keyword.
|
|
If an implementing class implements only <code>some</code> of the interface's method than the class <strong>must be abstract</strong>.</p>
|
|
<p>Interfaces' methods are always <code>abstract</code> and <code>public</code>, no need for the keyword.
|
|
Interfaces' attributes are always <code>public static final</code>, no need for the keyword.</p>
|
|
<p>A class can implement <em>more than one</em> Interface.</p>
|
|
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">Java</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-51-1"> 1</a></span>
|
|
<span class="normal"><a href="#__codelineno-51-2"> 2</a></span>
|
|
<span class="normal"><a href="#__codelineno-51-3"> 3</a></span>
|
|
<span class="normal"><a href="#__codelineno-51-4"> 4</a></span>
|
|
<span class="normal"><a href="#__codelineno-51-5"> 5</a></span>
|
|
<span class="normal"><a href="#__codelineno-51-6"> 6</a></span>
|
|
<span class="normal"><a href="#__codelineno-51-7"> 7</a></span>
|
|
<span class="normal"><a href="#__codelineno-51-8"> 8</a></span>
|
|
<span class="normal"><a href="#__codelineno-51-9"> 9</a></span>
|
|
<span class="normal"><a href="#__codelineno-51-10">10</a></span>
|
|
<span class="normal"><a href="#__codelineno-51-11">11</a></span>
|
|
<span class="normal"><a href="#__codelineno-51-12">12</a></span>
|
|
<span class="normal"><a href="#__codelineno-51-13">13</a></span>
|
|
<span class="normal"><a href="#__codelineno-51-14">14</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-51-1" name="__codelineno-51-1"></a><span class="kd">public</span><span class="w"> </span><span class="kd">interface</span> <span class="nc">InterfaceName</span><span class="p">{</span>
|
|
<a id="__codelineno-51-2" name="__codelineno-51-2"></a><span class="w"> </span><span class="c1">//attributes here</span>
|
|
<a id="__codelineno-51-3" name="__codelineno-51-3"></a>
|
|
<a id="__codelineno-51-4" name="__codelineno-51-4"></a><span class="w"> </span><span class="n">Type</span><span class="w"> </span><span class="nf">methodName</span><span class="p">();</span><span class="w"> </span><span class="c1">//no method code</span>
|
|
<a id="__codelineno-51-5" name="__codelineno-51-5"></a><span class="p">}</span>
|
|
<a id="__codelineno-51-6" name="__codelineno-51-6"></a>
|
|
<a id="__codelineno-51-7" name="__codelineno-51-7"></a><span class="c1">// interfaces can extend interfaces</span>
|
|
<a id="__codelineno-51-8" name="__codelineno-51-8"></a><span class="kd">public</span><span class="w"> </span><span class="kd">interface</span> <span class="nc">OtherInterface</span><span class="w"> </span><span class="kd">extends</span><span class="w"> </span><span class="n">InterfaceName</span><span class="w"> </span><span class="p">{</span>
|
|
<a id="__codelineno-51-9" name="__codelineno-51-9"></a><span class="w"> </span><span class="c1">//attributes here</span>
|
|
<a id="__codelineno-51-10" name="__codelineno-51-10"></a><span class="w"> </span><span class="n">Type</span><span class="w"> </span><span class="nf">methodName</span><span class="p">();</span><span class="w"> </span><span class="c1">// inherited from extended interface</span>
|
|
<a id="__codelineno-51-11" name="__codelineno-51-11"></a><span class="w"> </span><span class="n">Type</span><span class="w"> </span><span class="nf">otherMethod</span><span class="p">();</span><span class="w"> </span><span class="c1">// defined in the interface</span>
|
|
<a id="__codelineno-51-12" name="__codelineno-51-12"></a><span class="p">}</span>
|
|
<a id="__codelineno-51-13" name="__codelineno-51-13"></a>
|
|
<a id="__codelineno-51-14" name="__codelineno-51-14"></a><span class="kd">class</span> <span class="nc">ClassName</span><span class="w"> </span><span class="kd">implements</span><span class="w"> </span><span class="n">Interface1</span><span class="p">,</span><span class="w"> </span><span class="n">Interface2</span><span class="w"> </span><span class="p">{...}</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
<p>Types of Interfaces:</p>
|
|
<ul>
|
|
<li>Normal (multiple methods)</li>
|
|
<li>Single Abstract Method (<code>@FunctionalInterface</code>, used with <em>Lambda Expressions</em>)</li>
|
|
<li>Marker (Empty, <em>no methods</em>)</li>
|
|
</ul>
|
|
<p>Since Java 1.8 interfaces can implements also <code>static</code> methods.</p>
|
|
<h3 id="enumerations">Enumerations</h3>
|
|
<p>Enums are used to restrict the type of data to a set of the possible constant values.
|
|
Enums are classes which constructor is private by default.
|
|
It's still possible to create a custom constructor to add values.</p>
|
|
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">Java</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-52-1"> 1</a></span>
|
|
<span class="normal"><a href="#__codelineno-52-2"> 2</a></span>
|
|
<span class="normal"><a href="#__codelineno-52-3"> 3</a></span>
|
|
<span class="normal"><a href="#__codelineno-52-4"> 4</a></span>
|
|
<span class="normal"><a href="#__codelineno-52-5"> 5</a></span>
|
|
<span class="normal"><a href="#__codelineno-52-6"> 6</a></span>
|
|
<span class="normal"><a href="#__codelineno-52-7"> 7</a></span>
|
|
<span class="normal"><a href="#__codelineno-52-8"> 8</a></span>
|
|
<span class="normal"><a href="#__codelineno-52-9"> 9</a></span>
|
|
<span class="normal"><a href="#__codelineno-52-10">10</a></span>
|
|
<span class="normal"><a href="#__codelineno-52-11">11</a></span>
|
|
<span class="normal"><a href="#__codelineno-52-12">12</a></span>
|
|
<span class="normal"><a href="#__codelineno-52-13">13</a></span>
|
|
<span class="normal"><a href="#__codelineno-52-14">14</a></span>
|
|
<span class="normal"><a href="#__codelineno-52-15">15</a></span>
|
|
<span class="normal"><a href="#__codelineno-52-16">16</a></span>
|
|
<span class="normal"><a href="#__codelineno-52-17">17</a></span>
|
|
<span class="normal"><a href="#__codelineno-52-18">18</a></span>
|
|
<span class="normal"><a href="#__codelineno-52-19">19</a></span>
|
|
<span class="normal"><a href="#__codelineno-52-20">20</a></span>
|
|
<span class="normal"><a href="#__codelineno-52-21">21</a></span>
|
|
<span class="normal"><a href="#__codelineno-52-22">22</a></span>
|
|
<span class="normal"><a href="#__codelineno-52-23">23</a></span>
|
|
<span class="normal"><a href="#__codelineno-52-24">24</a></span>
|
|
<span class="normal"><a href="#__codelineno-52-25">25</a></span>
|
|
<span class="normal"><a href="#__codelineno-52-26">26</a></span>
|
|
<span class="normal"><a href="#__codelineno-52-27">27</a></span>
|
|
<span class="normal"><a href="#__codelineno-52-28">28</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-52-1" name="__codelineno-52-1"></a><span class="kd">enum</span><span class="w"> </span><span class="n">enumName</span><span class="w"> </span><span class="p">{</span>
|
|
<a id="__codelineno-52-2" name="__codelineno-52-2"></a><span class="w"> </span><span class="n">value1</span><span class="p">,</span>
|
|
<a id="__codelineno-52-3" name="__codelineno-52-3"></a><span class="w"> </span><span class="n">value2</span><span class="p">,</span>
|
|
<a id="__codelineno-52-4" name="__codelineno-52-4"></a><span class="w"> </span><span class="p">...</span><span class="w"> </span><span class="p">,</span>
|
|
<a id="__codelineno-52-5" name="__codelineno-52-5"></a><span class="w"> </span><span class="n">valueN</span><span class="p">;</span>
|
|
<a id="__codelineno-52-6" name="__codelineno-52-6"></a><span class="p">}</span>
|
|
<a id="__codelineno-52-7" name="__codelineno-52-7"></a>
|
|
<a id="__codelineno-52-8" name="__codelineno-52-8"></a><span class="c1">//definition of an enumeration w/ custom constructor for valorization</span>
|
|
<a id="__codelineno-52-9" name="__codelineno-52-9"></a><span class="c1">//constructor is not usable outside enum definition</span>
|
|
<a id="__codelineno-52-10" name="__codelineno-52-10"></a><span class="kd">enum</span><span class="w"> </span><span class="n">enumName</span><span class="w"> </span><span class="p">{</span>
|
|
<a id="__codelineno-52-11" name="__codelineno-52-11"></a><span class="w"> </span><span class="n">value1</span><span class="p">(</span><span class="n">value</span><span class="p">),</span><span class="w"> </span><span class="c1">//call constructor to valorize</span>
|
|
<a id="__codelineno-52-12" name="__codelineno-52-12"></a><span class="w"> </span><span class="n">value2</span><span class="p">(</span><span class="n">value</span><span class="p">),</span>
|
|
<a id="__codelineno-52-13" name="__codelineno-52-13"></a><span class="w"> </span><span class="p">...</span><span class="w"> </span><span class="p">,</span>
|
|
<a id="__codelineno-52-14" name="__codelineno-52-14"></a><span class="w"> </span><span class="n">valueN</span><span class="p">(</span><span class="n">value</span><span class="p">);</span>
|
|
<a id="__codelineno-52-15" name="__codelineno-52-15"></a>
|
|
<a id="__codelineno-52-16" name="__codelineno-52-16"></a><span class="w"> </span><span class="kd">private</span><span class="w"> </span><span class="n">Type</span><span class="w"> </span><span class="n">value</span><span class="p">;</span>
|
|
<a id="__codelineno-52-17" name="__codelineno-52-17"></a>
|
|
<a id="__codelineno-52-18" name="__codelineno-52-18"></a><span class="w"> </span><span class="n">Type</span><span class="w"> </span><span class="nf">enumName</span><span class="p">(</span><span class="n">Type</span><span class="w"> </span><span class="n">parameter</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
|
|
<a id="__codelineno-52-19" name="__codelineno-52-19"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="na">value</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">parameter</span><span class="p">;</span>
|
|
<a id="__codelineno-52-20" name="__codelineno-52-20"></a><span class="w"> </span><span class="p">}</span>
|
|
<a id="__codelineno-52-21" name="__codelineno-52-21"></a>
|
|
<a id="__codelineno-52-22" name="__codelineno-52-22"></a><span class="w"> </span><span class="c1">//getters are allowed, the values is a constant --> no setters</span>
|
|
<a id="__codelineno-52-23" name="__codelineno-52-23"></a><span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="n">Type</span><span class="w"> </span><span class="nf">getValue</span><span class="p">(){</span>
|
|
<a id="__codelineno-52-24" name="__codelineno-52-24"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="na">value</span><span class="p">;</span>
|
|
<a id="__codelineno-52-25" name="__codelineno-52-25"></a><span class="w"> </span><span class="p">}</span>
|
|
<a id="__codelineno-52-26" name="__codelineno-52-26"></a><span class="p">}</span>
|
|
<a id="__codelineno-52-27" name="__codelineno-52-27"></a>
|
|
<a id="__codelineno-52-28" name="__codelineno-52-28"></a><span class="n">enumName</span><span class="w"> </span><span class="n">variable</span><span class="p">;</span><span class="w"> </span><span class="c1">//creation of a variable of type enumName</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
<h3 id="anonymous-classes">Anonymous Classes</h3>
|
|
<p><em>Anonymous classes</em> make the code more concise. They enable to declare and instantiate a class at the same time. They are like local classes except that they do not have a name. Useful if is needed a local class that is used once.</p>
|
|
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">Java</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-53-1">1</a></span>
|
|
<span class="normal"><a href="#__codelineno-53-2">2</a></span>
|
|
<span class="normal"><a href="#__codelineno-53-3">3</a></span>
|
|
<span class="normal"><a href="#__codelineno-53-4">4</a></span>
|
|
<span class="normal"><a href="#__codelineno-53-5">5</a></span>
|
|
<span class="normal"><a href="#__codelineno-53-6">6</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-53-1" name="__codelineno-53-1"></a><span class="n">AnonymousClass</span><span class="w"> </span><span class="n">objectName</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">AnonymousClass</span><span class="p">(</span><span class="n">Type</span><span class="w"> </span><span class="n">parameter</span><span class="p">,</span><span class="w"> </span><span class="p">...)</span><span class="w"> </span><span class="p">{</span>
|
|
<a id="__codelineno-53-2" name="__codelineno-53-2"></a>
|
|
<a id="__codelineno-53-3" name="__codelineno-53-3"></a><span class="w"> </span><span class="c1">// attributes</span>
|
|
<a id="__codelineno-53-4" name="__codelineno-53-4"></a>
|
|
<a id="__codelineno-53-5" name="__codelineno-53-5"></a><span class="w"> </span><span class="c1">// methods</span>
|
|
<a id="__codelineno-53-6" name="__codelineno-53-6"></a><span class="p">};</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
<h3 id="cloning">Cloning</h3>
|
|
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">Java</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-54-1">1</a></span>
|
|
<span class="normal"><a href="#__codelineno-54-2">2</a></span>
|
|
<span class="normal"><a href="#__codelineno-54-3">3</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-54-1" name="__codelineno-54-1"></a><span class="kd">class</span> <span class="nc">ClassName</span><span class="w"> </span><span class="kd">implements</span><span class="w"> </span><span class="n">Clonable</span><span class="w"> </span><span class="p">{</span>
|
|
<a id="__codelineno-54-2" name="__codelineno-54-2"></a>
|
|
<a id="__codelineno-54-3" name="__codelineno-54-3"></a><span class="p">}</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
<h2 id="generics">Generics</h2>
|
|
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">Java</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-55-1"> 1</a></span>
|
|
<span class="normal"><a href="#__codelineno-55-2"> 2</a></span>
|
|
<span class="normal"><a href="#__codelineno-55-3"> 3</a></span>
|
|
<span class="normal"><a href="#__codelineno-55-4"> 4</a></span>
|
|
<span class="normal"><a href="#__codelineno-55-5"> 5</a></span>
|
|
<span class="normal"><a href="#__codelineno-55-6"> 6</a></span>
|
|
<span class="normal"><a href="#__codelineno-55-7"> 7</a></span>
|
|
<span class="normal"><a href="#__codelineno-55-8"> 8</a></span>
|
|
<span class="normal"><a href="#__codelineno-55-9"> 9</a></span>
|
|
<span class="normal"><a href="#__codelineno-55-10">10</a></span>
|
|
<span class="normal"><a href="#__codelineno-55-11">11</a></span>
|
|
<span class="normal"><a href="#__codelineno-55-12">12</a></span>
|
|
<span class="normal"><a href="#__codelineno-55-13">13</a></span>
|
|
<span class="normal"><a href="#__codelineno-55-14">14</a></span>
|
|
<span class="normal"><a href="#__codelineno-55-15">15</a></span>
|
|
<span class="normal"><a href="#__codelineno-55-16">16</a></span>
|
|
<span class="normal"><a href="#__codelineno-55-17">17</a></span>
|
|
<span class="normal"><a href="#__codelineno-55-18">18</a></span>
|
|
<span class="normal"><a href="#__codelineno-55-19">19</a></span>
|
|
<span class="normal"><a href="#__codelineno-55-20">20</a></span>
|
|
<span class="normal"><a href="#__codelineno-55-21">21</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-55-1" name="__codelineno-55-1"></a><span class="c1">// WARNING: T is not instantiable, new t(), new t[] are INVALID</span>
|
|
<a id="__codelineno-55-2" name="__codelineno-55-2"></a><span class="kd">public</span><span class="w"> </span><span class="kd">class</span> <span class="nc">GenericClass</span><span class="o"><</span><span class="n">T</span><span class="o">></span><span class="w"> </span><span class="p">{</span>
|
|
<a id="__codelineno-55-3" name="__codelineno-55-3"></a><span class="w"> </span><span class="kd">private</span><span class="w"> </span><span class="n">T</span><span class="w"> </span><span class="n">generic</span><span class="p">;</span>
|
|
<a id="__codelineno-55-4" name="__codelineno-55-4"></a>
|
|
<a id="__codelineno-55-5" name="__codelineno-55-5"></a><span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="nf">GenericClass</span><span class="p">()</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="p">}</span>
|
|
<a id="__codelineno-55-6" name="__codelineno-55-6"></a><span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="nf">GenericClass</span><span class="p">(</span><span class="n">T</span><span class="w"> </span><span class="n">data</span><span class="p">){</span>
|
|
<a id="__codelineno-55-7" name="__codelineno-55-7"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="na">generic</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">data</span><span class="p">;</span>
|
|
<a id="__codelineno-55-8" name="__codelineno-55-8"></a><span class="w"> </span><span class="p">}</span>
|
|
<a id="__codelineno-55-9" name="__codelineno-55-9"></a>
|
|
<a id="__codelineno-55-10" name="__codelineno-55-10"></a><span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="n">T</span><span class="w"> </span><span class="nf">getGeneric</span><span class="p">()</span><span class="w"> </span><span class="p">{</span>
|
|
<a id="__codelineno-55-11" name="__codelineno-55-11"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">generic</span><span class="p">;</span>
|
|
<a id="__codelineno-55-12" name="__codelineno-55-12"></a><span class="w"> </span><span class="p">}</span>
|
|
<a id="__codelineno-55-13" name="__codelineno-55-13"></a>
|
|
<a id="__codelineno-55-14" name="__codelineno-55-14"></a><span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">setGeneric</span><span class="p">(</span><span class="n">T</span><span class="w"> </span><span class="n">data</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
|
|
<a id="__codelineno-55-15" name="__codelineno-55-15"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="w"> </span><span class="n">generic</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">data</span><span class="p">;</span>
|
|
<a id="__codelineno-55-16" name="__codelineno-55-16"></a><span class="w"> </span><span class="p">}</span>
|
|
<a id="__codelineno-55-17" name="__codelineno-55-17"></a>
|
|
<a id="__codelineno-55-18" name="__codelineno-55-18"></a><span class="p">}</span>
|
|
<a id="__codelineno-55-19" name="__codelineno-55-19"></a>
|
|
<a id="__codelineno-55-20" name="__codelineno-55-20"></a><span class="n">GenericClass</span><span class="o"><</span><span class="n">Type</span><span class="o">></span><span class="w"> </span><span class="n">obj</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">GenericClass</span><span class="o"><></span><span class="p">();</span>
|
|
<a id="__codelineno-55-21" name="__codelineno-55-21"></a><span class="n">GenericClass</span><span class="o"><</span><span class="n">Type</span><span class="o">>[]</span><span class="w"> </span><span class="n">obj</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">GenericClass</span><span class="o"><>[]</span><span class="p">;</span><span class="w"> </span><span class="c1">// invalid</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
<h3 id="multiple-generics">Multiple Generics</h3>
|
|
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">Java</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-56-1">1</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-56-1" name="__codelineno-56-1"></a><span class="kd">public</span><span class="w"> </span><span class="kd">class</span> <span class="nc">GenericClass</span><span class="o"><</span><span class="n">T1</span><span class="p">,</span><span class="w"> </span><span class="n">T2</span><span class="p">,</span><span class="w"> </span><span class="p">...</span><span class="o">></span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="p">}</span><span class="w"> </span><span class="c1">// number of generic types is not limited</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
<h3 id="parameters-constraints">Parameters Constraints</h3>
|
|
<p>Specify an interface or class that the generic type must implement/inherit.</p>
|
|
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">Java</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-57-1">1</a></span>
|
|
<span class="normal"><a href="#__codelineno-57-2">2</a></span>
|
|
<span class="normal"><a href="#__codelineno-57-3">3</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-57-1" name="__codelineno-57-1"></a><span class="kd">public</span><span class="w"> </span><span class="kd">class</span> <span class="nc">GenericClass</span><span class="o"><</span><span class="n">T</span><span class="w"> </span><span class="kd">extends</span><span class="w"> </span><span class="n">Interface1</span><span class="w"> </span><span class="o">&</span><span class="w"> </span><span class="n">Interface2</span><span class="o">></span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="p">}</span>
|
|
<a id="__codelineno-57-2" name="__codelineno-57-2"></a><span class="kd">public</span><span class="w"> </span><span class="kd">class</span> <span class="nc">GenericClass</span><span class="o"><</span><span class="n">T1</span><span class="w"> </span><span class="kd">extends</span><span class="w"> </span><span class="n">Interface1</span><span class="w"> </span><span class="o">&</span><span class="w"> </span><span class="n">Interface2</span><span class="p">,</span><span class="w"> </span><span class="n">T2</span><span class="w"> </span><span class="kd">extends</span><span class="w"> </span><span class="n">Class1</span><span class="o">></span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="p">}</span>
|
|
<a id="__codelineno-57-3" name="__codelineno-57-3"></a><span class="kd">public</span><span class="w"> </span><span class="kd">class</span> <span class="nc">GenericClass</span><span class="o"><</span><span class="n">T</span><span class="w"> </span><span class="kd">extends</span><span class="w"> </span><span class="n">Class1</span><span class="o">></span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="p">}</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
<h3 id="generic-methods">Generic Methods</h3>
|
|
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">Java</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-58-1"> 1</a></span>
|
|
<span class="normal"><a href="#__codelineno-58-2"> 2</a></span>
|
|
<span class="normal"><a href="#__codelineno-58-3"> 3</a></span>
|
|
<span class="normal"><a href="#__codelineno-58-4"> 4</a></span>
|
|
<span class="normal"><a href="#__codelineno-58-5"> 5</a></span>
|
|
<span class="normal"><a href="#__codelineno-58-6"> 6</a></span>
|
|
<span class="normal"><a href="#__codelineno-58-7"> 7</a></span>
|
|
<span class="normal"><a href="#__codelineno-58-8"> 8</a></span>
|
|
<span class="normal"><a href="#__codelineno-58-9"> 9</a></span>
|
|
<span class="normal"><a href="#__codelineno-58-10">10</a></span>
|
|
<span class="normal"><a href="#__codelineno-58-11">11</a></span>
|
|
<span class="normal"><a href="#__codelineno-58-12">12</a></span>
|
|
<span class="normal"><a href="#__codelineno-58-13">13</a></span>
|
|
<span class="normal"><a href="#__codelineno-58-14">14</a></span>
|
|
<span class="normal"><a href="#__codelineno-58-15">15</a></span>
|
|
<span class="normal"><a href="#__codelineno-58-16">16</a></span>
|
|
<span class="normal"><a href="#__codelineno-58-17">17</a></span>
|
|
<span class="normal"><a href="#__codelineno-58-18">18</a></span>
|
|
<span class="normal"><a href="#__codelineno-58-19">19</a></span>
|
|
<span class="normal"><a href="#__codelineno-58-20">20</a></span>
|
|
<span class="normal"><a href="#__codelineno-58-21">21</a></span>
|
|
<span class="normal"><a href="#__codelineno-58-22">22</a></span>
|
|
<span class="normal"><a href="#__codelineno-58-23">23</a></span>
|
|
<span class="normal"><a href="#__codelineno-58-24">24</a></span>
|
|
<span class="normal"><a href="#__codelineno-58-25">25</a></span>
|
|
<span class="normal"><a href="#__codelineno-58-26">26</a></span>
|
|
<span class="normal"><a href="#__codelineno-58-27">27</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-58-1" name="__codelineno-58-1"></a><span class="kd">public</span><span class="w"> </span><span class="kd">class</span> <span class="nc">ClassName</span><span class="p">{</span>
|
|
<a id="__codelineno-58-2" name="__codelineno-58-2"></a>
|
|
<a id="__codelineno-58-3" name="__codelineno-58-3"></a><span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="o"><</span><span class="n">T</span><span class="o">></span><span class="w"> </span><span class="nf">methodName</span><span class="p">()</span><span class="w"> </span><span class="p">{</span>
|
|
<a id="__codelineno-58-4" name="__codelineno-58-4"></a><span class="w"> </span><span class="c1">// code here</span>
|
|
<a id="__codelineno-58-5" name="__codelineno-58-5"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="o"><</span><span class="n">T</span><span class="o">></span><span class="n">_obj</span>
|
|
<a id="__codelineno-58-6" name="__codelineno-58-6"></a><span class="w"> </span><span class="p">}</span>
|
|
<a id="__codelineno-58-7" name="__codelineno-58-7"></a>
|
|
<a id="__codelineno-58-8" name="__codelineno-58-8"></a><span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="o"><</span><span class="n">T</span><span class="o">></span><span class="w"> </span><span class="nf">methodName</span><span class="p">(</span><span class="n">T</span><span class="w"> </span><span class="n">obj</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
|
|
<a id="__codelineno-58-9" name="__codelineno-58-9"></a><span class="w"> </span><span class="c1">// code here</span>
|
|
<a id="__codelineno-58-10" name="__codelineno-58-10"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="o"><</span><span class="n">T</span><span class="o">></span><span class="n">_obj</span>
|
|
<a id="__codelineno-58-11" name="__codelineno-58-11"></a><span class="w"> </span><span class="p">}</span>
|
|
<a id="__codelineno-58-12" name="__codelineno-58-12"></a><span class="p">}</span>
|
|
<a id="__codelineno-58-13" name="__codelineno-58-13"></a>
|
|
<a id="__codelineno-58-14" name="__codelineno-58-14"></a><span class="kd">public</span><span class="w"> </span><span class="kd">class</span> <span class="nc">GenericClass</span><span class="o"><</span><span class="n">S</span><span class="o">></span><span class="w"> </span><span class="p">{</span>
|
|
<a id="__codelineno-58-15" name="__codelineno-58-15"></a>
|
|
<a id="__codelineno-58-16" name="__codelineno-58-16"></a><span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="o"><</span><span class="n">T</span><span class="o">></span><span class="w"> </span><span class="nf">methodName</span><span class="p">()</span><span class="w"> </span><span class="p">{</span>
|
|
<a id="__codelineno-58-17" name="__codelineno-58-17"></a><span class="w"> </span><span class="c1">// code here</span>
|
|
<a id="__codelineno-58-18" name="__codelineno-58-18"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="o"><</span><span class="n">T</span><span class="o">></span><span class="n">_obj</span>
|
|
<a id="__codelineno-58-19" name="__codelineno-58-19"></a><span class="w"> </span><span class="p">}</span>
|
|
<a id="__codelineno-58-20" name="__codelineno-58-20"></a>
|
|
<a id="__codelineno-58-21" name="__codelineno-58-21"></a><span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="o"><</span><span class="n">T</span><span class="o">></span><span class="w"> </span><span class="nf">methodName</span><span class="p">(</span><span class="n">T</span><span class="w"> </span><span class="n">obj</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
|
|
<a id="__codelineno-58-22" name="__codelineno-58-22"></a><span class="w"> </span><span class="c1">// code here</span>
|
|
<a id="__codelineno-58-23" name="__codelineno-58-23"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="o"><</span><span class="n">T</span><span class="o">></span><span class="n">_obj</span>
|
|
<a id="__codelineno-58-24" name="__codelineno-58-24"></a><span class="w"> </span><span class="p">}</span>
|
|
<a id="__codelineno-58-25" name="__codelineno-58-25"></a><span class="p">}</span>
|
|
<a id="__codelineno-58-26" name="__codelineno-58-26"></a>
|
|
<a id="__codelineno-58-27" name="__codelineno-58-27"></a><span class="n">obj</span><span class="p">.</span><span class="o"><</span><span class="n">Type</span><span class="o">></span><span class="n">methodName</span><span class="p">();</span><span class="w"> </span><span class="c1">// generic method call</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
<h2 id="file-io">File I/O</h2>
|
|
<h3 id="text-files">Text Files</h3>
|
|
<h4 id="writing-on-a-file">Writing on a file</h4>
|
|
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">Java</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-59-1"> 1</a></span>
|
|
<span class="normal"><a href="#__codelineno-59-2"> 2</a></span>
|
|
<span class="normal"><a href="#__codelineno-59-3"> 3</a></span>
|
|
<span class="normal"><a href="#__codelineno-59-4"> 4</a></span>
|
|
<span class="normal"><a href="#__codelineno-59-5"> 5</a></span>
|
|
<span class="normal"><a href="#__codelineno-59-6"> 6</a></span>
|
|
<span class="normal"><a href="#__codelineno-59-7"> 7</a></span>
|
|
<span class="normal"><a href="#__codelineno-59-8"> 8</a></span>
|
|
<span class="normal"><a href="#__codelineno-59-9"> 9</a></span>
|
|
<span class="normal"><a href="#__codelineno-59-10">10</a></span>
|
|
<span class="normal"><a href="#__codelineno-59-11">11</a></span>
|
|
<span class="normal"><a href="#__codelineno-59-12">12</a></span>
|
|
<span class="normal"><a href="#__codelineno-59-13">13</a></span>
|
|
<span class="normal"><a href="#__codelineno-59-14">14</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-59-1" name="__codelineno-59-1"></a><span class="c1">// opening/creating the file for writing</span>
|
|
<a id="__codelineno-59-2" name="__codelineno-59-2"></a><span class="n">PrintWriter</span><span class="w"> </span><span class="n">outStream</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kc">null</span><span class="p">;</span><span class="w"> </span><span class="c1">// output stream creation</span>
|
|
<a id="__codelineno-59-3" name="__codelineno-59-3"></a><span class="k">try</span><span class="p">{</span>
|
|
<a id="__codelineno-59-4" name="__codelineno-59-4"></a><span class="w"> </span><span class="n">outStream</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">PrintWriter</span><span class="p">(</span><span class="n">filename</span><span class="p">);</span><span class="w"> </span><span class="c1">// file-stream binding, file will be empty (creates or overwrites file)</span>
|
|
<a id="__codelineno-59-5" name="__codelineno-59-5"></a><span class="w"> </span><span class="n">outStream</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">PrintWriter</span><span class="p">(</span><span class="k">new</span><span class="w"> </span><span class="n">FileOutputStream</span><span class="p">(</span><span class="n">filename</span><span class="p">,</span><span class="w"> </span><span class="kc">true</span><span class="p">));</span><span class="w"> </span><span class="c1">// stream for appending text</span>
|
|
<a id="__codelineno-59-6" name="__codelineno-59-6"></a><span class="p">}</span><span class="w"> </span><span class="k">catch</span><span class="w"> </span><span class="p">(</span><span class="n">FileNotFoundException</span><span class="w"> </span><span class="n">e</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
|
|
<a id="__codelineno-59-7" name="__codelineno-59-7"></a><span class="w"> </span><span class="c1">// code here</span>
|
|
<a id="__codelineno-59-8" name="__codelineno-59-8"></a><span class="p">}</span>
|
|
<a id="__codelineno-59-9" name="__codelineno-59-9"></a>
|
|
<a id="__codelineno-59-10" name="__codelineno-59-10"></a><span class="c1">// write on the file</span>
|
|
<a id="__codelineno-59-11" name="__codelineno-59-11"></a><span class="n">outStream</span><span class="p">.</span><span class="na">print</span><span class="p">(</span><span class="s">""</span><span class="p">);</span>
|
|
<a id="__codelineno-59-12" name="__codelineno-59-12"></a><span class="n">outStream</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">""</span><span class="p">);</span>
|
|
<a id="__codelineno-59-13" name="__codelineno-59-13"></a>
|
|
<a id="__codelineno-59-14" name="__codelineno-59-14"></a><span class="n">outStream</span><span class="p">.</span><span class="na">close</span><span class="p">()</span><span class="w"> </span><span class="c1">// close stream and write buffer contents.</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
<p><strong>Note</strong>: writing operations do not write directly on the file. The sent data is collected in a <strong>buffer</strong>. When the buffer is <em>full</em> the data is written in the file. This is called <em>buffering</em> and is used to append up operations.</p>
|
|
<h4 id="reading-from-a-file">Reading from a file</h4>
|
|
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">Java</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-60-1"> 1</a></span>
|
|
<span class="normal"><a href="#__codelineno-60-2"> 2</a></span>
|
|
<span class="normal"><a href="#__codelineno-60-3"> 3</a></span>
|
|
<span class="normal"><a href="#__codelineno-60-4"> 4</a></span>
|
|
<span class="normal"><a href="#__codelineno-60-5"> 5</a></span>
|
|
<span class="normal"><a href="#__codelineno-60-6"> 6</a></span>
|
|
<span class="normal"><a href="#__codelineno-60-7"> 7</a></span>
|
|
<span class="normal"><a href="#__codelineno-60-8"> 8</a></span>
|
|
<span class="normal"><a href="#__codelineno-60-9"> 9</a></span>
|
|
<span class="normal"><a href="#__codelineno-60-10">10</a></span>
|
|
<span class="normal"><a href="#__codelineno-60-11">11</a></span>
|
|
<span class="normal"><a href="#__codelineno-60-12">12</a></span>
|
|
<span class="normal"><a href="#__codelineno-60-13">13</a></span>
|
|
<span class="normal"><a href="#__codelineno-60-14">14</a></span>
|
|
<span class="normal"><a href="#__codelineno-60-15">15</a></span>
|
|
<span class="normal"><a href="#__codelineno-60-16">16</a></span>
|
|
<span class="normal"><a href="#__codelineno-60-17">17</a></span>
|
|
<span class="normal"><a href="#__codelineno-60-18">18</a></span>
|
|
<span class="normal"><a href="#__codelineno-60-19">19</a></span>
|
|
<span class="normal"><a href="#__codelineno-60-20">20</a></span>
|
|
<span class="normal"><a href="#__codelineno-60-21">21</a></span>
|
|
<span class="normal"><a href="#__codelineno-60-22">22</a></span>
|
|
<span class="normal"><a href="#__codelineno-60-23">23</a></span>
|
|
<span class="normal"><a href="#__codelineno-60-24">24</a></span>
|
|
<span class="normal"><a href="#__codelineno-60-25">25</a></span>
|
|
<span class="normal"><a href="#__codelineno-60-26">26</a></span>
|
|
<span class="normal"><a href="#__codelineno-60-27">27</a></span>
|
|
<span class="normal"><a href="#__codelineno-60-28">28</a></span>
|
|
<span class="normal"><a href="#__codelineno-60-29">29</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-60-1" name="__codelineno-60-1"></a><span class="n">Filereader</span><span class="w"> </span><span class="n">filereader</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Filereader</span><span class="p">(</span><span class="s">"filename"</span><span class="p">);</span><span class="w"> </span><span class="c1">//open the file</span>
|
|
<a id="__codelineno-60-2" name="__codelineno-60-2"></a><span class="n">Scanner</span><span class="w"> </span><span class="n">scanner</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Scanner</span><span class="p">(</span><span class="n">filereader</span><span class="p">);</span><span class="w"> </span><span class="c1">//scanner for the file</span>
|
|
<a id="__codelineno-60-3" name="__codelineno-60-3"></a>
|
|
<a id="__codelineno-60-4" name="__codelineno-60-4"></a>
|
|
<a id="__codelineno-60-5" name="__codelineno-60-5"></a><span class="n">Scanner</span><span class="w"> </span><span class="n">inStream</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kc">null</span><span class="p">;</span>
|
|
<a id="__codelineno-60-6" name="__codelineno-60-6"></a><span class="k">try</span><span class="p">{</span>
|
|
<a id="__codelineno-60-7" name="__codelineno-60-7"></a><span class="w"> </span><span class="n">inStream</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Scanner</span><span class="p">(</span><span class="n">File</span><span class="p">(</span><span class="n">filename</span><span class="p">));</span>
|
|
<a id="__codelineno-60-8" name="__codelineno-60-8"></a><span class="p">}</span><span class="w"> </span><span class="k">catch</span><span class="w"> </span><span class="p">(</span><span class="n">FileNotFoundException</span><span class="w"> </span><span class="n">e</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
|
|
<a id="__codelineno-60-9" name="__codelineno-60-9"></a><span class="w"> </span><span class="c1">// code here</span>
|
|
<a id="__codelineno-60-10" name="__codelineno-60-10"></a><span class="p">}</span>
|
|
<a id="__codelineno-60-11" name="__codelineno-60-11"></a>
|
|
<a id="__codelineno-60-12" name="__codelineno-60-12"></a><span class="n">inStream</span><span class="p">.</span><span class="na">hasNext</span><span class="p">();</span><span class="w"> </span><span class="c1">// true if there is data to be read with next()</span>
|
|
<a id="__codelineno-60-13" name="__codelineno-60-13"></a><span class="n">inStream</span><span class="p">.</span><span class="na">hasNextDouble</span><span class="p">();</span><span class="w"> </span><span class="c1">// true if there is data to be read with nextDouble()</span>
|
|
<a id="__codelineno-60-14" name="__codelineno-60-14"></a><span class="n">inStream</span><span class="p">.</span><span class="na">hasNextInt</span><span class="p">();</span><span class="w"> </span><span class="c1">// true if there is data to be read with nextInt()</span>
|
|
<a id="__codelineno-60-15" name="__codelineno-60-15"></a><span class="n">inStream</span><span class="p">.</span><span class="na">hasNextLine</span><span class="p">();</span><span class="w"> </span><span class="c1">// true if there is data to be read with nextLine()</span>
|
|
<a id="__codelineno-60-16" name="__codelineno-60-16"></a>
|
|
<a id="__codelineno-60-17" name="__codelineno-60-17"></a>
|
|
<a id="__codelineno-60-18" name="__codelineno-60-18"></a><span class="n">BufferedReader</span><span class="w"> </span><span class="n">inStream</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kc">null</span><span class="p">;</span>
|
|
<a id="__codelineno-60-19" name="__codelineno-60-19"></a><span class="k">try</span><span class="w"> </span><span class="p">{</span>
|
|
<a id="__codelineno-60-20" name="__codelineno-60-20"></a><span class="w"> </span><span class="n">inStream</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">BufferReader</span><span class="p">(</span><span class="k">new</span><span class="w"> </span><span class="n">Filereader</span><span class="p">(</span><span class="n">filename</span><span class="p">));</span><span class="w"> </span><span class="c1">//buffed reader for file</span>
|
|
<a id="__codelineno-60-21" name="__codelineno-60-21"></a><span class="p">}</span><span class="w"> </span><span class="k">catch</span><span class="w"> </span><span class="p">(</span><span class="n">FileNotFoundException</span><span class="w"> </span><span class="n">e</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
|
|
<a id="__codelineno-60-22" name="__codelineno-60-22"></a><span class="w"> </span><span class="c1">// code here</span>
|
|
<a id="__codelineno-60-23" name="__codelineno-60-23"></a><span class="p">}</span>
|
|
<a id="__codelineno-60-24" name="__codelineno-60-24"></a>
|
|
<a id="__codelineno-60-25" name="__codelineno-60-25"></a><span class="c1">// BufferedReader Methods</span>
|
|
<a id="__codelineno-60-26" name="__codelineno-60-26"></a><span class="kd">public</span><span class="w"> </span><span class="n">String</span><span class="w"> </span><span class="nf">readLine</span><span class="p">()</span><span class="w"> </span><span class="kd">throws</span><span class="w"> </span><span class="n">IOException</span><span class="w"> </span><span class="c1">// return file line or null (file has ended)</span>
|
|
<a id="__codelineno-60-27" name="__codelineno-60-27"></a><span class="kd">public</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="nf">read</span><span class="p">()</span><span class="w"> </span><span class="kd">throws</span><span class="w"> </span><span class="n">IOException</span><span class="w"> </span><span class="c1">// return an integer representing a char or -1 (file has ended)</span>
|
|
<a id="__codelineno-60-28" name="__codelineno-60-28"></a><span class="kd">public</span><span class="w"> </span><span class="kt">long</span><span class="w"> </span><span class="nf">skip</span><span class="p">(</span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="kd">throws</span><span class="w"> </span><span class="n">IOException</span><span class="w"> </span><span class="c1">// skip n characters</span>
|
|
<a id="__codelineno-60-29" name="__codelineno-60-29"></a><span class="kd">public</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">close</span><span class="p">()</span><span class="w"> </span><span class="kd">throws</span><span class="w"> </span><span class="n">IOException</span><span class="w"> </span><span class="c1">// closes the stream</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
<h4 id="file-class"><code>File()</code> class</h4>
|
|
<p>The File class is an abstraction of the file and it's path. The abstraction is independent from the OS.</p>
|
|
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">Java</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-61-1"> 1</a></span>
|
|
<span class="normal"><a href="#__codelineno-61-2"> 2</a></span>
|
|
<span class="normal"><a href="#__codelineno-61-3"> 3</a></span>
|
|
<span class="normal"><a href="#__codelineno-61-4"> 4</a></span>
|
|
<span class="normal"><a href="#__codelineno-61-5"> 5</a></span>
|
|
<span class="normal"><a href="#__codelineno-61-6"> 6</a></span>
|
|
<span class="normal"><a href="#__codelineno-61-7"> 7</a></span>
|
|
<span class="normal"><a href="#__codelineno-61-8"> 8</a></span>
|
|
<span class="normal"><a href="#__codelineno-61-9"> 9</a></span>
|
|
<span class="normal"><a href="#__codelineno-61-10">10</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-61-1" name="__codelineno-61-1"></a><span class="n">File</span><span class="p">(</span><span class="s">"path/to/file"</span><span class="p">)</span><span class="w"> </span><span class="c1">// UNIX like path</span>
|
|
<a id="__codelineno-61-2" name="__codelineno-61-2"></a><span class="n">File</span><span class="p">(</span><span class="s">"path\\to\\file"</span><span class="p">)</span><span class="w"> </span><span class="c1">// Windows path</span>
|
|
<a id="__codelineno-61-3" name="__codelineno-61-3"></a>
|
|
<a id="__codelineno-61-4" name="__codelineno-61-4"></a><span class="n">file</span><span class="p">.</span><span class="na">canRead</span><span class="p">()</span><span class="w"> </span><span class="c1">// true if file is readable</span>
|
|
<a id="__codelineno-61-5" name="__codelineno-61-5"></a><span class="n">file</span><span class="p">.</span><span class="na">canWrite</span><span class="p">()</span><span class="w"> </span><span class="c1">// true if file is writable</span>
|
|
<a id="__codelineno-61-6" name="__codelineno-61-6"></a><span class="n">file</span><span class="p">.</span><span class="na">delete</span><span class="p">()</span><span class="w"> </span><span class="c1">// true if file has been deleted</span>
|
|
<a id="__codelineno-61-7" name="__codelineno-61-7"></a><span class="n">file</span><span class="p">.</span><span class="na">exists</span><span class="p">()</span><span class="w"> </span><span class="c1">// check if exist a file with the filename used in the constructor</span>
|
|
<a id="__codelineno-61-8" name="__codelineno-61-8"></a><span class="n">file</span><span class="p">.</span><span class="na">getName</span><span class="p">()</span><span class="w"> </span><span class="c1">// returns the filename</span>
|
|
<a id="__codelineno-61-9" name="__codelineno-61-9"></a><span class="n">file</span><span class="p">.</span><span class="na">getPath</span><span class="p">()</span><span class="w"> </span><span class="c1">// returns the file's path</span>
|
|
<a id="__codelineno-61-10" name="__codelineno-61-10"></a><span class="n">file</span><span class="p">.</span><span class="na">length</span><span class="p">()</span><span class="w"> </span><span class="c1">// file length in bytes</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
<h3 id="binary-files">Binary Files</h3>
|
|
<h4 id="writing-to-a-binary-file">Writing to a binary file</h4>
|
|
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">Java</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-62-1"> 1</a></span>
|
|
<span class="normal"><a href="#__codelineno-62-2"> 2</a></span>
|
|
<span class="normal"><a href="#__codelineno-62-3"> 3</a></span>
|
|
<span class="normal"><a href="#__codelineno-62-4"> 4</a></span>
|
|
<span class="normal"><a href="#__codelineno-62-5"> 5</a></span>
|
|
<span class="normal"><a href="#__codelineno-62-6"> 6</a></span>
|
|
<span class="normal"><a href="#__codelineno-62-7"> 7</a></span>
|
|
<span class="normal"><a href="#__codelineno-62-8"> 8</a></span>
|
|
<span class="normal"><a href="#__codelineno-62-9"> 9</a></span>
|
|
<span class="normal"><a href="#__codelineno-62-10">10</a></span>
|
|
<span class="normal"><a href="#__codelineno-62-11">11</a></span>
|
|
<span class="normal"><a href="#__codelineno-62-12">12</a></span>
|
|
<span class="normal"><a href="#__codelineno-62-13">13</a></span>
|
|
<span class="normal"><a href="#__codelineno-62-14">14</a></span>
|
|
<span class="normal"><a href="#__codelineno-62-15">15</a></span>
|
|
<span class="normal"><a href="#__codelineno-62-16">16</a></span>
|
|
<span class="normal"><a href="#__codelineno-62-17">17</a></span>
|
|
<span class="normal"><a href="#__codelineno-62-18">18</a></span>
|
|
<span class="normal"><a href="#__codelineno-62-19">19</a></span>
|
|
<span class="normal"><a href="#__codelineno-62-20">20</a></span>
|
|
<span class="normal"><a href="#__codelineno-62-21">21</a></span>
|
|
<span class="normal"><a href="#__codelineno-62-22">22</a></span>
|
|
<span class="normal"><a href="#__codelineno-62-23">23</a></span>
|
|
<span class="normal"><a href="#__codelineno-62-24">24</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-62-1" name="__codelineno-62-1"></a><span class="n">ObjectOutputStream</span><span class="w"> </span><span class="n">outStream</span><span class="p">;</span>
|
|
<a id="__codelineno-62-2" name="__codelineno-62-2"></a><span class="k">try</span><span class="w"> </span><span class="p">{</span>
|
|
<a id="__codelineno-62-3" name="__codelineno-62-3"></a><span class="w"> </span><span class="n">outStream</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">ObjectOutputStream</span><span class="p">(</span><span class="k">new</span><span class="w"> </span><span class="n">FileOutputSteam</span><span class="p">(</span><span class="n">filename</span><span class="p">));</span>
|
|
<a id="__codelineno-62-4" name="__codelineno-62-4"></a><span class="w"> </span><span class="c1">// write operations here since they can cause IOException</span>
|
|
<a id="__codelineno-62-5" name="__codelineno-62-5"></a><span class="p">}</span><span class="w"> </span><span class="k">catch</span><span class="w"> </span><span class="p">(</span><span class="n">FileNotFoundException</span><span class="w"> </span><span class="n">e</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
|
|
<a id="__codelineno-62-6" name="__codelineno-62-6"></a>
|
|
<a id="__codelineno-62-7" name="__codelineno-62-7"></a><span class="p">}</span><span class="w"> </span><span class="k">catch</span><span class="w"> </span><span class="p">(</span><span class="n">IOException</span><span class="w"> </span><span class="n">e</span><span class="p">){</span>
|
|
<a id="__codelineno-62-8" name="__codelineno-62-8"></a>
|
|
<a id="__codelineno-62-9" name="__codelineno-62-9"></a><span class="p">}</span>
|
|
<a id="__codelineno-62-10" name="__codelineno-62-10"></a>
|
|
<a id="__codelineno-62-11" name="__codelineno-62-11"></a><span class="c1">// ObjectOutputStream Methods</span>
|
|
<a id="__codelineno-62-12" name="__codelineno-62-12"></a><span class="kd">public</span><span class="w"> </span><span class="nf">ObjectOutputStream</span><span class="p">(</span><span class="n">OutputStream</span><span class="w"> </span><span class="n">streamObj</span><span class="p">)</span><span class="w"> </span><span class="kd">throws</span><span class="w"> </span><span class="n">IOException</span><span class="p">,</span><span class="w"> </span><span class="n">FileNotFoundException</span>
|
|
<a id="__codelineno-62-13" name="__codelineno-62-13"></a><span class="kd">public</span><span class="w"> </span><span class="nf">ObjectOutputStream</span><span class="p">(</span><span class="k">new</span><span class="w"> </span><span class="n">FileOutputStream</span><span class="p">(</span><span class="n">filename</span><span class="p">))</span><span class="w"> </span><span class="kd">throws</span><span class="w"> </span><span class="n">IOException</span><span class="p">,</span><span class="w"> </span><span class="n">FileNotFoundException</span>
|
|
<a id="__codelineno-62-14" name="__codelineno-62-14"></a><span class="kd">public</span><span class="w"> </span><span class="nf">ObjectOutputStream</span><span class="p">(</span><span class="k">new</span><span class="w"> </span><span class="n">FileOutputStream</span><span class="p">(</span><span class="k">new</span><span class="w"> </span><span class="n">File</span><span class="p">(</span><span class="n">filename</span><span class="p">)))</span><span class="w"> </span><span class="kd">throws</span><span class="w"> </span><span class="n">IOException</span><span class="p">,</span><span class="w"> </span><span class="n">FileNotFoundException</span>
|
|
<a id="__codelineno-62-15" name="__codelineno-62-15"></a><span class="kd">public</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">writeInt</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="kd">throws</span><span class="w"> </span><span class="n">IOException</span>
|
|
<a id="__codelineno-62-16" name="__codelineno-62-16"></a><span class="kd">public</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">writeLong</span><span class="p">(</span><span class="kt">long</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="kd">throws</span><span class="w"> </span><span class="n">IOException</span>
|
|
<a id="__codelineno-62-17" name="__codelineno-62-17"></a><span class="kd">public</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">writeDouble</span><span class="p">(</span><span class="kt">double</span><span class="w"> </span><span class="n">x</span><span class="p">)</span><span class="w"> </span><span class="kd">throws</span><span class="w"> </span><span class="n">IOException</span>
|
|
<a id="__codelineno-62-18" name="__codelineno-62-18"></a><span class="kd">public</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">writeFloat</span><span class="p">(</span><span class="kt">float</span><span class="w"> </span><span class="n">x</span><span class="p">)</span><span class="w"> </span><span class="kd">throws</span><span class="w"> </span><span class="n">IOException</span>
|
|
<a id="__codelineno-62-19" name="__codelineno-62-19"></a><span class="kd">public</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">writeChar</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">c</span><span class="p">)</span><span class="w"> </span><span class="kd">throws</span><span class="w"> </span><span class="n">IOException</span>
|
|
<a id="__codelineno-62-20" name="__codelineno-62-20"></a><span class="kd">public</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">writeChar</span><span class="p">(</span><span class="kt">char</span><span class="w"> </span><span class="n">c</span><span class="p">)</span><span class="w"> </span><span class="kd">throws</span><span class="w"> </span><span class="n">IOException</span>
|
|
<a id="__codelineno-62-21" name="__codelineno-62-21"></a><span class="kd">public</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">writeBoolean</span><span class="p">(</span><span class="kt">boolean</span><span class="w"> </span><span class="n">b</span><span class="p">)</span><span class="w"> </span><span class="kd">throws</span><span class="w"> </span><span class="n">IOException</span>
|
|
<a id="__codelineno-62-22" name="__codelineno-62-22"></a><span class="kd">public</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">writeUTF</span><span class="p">(</span><span class="n">String</span><span class="w"> </span><span class="n">s</span><span class="p">)</span><span class="w"> </span><span class="kd">throws</span><span class="w"> </span><span class="n">IOException</span>
|
|
<a id="__codelineno-62-23" name="__codelineno-62-23"></a><span class="kd">public</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">writeObject</span><span class="p">(</span><span class="n">Object</span><span class="w"> </span><span class="n">obj</span><span class="p">)</span><span class="w"> </span><span class="kd">throws</span><span class="w"> </span><span class="n">IOException</span><span class="p">,</span><span class="w"> </span><span class="n">NotSerializableException</span><span class="p">,</span><span class="w"> </span><span class="n">InvalidClassException</span><span class="w"> </span><span class="c1">// Object must be serializable</span>
|
|
<a id="__codelineno-62-24" name="__codelineno-62-24"></a><span class="kd">public</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">close</span><span class="p">()</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
<h4 id="reading-from-a-binary-file">Reading from a binary file</h4>
|
|
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">Java</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-63-1"> 1</a></span>
|
|
<span class="normal"><a href="#__codelineno-63-2"> 2</a></span>
|
|
<span class="normal"><a href="#__codelineno-63-3"> 3</a></span>
|
|
<span class="normal"><a href="#__codelineno-63-4"> 4</a></span>
|
|
<span class="normal"><a href="#__codelineno-63-5"> 5</a></span>
|
|
<span class="normal"><a href="#__codelineno-63-6"> 6</a></span>
|
|
<span class="normal"><a href="#__codelineno-63-7"> 7</a></span>
|
|
<span class="normal"><a href="#__codelineno-63-8"> 8</a></span>
|
|
<span class="normal"><a href="#__codelineno-63-9"> 9</a></span>
|
|
<span class="normal"><a href="#__codelineno-63-10">10</a></span>
|
|
<span class="normal"><a href="#__codelineno-63-11">11</a></span>
|
|
<span class="normal"><a href="#__codelineno-63-12">12</a></span>
|
|
<span class="normal"><a href="#__codelineno-63-13">13</a></span>
|
|
<span class="normal"><a href="#__codelineno-63-14">14</a></span>
|
|
<span class="normal"><a href="#__codelineno-63-15">15</a></span>
|
|
<span class="normal"><a href="#__codelineno-63-16">16</a></span>
|
|
<span class="normal"><a href="#__codelineno-63-17">17</a></span>
|
|
<span class="normal"><a href="#__codelineno-63-18">18</a></span>
|
|
<span class="normal"><a href="#__codelineno-63-19">19</a></span>
|
|
<span class="normal"><a href="#__codelineno-63-20">20</a></span>
|
|
<span class="normal"><a href="#__codelineno-63-21">21</a></span>
|
|
<span class="normal"><a href="#__codelineno-63-22">22</a></span>
|
|
<span class="normal"><a href="#__codelineno-63-23">23</a></span>
|
|
<span class="normal"><a href="#__codelineno-63-24">24</a></span>
|
|
<span class="normal"><a href="#__codelineno-63-25">25</a></span>
|
|
<span class="normal"><a href="#__codelineno-63-26">26</a></span>
|
|
<span class="normal"><a href="#__codelineno-63-27">27</a></span>
|
|
<span class="normal"><a href="#__codelineno-63-28">28</a></span>
|
|
<span class="normal"><a href="#__codelineno-63-29">29</a></span>
|
|
<span class="normal"><a href="#__codelineno-63-30">30</a></span>
|
|
<span class="normal"><a href="#__codelineno-63-31">31</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-63-1" name="__codelineno-63-1"></a><span class="n">ObjectInputStream</span><span class="w"> </span><span class="n">inStream</span><span class="p">;</span>
|
|
<a id="__codelineno-63-2" name="__codelineno-63-2"></a><span class="k">try</span><span class="w"> </span><span class="p">{</span>
|
|
<a id="__codelineno-63-3" name="__codelineno-63-3"></a><span class="w"> </span><span class="n">inStream</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">ObjectInputStream</span><span class="p">(</span><span class="k">new</span><span class="w"> </span><span class="n">FileinputSteam</span><span class="p">(</span><span class="n">filename</span><span class="p">));</span>
|
|
<a id="__codelineno-63-4" name="__codelineno-63-4"></a><span class="p">}</span><span class="w"> </span><span class="k">catch</span><span class="w"> </span><span class="p">(</span><span class="n">FileNotFoundException</span><span class="w"> </span><span class="n">e</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
|
|
<a id="__codelineno-63-5" name="__codelineno-63-5"></a>
|
|
<a id="__codelineno-63-6" name="__codelineno-63-6"></a><span class="p">}</span><span class="w"> </span><span class="k">catch</span><span class="w"> </span><span class="p">(</span><span class="n">IOException</span><span class="w"> </span><span class="n">e</span><span class="p">){</span>
|
|
<a id="__codelineno-63-7" name="__codelineno-63-7"></a>
|
|
<a id="__codelineno-63-8" name="__codelineno-63-8"></a><span class="p">}</span>
|
|
<a id="__codelineno-63-9" name="__codelineno-63-9"></a>
|
|
<a id="__codelineno-63-10" name="__codelineno-63-10"></a><span class="k">try</span><span class="w"> </span><span class="p">{</span>
|
|
<a id="__codelineno-63-11" name="__codelineno-63-11"></a><span class="w"> </span><span class="k">while</span><span class="p">(</span><span class="kc">true</span><span class="p">){</span>
|
|
<a id="__codelineno-63-12" name="__codelineno-63-12"></a><span class="w"> </span><span class="c1">// read fom file</span>
|
|
<a id="__codelineno-63-13" name="__codelineno-63-13"></a><span class="w"> </span><span class="p">}</span>
|
|
<a id="__codelineno-63-14" name="__codelineno-63-14"></a><span class="p">}</span><span class="w"> </span><span class="k">catch</span><span class="w"> </span><span class="p">(</span><span class="n">EOFException</span><span class="w"> </span><span class="n">e</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="c1">// thrown when and of file has been reached</span>
|
|
<a id="__codelineno-63-15" name="__codelineno-63-15"></a><span class="w"> </span><span class="c1">// do nothing, only used to stop the cycle</span>
|
|
<a id="__codelineno-63-16" name="__codelineno-63-16"></a><span class="p">}</span>
|
|
<a id="__codelineno-63-17" name="__codelineno-63-17"></a>
|
|
<a id="__codelineno-63-18" name="__codelineno-63-18"></a><span class="c1">// ObjectOutputStream Methods</span>
|
|
<a id="__codelineno-63-19" name="__codelineno-63-19"></a><span class="kd">public</span><span class="w"> </span><span class="nf">ObjectOutputStream</span><span class="p">(</span><span class="n">InputStream</span><span class="w"> </span><span class="n">streamObj</span><span class="p">)</span><span class="w"> </span><span class="kd">throws</span><span class="w"> </span><span class="n">IOException</span><span class="p">,</span><span class="w"> </span><span class="n">FileNotFoundException</span>
|
|
<a id="__codelineno-63-20" name="__codelineno-63-20"></a><span class="kd">public</span><span class="w"> </span><span class="nf">ObjectOutputStream</span><span class="p">(</span><span class="k">new</span><span class="w"> </span><span class="n">FileInputStream</span><span class="p">(</span><span class="n">filename</span><span class="p">))</span><span class="w"> </span><span class="kd">throws</span><span class="w"> </span><span class="n">IOException</span><span class="p">,</span><span class="w"> </span><span class="n">FileNotFoundException</span>
|
|
<a id="__codelineno-63-21" name="__codelineno-63-21"></a><span class="kd">public</span><span class="w"> </span><span class="nf">ObjectOutputStream</span><span class="p">(</span><span class="k">new</span><span class="w"> </span><span class="n">FileInputStream</span><span class="p">(</span><span class="k">new</span><span class="w"> </span><span class="n">File</span><span class="p">(</span><span class="n">filename</span><span class="p">)))</span><span class="w"> </span><span class="kd">throws</span><span class="w"> </span><span class="n">IOException</span><span class="p">,</span><span class="w"> </span><span class="n">FileNotFoundException</span>
|
|
<a id="__codelineno-63-22" name="__codelineno-63-22"></a><span class="kd">public</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">readInt</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="kd">throws</span><span class="w"> </span><span class="n">IOException</span>
|
|
<a id="__codelineno-63-23" name="__codelineno-63-23"></a><span class="kd">public</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">readLong</span><span class="p">(</span><span class="kt">long</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="kd">throws</span><span class="w"> </span><span class="n">IOException</span>
|
|
<a id="__codelineno-63-24" name="__codelineno-63-24"></a><span class="kd">public</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">readDouble</span><span class="p">(</span><span class="kt">double</span><span class="w"> </span><span class="n">x</span><span class="p">)</span><span class="w"> </span><span class="kd">throws</span><span class="w"> </span><span class="n">IOException</span>
|
|
<a id="__codelineno-63-25" name="__codelineno-63-25"></a><span class="kd">public</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">readFloat</span><span class="p">(</span><span class="kt">float</span><span class="w"> </span><span class="n">x</span><span class="p">)</span><span class="w"> </span><span class="kd">throws</span><span class="w"> </span><span class="n">IOException</span>
|
|
<a id="__codelineno-63-26" name="__codelineno-63-26"></a><span class="kd">public</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">readChar</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">c</span><span class="p">)</span><span class="w"> </span><span class="kd">throws</span><span class="w"> </span><span class="n">IOException</span>
|
|
<a id="__codelineno-63-27" name="__codelineno-63-27"></a><span class="kd">public</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">readChar</span><span class="p">(</span><span class="kt">char</span><span class="w"> </span><span class="n">c</span><span class="p">)</span><span class="w"> </span><span class="kd">throws</span><span class="w"> </span><span class="n">IOException</span>
|
|
<a id="__codelineno-63-28" name="__codelineno-63-28"></a><span class="kd">public</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">readBoolean</span><span class="p">(</span><span class="kt">boolean</span><span class="w"> </span><span class="n">b</span><span class="p">)</span><span class="w"> </span><span class="kd">throws</span><span class="w"> </span><span class="n">IOException</span>
|
|
<a id="__codelineno-63-29" name="__codelineno-63-29"></a><span class="kd">public</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">readUTF</span><span class="p">(</span><span class="n">String</span><span class="w"> </span><span class="n">s</span><span class="p">)</span><span class="w"> </span><span class="kd">throws</span><span class="w"> </span><span class="n">IOException</span>
|
|
<a id="__codelineno-63-30" name="__codelineno-63-30"></a><span class="kd">public</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">readObject</span><span class="p">(</span><span class="n">Object</span><span class="w"> </span><span class="n">obj</span><span class="p">)</span><span class="w"> </span><span class="kd">throws</span><span class="w"> </span><span class="n">IOException</span><span class="p">,</span><span class="w"> </span><span class="n">NotSerializableException</span><span class="p">,</span><span class="w"> </span><span class="n">InvalidClassException</span><span class="w"> </span><span class="c1">// Object must be serializable</span>
|
|
<a id="__codelineno-63-31" name="__codelineno-63-31"></a><span class="kd">public</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">close</span><span class="p">()</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
<h3 id="object-array-io-with-binary-files-serialization">Object & Array I/O with Binary Files (Serialization)</h3>
|
|
<p>Needed for a class to be <em>serializable</em>:</p>
|
|
<ul>
|
|
<li>implements the <code>Serializable</code> interface</li>
|
|
<li>all instance variables are serializable</li>
|
|
<li>superclass, if exists, is serializable or has default constructor</li>
|
|
</ul>
|
|
<p>An array is serializable if it's base type is a serializable object.</p>
|
|
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">Java</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-64-1">1</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-64-1" name="__codelineno-64-1"></a><span class="n">SerializableObject</span><span class="o">[]</span><span class="w"> </span><span class="n">array</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="n">SerializableObject</span><span class="o">[]</span><span class="p">)</span><span class="n">inStream</span><span class="p">.</span><span class="na">readObject</span><span class="p">();</span><span class="w"> </span><span class="c1">// read returns Object, cast needed</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
<h2 id="functional-programming-in-java">Functional Programming in Java</h2>
|
|
<h3 id="functional-interfaces">Functional Interfaces</h3>
|
|
<p>Functional interfaces provide target types for <em>lambda expressions</em>.</p>
|
|
<p>General purpose <code>@functionalInterfaces</code>:</p>
|
|
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">Java</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-65-1"> 1</a></span>
|
|
<span class="normal"><a href="#__codelineno-65-2"> 2</a></span>
|
|
<span class="normal"><a href="#__codelineno-65-3"> 3</a></span>
|
|
<span class="normal"><a href="#__codelineno-65-4"> 4</a></span>
|
|
<span class="normal"><a href="#__codelineno-65-5"> 5</a></span>
|
|
<span class="normal"><a href="#__codelineno-65-6"> 6</a></span>
|
|
<span class="normal"><a href="#__codelineno-65-7"> 7</a></span>
|
|
<span class="normal"><a href="#__codelineno-65-8"> 8</a></span>
|
|
<span class="normal"><a href="#__codelineno-65-9"> 9</a></span>
|
|
<span class="normal"><a href="#__codelineno-65-10">10</a></span>
|
|
<span class="normal"><a href="#__codelineno-65-11">11</a></span>
|
|
<span class="normal"><a href="#__codelineno-65-12">12</a></span>
|
|
<span class="normal"><a href="#__codelineno-65-13">13</a></span>
|
|
<span class="normal"><a href="#__codelineno-65-14">14</a></span>
|
|
<span class="normal"><a href="#__codelineno-65-15">15</a></span>
|
|
<span class="normal"><a href="#__codelineno-65-16">16</a></span>
|
|
<span class="normal"><a href="#__codelineno-65-17">17</a></span>
|
|
<span class="normal"><a href="#__codelineno-65-18">18</a></span>
|
|
<span class="normal"><a href="#__codelineno-65-19">19</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-65-1" name="__codelineno-65-1"></a><span class="c1">// takes input, performs actions, return boolean</span>
|
|
<a id="__codelineno-65-2" name="__codelineno-65-2"></a><span class="kd">public</span><span class="w"> </span><span class="kd">interface</span> <span class="nc">Predicate</span><span class="o"><</span><span class="n">T</span><span class="o">></span><span class="w"> </span><span class="p">{</span>
|
|
<a id="__codelineno-65-3" name="__codelineno-65-3"></a><span class="w"> </span><span class="kt">boolean</span><span class="w"> </span><span class="nf">test</span><span class="p">(</span><span class="n">T</span><span class="w"> </span><span class="n">t</span><span class="p">);</span>
|
|
<a id="__codelineno-65-4" name="__codelineno-65-4"></a><span class="p">}</span>
|
|
<a id="__codelineno-65-5" name="__codelineno-65-5"></a>
|
|
<a id="__codelineno-65-6" name="__codelineno-65-6"></a><span class="c1">// takes input, performs action, no output returned</span>
|
|
<a id="__codelineno-65-7" name="__codelineno-65-7"></a><span class="kd">public</span><span class="w"> </span><span class="kd">interface</span> <span class="nc">Consumer</span><span class="o"><</span><span class="n">T</span><span class="o">></span><span class="w"> </span><span class="p">{</span>
|
|
<a id="__codelineno-65-8" name="__codelineno-65-8"></a><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">accept</span><span class="p">(</span><span class="n">T</span><span class="w"> </span><span class="n">t</span><span class="p">);</span>
|
|
<a id="__codelineno-65-9" name="__codelineno-65-9"></a><span class="p">}</span>
|
|
<a id="__codelineno-65-10" name="__codelineno-65-10"></a>
|
|
<a id="__codelineno-65-11" name="__codelineno-65-11"></a><span class="c1">// takes no input, performs action, returns an output</span>
|
|
<a id="__codelineno-65-12" name="__codelineno-65-12"></a><span class="kd">public</span><span class="w"> </span><span class="kd">interface</span> <span class="nc">Supplier</span><span class="o"><</span><span class="n">T</span><span class="o">></span><span class="w"> </span><span class="p">{</span>
|
|
<a id="__codelineno-65-13" name="__codelineno-65-13"></a><span class="w"> </span><span class="n">T</span><span class="w"> </span><span class="nf">get</span><span class="p">();</span>
|
|
<a id="__codelineno-65-14" name="__codelineno-65-14"></a><span class="p">}</span>
|
|
<a id="__codelineno-65-15" name="__codelineno-65-15"></a>
|
|
<a id="__codelineno-65-16" name="__codelineno-65-16"></a><span class="c1">// takes T as input, performs action, returns R as output</span>
|
|
<a id="__codelineno-65-17" name="__codelineno-65-17"></a><span class="kd">public</span><span class="w"> </span><span class="kd">interface</span> <span class="nc">Function</span><span class="o"><</span><span class="n">T</span><span class="p">,</span><span class="w"> </span><span class="n">R</span><span class="o">></span><span class="w"> </span><span class="p">{</span>
|
|
<a id="__codelineno-65-18" name="__codelineno-65-18"></a><span class="w"> </span><span class="n">R</span><span class="w"> </span><span class="nf">apply</span><span class="p">(</span><span class="n">T</span><span class="w"> </span><span class="n">t</span><span class="p">);</span>
|
|
<a id="__codelineno-65-19" name="__codelineno-65-19"></a><span class="p">}</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
<h3 id="streams">Streams</h3>
|
|
<p>In java a <em>stream</em> is a <a href="https://en.wikipedia.org/wiki/Monad_%28functional_programming%29#Usage">Monad</a>. Monads allow the programmer to compose a sequence of operations, similar to a pipeline chaining expressions together.</p>
|
|
<p>The features of Java stream are:</p>
|
|
<ul>
|
|
<li>A stream is not a data structure instead it takes input from the Collections, Arrays or I/O channels.</li>
|
|
<li>Streams don't change the original data structure, they only provide the result as per the pipelined methods.</li>
|
|
<li>Each intermediate operation is lazily executed and returns a stream as a result, hence various intermediate operations can be pipelined. Terminal operations mark the end of the stream and return the result.</li>
|
|
</ul>
|
|
<p><strong>Intermediate Operations</strong>:</p>
|
|
<ul>
|
|
<li><code>anyMatch()</code></li>
|
|
<li><code>distinct()</code></li>
|
|
<li><code>filter()</code></li>
|
|
<li><code>findFirst()</code></li>
|
|
<li><code>flatmap()</code></li>
|
|
<li><code>map()</code></li>
|
|
<li><code>skip()</code></li>
|
|
<li><code>sorted()</code></li>
|
|
</ul>
|
|
<p><strong>Terminal Operations</strong>:</p>
|
|
<ul>
|
|
<li><code>forEach()</code> applies the same operation on each element</li>
|
|
<li><code>collect()</code> saves the elements in a new collection</li>
|
|
<li>reduce to a single summary element: <code>count()</code>, <code>max()</code>, <code>min()</code>, <code>reduce()</code>, <code>summaryStatistics()</code></li>
|
|
</ul>
|
|
<h3 id="lambda-expressions">Lambda Expressions</h3>
|
|
<p>Usable only by a <code>@FunctionalInterface</code>'s method or a method of a <em>stream</em>.</p>
|
|
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">Java</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-66-1"> 1</a></span>
|
|
<span class="normal"><a href="#__codelineno-66-2"> 2</a></span>
|
|
<span class="normal"><a href="#__codelineno-66-3"> 3</a></span>
|
|
<span class="normal"><a href="#__codelineno-66-4"> 4</a></span>
|
|
<span class="normal"><a href="#__codelineno-66-5"> 5</a></span>
|
|
<span class="normal"><a href="#__codelineno-66-6"> 6</a></span>
|
|
<span class="normal"><a href="#__codelineno-66-7"> 7</a></span>
|
|
<span class="normal"><a href="#__codelineno-66-8"> 8</a></span>
|
|
<span class="normal"><a href="#__codelineno-66-9"> 9</a></span>
|
|
<span class="normal"><a href="#__codelineno-66-10">10</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-66-1" name="__codelineno-66-1"></a><span class="n">lambda</span><span class="w"> </span><span class="n">operator</span><span class="w"> </span><span class="o">-></span><span class="w"> </span><span class="n">body</span><span class="p">;</span>
|
|
<a id="__codelineno-66-2" name="__codelineno-66-2"></a>
|
|
<a id="__codelineno-66-3" name="__codelineno-66-3"></a><span class="c1">//zero parameter</span>
|
|
<a id="__codelineno-66-4" name="__codelineno-66-4"></a><span class="p">()</span><span class="w"> </span><span class="o">-></span><span class="w"> </span><span class="n">body</span><span class="p">;</span>
|
|
<a id="__codelineno-66-5" name="__codelineno-66-5"></a>
|
|
<a id="__codelineno-66-6" name="__codelineno-66-6"></a><span class="c1">//one parameter</span>
|
|
<a id="__codelineno-66-7" name="__codelineno-66-7"></a><span class="p">(</span><span class="n">p</span><span class="p">)</span><span class="w"> </span><span class="o">-></span><span class="w"> </span><span class="n">body</span>
|
|
<a id="__codelineno-66-8" name="__codelineno-66-8"></a>
|
|
<a id="__codelineno-66-9" name="__codelineno-66-9"></a><span class="c1">// multiple parameter</span>
|
|
<a id="__codelineno-66-10" name="__codelineno-66-10"></a><span class="p">(</span><span class="n">p1</span><span class="p">,</span><span class="w"> </span><span class="n">p2</span><span class="p">,</span><span class="w"> </span><span class="p">...)</span><span class="w"> </span><span class="o">-></span><span class="w"> </span><span class="n">body</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</article>
|
|
</div>
|
|
|
|
|
|
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
|
|
</div>
|
|
|
|
<button type="button" class="md-top md-icon" data-md-component="top" hidden>
|
|
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg>
|
|
Back to top
|
|
</button>
|
|
|
|
</main>
|
|
|
|
<footer class="md-footer">
|
|
|
|
|
|
|
|
<nav class="md-footer__inner md-grid" aria-label="Footer" >
|
|
|
|
|
|
<a href="../dotnet/database/entity-framework.html" class="md-footer__link md-footer__link--prev" aria-label="Previous: Entity Framework">
|
|
<div class="md-footer__button md-icon">
|
|
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg>
|
|
</div>
|
|
<div class="md-footer__title">
|
|
<span class="md-footer__direction">
|
|
Previous
|
|
</span>
|
|
<div class="md-ellipsis">
|
|
Entity Framework
|
|
</div>
|
|
</div>
|
|
</a>
|
|
|
|
|
|
|
|
<a href="java-collection-framework.html" class="md-footer__link md-footer__link--next" aria-label="Next: Java Collection Framework">
|
|
<div class="md-footer__title">
|
|
<span class="md-footer__direction">
|
|
Next
|
|
</span>
|
|
<div class="md-ellipsis">
|
|
Java Collection Framework
|
|
</div>
|
|
</div>
|
|
<div class="md-footer__button md-icon">
|
|
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4 11v2h12l-5.5 5.5 1.42 1.42L19.84 12l-7.92-7.92L10.5 5.5 16 11z"/></svg>
|
|
</div>
|
|
</a>
|
|
|
|
</nav>
|
|
|
|
|
|
<div class="md-footer-meta md-typeset">
|
|
<div class="md-footer-meta__inner md-grid">
|
|
<div class="md-copyright">
|
|
|
|
<div class="md-copyright__highlight">
|
|
MIT
|
|
</div>
|
|
|
|
|
|
Made with
|
|
<a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
|
|
Material for MkDocs
|
|
</a>
|
|
|
|
</div>
|
|
|
|
<div class="md-social">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<a href="https://hachyderm.io/@m_lamonaca" target="_blank" rel="noopener me" title="hachyderm.io" class="md-social__link">
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M433 179.11c0-97.2-63.71-125.7-63.71-125.7-62.52-28.7-228.56-28.4-290.48 0 0 0-63.72 28.5-63.72 125.7 0 115.7-6.6 259.4 105.63 289.1 40.51 10.7 75.32 13 103.33 11.4 50.81-2.8 79.32-18.1 79.32-18.1l-1.7-36.9s-36.31 11.4-77.12 10.1c-40.41-1.4-83-4.4-89.63-54a102.5 102.5 0 0 1-.9-13.9c85.63 20.9 158.65 9.1 178.75 6.7 56.12-6.7 105-41.3 111.23-72.9 9.8-49.8 9-121.5 9-121.5m-75.12 125.2h-46.63v-114.2c0-49.7-64-51.6-64 6.9v62.5h-46.33V197c0-58.5-64-56.6-64-6.9v114.2H90.19c0-122.1-5.2-147.9 18.41-175 25.9-28.9 79.82-30.8 103.83 6.1l11.6 19.5 11.6-19.5c24.11-37.1 78.12-34.8 103.83-6.1 23.71 27.3 18.4 53 18.4 175z"/></svg>
|
|
</a>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<a href="https://github.com/m-lamonaca" target="_blank" rel="noopener" title="github.com" class="md-social__link">
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><!--! Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8M97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg>
|
|
</a>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
</footer>
|
|
|
|
</div>
|
|
<div class="md-dialog" data-md-component="dialog">
|
|
<div class="md-dialog__inner md-typeset"></div>
|
|
</div>
|
|
|
|
|
|
<script id="__config" type="application/json">{"base": "../..", "features": ["navigation.instant", "navigation.indexes", "navigation.tracking", "navigation.pruning", "navigation.sections", "navigation.top", "navigation.tabs", "navigation.tabs.sticky", "navigation.footer", "toc.follow", "content.code.copy"], "search": "../../assets/javascripts/workers/search.07f07601.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
|
|
|
|
|
|
<script src="../../assets/javascripts/bundle.56dfad97.min.js"></script>
|
|
|
|
|
|
</body>
|
|
</html> |