Java面试0

一、Java程序设计概述

1.开发Java语言的公司?

Sun (Sun Microsystems)太阳微电子公司开发, 后被Oracle公司收购

2.Java的3个版本?

J2SE(Java2 Standard Edition)标准版

J2EE(Java 2 Platform,Enterprise Edition)企业版

J2ME(Java 2 Micro Edition)微小版

5.0以后新版本中称作:JavaSE JavaEE JavaME

3.Java语言的几个主要特点?

平台无关性:能运行于不同的平台上

安全性:去掉了指针操作,内存由操作系统分配

面向对象:利用类使程序更加利于维护

分布式:可以使用网络文件和使用本机文件一样容易

健壮性:检查程序编译和运行的错误

4.Java的三大核心机制

虚拟机机制:利用虚拟机解释字节码执行java程序实现跨平台

垃圾收集机制:自动内存回收

代码安全性机制:加载代码后校验代码后再执行代码


二、Java语言的开发环境

1.JDK是什么?

JDK(Java Development Kit)Java开发工具包。包括了JRE,是开发Java的人员必备的开发运行Java程序的工具。

2.JRE是什么?

JRE(Java Runtime Environment)Java运行环境,运行JAVA程序所必须的环境的集合,包含JVM标准实现及Java核心类库。

3.JVM是什么?

JVM (Java Virtual Machine) 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是编译型语言还是解释型的语言?

既不是完全编译型,也不是完全解释型,是半编译半解释的。

三、Java程序的基本结构

1.Java语言区分大小写吗?

区分,不管是数据还是标识符或者关键字都区分大小写,例如public不能写成Public, “abc”不能写成”ABC”,int i不能写成INT I等等。

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型

11.如何让一个整型的直接量变成long型的?

在直接量后面加大写L后者小写l,例如10L

12.整型数据在程序中直接使用可以使用什么进制?

10进制,8进制,16进制,但不能使用二进制

13.浮点运算在Java中有没有误差?

有误差,所以精密运算请使用BigDecimal类

14.直接写一个3.14的直接量是什么数据类型的?

是double型,如果想表示是float的3.14必须写成3.14F或者3.14f,double型的3.14也可以写成3.14D

15.char型采取的是什么类型的字符集?

是Unicode全球统一编码,支持任何世界上官方的语言中的字符

16.常见的转义字符有哪些?

转义序列

名称

\b 

退格

\t 

制表

\n 

换行

\r 

回车

\”

双引号

\’

单引号

\\ 

反斜杠


四、Java语言基础

1.常见的Unicode字符对应的编码?

大写的A到Z是对应65到90,小写的a到z是对应97到122,字符0到9是对应48到57

2.空字符是不是用”(两个并列的单引号)来表示?

不是,空字符用‘\u0000′来表示,两个并列的单引号什么也不是。

3.点,分号,花括号的各自的作用?

点的作用有两个:一个是使用类或对象中的成员,用对象.成员,再一个就是包名和子包名之间的分隔符,例如顶层包名.子包名

分号的作用是表示语句结束

花括号的作用是代表一个语句块

4.语句和关键字之间可以有任意的空白吗?

可以的,例如System.out.            println(100);就是正确的语句,但是关键字本身不能加空白或换行

5.标识符是什么?

标识符就是指在程序中给包,类,接口,方法,变量起的名字

6.标识符有什么起名规则?

a.应以字母、下划线、美元符开头

b.后跟字母、下划线、美元符或数字

c.不能用关键字和保留字

d.严格区分大小写

e.名称长度没有限制

7.中文的变量名可以吗?

是可以的,例如 int 数字 = 10;这个语句是正确的。因为java中采取Unicode字符集,所以任何的Unicode中的字符都可以作为标识符的名称,但考虑字符集的支持问题推荐还是使用英文字母命名。

8.关键字和保留字有区别吗?

在1.5后没有区别,都被称作关键字,但是1.5之前认为关键字是在Java中有特殊用途的不允许编程人员擅自改作其他用途,而保留字是在Java中没有特殊用途但不允许编程人员擅自改作其他用途,按此说法goto和const应该是此意义上的保留字。

9.true,false,null可以用作标识符命名吗?

不可以,这3个虽然不是关键字,但都是有特殊用途的值,也不能作为标识符命名

10.一条声明语句可以声明多个变量吗?

可以的,例如以下声明都是正确的

    int i;

    inti,j;

    int i= 10,j;

    inti,j = 10;

    int i= 10,j = 20;


五、Java基本运算

1.变量在没有赋值的情况下可以使用吗?

不可以,变量没有赋值使用会报出变量未初始化的编译错误。

2.常量有什么特点?

在声明变量的时候加上final修饰符即为常量,表示这个变量只能被赋一次值。

3.算数运算符有哪些?

基本算数运算符有+ – * / % ++ --

4.单目运算符,双目运算符,三目运算符都是什么意思?

其实也有叫一元运算符,双元操作符,三元操作符的,指的是有几个操作数形成一个完整表达式,例如++就是一个单目运算符,只需要一个操作数就可以形成表达式,像i++,而+运算符就是双目运算符,需要两个操作数形成表达式,例如5 + 3,还有三目运算符,例如5 > 3 ? 0 : -1

5.++和--放在前面和放在后面有什么区别?

如果是在一个表达式中,那++放后面表示先运算表达式,然后再进行自增运算,如果在一个表达式中,++放前面,则表示先进行自增运算然后在运算表达式。--同样道理。

例如:

int i = 10;

        int j = i ++; //先进行赋值运算然后再进行自增运算

        j的结果是10

        

int i = 10;

        int j = ++ i ; //先进行自增运算然后再进行赋值运算

        j的结果是11

6.-5 % 2等于几,5 % -2等于几?

-5 % 2等于-1,5%-2等于1,运算得到是正数还是负数取决于第一个操作数的符号

7.5 / 2 结果是不是2.5?

不是,是2,因为5和2都是int类型,所以不可能得到double型的结果

8.比较运算符有哪些?

有> < >= <= == != 六项基本比较运算

9.任何数据类型都可以使用>< >= <=运算符吗?

不是所有数据类型,例如true>false这个表达式就是编译错误,布尔类型和引用类型的表达式只能用==和!=两个比较运算,例如“abc” <= “xyz” 这个表达式也是编译错误的

10.‘a’ > ‘b’这个表达式编译正确吗?

编译正确,‘a’和‘b’是字符类型,内部用Unicode编码表示的话a是97,b是98,所以实际上比较的是97>98,结果为false

11.逻辑运算符有哪些?

有 &逻辑与,|逻辑或,!逻辑非,^ 异或,&& 短路与,||短路或

12.逻辑与,逻辑或和短路与,短路或有什么区别?

逻辑与和短路与的区别是:

a.如果是逻辑与&,不管第一个表达式是true还是false,都会执行第二个表达式,

例如a > b & x < y,即使a > b为false,也会执行x > y

b.如果是短路与&&,如果第一个表达式为false,将不会执行第二个表达式

例如a > b && x < y,如果a > b为false,就不会执行x >y   

以此类推,逻辑或和短路或的区别是:

a.如果是逻辑或|,不管第一个表达式是true还是false,都会执行第二个表达式

b.如果是短路或||,如果第一个表达式为true,将不会执行第二个表达式


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值