007_JavaSE基础总结大全

一、基础知识:

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、JAVA_HOME、classpath的作用是什么?

path :

变量名称 : path

变量值 : 软件启动文件所在的目录

是配置Windows可执行文件的搜索路径,即扩展名为.exe的程序文件所在的目录,用于指定DOS窗口命令的路径。

如果将软件的启动文件所在的目录配置到path中,那么该软件就可以在命令行中通过输入启动文件的名字来启动文件.

JAVA_HOME : 

变量名称 : JAVA_HOME

变量值 :  JRE或者JDK所在的安装目录

Java相关软件中约定俗成的目录,当Java软件开发的软件自身没有携带JRE时,会默认来查找该目录

classpath :

变量名称 : classpath

变量值 : Java的字节码文件(class文件)所在的目录,可以是自己编写的Java软件的目录或 .jar 包的目录

Classpath是用于指定字节码文件的搜索路径,JVM就是通过它来寻找该类的class类文件的。

java的源文件(.java)都要先通过javac编译,编译后产生字节码文件(.class),再通过java命令来运行 

注意 : Java编译后产生的字节码文件并不是可以系统可以直接执行的二进制文件,是Java特有的文件格式.

3、变量有什么用?为什么要定义变量?什么时候用?

变量的作用:用来存储数据。

为什么要定义变量:用来不断的存放同一类型的常量,并可以重复使用

什么时候使用 : 在软件编写过程中如果有数据要存储时,就要定义变量

4、&和&&的区别?

&&只能用于逻辑运算,也就是只能操作boolean类型数据,且运算时会出现短路

短路 : 如果可以通过第一个表达式判断出整个表达式的结果,则不继续后面表达式的运算;

&除了可以用于逻辑运算之外,还可以用作其他用途

用于逻辑运算,会将整个表达式都运算。而不会出现短路的情况

还可以用于位运算,如 :    3 & 4 

连接符,当浏览器向页面提交数据方式为get方式时,用于连接多个参数

如 : :80/cainiao?name=lisi&age=23&sex=男&address=beijing...

5、Java标识符命名规则:面试题 !! (选择,或判断)

由数字(0-9),大小写英文字母,以及_和$组成,合计64个字符

(不能是其他特殊字符?! )

不能以数字开头。

不能使用java(中)关键字或者保留字来自定义命名。

关键字 : Java中被用作特殊用途的单词,也就是Java语言的设计者用来表达一种含义或功能的单词

保留字 : Java中将来可能用来表达某种含义或功能的单词,如 : goto     friendly

不建议使用英文之外的字符,Java虽然支持其他文字,但对英文之外的文字不友善.

6、Java数据类型:Java是强语言,数据类型有严格的划分,具体如下 : 

基本数据类型(4类8种):

整数类型:

小整型 byte

短整型 short

整型 int

长整形 long

浮点数类型:

单精度 : float

双精度 : double

字符类型:char

布尔类型:boolean(ture false)

引用数据类型:

类 class

接口 interface

数组 Array

7、类型转换

基本数据类型转换 :

自动类型转换 : 低精度 ----> 高精度

精度从高到低 double  float  long int short(char) byte 

由JVM自动完成

如 : byte b = 100 ; int i = b ;

强制类型转换 : 高精度  ----> 低精度

会有数据丢失

需要手动完成

如 : int i = 300 ; byte b = (byte) i ; ----> 强转后,变量b不是300,而是 : 44

引用数据类型转换 :

向上转型 : 类父类变量 接收子类对象

String str = "abc" ; Object obj = str ;

向下转型 : 子类变量 = 父类变量

String string = (String)obj ;

8、java语言的三种技术架构(三个方向)

JavaEE:企业版

是为开发企业环境下的应用程序提供的一套解决方案。

该技术体系中包含的技术如 Servlet、Jsp等,主要针对于Web应用程序开发。

如 : 购物商城web版、后台管理系统等

JavaSE:标准版

是为开发普通桌面和商务应用程序提供的解决方案。

该技术体系是其他两者的基础,可以完成一些桌面应用程序的开发。

如 : Java版的扫雷、坦克大战等游戏以及HBuilder、eclipse等开发工具等等。

JavaME:小型版

是为开发电子消费产品和嵌入式设备提供的解决方案。

该技术体系主要应用于小型电子消费类产品

如 : 手机中的应用程序等。

9、java的跨平台性:(Linux)

通过Java语言编写的应用程序在不同的系统平台上都可以运行。

跨平台的原因:

只要在需要运行java应用程序的操作系统上,先安装一个Java虚拟机(JVM Java Virtual Machine)即可。

由JVM来负责Java程序在该系统中的运行。

跨平台的原理 :

Java为每一种操作系统提供了一个JVM,Java编写的软件由JVM进行转义,每种JVM都会将软件翻译成对应的操作系统的版本,进而实现跨平台

跨平台,也成为了软件的可移植性或一次编译到处运行

10、有符号数据的表示法(次重点)

原码

反码(原码按位取反)

补码(反码+1)

11、函数、方法、行为、Method

定义:函数就是定义在类中的具有特定功能的一段独立小程序。

特点:

定义函数可以将功能代码进行封装

便于对该功能进行复用

函数只有被调用才会被执行

函数的出现提高了代码的复用性

对于函数没有具体返回值的情况,返回值类型用关键字void表示,那么该函数中的return语句如果在最后一行可以省略不写。

函数的应用应当明确两点:

确定返回值 : 明确要定义的功能最后的结果是什么?也就是功能执行完有没有数据给到调用者

确定形式参数 : 明确在定义该功能的过程中,是否需要未知内容参与运算?

12、重载(overload)与重写(override):

重载 overload :

概念 :在同一个类中,允许存在一个以上的同名函数,只要它们的参数个数或者参数类型不同即可。 

特点 :与返回值类型无关,只看参数列表(参数类型以及参数个数)。 

好处 :方便于阅读,优化了程序设计。 

重写、覆盖、复写、override : 

概念 :当子类函数中存在与父类函数中一模一样的函数时,子类函数会改写父类函数的功能

特点 : 

权限修饰符 : 子类的权限修饰符的权限只能比父类大,不能比父类小

子类功能只能越来越强大,不能被削弱

返回值类型 :

基本数据类型 : 必须一致

引用数据类型 : 子类函数返回值类型可以与父类函数返回值保持一致,也可以是父类函数返回值类型的子类型

函数名 :必须与父类函数名一致

形式参数 :子类形参的数据类型必须与父类的形参的数据类型一致

异常的声明 :子类函数抛出的异常必须小于等于父类异常

也是子类功能只能变强大,而不能被削弱的意思

13、数组:

概念 :同一种数据类型的组合。

变量只能存储一个数据,当有多个相同类型的数据需要被存储的时候就可以使用数组

优点 :可以自动给数组中的元素从0开始编号,方便操作这些元素。

分类 : 

基本数据类型数组了,数组中的元素为基本数据类型

引用数据类型数组,也称为对象数组,数组职工的元素为引用数据类型

14、JVM内存结构(简单版):

栈内存:用于存储局部变量,当数据使用完,所占空间会自动释放。

堆内存:数组和对象,通过new建立的实例都存放在堆内存中。为存入的内容分配唯一的凭证,也称之为地址值.

方法区:静态成员、构造函数、常量池、线程池

JDK1.8之前的版本称为方法区

JDK1.8以后之后的版本开始称为元数据区

区别:

方法区使用的是分配给软件的内存

元数据区直接使用物理内存

本地方法区 : windows占用

寄存器:CPU使用

15、数据传递 : 

基本类型之间的赋值是值传递

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzzzzp.html