- 抽象类与接口的区别:
定义接口的关键字是interface ,抽象类的关键字是abstract class 。
从设计层面来说,抽象是对类的抽象,是一种模板设计,接口是行为的抽象,是一种行为的规范。
可大致有以下几点:
1.抽象类可以提供成员方法的具体实现,而接口只存在用public abstract 修饰的没有方法体的方法 ;
2.抽象类中的成员变量可以是各种类型的,而接口的成员变量只能是public static final类型 ;
3.抽象类中可以有静态代码块与静态方法,而接口没有 ;
4.一个类可以实现多个接口,一个类只能继承一个抽象类。
- 形参和实参
1.形式参数:就是在定义函数或过程的时候命名的参数。通俗讲就是一个记号。
2.实际参数:就是在执行时,调用函数或过程时,传递给函数或过程的参数。通俗讲就是实际值。
3.形参和实参间的关系:两者是在调用的时候进行结合的,通常实参会将取值传递给形参,形参去之后进行函数过程运算,然后可能将某些值经过参数或函数符号返回给调用者。
- JDK,JRE,JVM三者的关系
JDK(Java Development Kit)是针对Java开发员的产品,是整个Java的核心,包括了Java运行环境JRE、Java工具和Java基础类库。Java Runtime Environment(JRE)是运行JAVA程序所必须的环境的集合,包含JVM标准实现及Java核心类库。JVM是Java Virtual Machine(Java虚拟机)的缩写,是整个java实现跨平台的最核心的部分,能够运行以Java语言写作的软件程序。
.
- Java中的基本类型(8种)
浮点:double、float 整数:byte、short、int、long 字符:char 布尔值:boolean
类型转换 Java里面的类型转换包括两种: 自动转换(隐式转换);强制转换(显示转换)
自动转换:
条件: A.这两种类型是兼容的; B.目的类型数的范围(位数)比来源类型的大
当以上2个条件都满足的时候, 拓宽转换(widening conversion)就会自动发生,例如,int类型范围比所有byte类型的合法范围大,因此不要求显示的强制转换语句。对于拓宽转换,兼容程度可以看下边的继承树:
java.lang. Object
|—java.lang. Boolean
|—java.lang. Character
|—java.lang. Number
|—java.lang. Byte
|—java.lang. Float
|—java.lang. Integer
|—java.lang. Long
|—java.lang. Short
|—java.lang. Double
自动类型转换图如下: byte -> short(char) -> int -> long -> float -> double如果是强制转换的时候,就将上边的图反过来,在强制转换过程,唯独可能特殊的是char和int是可以转换的,不过会使用char的ASCII码值比如: int a = (int)'a'; a的值在转换过后输出的话,值为97;
Java的基本类型里面有几点需要说明:
[1]char类型是无符号16位整数,子面值必须用单引号括起来,如:'a'
[2]String在Java里面是类,直接父类是java.lang. Object,所以String不属于Java里面的原始类型
[3]长整数字有一个后缀为“L”或者“l”,八进制数字前缀为“0”,十六进制的前缀为“0x”
[4]默认的基本浮点类型为double
[5]float数据类型有一个后缀为“F”或“f”,Double数据类型后边可以跟“D”或者“d”,也可以不跟
[6]char类型可以使用通用的转义字符,但是不是ASCII码,应该是Unicode格式的如'/u0000'