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一起用