这是一个Java面试的集合文档,将会周期性的进行更新,您完全将其看成一个番剧,追番的感觉可能会让您更有学习的兴趣。
此篇为基础语法篇
Java的基本数据类型有哪些?
数据类型 | boolean | byte | char | short | int | float | long | double |
占用内存 | 1(bit) | 8(bit) | 16(bit) | 16(bit) | 32(bit) | 32(bit) | 64(bit) | 64(bit) |
包装类 | Boolean | Byte | Character | Short | Integer | Long | Float | Double |
(1字节=8bit),boolean只有两个值true和false,boolean占用1一个字节或4个字节皆有可能,具体看虚拟器是否符合规范。
注释有哪几种?
Java 中的注释有三种:
- 单行注释 :用于解释方法内某单行代码的作用。
- 多行注释 :用于解释一段代码的作用。
- 文档注释 :用于生成 Java 开发文档。
标识符和关键字两者的区别是什么?
Java对各种变量、方法、类等命名时所使用的字符序列即为标识符。简单的理解就是我们可以自己起名字的地方都是标识符,例如在程序中:int num1 =90;那么num1就是标识符。它只是一个名字。
关键字即是被Java语言所赋予了特殊含义,用做专门用途的字符串。其实它就是被赋予了特殊含义的标识符。需要注意的是,关键字中所有的字母都为小写。
我们可以这样理解这两者的区别:前置条件:生活中名字必唯一情况下,你有一个兄弟,你十分的喜欢他,你要给它起一个名字叫“阿卡丽”,名字就是我们的标识符。但是这个名字确是不被允许的,因为你的父亲也叫“阿卡丽”,你肯定不能和你父亲同名,那么此时“阿卡丽”已经被赋予了特殊的含义,也就是关键字。
此处列出Java关键字表以供参考:
用于包的关键字 | import | package | ||||
用于定义访问权限修饰符的关键字 | private | protected | public | |||
用于定义数据类型的关键字 | class | interface | enum | byte | short | int |
long | float | double | char | boolean | void | |
用于定义数据类型值的关键字 | true | false | null | |||
用于定义流程控制的关键字 | if | else | switch | case | default | while |
do | for | break | continue | return | ||
用于定义类、函数、变量修饰符的关键字 | abstract | final | static | synchronized | ||
用于定义类与类之间关系的关键字 | extends | implements | ||||
用于定义建立实例及引用实例、判断实例的关键字 | new | this | super | instanceof | ||
用于异常处理的关键字 | try | catch | finally | throw | throws | |
其他修饰符关键字 | native | strictfp | transient | volatile | assert |
注意:default是个特殊的关键字,既属于程序控制,也属于类,方法和变量修饰符,还属于访问控制。虽然true,false和null看起来像关键字但实际上他们是字面值,同时你也不可以作为标识符来使用。
什么是变量?
变量是程序的基本组成单位,变量有三个基本要素(数据类型+变量名称+值),变量相当于内存中一个数据存储空间的表示,你可以把变量看做是一个房间的门牌号,通过门牌号我们可以找到房间,而通过变量名可以访问到变量(值)。
变量表示内存中的一个存储区域(不同变量,类型不同,占用的空间大小不同)。变量必须先声明,后使用,也就是需要有顺序。变量在同一作用域内不能重名。
局部变量和成员变量与区别是什么?
- 语法形式:局部变量是在代码块或方法中定义的变量或是方法的参数,而成员变量属于类。 局部变量不可以被访问控制修饰符和static所修饰,而成员变量可以被private、public、static等修饰符所修饰。 但两者都可以被final所修饰。
- 默认值:局部变量不会自动赋值。 如成员变量没被赋初始的值,则会自动以类型的默认值而赋值(例外:如成员变量被final修饰也必须显式的赋值)。
- 生存时间:局部变量会随着方法的调用而自动生成,也随着方法的调用结束而消亡。而成员变量则是对象的一份子,它会随着对象的创建而存在。
- 存储方式:局部变量存在于栈内存。成员变量如是使用static所修饰,则此成员变量属于类,如没有使用static所修饰,则此成员变量属于实例。而其对象存在于堆内存。
静态变量的作用是什么?
(static)静态变量可以被类的所有实例共享。无论一个类创建了多少个对象,它们都共享同一份静态变量。一般情况中,静态变量会被final关键字修饰成为常量。
break、contiune、return三者的区别?
- break:(就近原则,结束当前的整个循环。指跳出整个循环体,继续执行循环下面的语句。)
- 结束当前整个循环,执行当前循环下边的语句。忽略循环体中任何其它语句和循环条件测试。
- 只能跳出一层循环,如果你的循环是嵌套循环,那么你需要按照你嵌套的层次,逐步使用break来跳出。[逐层判断,逐步跳出]
- break在循环体内,强行结束循环的执行,也就是结束整个循环过程,不在判断执行循环的条件是否成立,直接转向循环语句下面的语句。
- 当break出现在循环体中的switch语句体内时,其作用只是跳出该switch语句体。
- contiune:(指跳出当前的这一次循环,继续下一次循环。)
- 终止本次循环的执行,即跳过当前这次循环中continue语句后尚未执行的语句,接着进行下一次循环条件的判断。
- 结束当前循环,进行下一次的循环判断。
- 终止当前的循环过程,但他并不跳出循环,而是继续往下判断循环条件执行语句.他只能结束循环中的一次过程,但不能终止循环继续进行
- return:(用于跳出所在方法,结束该方法的运行。)
- return 从当前的方法中退出,返回到该调用的方法的语句处,继续执行。
- .return 返回一个值给调用该方法的语句,返回值的数据类型必须与方法的声明中的返回值的类型一致。
- return后面也可以不带参数,不带参数就是返回空,其实主要目的就是用于想中断函数执行,返回调用函数处。
字符型常量和字符串常量的区别?
- 形式上: 字符常量是单引号引起的一个字符 字符串常量是双引号引起的 若干个字符
- 含义上: 字符常量相当于一个整形值( ASCII 值),可以参加表达式运算,字符串常量代表一个地址值(该字符串在内存中存放位置)
- 占内存大小:字符常量只占2个字节 字符串常量占若干个字节(至少一个 字符结束标志)
注意: char在Java中占两个字节
如果您认真阅读至此,您现在已经掌握了Java的面试篇追番版Day02,且随着您认真练习使用次数的增加,您对您对Java的掌握我相信不止于此,如果您对此语言或其他有进阶的要求,请移步至我的博客进行其余的修炼计划。
感谢您认真观看完毕此文章,如果此文章对您有帮助的话,还请您点赞、收藏、评论,这对我有很大的帮助。