文章目录
Java_语言的特点
- 面向对象:两个基本概念:类和对象,三大特性:封装,继承,多态
- 健壮性:吸收了C/C++语言的优点,但去掉了其影响程序健壮性的部分(如指针、内存的申请与释放等),提供了一个相对安全的内存管理和访问机制
- 跨平台性:通过Java语言编写的应用程序在不同的系统平台上都可以运行。
- 原理:只要在需要运行 java 应用程序的操作系统上,先安装一个Java虚拟机 (JVM Java Virtual Machine) 即可。由JVM来负责Java程序在该系统中的运行。
Java_跨平台性特点
- 因为JVM的存在,同一个Java 程序在三个不同的操作系统中都可以执行。这样就实现了Java 程序的跨平台性。
Java_核心机制-JVM虚拟机
- JVM是一个虚拟的计算机,具有指令集并使用不同的存储区域。负责执行指令,管理数据、内存、寄存器。
- 对于不同的平台,有不同的虚拟机。
- 只有某平台提供了对应的java虚拟机,java程序才可在此平台运行
- Java虚拟机机制屏蔽了底层运行平台的差别,实现了“一次编译,到处运行”
Java_核心机制-垃圾回收
- Java不再使用的内存空间应回收—— 垃圾回收。
- 在C/C++等语言中,由程序员负责回收无用内存
- Java 语言消除了程序员回收无用内存空间的任务:
- Java提供一种系统级线程跟踪存储空间的分配情况。并在JVM空闲时,检查并释放那些可被释放的存储空间。
- 垃圾回收在Java程序运行过程中自动进行,程序员无法精确控制和干预。
- 尽管Java提供了垃圾回收机制,但是Java程序还会出现内存泄漏和内存溢出问题
Java_常见问题及解决方案
错误原因:
- 源文件名不存在或者写错
- 当前路径错误,
- 后缀名隐藏问题
错误原因:
- 类文件名写错,尤其文件名与类名不一致
- 类文件不在当前路径下,或者不在classpath指定路径下
- 声明为public的类应与文件名一致,否知编译失败
- 编译失败,注意错误出现的行数,再到源代码中指定位置改错
- Java要求必须按照语法规则编写代码。如果程序违反了语法规则,例如:忘记了分号、大括号、引号,或者拼
错了单词,java编译器都会报语法错误。
Java_注释
- 用于注解说明解释程序的文字就是注释。
- Java注释分为单行注释
//注释文字
,多行注释/* 注释文字 *
,文档注释(Java特有) - Java_注释提高了代码的阅读性,调试程序的重要方法。
- 注释是将自己的思想通过注释先整理出来,再用代码去体现
- 对于单行和多行注释,被注释的文字,不会被JVM(java虚拟机)解释执行。
- 多行注释里面不允许有多行注释嵌套。
- 注释内容可以被JDK提供的工具 javadoc 所解析,生成一套以网页文件形
式体现的该程序的说明文档。
Java_printlin()和print()的区别
- System.out.println()和System.out.print()的区别
- System.out.println();打印完后,会换行。
- System.out.print();打印完后,不会换行。
Java_源文件和类的关系
- 源文件是扩展名为
.java的Java源码文件
,通常叫做一个“编译单元”
,其中有类的定义。也就是说类在源码文件中
源文件详解
- 源文件中可以有多个类(包括抽象类和接口,下同),但是只能有一个
public类
,并且类一旦被public修饰,那么源文件名和这个类名必须相同,否则编译报错。 - 编译一个
.java
文件时,其文件中的每一个类(或接口)都会单独生成一个.class字节码文件
。(内部类也会生成单独的.class文件,其格式为:外部类名$内部类名.class
) - 如果源文件中没有
public
修饰的类,那么这个包也就没有什么意义了,因为源文件编译后每个类会单独生成class
文件,然而这些class
文件又不能被外界访问。其实源文件中没有被public修饰的类,主要是为了辅助public
类。 - 最好一个源文件中只有一个类或接口。
Java_设置path的目的
- 设置path时为了在控制台的任何文件路径下,都可以调用jdk指定目录下的所有指令
Java_GC(垃圾回收)简介
- GC是垃圾收集的意思(Gabage Collection),内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,
- Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的
- Java语言没有提供释放已分配内存的显示操作方法。
Java_(GC)垃圾回收器的基本原理
- 对于GC来说,当程序员创建对象时,GC就开始监控这个对象的地址、大小以及使用情况。
- GC采用有向图的方式记录和管理堆(heap)中的所有对象,从而确定哪些对象是"可达的",哪些对象是"不可达的"。
- 当GC确定一些对象为"不可达"时,GC就有责任回收这些内存空间。
- 程序员可以手动执行System.gc(),通知GC运行,但是Java语言规范并不保证GC一定会执行。
Java_源文件简介
- Java源文件扩展名为
.java
的Java源码文件,即我们所用的一个编译单元,在这个源码文件中,有类的定义,即类在源码文件中 - 源文件中可以有多个类,但是只能有一个public类,并且类一旦被public修饰,那么源文件名和这个类名必须相同,否则编译报错。
- 编译一个.java文件时,其文件中的每一个类(或接口)都会单独生成一个.class字节码文件。(内部类也会生成单独的.class文件,其格式为:外部类名$内部类名.class)
- 如果源文件中没有public修饰的类,那么这个包也就没有什么意义了,因为源文件编译后每个类会单独生成class文件,然而这些class文件又不能被外界访问。其实源文件中没有被public修饰的类,主要是为了辅助public类。
- Java程序规范规定,一个编译单元中只提供public类,同时只有一个public类还是为了JVM方便查询,源码方便阅读
Java_类简介
- 类的实质是用户定义的一种引用数据类型,称为类类型,是Java程序的基本组成单位,类可以看成一个有共同属性和行为事物进行抽象的模板。方法是定义在类中的。
- 方法是语句的集合,它们在一起执行一个功能,解决一类问题的步骤的有序组合,可以认为方法是使用代码解决某一特定问题的代码集合
Java_公开类
- 公开类即被public修饰的类:
public class 类名{}
- 公开类的类名必须和源文件名一致
- 在一个源文件中最多只能由一个公开类
Java_包
- Java中的包类似于操作系统中的文件夹,将具有类似功能的类或者相同的类放在相同的包里面,便于组织与管理.
- 包是为了更好的组织类,Java提供了包机制,用来区别类名的命名空间
- 包语句语法格式:
package pkg1[. pkg2[. pkg3...]];
- 将域名作为包时,要倒写 :比如将百度域名作为包:
com.baidu.www
- 为了能够使用某一个包的成员,需要在Java程序中明确导入该包,使用 import语句
import pack1[. pkg2[. pkg3...].(classname | *)]