Skip to content

Commit

Permalink
Site updated: 2019-05-22 14:12:07
Browse files Browse the repository at this point in the history
  • Loading branch information
scyx committed May 22, 2019
1 parent 37c5dba commit 29e541d
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 9 deletions.
13 changes: 6 additions & 7 deletions 2019/05/22/final关键字/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@
<meta property="og:site_name" content="Cyx&#39;s blog">
<meta property="og:description" content="final是Java中的关键字,可以修饰变量,方法,类">
<meta property="og:locale" content="zh-Hans">
<meta property="og:updated_time" content="2019-05-22T06:07:24.816Z">
<meta property="og:updated_time" content="2019-05-22T06:11:48.360Z">
<meta name="twitter:card" content="summary">
<meta name="twitter:title" content="final关键字">
<meta name="twitter:description" content="final是Java中的关键字,可以修饰变量,方法,类">
Expand Down Expand Up @@ -407,13 +407,12 @@ <h1 class="post-title" itemprop="name headline">final关键字</h1>

<h1 id="final是Java中的关键字,可以修饰变量,方法,类"><a href="#final是Java中的关键字,可以修饰变量,方法,类" class="headerlink" title="final是Java中的关键字,可以修饰变量,方法,类 "></a>final是Java中的关键字,可以修饰变量,方法,类 </h1><a id="more"></a>
<p><strong>final 这个关键字的含义是这是无法改变的或者终态的;一旦引用使用final修饰,那么这个引用就不能再改变,否则,编译器将会报编译错误。</strong></p>
<p> ##修饰变量<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">public static final int TOKEN_EXPIRE = 3600*24 * 2;</span><br></pre></td></tr></table></figure></p>
<h2 id="修饰变量"><a href="#修饰变量" class="headerlink" title="修饰变量"></a>修饰变量</h2><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">public static final int TOKEN_EXPIRE = 3600*24 * 2;</span><br></pre></td></tr></table></figure>
<p>这是我在代码中定义过的一个final变量,用final修饰以后,该值不可变,再次对TOKEN_EXPIRE赋值就会报错。<br>如果修饰引用类型,那么该引用不可变,但是引用的对象是可以被改变的</p>
<p> ##修饰类<br>String类是一个被final修饰的类,那么被final修饰的类,不可被继承,如果一个类不希望被继承,可以用final修饰,被final修饰的类中的<br>所有方法都被final修饰,也就是不可被重写 这就是String类不可变的原因。</p>
<p> ##修饰方法<br>final关键字修饰方法说明该方法不可被子类重写</p>
<h2 id="修饰类"><a href="#修饰类" class="headerlink" title="修饰类"></a>修饰类</h2><p>String类是一个被final修饰的类,那么被final修饰的类,不可被继承,如果一个类不希望被继承,可以用final修饰,被final修饰的类中的<br>所有方法都被final修饰,也就是不可被重写 这就是String类不可变的原因。</p>
<h2 id="修饰方法"><a href="#修饰方法" class="headerlink" title="修饰方法"></a>修饰方法</h2><p>final关键字修饰方法说明该方法不可被子类重写</p>
<h2 id="修饰形参"><a href="#修饰形参" class="headerlink" title="修饰形参"></a>修饰形参</h2><p>该形参在方法中不可被改变</p>
<p>##好处</p>
<ol>
<h2 id="好处"><a href="#好处" class="headerlink" title="好处"></a>好处</h2><ol>
<li>final关键字提高了性能。JVM和Java应用都会缓存final变量。</li>
<li>final变量可以安全的在多线程环境下进行共享,而不需要额外的同步开销。</li>
<li>使用final关键字,JVM会对方法、变量及类进行优化。</li>
Expand Down Expand Up @@ -607,7 +606,7 @@ <h2 id="修饰形参"><a href="#修饰形参" class="headerlink" title="修饰



<div class="post-toc-content"><ol class="nav"><li class="nav-item nav-level-1"><a class="nav-link" href="#final是Java中的关键字,可以修饰变量,方法,类"><span class="nav-number">1.</span> <span class="nav-text">final是Java中的关键字,可以修饰变量,方法,类 </span></a><ol class="nav-child"><li class="nav-item nav-level-2"><a class="nav-link" href="#修饰形参"><span class="nav-number">1.1.</span> <span class="nav-text">修饰形参</span></a></li></ol></li></ol></div>
<div class="post-toc-content"><ol class="nav"><li class="nav-item nav-level-1"><a class="nav-link" href="#final是Java中的关键字,可以修饰变量,方法,类"><span class="nav-number">1.</span> <span class="nav-text">final是Java中的关键字,可以修饰变量,方法,类 </span></a><ol class="nav-child"><li class="nav-item nav-level-2"><a class="nav-link" href="#修饰变量"><span class="nav-number">1.1.</span> <span class="nav-text">修饰变量</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#修饰类"><span class="nav-number">1.2.</span> <span class="nav-text">修饰类</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#修饰方法"><span class="nav-number">1.3.</span> <span class="nav-text">修饰方法</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#修饰形参"><span class="nav-number">1.4.</span> <span class="nav-text">修饰形参</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#好处"><span class="nav-number">1.5.</span> <span class="nav-text">好处</span></a></li></ol></li></ol></div>


