java基础概念

java学习笔记

1、冯诺依曼结构
数据和程序以二进制形式不加区别的存放在存储器中,存放位置由地址确定。计算机由运算器、控制器、存储器、输入输出设备五大部分组成。
2、c++与java比较
①java可跨平台,但与c++具有相同的语法、规则、关键字和保留字。
②java引入了真正的数组,而c++中用指针实现“伪指针”;
③java无指针,c++有指针
④java不支持多继承;
⑤java是面向对象语言,所有函数、变量都是类的一部分,而c++允许将函数和变量定义为全局变量;
⑥java基本单位是类,函数也包含在类中;
⑦c++中用null终止符表示字符串的结束,而java中用类对象String和StringBuffer来实现的。
3、java各版本
SE:标准版。用于桌面级应用开发,包含了基本类库。
EE:企业版,企业级应用开发。是SE的超集和扩展。
ME:微型版,用于移动端应用开发,包含部分基本类库。
4、JDK,JVM,JRE
JDK:java的开发工具包,包括了java的运行环境、java工具和java的基础类库。
JRE:java的运行环境。包含了JVM标准实现以及java核心类库。
JVM:java虚拟机,java运行时的环境,用于计算机设备的规范,虚构的计算机。
三者关系:JDK>JRE>JVM
5、java是解释性语言还是编译性语言?
java既是解释性语言也是编译性语言。java将源文件编译成.class文件,然后通过虚拟机将.class文件解释执行,才能在各个平台执行。
6、java语言的基本特征
多态、继承、封装。
继承:子类继承父类的方法,通过继承,子类继承了父类所有的属性和方法,从而简化代码,提高效率;
多态:java语言允许某个引用变量引用子类的实例,而且可以对引用变量进行类型转换。
封装:把同一个表中的数据放在一个包中封装,保持数据完整性,不允许外部程序访问的重要属性,隐藏在内部对象里。
7、编辑和执行java程序的主要过程和产生的文件类型
①创建源文件:用文本编辑器编辑源代码,以.java扩展结束,每个.java只包含一个公共类,名称与.java相同
②编译:通过javac将云文件编译为.class文件,.java文件中每个类都有自己.class文件。
③运行:java应用程序启动工具使用虚拟机来运行程序,将需要的类加载到RAM中,每个程序启动一个JVM进程。
8、典型的面向对象语言都提供class关键字,为什么?
class关键字用来声明新的java类,该类是相关方法、变量的集合,类是面向对象的程序设计方法的基本构造单位。类通常代表某种实体,是对象的模板,每个对象都是类的一个实例。要使用类,通常使用new操作符将类的对象实例化,然后通过调用类的方法来访问类的功能。
9、什么是API,作用是什么?
API是应用程序接口,是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制细节。
①查询类的所在包
②查看类的继承关系、实现关系和功能描述
③查询类的接口类型、类的构造方法、类的成员方法。
10、java主程序的入口函数签名,各个元素含义
public static void main(String[] args)
public:表示这个程序的访问权限,任何场合都可以被引用,虚拟机就可以找到main()方法,从而来运行javac程序
static:表明方法是静态的,不依赖类的对象,属于类,在类加载的时候main()方法也一起加载到内存中;
void:表明函数无返回值。
String[] args:从控制台读取参数
11、什么是类装载?什么时候装在一个类
装载就是寻找一个类的二进制形式并用该二进制形式表示构造的类class对象的过程。
在程序运行时,需要使用这个类的时候才去读取这个class文件,这时候是类加载。
12、java单继承
单继承就是一个类只能继承一个父类的特征。若为多继承,当多个父类中有重复的属性或者方法时,子类的调用结果会含糊不清,无法判断调用的是哪一个父类的变量,因此使用单继承。
13、java语言如何实现跨平台?
编写的java源码经过编译形成.class文件,称为字节码文件。字节码不能直接运行,必须通过JVM编译成机器码才能运行。JVM是一个软件,可在不同平台运行,java虚拟机负责将字节码文件翻译成特定平台下的机器码然后运行。因此,同一个程序文件能够在不同平台下运行。
14、java的基本数据类型
boolean:1位
byte:8
char:16
int:32 short:16 long:64 float:32 double:64 void:~
15、静态域和静态方法
如果将域定义为static,每个类中只有一个这样的域。这个类的所有对象共享这个域,这个域称为静态域。静态方法是一种不能像对象实施操作的方法,不能访问实例域,不能操作对象。
16、java多态的特征
可替换性、可扩充性、接口性、灵活性、简化性
17、为什么java中每个类都继承Object
object是所有类的始祖,java中的每一个类都是由他扩展而来,没有object类java面向对象无从谈起。
18、简述方法重载和覆盖的区别与联系
同:
①都要求方法名相同
②都可以用于抽象方法与非抽象方法之间
异:
①覆盖要求参数签名必须一致,重载要求参数签名必须不一致
②覆盖要求返回类型必须一致,而重载不做限制
③覆盖只能用于子类覆盖父类的方法,重载用于同一个类的所有方法(包括所继承的方法)
④覆盖对方法的访问权限和抛出的异常有特殊要求,而重载没有
⑤父类的一个方法只能被子类覆盖一次,而一个方法所在的类中可被重载多次
19、类的继承和接口的区别与联系
①类的集成一般继承的是事物的属性,接口的实现一般是继承事物的行为
②一个类只能继承一个类,但可以实现多个接口
③接口中只能定义全局常量和抽象方法,而继承中可以定义属性方法、变量、常量等;
④某个接口被类实现时,在类中一定要实现接口中的抽象方法,而继承可以随意的调用方法
20、如何提高程序可读性
①尽量避免复杂的逻辑判断
②类尽可能短小精悍,而且只解决一个问题,避免类过于冗余复杂。
③命名时遵循java的命名规则,并尽可能细致的写好注释。
④方法参数不要过多,参数过多用对象包装
⑤删除无用的代码

你可能感兴趣的:(java基础概念)