java基础知识总结⼤全
⼀、基础知识:
1、JVM、JRE和JDK的区别:
JVM(Java Virtual Machine):java虚拟机,⽤于保证java的跨平台的特性。
java语⾔是跨平台,jvm不是跨平台的。
JRE(Java Runtime Environment):java的运⾏环境,包括jvm+java的核⼼类库。
JDK(Java Development Kit):java的开发⼯具,包括jre+开发⼯具
2、环境变量path和classpath的作⽤是什么?
C:\Program Files (x86)\Java\jre7\bin;C:\Program Files (x86)\Java\jdk1.7.0_72\bin
(1)path是配置Windows可执⾏⽂件的搜索路径,即扩展名为.exe的程序⽂件所在的⽬录,
⽤于指定DOS窗⼝命令的路径。
(2)Classpath是配置class⽂件所在的⽬录,⽤于指定类搜索路径,JVM就是通过它来寻该类的class类⽂件的。
3、变量有什么⽤?为什么要定义变量?什么时候⽤?
答:变量的作⽤:⽤来存储数据。
为什么要定义变量:⽤来不断的存放同⼀类型的常量,并可以重复使⽤
4、&和&&的区别?
答:(1)&&会出现短路,如果可以通过第⼀个表达式判断出整个表达式的结果,则不继续后⾯表达式的运算;
只能操作boolean类型数据;
(2)&不会出现短路,将整个表达式都运算。既可以操作boolean数据还可以操作数。
5、标⽰符命名规则:
由数字(0-9),⼤⼩写英⽂字母,以及_和$组成。
不能以数字开头。
不能使⽤关键字来⾃定义命名。
6、数据类型:
(1)基本数据类型(4类8种):
整数类型:byte、short、int、long
浮点数类型:float、double
字符类型:char
布尔类型:boolean(ture false)
(2)引⽤数据类型:
类
接⼝
数组
7、类型转换
精度从⾼到低 double float long int short(char) byte
(1)⾃动类型转换 将⼀个低精度--- ⾼精度
(2)强制类型转换 将⼀个⾼精度--- 低精度(精度会下降)
8、java语⾔的三种技术架构
J2EE:企业版
是为开发企业环境下的应⽤程序提供的⼀套解决⽅案。
该技术体系中包含的技术如 Servlet、Jsp等,主要针对于Web应⽤程序开发。
J2SE:标准版
是为开发普通桌⾯和商务应⽤程序提供的解决⽅案。
java和jsp该技术体系是其他两者的基础,可以完成⼀些桌⾯应⽤程序的开发。
⽐如Java版的扫雷。
J2ME:⼩型版
是为开发电⼦消费产品和嵌⼊式设备提供的解决⽅案。
该技术体系主要应⽤于⼩型电⼦消费类产品,如⼿机中的应⽤程序等。
9、java的跨平台性:
通过Java语⾔编写的应⽤程序在不同的系统平台上都可以运⾏。
跨平台的原因:
只要在需要运⾏java应⽤程序的操作系统上,先安装⼀个Java虚拟机(JVM Java Virtual Machine)即可。
由JVM来负责Java程序在该系统中的运⾏。
10、有符号数据的表⽰法(次重点)
原码,反码(原码取反),补码(反码+1)。
11、函数
定义:函数就是定义在类中的具有特定功能的⼀段独⽴⼩程序。
特点:
定义函数可以将功能代码进⾏封装
便于对该功能进⾏复⽤
函数只有被调⽤才会被执⾏
函数的出现提⾼了代码的复⽤性
对于函数没有具体返回值的情况,返回值类型⽤关键字void表⽰,
那么该函数中的return语句如果在最后⼀⾏可以省略不写。
函数的应⽤两个明确:
明确要定义的功能最后的结果是什么?
明确在定义该功能的过程中,是否需要未知内容参与运算
12、重载:
概念:在同⼀个类中,允许存在⼀个以上的同名函数,只要它们的参数个数或者参数类型不同即可。
特点:与返回值类型⽆关,只看参数列表(参数类型以及参数个数)。
好处:⽅便于阅读,优化了程序设计。
13、数组:
概念:同⼀种数据类型的集合。
好处:可以⾃动给数组中的元素从0开始编号,⽅便操作这些元素。
14、内存结构:
栈内存:⽤于存储局部变量,当数据使⽤完,所占空间会⾃动释放。
堆内存:数组和对象,通过new建⽴的实例都存放在堆内存中。
⽅法区:静态成员、构造函数、常量池、线程池
本地⽅法区:window系统占⽤
寄存器:
⼆、⾯向对象
1、⾯向对象思想:
(1)概述:⾯向对象是相对于⾯向过程⽽⾔的,⾯向过程强调的是功能,⾯向对象强调的是将功能封装进对象, 强调具备功能的对象;
(2)思想特点:
A:是符合⼈们思考习惯的⼀种思想;
B:将复杂的事情简单化了;
C:将程序员从执⾏者变成了指挥者;
⽐如我要达到某种结果,我就寻能帮我达到该结果的功能的对象,如我要洗⾐服我就买洗⾐机,
⾄于怎么洗我不管。
(3)特征:
封装:隐藏对象的属性和实现细节,仅对外提供公共访问⽅式
继承: 多个类中存在相同属性和⾏为时,将这些内容抽取到单独⼀个类中,那么多个类⽆需再定义
这些属性和⾏为,只要继承那个类即可。
多态: ⼀个对象在程序不同运⾏时刻代表的多种状态,⽗类或者接⼝的引⽤指向⼦类对象
2、类和对象:
类:对现实世界中某类事物的描述,是抽象的,概念上的定义。
对象:事物具体存在的个体。
3:成员变量和局部变量的区别(重点)
(1)作⽤域
成员变量:针对整个类有效。
局部变量:只在某个范围内有效。(⼀般指的就是⽅法,语句体内)
(2)存储位置
成员变量:随着对象的创建⽽存在,随着对象的消失⽽消失,存储在堆内存中。
局部变量:在⽅法被调⽤,或者语句被执⾏的时候存在,存储在栈内存中。
当⽅法调⽤完,或者语句结束后,就⾃动释放。
(3)初始值
成员变量:有默认初始值。
局部变量:没有默认初始值,使⽤前必须赋值。
4、匿名对象
(1)匿名对象就是没有名字的对象。是对象的⼀种简写形式。
(2)应⽤场景
A:只调⽤⼀次类中的⽅法。
B:可以作为实际参数在⽅法传递中使⽤
5、封装:
指隐藏对象的属性和实现细节,仅对外提供公共访问⽅式;⽐如电脑机箱、笔记本等
好处:
将变化隔离;
⽅便使⽤;
提⾼复⽤性;
提⾼安全性
6、关键字private:封装在代码中的体现
(1)私有的意思,权限修饰符
(2)⽤来修饰成员变量和成员函数
(3)⽤private修饰的成员只在本类中有效
(4)私有是封装的⼀种体现
7、构造⽅法:
(1)特点:
⽅法名与类名相同
没有返回类型
没有返回值
(2)作⽤:构造函数是⽤于创建对象,并对其进⾏初始化赋值,对象⼀建⽴就⾃动调⽤相对应的构造函数,
(3)构造⽅法的注意事项:
A:如果⼀个⾃定义类没有构造⽅法,系统会默认给出⼀个⽆参构造⽅法。
B:如果⼀个⾃定义类提供了构造⽅法,那么,系统将不再给出⽆参构造⽅法。
这个时候,你可以不使⽤⽆参构造⽅法。
如果你想使⽤,那么,就必须⼿动给出⽆参构造⽅法。
建议:⼀般情况下,我们的⾃定义类都要⼿动给出⽆参构造⽅法。
(4)构造⽅法和成员⽅法的区别
A:格式区别
构造⽅法和类名相同,并且没有返回类型,也没有返回值。
普通成员⽅法可以任意起名,必须有返回类型,可以没有返回值。
B:作⽤区别
构造⽅法⽤于创建对象,并进⾏初始化值。
普通成员⽅法是⽤于完成特定功能的。
C:调⽤区别
构造⽅法是在创建对象时被调⽤的,⼀个对象建⽴,只调⽤⼀次相应构造函数
普通成员⽅法是由创建好的对象调⽤,可以调⽤多次
8、构造代码块:
(1)作⽤:给对象进⾏初始化,对象⼀建⽴就执⾏,⽽且优先于构造函数执⾏
(2)构造代码块和构造函数的区别:
构造代码块是给所有不同对象的共性进⾏统⼀初始化
构造函数是给对应的对象进⾏初始化
9、this关键字
(1)this关键字代表本类对象的⼀个引⽤,谁调⽤this所在的⽅法,this就代表谁
(2)this的使⽤场景
A:⽤于区分同名成员变量和局部变量;
B:在定义函数时,该函数内部要⽤到调⽤该函数的对象时,因为此时对象还没建⽴,故this代表此对象 B:构造函数间调⽤
**这个时候,this(参数)必须作为第⼀条语句存在。
10、Person p = new Person();在内存中做了哪些事情。
(1)将Person.class⽂件加载进内存中。
(2)如果p定义在主⽅法中,那么,就会在栈空间开辟⼀个变量空间p。
(3)在堆内存给对象分配空间。
(4)对对象中的成员进⾏默认初始化。
(5)对对象中的成员进⾏显⽰初始化。
(6)调⽤构造代码块对对象进⾏初始化。(如果没有就不执⾏)
(7)调⽤构造⽅法对对象进⾏初始化。对象初始化完毕。
(8)将对象的内存地址赋值给p变量,让p变量指向该对象。
11、static关键字:
(1)静态的意思,⽤来修饰成员变量和成员函数
(2)静态的特点:
随着类的加载⽽加载
优先于对象存在
对所有对象共享
可以被类名直接调⽤
(3)静态的注意事项
A:静态⽅法只能访问静态成员
为什么:因为静态的内容是随着类的加载⽽加载,它是先进内存的。
B:静态⽅法中不能使⽤this,super关键字
C:主⽅法是静态的
public static void main(String[] args)
public:公共的意思,是最⼤权限修饰符。
static:由于jvm调⽤main⽅法的时候,没有创建对象。
只能通过类名调⽤。所以,main必须⽤static修饰。
void:由于main⽅法是被jvm调⽤,不需要返回值。⽤void修饰。
main:main是主要的意思,所以jvm采⽤了这个名字。是程序的⼊⼝。
String[]:字符串数组
args:数组名
在运⾏的时候,通过java命令给args数组赋值。
格式:java MainTest hello world itcast
(4)静态变量和成员变量的区别
A:调⽤⽅式
静态变量也称为类变量,可以直接通过类名调⽤。也可以通过对象名调⽤。
这个变量属于类。
成员变量也称为实例变量,只能通过对象名调⽤。这个变量属于对象。
B:存储位置
静态变量存储在⽅法区长中的静态区。
成员变量存储在堆内存。
C:⽣命周期
静态变量随着类的加载⽽存在,随着类的消失⽽消失。⽣命周期长。
成员变量随着对象的创建⽽存在,随着对象的消失⽽消失。
D:与对象的相关性
静态变量是所有对象共享的数据。
成员变量是每个对象所特有的数据。
(5)静态的优点和弊端
优点:
对对象的共享数据进⾏单独空间的存储,节省内存,没有必要每个对象都存储⼀份
可直接被类名调⽤
弊端:
⽣命周期过长,随着类的消失⽽消失
访问出现权限,即静态虽好但只能访问静态
(6)什么使⽤使⽤静态呢?
A:当所有对象共享某个数据的时候,就把这个成员变量定义为静态修饰的。
B:当某个⽅法没有访问该类中的⾮静态成员,就可以把这个⽅法定义为静态修饰。
静态的⽣命周期⽐较长,所以⼀般不推荐使⽤。
(7)静态代码块
A:它只执⾏⼀次,它⽐main还先执⾏。
B:执⾏顺序
静态代码块--构造代码块--构造⽅法
12、制作API(次重点)
API(全拼):Application Program Interface 应⽤程序编程接⼝。
(1)类中的内容需要⽤⽂档注释。
(2)使⽤JDK\bin⽬录下的javadoc⼯具。
格式:javadoc -d ⽬录 -author -version ArrayTool.java
13、单例设计模式:
(1)设计模式:
解决某类问题⾏之有效的⽅法,是⼀种思想,是规律的总结
(2)⽤来保证某个类在内存中只有⼀个对象
(3)保证唯⼀性的思想及步骤
**为了避免其他程序建⽴该类对象,先禁⽌其他程序建⽴该类对象,即将构造函数私有化 **为了其他程序访问到该类对象,须在本类中创建⼀个该类私有对象
**为了⽅便其他程序访问到该类对象,可对外提供⼀个公共访问⽅式
⽐如API中的Runtime类就是单例设计模式。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论