</div>
Expand Down
2 changes: 1 addition & 1 deletion css/main.css
Original file line number Diff line number Diff line change
Expand Up @@ -1823,7 +1823,7 @@ pre .javascript .function {
width: 4px;
height: 4px;
border-radius: 50%;
background: #c2f02e;
background: #ff37ff;
}
.links-of-blogroll {
font-size: 13px;
Expand Down
2 changes: 1 addition & 1 deletion search.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<entry>
<title><![CDATA[final关键字]]></title>
<url>%2F2019%2F05%2F22%2Ffinal%E5%85%B3%E9%94%AE%E5%AD%97%2F</url>
<content type="text"><![CDATA[final是Java中的关键字,可以修饰变量,方法,类 final 这个关键字的含义是这是无法改变的或者终态的;一旦引用使用final修饰,那么这个引用就不能再改变,否则,编译器将会报编译错误。 ##修饰变量1public static final int TOKEN_EXPIRE = 3600*24 * 2; 这是我在代码中定义过的一个final变量,用final修饰以后,该值不可变,再次对TOKEN_EXPIRE赋值就会报错。如果修饰引用类型,那么该引用不可变,但是引用的对象是可以被改变的 ##修饰类String类是一个被final修饰的类,那么被final修饰的类,不可被继承,如果一个类不希望被继承,可以用final修饰,被final修饰的类中的所有方法都被final修饰,也就是不可被重写 这就是String类不可变的原因。 ##修饰方法final关键字修饰方法说明该方法不可被子类重写 修饰形参该形参在方法中不可被改变 ##好处 final关键字提高了性能。JVM和Java应用都会缓存final变量。 final变量可以安全的在多线程环境下进行共享,而不需要额外的同步开销。 使用final关键字,JVM会对方法、变量及类进行优化。 ##注意按照Java代码惯例,final变量就是常量,而且通常常量名要大写final关键字不同于finally关键字,后者用于异常处理。final关键字容易与finalize()方法搞混,后者是在Object类中定义的方法,是在垃圾回收之前被JVM调用的方法。final关键字即使在定义的时候未被赋值,但是在每个构造器中一定要赋值,如果没有赋值,系统也不会为它赋值,该变量定义出来毫无意义。]]></content>
<content type="text"><![CDATA[final是Java中的关键字,可以修饰变量,方法,类 final 这个关键字的含义是这是无法改变的或者终态的;一旦引用使用final修饰,那么这个引用就不能再改变,否则,编译器将会报编译错误。 修饰变量1public static final int TOKEN_EXPIRE = 3600*24 * 2; 这是我在代码中定义过的一个final变量,用final修饰以后,该值不可变,再次对TOKEN_EXPIRE赋值就会报错。如果修饰引用类型,那么该引用不可变,但是引用的对象是可以被改变的 修饰类String类是一个被final修饰的类,那么被final修饰的类,不可被继承,如果一个类不希望被继承,可以用final修饰,被final修饰的类中的所有方法都被final修饰,也就是不可被重写 这就是String类不可变的原因。 修饰方法final关键字修饰方法说明该方法不可被子类重写 修饰形参该形参在方法中不可被改变 好处 final关键字提高了性能。JVM和Java应用都会缓存final变量。 final变量可以安全的在多线程环境下进行共享,而不需要额外的同步开销。 使用final关键字,JVM会对方法、变量及类进行优化。 ##注意按照Java代码惯例,final变量就是常量,而且通常常量名要大写final关键字不同于finally关键字,后者用于异常处理。final关键字容易与finalize()方法搞混,后者是在Object类中定义的方法,是在垃圾回收之前被JVM调用的方法。final关键字即使在定义的时候未被赋值,但是在每个构造器中一定要赋值,如果没有赋值,系统也不会为它赋值,该变量定义出来毫无意义。]]></content>
<categories>
<category>Java</category>
</categories>
Expand Down

0 comments on commit 29e541d

Please sign in to comment.