Java自己记录的笔记

尚学堂自学笔记

一、计算机语言发展历史:核心就是向着人类越容易使用的方向发展。

第一代:机器语言;计算机只能理解自己的机器语言。

第二代:汇编语言;

第三代:高级语言。

面向过程编程:C、Fortran、Cobol、Pascal、Ada;

面向对象编程:C++、Java和C#;

Java的核心优势:跨平台


Android的应用程序是用Java书写的,是一个操作系统

 

JDK、JRE和JVM。

JVM是一种规范。就是一个虚拟的用于执行Bytecodes字节码的计算机。JVM可以用软件来实现,也可以用硬件来实现。

环境变量的配置:

JAVA_HOME:所执行的Java命令所在位置;

path:执行dos命令,系统会在path指定的路径中寻找该命令对应的可执行文件。执行路径是指OS搜索本地可执行文件的目录列表

 

Java是区分大小写的;

注释不会出现在字节码文件中。即Java编译器编译时会跳过注释语句。

 

标识符 identifier

作用:给变量、类和方法命名;

Java标识符有如下命名规则:

1、标识符必须以字母、下划线、美元符开头;

2、标识符其他部分可以是字母、下划线、没怨妇和数字的任意组合;

3、Java标识符大小写敏感,且长度无限制。

4、不可以是Java的关键字。

注意:Java不采用通常语言使用的ASCII字符串,而是采用unicode这样的标准的国际字符集,因此,这里的字母的含义:英文、汉字等等(不建议大家使用汉字来定义标识符)。

 

数据类型:

1、基本数据类型:数值型(整数类型和浮点类型)、字符型和布尔型;

2、引用数据类型:类、接口和数组。

 

Java语言的整型默认为int型;浮点型默认为double型。

如果数据的大小没有超过byte/short/char的表述范围,则可以自动转型。

float类型的尾数可以精确到7位有效数字。

在比较中,尽量少用浮点数。

字符型:单引号用来表示字符常量;char类型用来表示在Unicode编码表中的字符;Java语言中还允许使用转义字符‘\’来将其后的字符转变为其他的含义。Char是在0~65535范围,运算时直接当做整数来运算;可以把0~65535之间的整数直接转型为char。

boolean类型有两个值,true和false。

 

自动类型转换:范围小(指的是表述的范围)的数据类型可以自动转化为容量大的数据类型。可以将整型常量直接赋值给byte、short、char等类型变量,而不需要进行强制类型转换,只要不超出其表述范围。

变量(variable)

局部变量:方法或语句块内部定义的变量。在使用前必须先声明和初始化;

成员变量:方法外部、类的内部定义的变量。

常量之能被初始化一次!

 

Switch括号的表达式在JDK7之前为int或者自动可以转为int的类型(byte、short、char)和枚举类型;在JDK7之后,可以使用字符串。

循环结构都有下面四个结构组成:初始化、条件判断、循环体和迭代。

Break和continue。以及带标签的break和continue。Goto也是Java的关键字,尽管不用。

 

方法:类似于其他语言的函数,是一段用来完成特定功能的代码片段,声明如下:

[修饰符1 修饰符2 ...] 返回值类型 方法名(形式参数列表){;}

形式参数:在方法被调用时用于接收外界输入的数值;

实参:调用方法时实际传给方法的数据;

实参的数目、参数类型和次序必须和所调用方法声明的形参列表匹配;

return终止方法的运行和指定要返回的数据。

Java中传递参数的原则:只有值传递。基本类型传递的是爱数据本身,引用类型传递的是对对象的引用,而不是对象本身。

 

OOP的本质:以类的方式组织代码,以对象的方式组织(封装)数据。

 

类是用于描述同一类型的对象的一个抽象概念,类中定义了这一类对象应所具有的静态和动态属性。

属性用于定义该类或该类对象包含的数据或者说静态属性。属性作用范围是整个类体。

栈(自动分配连续空间,后进先出):存放局部变量;

堆(不连续)new出来的对象;

方法区(也是堆):存放类的代码信息、static变量、常量池。

 

GC

对象空间的分配:使用new关键字创建对象即可;

对象空间的释放:讲对象赋值null即可。GC将负责回收所有”不可达”对象的内存空间;

要点:程序员无权调用GC;

程序员可以通过System.gc()。通知GC运行,但是JAVA规范并不能保证立刻运行;

finalize方法,是Java提供给程序员用来释放对象或资源的方法,但是尽量少用。

 

构造函数

1、通过new关键字调用;

2、构造器虽然有返回值,但是不能定义返回类型(返回值的类型肯定是本类),不能在构造器里调用return;

 

方法重载是指一个类中可以定义相同的名字,但是参数不同的多个方法。调用时,会根据不同的参数表选择对应的方法。

同一个类,同一个方法名;

参数列表不同(类型、个数,顺序不同)。

 

在类中,用static声明的成员变量为静态变量,或者叫做类属性、类变量;

类变量为该类的公用变量,属于类,被该类的所有实例共享,在类被载入时被显示初始化;

静态方法不可访问非静态成员。

如果希望加载后,对整个类进行某些初始化操作,可以使用static初始化块;静态初始化块是在类初始化时执行,不是在创建对象时执行,静态初始化块中不能访问非static成员。

this不能用于static方法中。

 

类是对对象的抽象,继承是对某一批类的抽象,从而实现对现实世界更好的建模,提高代码的互用性。

重写:在子类中可以根据需要对从基类中集成来得方法进行重写;

重写方法必须和被重写方法具有相同方法名称、参数列表和返回类型;重写方法不能使用比被重写方法更严格的访问权限。

Super是直接父类对象的引用。可以通过super来访问父类中被子类覆盖的方法或属性。

你可能感兴趣的:(自学笔记)