目录

一、垃圾回收机制

二、访问权限修饰符

三、final关键字


一、垃圾回收机制

1)负责回收无用的内存。垃圾回收是Java程序设计中内存管理的核心概念,JVM的内存管理机制被称为垃圾回收机制,它负责自动回收那些无用对象所占用的内存。

2)一个对象创建后被放置在JVM的堆内存中,只有当对象不再被程序中的任何引用变量引用时,它的内存才可能被回收。

3)垃圾回收器作为低优先级系统级守护线程,系统自动运行,程序员无法精确控制和干预。JVM的垃圾回收操作对程序来说都是透明的。因此程序无法预料某个无用对象的finalize()方法何时被释放。

4)当垃圾回收器将要回收无用对象的内存时,先调用该对象的finalize()方法,该方法有可能使对象复活,导致垃圾回收器取消回收该对象的内存。

finalize()定义在Object类中:

protected void finalize() throws Throwable

因为该方法为protected,所以任何Java类都可以覆盖finalize()方法,该方法中进行释放对象所占的相关资源的操作。

finalize()方法的特点:

垃圾回收器是否会执行该方法及何时执行该方法,都是不确定的。

finalize()方法有可能使对象复活,使它恢复到可触及状态。

垃圾回收器在执行finalize()方法时,如果出现异常,垃圾回收器不会报告异常,程序继续正常运行。

5)程序中可调用System.gc()或Runtime.gc()方法提示垃圾回收器尽快执行垃圾回收操作,但是不能保证调用后垃圾回收器会立即执行垃圾回收。

6)Java语言建立了垃圾收集机制,用以跟踪正在使用的对象和发现并回收不再使用(引用)的对象。该机制可以有效防范动态内存分配中可能发生的两个危险:因内存垃圾过多而引发的内存耗尽,以及不恰当的内存释放所造成的内存非法引用。


二、访问权限修饰符

1.知识点说明:

只影响被修饰元素的作用域,不影响生命周期。
作用域是指被修饰的元素在哪些地方可以被访问。
权限修饰符有 private、default、protected、public,从左到右权限变大
权限修饰符可以的元素有类、成员、构造方法 ,局部变量不能用访问权限修饰符。
成员指成员变量(实例变量,类变量)和成员方法(实例方法,类方法)
只有default与public可以修饰类,default修饰的类只能在同包中被使用,public修饰的类可以在任何地方被使用。

1)public修饰的可以在任何地方使用。

2)protected修饰的类内包内和子类可用,包外所有类都不可用。

3)default修饰的在类内包内可以用,其他包子类和保外所有类不可用。

4)protected修饰的只能在类内用。


三、final关键字

1.知识点说明:

final:最终的,不可改变。
final修饰的变量名全部大写。全部小写的是包名。
final修饰类:类不能被继承
final修饰方法:方法不能重写
final修饰全局变量,必须在声明的时候赋初始值;修饰局部变量时,可以先声明后赋值。

final修饰变量:
修饰简单数据类型,代表赋值之后不能改变值。
修饰引用数据类型,代表不能指向其他对象,不能重新赋值。对象里面的属性值可以改变。

代码如下(示例):

public class Test1 {public int a;public final int b = 5;//final修饰全局变量必须初始化public final void a () {//final修饰的方法不能被重写System.out.println("a in father");final int c ;//final修饰局部变量可以先声明后赋值c = 5;
//  c = 6;//final修饰基本数据类型赋值后不能改值。//  final修饰引用数据类型,不能指向其他对象,但对象里面属性的值可以改变final Computer computer = new Computer();computer.a = 5;computer.a = 6;
//  computer = new Computer();}
}

