CoreJava总结
- 格式:docx
- 大小:31.88 KB
- 文档页数:24
CoreJava总结
第一篇:CoreJava总结
Java概述
一、JDK/JRE/JVM
JDK:JAVA开发工具包,比JRE多了一些开发和调试的命令,比如javac、java等等。
JRE:JAVA运行环境
JVM:JAVA虚拟机
包含关系:JDK包含JRE,JRE包含JVM
三、配置环境变量
JAVA_HOME:JDK的安装路径
CLASSPATH:类的搜索路径
PATH:命令的搜索路径
--右键我的计算机-->高级-->环境变量-->在系统变量或者用户变量上配置-->
JAVA_HOME:当前机器上JDK的文件目录 “C:Program
FilesJavajdk1.6.0_05”
CLASSPATH:类的搜索路径 “.”当前目录
Path:命令的搜索路径...;%JAVA_HOME%bin
--开始-->运行-->cmd-->java验证是否配置成功
二、注释
三种:
1、单行注释: //...2、多行注释: /*...*/
3、文檔注释: /**......*/ 另一种多行注释,但是这种注释可以生成API文檔(HTML格式的)
提取API文檔的命令:javadoc
javadoc应用,提取说明文件
javadoc XX.java-d 生成文文件路径
比如:javadoc String.java-d.stringdoc 在String.java所在的檔夹中便会生成一个stringdoc檔夹,里面是html格式的解释文檔
顺便教下学生看API文檔
三、标识符
只能以字母,“_”,“$”符号开头,不能以数位开头 支持汉字
四、良好的编码习惯
1、类的首字母要大写,如果有多个单词,每个单词首字母都要大写 比如:HelloWorld
2、接口名命名与类名一样
3、方法名第一个单词小写,以后每个单词的首字母都大写 比如:getName
4、变量名的命名习惯和方法名的相同
5、常量(不可改变的)的名字所有字母都大写,单词与单词之间用“_”连接 比如:DRIVER_NAME
6、包名所有字母都小写
三、关键词(50个)
自己命名变量名或者其它名字不能和关键词的一样
true,false,null不是关键词,是字面值,同样不能把这些单词作为名字
goto和const是保留字,并不应用于java开发,也不能作为其它名字使用
其它语言中goto语句的用法(无条件跳转)
java中的代替goto的是break loop;loop是个标号,标记一个循环,break loop就结束了这个循环
数据类型和控制结构
一、数据类型
boolean 两个值true或者false,占8个二进制位
byte
8位整数
short 16位整数
char
16位的Unicode编码,有足够的空间保存非英文字符
--'A':65,'a':97,'0':48
int
32位整数
long
64位整数
float
32位浮点型
double 64位浮点型
二、String类型:是一个类,而不是基本类型
赋值的话就用双引号引起来,比如String a=“abc”;
三、整型数据
整型变数赋值
int ia=0x55;//这种赋值是可以的,赋值为了一个16进制资料
byte bb=0x771;//0x771已经超出了byte的取值范围,所以编译这句话会出错
byte ba=(byte)0x771;//把0x771强制转换成byte
long la=1234567L;//给long类型的变量赋值
四、浮点型数据
1、赋值
float fa=123.4F//后面加个F
double d=123.456D//后面的D跟不跟都可以 类型转换: 自动类型转换
小范围---大范围
Byte- short- int- long- float- double
Char- int
在表数范围内的常数可以自动转换 强制类型转换
五、垃圾回收 1、如果某一个对象没有引用指向它了,那么这个对象就是个垃圾对象
比如String s=new String(“...”);
s=null;
那被new出来的String对象就是一个垃圾数据了
2、垃圾回收机制
对于没有被引用的对象,java JVM会自动回收
System.gc()提醒虚拟机进行垃圾回收,但只是提醒建议
break和continue后面可以加下标,跳出循环和继续循环。
四、for循环
--语法
for(1;2;3){
...}
五、while循环
--语法
while(boolean){
...}
--每循环一次就判断括号中的代码是不是为真,是真的话就继续循环,假的话就结束循环
六、do..while循环
--语法
do{
...}while(boolean);
--无论如何都会先执行一次再判断条件是否为真,其它的和while循环规则一样
数组
一、数组
二维数组
1、声明二维数组
语法: --int[][] ia;
2、实例化
语法:
--int[][] ia=new int[3][5];
3、声明时赋值
4、不规则数组,也就是每一行数组的长度不一样
a[0]=new int[5];
a[1]=new int[3];
a[2]=new int[4];
那么这样这个数组就成为了一个第一行长度是5,第二行长度是3,第三行长度是4的不规则二维数组
5 面向对象
二、类
1、创建类的语法:
public class 类名{
类型 变量名;
类型 变量名;
例子:
public class Animal{
String name;
int age;
...public void eat(){
...}
public void move(){
...}
...}
2、创建类的对象的语法:
类名 对象名=new 类名();
Animal a=new Animal();
调用对象的成员 对象名.属性名;
对象名.方法名();
=...;
a.move();
3、构造方法:
用处:
1、构造方法一般用来为属性赋初值
2、构造方法会在生成对象时被系统自动调用
特点:
1、没有返回值,写返回值的位置什么都不写
2、方法名必须和类名完全相同
4、this的用法
this等价于当前对象,调用当前对象的属性或方法就用 this.属性名,或this.方法名()。
5、访问控制修饰符:
public:公共的,如果用这个修饰属性和方法,则这个属性和方法能在任何地方被调用。private:私有的,如果用这个修饰属性和方法,则这个属性和方法只能在类的内部被使用。
修饰符的作用:封装类
6、封装:
如果一个数据类型,把它不想让外部知道的属性和方法私有化,把它能让外部访问的属性和方法公共化,这就叫封装。
封装的好处:代码维护方便,如果属性名变了,其它程序根本不用做改动,还是调用这个控制属性的方法就行了
7、方法的重载:一个类中同名但参数不同的方法
this(..,..);调用本类其它的构造方法
this(..,..)这样的调用只能出现在构造方法的第一行 7 类的加载过程、实例化、继承、多态
Java类的加载过程:
类的加载过程: A.new 一个对象的时候-------加载
B.没有创建对象,访问类中静态成员(方法和属性)-------加载
C.声明一个类的引用-------不载入
D.创建子类,先载入父类,再载入子类
E.父类中的公开静态方法,子类继承,使用子类的类名调用此方法,只加载父类
class Super{
public static m(){}
}
class Sub extends Super{}
在主函数中运行以下代码:
Sub.m();//加载了父类之后,虚拟机已经知道m()方法的调用了,就不会再加载子类
对象实例化过程:
1.类加载,执行静态语句块和静态的属性赋值(先父类后子类)
2.预开空间,所有属性设零值
3.实例化对象:(先父类后子类)
1)初始化所有的属性,和非静态语句块(自上而下执行)
2)构造函数
类加载的顺序:
[具体顺序是:先加载父类的static代码块,再加载子类的static代码块;
再加载父类的代码块,再调用父类的构造方法;
在加载子类的代码块,再调用子类的构造方法。]
继承(代码重用)
1、语法-->public class 子类名 extends 父类名{...}
2、子类的对象可以调用父类的一切公有的变量和方法,也可以扩展自己新的属性和方法,但是新扩展的部分父类的对象是无法调用的
3、super(..,..)的用法,在子类的构造方法中调用父类的构造方法,并且super要放在第一行,不能与this一起用