JAVA基础知识点总结.docx
- 文档编号:29293576
- 上传时间:2023-07-22
- 格式:DOCX
- 页数:26
- 大小:28.01KB
JAVA基础知识点总结.docx
《JAVA基础知识点总结.docx》由会员分享,可在线阅读,更多相关《JAVA基础知识点总结.docx(26页珍藏版)》请在冰豆网上搜索。
JAVA基础知识点总结
JAVA根底知识点总结
第1章Java程序设计概述
1)开发Java语言的公司?
Sun〔SunMicrosystems〕太阳微电子公司开发
2)Java的3个版本?
J2SE(Java2StandardEdition)标准版
J2EE(Java2Platform,EnterpriseEdition)企业版
J2ME(Java2MicroEdition)微小版
在5.0以后新版本中称作:
JavaSEJavaEEJavaME
3)Java语言的几个主要特点?
平台无关性:
能运行于不同的平台上
安全性:
去掉了指针操作,存由操作系统分配
面向对象:
利用类使程序更加利于维护
分布式:
可以使用网络文件和使用本机文件一样容易
健壮性:
检查程序编译和运行的错误
4)Java的三大核心机制
虚拟机机制:
利用虚拟机解释字节码执行java程序实现跨平台
垃圾收集机制:
自动存回收
代码安全性机制:
加载代码后校验代码后再执行代码
第2章Java语言的开发环境
1)JDK是什么?
JDK(JavaDevelopmentKit)Java开发工具包。
包括了JRE,是开发Java的人员必备的开发运行Java程序的工具。
2)JRE是什么?
JRE〔JavaRuntimeEnvironment〕Java运行环境,运行JAVA程序所必须的环境的集合,包含JVM标准实现与Java核心类库。
3)JVM是什么?
JVM(JavaVirtualMachine)Java虚拟机,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。
4)安装JDK的操作系统问题?
必须针对于不同的操作系统下载安装不同的JDK,例如windows下安装针对于windows的JDK,linux下安装针对于linux的JDK。
5)需要配置的相关环境变量?
path:
用于搜索外部命令,例如编译程序的javac命令,执行程序的java命令
classpath:
用于搜索类,即class文件,例如可以在不同的位置执行类文件
6)配置环境变量的方式?
有两种:
临时配置和持久配置
临时配置:
在命令行下用set变量名=变量值,仅在当前命令行窗口有效
持久配置:
在我的电脑——属性中配置,持久有效
7)可以编写Java程序的常见开发工具?
记事本,EditPlus,ULTRAEDIT,Eclipse,Jbuilder,NetBeans
8)Java文件的类型?
有两种:
扩展名为java的文件:
是Java源文件,属于编译之前的纯文本文件,存储java源代码。
扩展名为class的文件:
是Java类文件,属于编译之后的二进制文件,存储字节码。
9)Java的编译运行原理?
首先编写java源文件,然后编译成class类文件,然后通过虚拟机解释成机器码到硬件执行。
10)Java是编译型语言还是解释型的语言?
既不是完全编译型,也不是完全解释型,是半编译半解释的。
第3章Java程序的根本结构
1)Java语言区分大小写吗?
区分,不管是数据还是标识符或者关键字都区分大小写,例如public不能写成Public, “abc〞不能写成“ABC〞,inti不能写成INTI等等。
2)main方法是作什么用处的?
这是程序的入口方法,是由虚拟机自动调用的。
3)语句必须用分号完毕吗?
必须的,但是代码块{}可以用分号完毕,也可以不用分号完毕
4)Java中有几种注释,各自的功能
有三种:
单行注释//:
加在行首只能注释一行
多行注释/**/:
注释多行,但不能嵌套使用
文档注释/***/:
用于生成HTML形式的文档,需要配合javadoc命令实现
5)Java语言的数据类型是强类型还是弱类型?
是强类型,意味着每一个变量都必须明确声明数据类型。
6)Java语言中数据类型的划分?
有什么区别?
分成根本类型和引用类型两大类。
根本类型:
有8种,只能存储单一的值,不以对象的形式存在
引用类型:
除了根本类型之外其他的都是引用类型,能够存储复杂数据类型,以对象的形式存在
7)根本类型都有哪8种类型?
布尔类型:
boolean占1字节
字符类型:
char占2字节
整型:
byte占1字节short占2字节int占4字节long占8字节
浮点型:
float占4字节double占8字节
8)布尔值可不可以用0或者非0数代替?
不可以,布尔值只能是true和false,不能使用数字,这和C语言是不一样的。
9)直接写个整数10默认是什么类型的?
整型的直接量例如10,100等默认的数据类型都是int型
10)如何让一个整型的直接量变成long型的?
在直接量后面加大写L后者小写l,例如10L
11)整型数据在程序中直接使用可以使用什么进制?
10进制,8进制,16进制,但不能使用二进制
12)浮点运算在Java中有没有误差?
有误差,所以精细运算请使用BigDecimal类
13)直接写一个3.14的直接量是什么数据类型的?
是double型,如果想表示是float的3.14必须写成3.14F或者3.14f,double型的3.14也可以写成3.14D
14)char型采取的是什么类型的字符集?
是Unicode全球统一编码,支持任何世界上官方的语言中的字符
15)常见的转义字符有哪些?
转义序列
名称
\b
退格
\t
制表
\n
换行
\r
回车
\〞
双引号
\’
单引号
\\
反斜杠
16)常见的Unicode字符对应的编码?
大写的A到Z是对应65到90,小写的a到z是对应97到122,字符0到9是对应48到57
17)空字符是不是用’’〔两个并列的单引号〕来表示?
不是,空字符用’\u0000’来表示,两个并列的单引号什么也不是。
18)点,分号,花括号的各自的作用?
点的作用有两个:
一个是使用类或对象中的成员,用对象.成员,再一个就是包名和子包名之间的分隔符,例如顶层包名.子包名
分号的作用是表示语句完毕
花括号的作用是代表一个语句块
19)语句和关键字之间可以有任意的空白吗?
可以的,例如System.out.println(100);就是正确的语句,但是关键字本身不能加空白或换行
20)标识符是什么?
标识符就是指在程序中给包,类,接口,方法,变量起的名字
21)标识符有什么起名规那么?
1.应以字母、下划线、美元符开头
2.后跟字母、下划线、美元符或数字
3.不能用关键字和保存字
4.严格区分大小写
5.名称长度没有限制
22)中文的变量名可以吗?
是可以的,例如int数字=10;这个语句是正确的。
因为java中采取Unicode字符集,所以任何的Unicode中的字符都可以作为标识符的名称,但考虑字符集的支持问题推荐还是使用英文字母命名。
23)关键字和保存字有区别吗?
在1.5后没有区别,都被称作关键字,但是1.5之前认为关键字是在Java中有特殊用途的不允许编程人员擅自改作其他用途,而保存字是在Java中没有特殊用途但不允许编程人员擅自改作其他用途,按此说法goto和const应该是此意义上的保存字。
24)true,false,null可以用作标识符命名吗?
不可以,这3个虽然不是关键字,但都是有特殊用途的值,也不能作为标识符命名
25)一条声明语句可以声明多个变量吗?
可以的,例如以下声明都是正确的
inti;
inti,j;
inti=10,j;
inti,j=10;
inti=10,j=20;
26)变量在没有赋值的情况下可以使用吗?
不可以,变量没有赋值使用会报出变量未初始化的编译错误。
27)常量有什么特点?
在声明变量的时候加上final修饰符即为常量,表示这个变量只能被赋一次值。
28)算数运算符有哪些?
根本算数运算符有+-*/%++--
29)单目运算符,双目运算符,三目运算符都是什么意思?
其实也有叫一元运算符,双元操作符,三元操作符的,指的是有几个操作数形成一个完整表达式,例如++就是一个单目运算符,只需要一个操作数就可以形成表达式,像i++,而+运算符就是双目运算符,需要两个操作数形成表达式,例如5+3,还有三目运算符,例如5>3?
0:
-1
30)++和--放在前面和放在后面有什么区别?
如果是在一个表达式中,那++放后面表示先运算表达式,然后再进展自增运算,如果在一个表达式中,++放前面,那么表示先进展自增运算然后在运算表达式。
--同样道理。
例如:
inti=10;
intj=i++;//先进展赋值运算然后再进展自增运算
j的结果是10
inti=10;
intj=++i;//先进展自增运算然后再进展赋值运算
j的结果是11
31)-5%2等于几,5%-2等于几?
-5%2等于-1,5%-2等于1,运算得到是正数还是负数取决于第一个操作数的符号
32)5/2结果是不是2.5?
不是,是2,因为5和2都是int类型,所以不可能得到double型的结果。
33)比拟运算符有哪些?
有><>=<===!
=六项根本比拟运算
34)任何数据类型都可以使用><>=<=运算符吗?
不是所有数据类型,例如true>false这个表达式就是编译错误,布尔类型和引用类型的表达式只能用==和!
=两个比拟运算,例如〞abc〞<=〞xyz〞这个表达式也是编译错误的
35)’a’>’b’这个表达式编译正确吗?
编译正确,’a’和’b’是字符类型,部用Unicode编码表示的话a是97,b是98,所以实际上比拟的是97>98,结果为false
36)逻辑运算符有哪些?
有&逻辑与,|逻辑或,!
逻辑非,^异或,&&短路与,||短路或
37)逻辑与,逻辑或和短路与,短路或有什么区别?
逻辑与和短路与的区别是:
●如果是逻辑与&,不管第一个表达式是true还是false,都会执行第二个表达式,
例如a>b&x
●如果是短路与&&,如果第一个表达式为false,将不会执行第二个表达式
例如a>b&&x
以此类推,逻辑或和短路或的区别是:
●如果是逻辑或|,不管第一个表达式是true还是false,都会执行第二个表达式
●如果是短路或||,如果第一个表达式为true,将不会执行第二个表达式
38)与或非三个逻辑运算符的优先级是怎么排列的?
“非〞优先级最高,“与〞其次,“或〞优先级最低
39)原码,反码,补码分别是什么意思?
●原码:
将数字转换为二进制,第一位为符号位,正数为0,负数为1
例如:
12的原码是00001100-12的原码是10001100
●反码:
正数的反码和原码一样,负数的反码将原码符号位之外的位逐位取反
例如:
12的反码是00001100-12的反码是11110011
●补码:
正数的补码和原码一样,负数的补码将反码加1
例如:
12的补码是00001100-12的补码是11110100
最后强调一点,计算机存储数据用补码形式来存储。
40)位运算符都有哪些?
&与|或^异或~非>>右移<<左移>>>无符号右移
41)1<<35怎么理解?
1是int类型是32位,所以需要把35%32=3,所以事实上是和执行1<<3等价的
42)数据类型转换需要遵循什么原那么?
小类型向大类型转换,是自动转换的,或者说隐式转换的
大类型向小类型转换,是需要强制转换的,或者说显式转换
例如:
byteb=1;
shorts=b;//自动转换
b=(byte)s;//强制转换
43)byteb=10这个语句是正确的,为什么10是int型比byte大还不需要强制转换呢?
因为在java中做了特殊处理,其中规定byte,short,char类型可以直接赋予int类型的直接量,
例如:
byteb=10;
shorts=10;
charc=10;
以上赋值语句都是正确的。
但是不能超出超出类型的围,例如以下赋值就是错误的:
byteb=128;
如果超出围,必须得作强制转换,例如以下语句是正确的:
byteb=(byte)128;
需要强调的是,必须是int类型的直接量,以下语句就是错误的:
byteb=10L;
10L不是int类型的直接量。
44)byteb=(byte)300;强制转换后的结果是44,是按照什么规律得出来的?
是先把300转换成二进制,然后根据byte类型的大小截取了后8个位
300的补码是00000000000000000000000100101100
b的结果是:
00000000000000000000000100101100结果为44
45)byteb=(byte)true;这个转换成立吗?
不成立,布尔值和数字是不兼容的,不能作任何转换。
46)inti=(int)“100”;这个转换成立吗?
不成立,引用类型和根本类型是不能直接强制转换的,需要用包装类的方法来转换。
47)char型和short型哪个比拟大?
不能说哪个大,哪个小,这两个类型char的取值是从0~65535,而short类型的取值是-32768~32767,这个两个类型之间的转换都需要强制转换。
48)字符串是不是根本类型?
不是,String是java.lang包中的一个类,是引用类型的,8种根本类型中没有一个是String类型。
49)空字符串用什么来表示?
用〞〞〔两个并列的双引号〕表示,代表0个长度的字符串对象。
50)Strings=“〞;和Strings=null;有什么区别?
第一个表示s被赋值,指向了一个字符串对象,第二个表示s没有指向任何对象实例,是真空
51)两个字符串用什么运算符可以连成一个字符串?
用+运算符,例如〞abc〞+“xyz〞最后的结果就是“abcxyz〞
52)数学运算符加法和字符串连接符都是+,怎么区分?
是通过运算符两边的操作数来判断的,如果两边的操作数都是数字型的根本类型,那么进展数学运算,如果两边的操作数有一个是字符串,那么把另一个操作数也转换为那么进展字符串连接运算。
例如:
5+4的结果是9
“5”+4的结果是54
53)判断字符串容一样用什么方法?
用equals方法判断容一样,==只能判断引用是否一样
54)提供用户输入使用哪个类
使用javav.util.Scanner类
55)if语句可以用if(-1)形式判断吗?
不可以,数字不能代替布尔值
56)if语句和循环语句的花括号什么时候可以省略?
当执行的语句只有一句的时候
57)switch语句有哪些规那么?
表达式expr的返回值必须是下述几种类型之一:
int,byte,char,short或枚举常量;
case子句中的值必须是常量,且所有case子句中的值应是不同的,也必须是下述几种类型之一:
int,byte,char,short或枚举常量
default子句是任选的;
break语句用来在执行完一个case分支后使程序跳出switch语句块;
58)对于退出循环break和continue有什么区别?
break是退出整个循环
continue是退出当前循环继续下一次循环
59)声明数组创建数组的方法?
以下声明都是合法的:
int[]a;
inta[];
String[]a;
以下创建数组对象都是合法的:
int[]a=newint[3];
int[]a={1,2,3};
int[]a=newint[]{1,2,3};
60)int[]x和String[]s这两个数组对象,哪个是根本类型,哪个是引用类型?
两个都是数组对象,都是引用类型的
61)数组元素下标最小是多少,最大是多少,超出围会怎么样?
最小是0,最大是数组元素个数减一,超出围将会出现下标越界异常
62)得到数组长度用length属性还是length〔〕方法?
是length属性,得到字符串长度才有length方法
63)声明int[][]a=newint[3][],a是一个二维数组,a[0]本身是什么类型的?
二维数组的元素都是一维数组,a[0]是int[]类型的
64)数组的大小一经创建可不可以改变大小了?
不可以,数组是定长的,一经创建就不能再改变大小了
65)可以把2个int型,3个double型,4个String型的值放到一个数组中吗?
不可以,数组的元素类型必须是一样类型的。
66)java中的多维数组必须是要形成矩阵排列吗?
不一定,也可以是不规那么的。
67)操作数组比拟方便的实用类?
java.util.Arrays类提供了很多关于数组的实用方法。
第4章对象和类
1)OOP是什么意思?
ObjectOrientedProgramming(面向对象编程)
2)类和对象的区别?
类:
对象的蓝图,生成对象的模板,是对一类事物的描述,是抽象的概念上的定义
对象:
对象是实际存在的该类事物的每个个体,因而也称为实例
3)类之间的3种关系?
依赖关系〔uses-a〕
聚集关系〔has-a〕
继承关系〔is-a〕
4)一个java源文件可以写多个类吗?
可以,但必须只能有一个公有类,并且文件名和公有类的类名一样。
5)类中有哪些成员?
有属性〔数据域〕,方法,构造器〔构造方法〕
6)构造方法和普通方法的区别?
构造方法没有返回值,方法名必须和类名一样,需要用new语句调用构造方法。
7)普通方法可不可以也类名作为方法名?
是可以的,因为调用普通方法的语法和调用构造器的语法不一样。
8)一个构造器调用另外一个构造器需要用什么语法?
用this〔〕语法调用另外一个重载构造器,需要注意的是调用语句必须是构造器中的第一句
9)什么时候虚拟机会自动添加一个默认构造器?
当类中没有显式定义任何构造器的时候,虚拟机会自动添加一个无参的构造器
10)实例成员和静态成员的区别?
实例成员:
是属于对象实例的,用对象.成员名称语法调用
静态成员:
和对象实例无关,是属于类本身的,用类名.成员名称语法调用
11)静态初始化块statci{}的执行时机是什么时候?
在类被加载的时候,仅执行一次。
12)静态方法可不可以直接调用同一个类中的非静态方法?
不可以,静态方法不能直接调用一个非静态成员,需要用对象调用。
13)包是什么?
包实际上就是物理上的文件夹,可以把类放到不同的包中。
14)把一个类放到包中,需要在类中加上什么语句?
需要加上包声明package语句,必须写在源文件的第一句。
15)什么时候需要导入类?
用什么语句?
当使用的类和当前类并不在同一个包中的时候,用import语句导入。
16)默认包中的类可以导入吗?
不可以,不在默认包中的类无法使用默认包中的类。
17)java中哪个包中的类是自动导入的?
java.lang包
18)什么叫做完整类名?
顶层包名.子包名.类名
19)静态导入语句有什么作用?
在使用类中的静态成员的时候前面不需要加类名前缀。
20)局部变量和全局变量的区别?
区别
局部变量
全局变量
声明位置
方法或块部
方法外类部
访问权限修饰符
没有访问权限
有访问权限
默认值
没有默认值
有默认值
使用形式
直接使用
对象调用
作用域
在方法或语句块部
整个类
生命周期
进入方法或语句块创建退出方法或语句块销毁
随着对象的创建而创建随着对象的销毁而销毁
21)赋值语句赋给目标的是值还是引用?
如果是根本类型那么赋的是值本身,引用类型那么赋的是引用地址
第5章继承和多态
1)类的继承是谁继承谁?
是子类继承了父类,子类也称为派生类,父类也称为超类或基类
2)子类继承了父类的什么东西?
子类可以继承父类的数据域〔属性〕,方法,但构造器不能继承
3)私有成员能被子类继承吗?
能继承,但是由于访问权限的控制,在子类中不能直接使用父类的私有成员
4)Object是什么类?
这个所有类的根类,任何类如果没有写显式的继承语句,默认都是直接继承Object类的
5)java中是单继承还是多继承?
是单继承,一个子类只能有一个父类
6)访问权限修饰符有几种,访问的围又是多大?
有四种:
private:
私用只能在被类中被访问
default:
默认只能被同一个包中的类访问
protected:
受保护的只能被同一个包中的类和不同包中的子类访问
public:
公有可以被任何类访问
7)覆盖方法的规那么有哪些?
子类覆盖方法和父类被覆盖方法的方法返回类型,方法名称,参数列表必须一样
子类覆盖方法的访问权限必须大于等于父类的方法的访问权限
方法覆盖只能存在于子类和父类之间
子类覆盖方法不能比父类被覆盖方法抛出更多异常
8)参数列表是否一样从哪几方面看?
从三方面看:
参数个数,类型和顺序,需要注意的是参数的名字不一样是无所谓的
9)覆盖方法的规那么有哪些?
方法名一样
方法的参数类型,个数,顺序至少有一项不同
方法的返回类型和修饰符均不受限制
10)可变长参数的声明格式是什么?
实际上是什么类型的?
类型…变量,实际上是一个一维数组
11)this和super是作什么用处的?
this:
本身代表当前的对象引用,可以用this.成员名称调用当前对象的属性和方法,如果属性和局部变量重名,可以用this.属性名和局部变量区分开。
也可以用this〔〕语法调用本类重载构造器。
super:
本事是一个特殊关键字,可以用super.成员名称调用从父类继承的属性和方法,也可以用super〔〕语法调用父类构造器。
12)super代表子类中的父类对象引用吗?
不,这个错误的说法,super不代表任何对象引用,仅仅是一个关键字
13)什么时候子类构造器会自动调用父类无参构造器?
当子类构造器中没有任何显式构造器调用的时候,即既没有this〔〕调用也没有super〔〕调用的时候
14)一个父类类型的引用变量可以引用一个子类的实例吗?
可以,这个引用变量是一个多态对象
15)多态对象有什么特点?
多态对象只能使用父类的成员,但如果多态对象使用了被子类覆盖的方法,那么会动态绑定使用子类的成员,称为虚拟方法调用
16)引用类型之间的类型转换需要遵循哪些规那么?
自动转换:
从子类到父类的类型可以自动转换
强制转换:
从父类到子类的类型要强制转换
无继承关系的类型转换是非法的
17)instanceof操作符是作什么用处的?
可以判断一个对象的类型是否是某一个类的类型或子类,也可以判断这个对象的类型是否是一个接口的实现类
18)toString方法什么时候会自动被调用?
在打印语句中传入引用类型的对象或者对象和字符串作连接时
19)默认的equals方法实现的是比拟容还是比拟引用地址?
在Object中是比拟引用地址。
20)覆盖equals方法和hashCo
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA 基础 知识点 总结