Java学习博客第一篇相关推荐

  1. MySQL学习博客第一篇

    RDBMS 术语 数据库: 数据库是一些关联表的集合. 数据表: 表是数据的矩阵.在一个数据库中的表看起来像一个简单的电子表格. 列: 一列(数据元素) 包含了相同类型的数据, 例如邮政编码的数据. ...

  2. 读《日本包装设计鉴赏》有感之——博客第一篇

    读<日本包装设计鉴赏>有感之 --博客第一篇 考试周本"兴致勃勃"地去复习,结果,被一本日本书给强行掳走!还把我看饿了!罪不可赦!所以,它有幸成为了我第一篇博客的素材啊 ...

  3. 记录自己第一个java学习博客

    记录自己第一个java学习博客 阿里java规范 弄懂 JRE.JDK.JVM 之间的区别与联系 DOS常用命令 常用mac终端命令 今天我学习了java第一个程序打印出helloworld! pac ...

  4. JAVA学习博客---2015.5

    上一次的学习博客写的和流水账差不多,有点生硬的和背目录一样,所以既然学习的目的是程序,那么这个月的学习博客就用程序来说点东西吧.这个月看了一些C和JAVA的视频,开始看别人写的程序,能看的懂但是自己去 ...

  5. “项目冲刺”博客——第一篇

    目录 1.各个成员在Alpha阶段认领的任务 3.燃尽图 3.明日成员的任务安排 4.整个项目预期任务量 5.敏捷开发前的感想 6.团队期望 作业课程 广工2023软件工程课程 作业要求 团队作业-- ...

  6. 博客第一篇—记录点滴编程生活

    第一篇博客,写一些想对自己说的话.希望自己越走越远,在IT这条路上走出自己的风采.路漫漫其修远兮,相信未来自己会为现在的自己骄傲的.

  7. 博客第一篇,自我介绍

    在我自己眼里,也许我就是一个小渣渣,但是,记住是在自己眼里,绝对不允许别人这么说,毕竟嘛狮子座的尊严在这儿放着呢.        本人小姑娘,待字闺中,永远18.技术上有点low low的,相貌上还过 ...

  8. 认真写博客第一篇:java基于spring jersey mybatis 构建restful

    本例基于IDEA: 1.先建立项目 new出一个projec 起个什么名字比较好呢,哈哈哈哈! 那么就叫他德玛西亚吧! 然后呢基于maven,大家事先准备好maven哦. 那么接下来就是设置这个狂拽酷 ...

  9. 关于linux基础的博客,第一篇博客,以下。

    一. linux 你好! 学习linux的心情. 又一次接触了linux,内心还是很忐忑的.记得大二学过半学期的linux,那是一门考查课,所以可想而知学的是三天打鱼两天晒网.也不知道是怎样的机缘,让 ...

  10. 2017年博客第一篇随笔

    if else判断分支: 顺序执行在满足一个条件后 即会退出分支 $file = fopen($error_file,'a+'); while(!feof($file)){$row = fgets($ ...

最新文章

  1. java多线程查询_利用Java函数式接口处理多线程查询
  2. linux 常用命令集
  3. GRUB基本使用介绍
  4. *30.什么是微内核
  5. 自然语言处理之循环神经网络(五)
  6. 《SolidWorks 2013中文版机械设计从入门到精通》一2.6 几何关系
  7. java中的dao模式
  8. Bailian1193 内存分配【数据结构】
  9. NYOJ 61:传纸条(一)(三维DP)
  10. 车牌识别系统论文python_车牌识别系统的设计与实现毕业论文
  11. iPhone手机屏幕突然变暗该怎么办?
  12. 设置及清除Excel打开密码的两种方法
  13. 【附源码】计算机毕业设计SSM七七美食汇
  14. linux系统软路由软件,Linux中增加软路由的三种方法
  15. SIM7600CE-CNSE 4G模组发送英文短信
  16. 非线性方程求根方法——二分法
  17. 【面试】计算机操作系统
  18. 【Unity3D】阴影原理及应用
  19. 【历史杂谈】之《古代最美的谎言》
  20. [玩转UE4动画系统]教程的大纲及设计思路

热门文章

  1. 服务器装usb无线网卡,小巧便携的USB无线网卡,让台式电脑实现wifi自由
  2. Hash表素数大集合
  3. win7安装后计算机不在桌面,win7重装系统后进不了桌面的解决措施
  4. NTFS, FAT32和exFAT文件系统有什么区别
  5. 从留言板开始做网站(三)——CSS样式代码
  6. C语言一个简单的贪吃蛇程序
  7. win10电脑打开计算机快捷键,运行快捷键,教您win10打开运行快捷键是什么
  8. 网上订餐系统的设计与实现(论文+源码)_kaic
  9. UI设计教程 | 5步快速制作2.5D插画
  10. 如何为Java面试准备项目经验