JAVA面试练习题总汇
练习01
1、前言
今天看到一位博主说的话感触超多:既然我没有别人聪明,那就做个比别人更努力的人吧。但是后来才发现,这个世界有一种可怕的存在:他既比你聪明,又比你勤奋。这就很尴尬了!所以,我还有什么资格不努力了?
因此我决定将自己所学的一个一个的练习,我知道什么是掌握了一门知识!就是当别人向你问起的时候你的脑海中已经有了关于这个知识的全部内容!概念,到实现,注意点等等!,但是可惜,我现在离开了教程就不会编程了,不,不应该把它叫做编程,叫抄写更加合适吧!但是学习就是从抄开始,所以就是每天我抄,我都要抄一定的数量,在不断的练习中感受它的原理感受的使用,然后总结,记录。让这些成为自己的,或者说把从书上抄改为从脑子里抄吧!(练习的题都是从百战里拿的)
2、你学习编程的目的是什么?学习编程最快的方法是什么?
答:学习编程的第一目的是因为自己大学学的计算机科学与技术,所以需要通过编程赚钱养家!其二当我正式开始程序员生涯的时候突然觉得生活不能碌碌无为,所以想找一样东西来证明自己的存在过!因此成为计算机大神就成为了我新的目标。学习编程的最快方法是什么?我一直来是使用视频,和上课来学习编程。但是,我发现此效率相当低!现在我的想法就是一边看书一边写代码验证是学习编程最快的方法。
3、一个技术点怎才能算学会?
答:从前我以为只要能默写出来就算会了,但是我现在不这么认为!先不说记忆代码多么费时间,主要应该是要理解知道为什么这个技术要这么用,这么写在程序中有何种用途,然后抽象的归纳每个步骤!在开始编写代码时将步骤通过注释标记然后按格子填空,我才觉得这是学会了。关键是解决的方案,而不是死代码。
4、计算机语言的三代发展
答:计算机语言目前大致分为3类,机器语言,汇编语言和高级语言。机器语言是直接通过10101二进制进行编写,而汇编语言是通过一些人类字符代替二进制进行编写,高级语言直接使用人理解的字符编写。其中的区别在于人理解的难度!
5、JAVA语言的核心优势
答:在我现在所接触过的语言中有C,C++,汇编语言以及JAVA,JAVA最大的特点在于它的跨平台,以及他的简单易学,编写WEB强大的好处。
练习02
6、JAVA得三个版本是什么?
答:JAVA得三个版本分别是JAVASE、JAVAEE、JAVAME,分别解决桌面应用,企业网站、手机端等。
7、JAVA跨平台怎么实现的?
答:JAVA得跨平台是通过JVM实现的,JVM就是JAVA VIRTUAL MACHINE(Java虚拟机),简单的理解就是JAVA虚拟机就相当于一台电脑,然后你的JAVA代码是在JVM上跑,而不是真正在自己的电脑上跑,只要你的JDK版本一致,那你的代码不管是在WINDOS还是LINUX上跑都是一眼的在JVM上运行,所以就可以实现跨平台。
8、JAVA语言是解释型还是编译型?
https://blog.csdn.net/qzc70919700/article/details/72515022此人博客对此详细解释。说的非常清楚,我也相同的观点。
JAVA都需要编译成.CLASS文件才能运行,但是它又是在JVM解释执行。所以说两种语言兼有。
定义:
编译型语言:把做好的源程序全部编译成二进制代码的可运行程序。然后,可直接运行这个程序。
解释型语言:把做好的源程序翻译一句,然后执行一句,直至结束!
区别:
编译型语言,执行速度快、效率高;依靠编译器、跨平台性差些。
解释型语言,执行速度慢、效率低;依靠解释器、跨平台性好。
我得认为是,还是编译型的。毕竟需要编译吗 。
9、JDK、JRE、JVM的含义
jdk,(java develope kit )java开发工具包 , jre(java run envoriment )java运行环境 jvm(java virtual machine) java虚拟机。
10、JDK包含JRE吗?
包含直接上图
练习03
11、DOS下自动补全的命令是那个?DOS下想查询以前使用的命令是那个?
答:用table可以提示。以前直接用上方向键
12、DOS下,dir代表什么意思?cd表示什么含义?
答:dir代表展示带前所有的列表,cd代表进入某一个文件夹
13、为什么采取JAVA_HOME的方式配置环境变量好?、
答:更加方便,不用每次去JDK中调命令。
14、一个JAVA源文件可以写多个CLASS吗?
答:可以,但是只能有一个与文件名相同的类。
15、多行注释能不能嵌套使用。
答:不行,亲测。
练习04
16、常用的进制有哪些?
答:二进制、八进制、十进制、十六进制 二进制 101010101. 八进制 0开头 十进制就是平时得样子 十六进制 0x
17、如何将10进制转换成2进制?
答:通过短除法可以将10进制转换成2进制。关键点就是不断除以2.获得的余数反过来就是2进制。
18、位、字节、字符。
答:位(bit),是计算机里最基础的单位一位就是一个2进制 。1,0,0,1这种。字节是八个位称之位字节(byte).在英语中一字节就是一个英文,中文一个字占两字节。
字符,和字节、位的含义不同。字符是代表符号,不是比如一字符的英文是一字节,一字符的中文是两字节。所以说字符是对应的符号,不是大小。
19、标识符的符号。
答:标识符由$ 和_数字,字母组成。数字不能开头。标识符用来标识变量,类等。
20、java中有没有goto语句,有没有goto关键字。
答:java中没有goto语句,但是goto有关键字。
练习05
21、byte、short、int 、long 占据字节数,标识的范围。
答:byte 一字节 2^8次方。 -128~127.
short 两字节 2^16次方
int 四字节 2的32次方 21亿
long 八字节 2的64次方
22、整形常数默认是什么类型的?
答:Int型
23、float、double占用几个字节?
答:float 4 个 且定义float时需要加f,double 8个。
24、java默认的浮点常量是什么类型?
答:默认是dobule。如果申明是float需要加上f字母。
25、如下写法哪些是不对的。
byte b = 30; //正确
byte c = 500; //超出了其表示范围,
long d= 2343223; //正确
float f = 3.14; //默认为dobule,需要加f
练习06
26、float能否比较?
float d1 = 434f;
float d2 = d1+1;
if(d1==d2) {
System.out.println("相等");
}else {
System.out.println("不相等");
}
可以比较不想等。
27、字符型变量几个字节?这种写法对吗?char c = "d";
答: char c = "a"; //这种写法不对,需要用单引号
28、布尔型变量占用的空间是一位还是一个字节?
答:一个字节,一位就是一个二进制,一个字节是8个二进制。
29、if(b==true)这种写法好不好?
1.if(true==a)是两个变量之间的比较,if(a==true)是变量a是否为真的判断!不知这样说可否.. true是关键字,不是变量,不存在"两个变量"
2.根据java代码的编写规则 是不允许写if(a==true)这样的代码的。 正确:if(a) or if(!a). 编码规范都推荐的if(a)或者if(!a)的方式,无论是sun还是IBM
3.这两个区别我们推荐使用true==a,是为了防止有人漏写一个=号,因为你在写if(a==true)时,写成了if(a=true)错误是察觉不到的,例如在MyEclipse中 它不会给你错误的提示。直接判断就好了。
30、常量的申明使用那个关键字.?
答:final,代表最终的不可修改的;
练习07
31、常量的命名规范是?
答:所有变量、方法、类名:见名知意
变量、方法名: 首字母小写和驼峰原则 run(),runRun(),age ageNew monthSalary
常量: 大写字母和下划线:MAX_VALUE
类名: 首字母大写和驼峰原则:Man,GoodMan
32、驼峰原则?
答:骆驼式命名法就是当变量名或函数名是由一个或多个单词连结在一起,而构成的唯一识别字时,第一个单词以小写字母开始;从第二个单词开始以后的每个单词的首字母大写都采用大写字母。下划线命名法,每一个逻辑点用下划线分隔。
33、使用Scanner接受键盘输入的是否一定要加import.java.util*?
答:一定要加入这个包,因为这个类是存放于这个包中。
34、引用类型是占几个字节?
答:除了基本类型外,其他都是引用类型如:STRING;枚举;数组;类和接口等等。引用类型是保存的你堆中的地址。应该是16字节。
35、算术运算符中类型提升是怎么回事?int a = 3; long b =3 ;a+b返回什么类型?
答: 在计算a+b时,是按照long类型来进行的,计算机发现两个变量类型不一致时,会按照更复杂的类型的那个变量作为基准组织运算,a+b计算时,会将a转换成long型数据,按照long规则运算,得到long型的结果。
int a= 3;
long b = 3;
long ab = a+b;
//或者
int ac = (int) (a+b);