前言:
有一些学习的课件和工具,需要的可以点击链接下载(如果失效请联系我)
一、Java特点以及运行机制
特点:(1)简单性
去掉指针,取消多重继承和运算符重载
设立自动内存分配与回收机制
(2)面向对象
封装、继承、通过抽象类与接口支持多态
(3)分布式
通过网络协同工作
(4)鲁棒性
在编译和运行程序时,对可能出现的问题进行检查、异常处理机制、内存管理(垃圾回收机制)
(5)安全性
(6)体系结构中立(平台无关性)
编写一次,到处运行,只要安装了JVM即可
(7)可移植性
(8)解释执行
(9)高性能
(10)多线程
(11)动态性
运行机制:java程序运行的五个阶段:编辑、编译、加载、验证、执行
JDK:包含java运行的基本类库和开发命令,安装JDK可以进行完整的java开发
JRE:包含Java运行的基本类库和一些运行命令,安装JRE可以运行编译好的java程序
JVM:java虚拟机 Java语言内部运行的核心
JDK包含JRE,JRE包含JVM,JVM包含Java解释器
JVM内存结构:
主要三大块:
(1)方法区:
加载硬盘上的类文件,读进到方法区中 (Person.class)
类的所有信息,包括,属性,方法等
(2)堆
用来存储类的实例, 会给实例分配相应的空间
(3)栈
存储所有方法的形参,局部变量
在程序运行期间,当执行到某一个方法时,会在栈中给这个方法单独分配一个空间叫栈帧,用来存储这个方法所包含的所有变量的空间。当方法执行完毕,栈帧消失,释放内存空间。
引用变量存储的是堆中对象的地址信息。
当有指向对象的变量 越来越多时,有可能造成内存溢出,原因是堆里的对象太多。
所以,我们有时候要清空变量里的地址信息,
String str ="111111";
str = null;
此时,堆里的对象,没有任何引用。就会被认为是垃圾,等待GC回收。
GC:jvm的垃圾回收机制。
二、Java数据类型
三、数组和方法的声明和使用
数组:
声明一维数组:数据类型[] 数组名 = null ;
分配内存给数组:数组名 = new 数据类型[长度] ;
程序中定义的基本类型的变量和引用类型变量在栈内存中分配。
堆内存用来存放由new创建的对象和数组
数组名称.length--->返回数组长度
java.util.Arrays.sort(数组名)--->对数组进行排序
System.arraycopy(源数组名称、源数组开始点、目标数组名称、目标数组开始点、拷贝长度)
方法:
含义:就是功能,一段逻辑的封装(一个方法尽可能的封装一个功能)
方法的定义:
修饰词 返回值类型 方法名(形式参数列表){
方法逻辑
}
返回值类型:
第一种情况:void
可以使用return;表示方法结束
第二种情况:数据类型(基本数据类型或引用类型)
一定要使用return 具体数据;
方法的重载:
同一个类中,方法名相同,参数(类型)列表不同。(方法签名=方法名+参数列表)通过传递参数的个数及类型不同以完成不同功能的方法调用
与修饰词,返回值类型无关