初级Java开发面试必问项!!! 标识符、字面值、变量、数据类型,该学学了!
最近事情太多,没太时间写博客。今天抽空再整理整理面试中的那点事吧,帮助那些正在找工作或想跳槽找工作的学弟学妹们。
前面我己写过多篇推文,相信看过我文章的伙伴们已经了解掌握了不少。从目前流行的开发技术、常见的面试问题以及问题的答案都已经写的特别清楚了,今天我给写一篇初级Java开发面试必问项!供大家阅读参考。
初级Java开发面试必问项!!! 标识符、字面值、变量、数据类型,该学学了!
- 标识符
- 关于java语言当中的标识符
- 1、什么是标识符
- 2、标识符的命名规则【不按照这个规则来,编译器会报错,这是语法】
- 3、表示符的命名规则【只是一种规范,不属于语法,不遵守规范编译器不会报错】
- 4、合法和不合法的标识符
- 字面值
- 关于字面值:
- 变量
- 一、关于java语言当中的变量:
- 二、关于java语言当中的变量:使用所有的基础语法开发系统业务
- 三、关于java中的变量;
- 四、关于变量的分类:
- 数据类型
- 一、关于java中的数据类型:
- 二、关于八种数据类型的默认值
- 三、关于java语言中的char类型:
- 四、关于java语言当中的整数型:
- 五、关于java中的整数型
- 六、关于浮点型数据类型:
- 七、关于布尔型数据类型
- 八、关于基本数据类型之间的互相转换:转换规则
标识符
关于java语言当中的标识符
1、什么是标识符
- 在java源程序当中凡是程序员有权利自己命名的单词都是标识符
- 标识符在EditPlus编辑器当中以黑色字体高亮显示
- 标识符可以标识什么元素呢?
- 类名 * 方法名 * 变量名 * 常量名 等等…
2、标识符的命名规则【不按照这个规则来,编译器会报错,这是语法】
- 一个合法的标识符只能由“数字、字母、下划线_、美元符号$”组成,不能含有其他符号
- 不能数字开头
- 严格区分大小写
- 关键字不能做标识符
- 理论上无长度限制,但是最好不要太长
3、表示符的命名规则【只是一种规范,不属于语法,不遵守规范编译器不会报错】
//最好见名知意public class UserService{public void login(String username,String password){}} //遵守驼峰命名方式 //Java开发交流君样:593142328SystemService UserService CustomerService- 类名、接口名:首字母大写,后面每个单词首字母大写
- 变量名、方法名:首字母大写,后面每个单词首字母大写
- 长量名:全部大写
4、合法和不合法的标识符
| _123Test | 123Test |
| HelloWorld! | |
| A_B_C | HelloWorld# |
| $ABC | Hello World |
| class1 | class |
| public0 | public |
字面值
关于字面值:
- 字面值:
- 10、100、3.14、“abc”、‘a’、true、false
- 字面值就是数据
- 字面值是java源程序的组成部分之一,包括标识符和关键字他们都是java源程序的组成部分。
- 数据在现实世界当中是分门别类的,所以数据在计算机编程语言当中也是有类型的:【数据类型】
| 10、100 | 属于整数字面值 |
| 3.14 | 属于浮点型字面值 |
| true、false | 属于布尔型字面值 |
| “abc”、“程序员” | 属于字符串型字面值 |
| ‘A’、‘人’ | 属于字符型字面值 |
注意:
- java语言当中所有的字符串字面值必须使用双引号括起来,双引号是半角
- java语言当中所有的字符型字面值必须使用单引号括起来,单引号是半角
变量
一、关于java语言当中的变量:
1、什么是变量?
- 变量本质上来说是内存中的一块空间,这块空间有:数据类型,有名字、有字面值。
- 变量包含三部分:数据类型、名称、字面值【数据】
- 变量是内存中存储数据的最基本的单元。
2、数据类型的作用?
- 不同的数据有不同的类型,不同的数据类型底层会分配不同大小的空间。
- 数据类型是指导程序在运行阶段应该分配多大的内存空间。
3、变量要求:变量中存储的具体的“数据”必须和变量的“数据类型”一致,当不一致的时候编译报错。
4、声明/定义变量的语法格式:
- 数据类型 变量名;
- 数据类型:目前我们还没有学习数据类型,但是有一种数据类型是整数型,叫做int
- 变量名:只要是合法的标识符就行,规范中要求:首字母小写,后面每个单词首字母大写
例如: int i: 、int age; 、int length; 、int size;、 int num;
其中int是数据类型,i,age,length,size,num 都是变量名。
5、变量声明之后怎么赋值?
- 语法格式:变量名 = 字面值;
- 要求:字面值的数据类型必须和变量的数据类型一致。
= 等号是一个运算符,叫做赋值运算符,赋值运算等号右边的表示,表示式执行结束之后的结果赋值给左边的变量。
6、声明和赋值可以放到一起完成。
int i = 10;7、变量赋值之后,可以重新赋值,变量的值可变化:
int i = 10; System.out.println(i); //10int i = 20; System.out.println(i); //20int i = 100; System.out.println(i); //1008、有了变量的概念之后,内存空间得到了重复的使用;
int i = 10; System.out.println(i); ... System.out.println(i);9、通常访问一个变量包括两种访问形式:
- 第一种:读取变量中保存的具体数据 get/获取
- 第二种:修改变量中保存的具体数据 set/设置
10、变量在一行上可以声明多个
int a,b,c;
11、变量必须先声明,再赋值,才能访问。
- int i; 程序执行到这里,内存空间并没有开辟出来,变量i并没有初始化。所以没有赋值之前是无法访问的。
二、关于java语言当中的变量:使用所有的基础语法开发系统业务
1、在方法体当中的java代码,是遵守自上而下的顺序依次执行的,逐行执行。
- 第一行;第二行;第三行;
**特点:**第二行的代码必须完整的结束之后,第三行程序才能执行。
2、在同一个“作用域”当中,变量名不能重名,但是变量可以重新赋值。
public class VarTest02 {public static void main(String[] args)int i = 100;System.out.println(i); //100i = 200;System.out.println(i); //200// 以下代码顺序有错误,先声明然后复制再访问/*System.out.println(k);int k = 100;*//*int i = 90;System.out.println(i);*/ }三、关于java中的变量;
变量的作用域1、什么是作用域?
- 变量的作用域,其实描述的就是变量的有效范围。在什么范围之内是可以被访问的,只要出了这个范围该变量就无法访问了。2、变量的作用域只要记住一句话:
出了大括号就不认识了。 public class VarTest03 {//注意: 这里在static不要去掉static int k = 90;public static void main(String[] args)// 变量i的作用域是main方法// 在整个main方法当中是有效的,可见的,可以访问的int i = 100;System.out.println(i): // 可以System.out.println(k): // 可以// 以下会编写一个for循环语句// 这个for循环后面的控制语句的时候详细讲解for(int a=0;a<10;a++){ //a变量的作用域是整个for循环,for循环结束之后,a变量的内存就释放了}// 这里无法访问a变量// System.out.println(a):int j; // 作用域是main方法for (int j=0;j<10;j++){}System.out.println(j): // 访问的是main方法中的j变量}public static void doSome(String[] args)// 这里无法访问main方法当中的变量i// 已经出了i变量的作用域。// System.out.println(i)://加入Java开发交流君样:756584822一起吹水聊天// 可以System.out.println(k):} }四、关于变量的分类:
根据变量声明的位置分类;
- 局部变量
- 在方法体当中声明的变量叫做局部变量
- 成员变量
- 在方法体外【类体之内】声明的变量叫做成员变量
- 在不同的作用域当中,变量名是可以相同的。
- 在同一个作用域当中,变量名不能重名。
数据类型
一、关于java中的数据类型:
1、数据类型的作用是什么?
- 程序当中有很多数据,每一个数据都是有相关类型的,不同的数据类型的数据占用空间大小不同。
- 数据类型的作用是指导JVM在运行程序的时候给该数据分配多大的内存空间。
2、java中的数据类型包括两种:
- 基本数据类型
- 引用数据类型【后边解释】
- 类、接口、数据、等等…
3、关于基本数据类型:
- 基本数据类型包括四大类八小种:
第一类:整数型
- byte、short、int、long
第二类:浮点型 - float、double
第三类:布尔型 - boolean
第四类:字符型 - char
4、字符串“abc”不属于基本数据类型,属于"引用数据类型",字符属于基本数据类型:
- 字符串使用双引号 “abc”
- 字符使用单引号 ‘a’
5、八种基本数据类型各自占用空间大小是多少?
| byte | 1 |
| short | 2 |
| int | 4 |
| long | 8 |
| float | 4 |
| double | 8 |
| boolean | 1 |
| char | 2 |
6、计算机在任何情况下都只能识别二进制。例如:只认识101000101…
现代的计算机底层采用交流电的方式,接通和断开就两种状态,计算机只识别1或0,其他不认识】
7、什么是二进制?
数据的一种表示形式,十进制表示满十进一原则。二进制表示满二进一原则。
/ 例如:十进制0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 / 例如:二进制0 1 10 11 100 101 110 111 1000 1001 ...0 1 2 3 4 5 6 7 8 98、字节(byte)
1 byte = 8 bit 【1个字节 = 8个比特位】1比特位表示一个二进制位: 1/01 KB = 1024 Byte、1 MB = 1024 KB、1 GB = 1024 MB、1 TB = 1024 GB1 TB = 1024 * 1024 * 1024 * 1024 * 89、整数型当中的byte类型,占用1个字节,所以byte类型的数据占用9个比特位,那么byte类型的取值范围是什么?
- 关于java中的数字类型,数字都是有正负之分的,所以在数字的二进制当中有一个二进制位被称为”符号位“。并且这个”符号位“在所有二进制的最左边,0表示正数,1表示负数。
- byte类型最大值:01111111 【0000010000000(二进制) - 1】
- byte类型最大值:2的7次方-1,结果是:127
- byte类型最小值: -128 【具体的怎么用二进制表示,这个和源码、反码、补码有关】
- byte类型取值范围:【-128~127】
- bytp类型可以标识256个不同的数字【256个不同的二进制】
10、二进制和十进制之间的转换规则:
- 二进制转换成十进制
- 十进制转换成二进制
11、计算机只认识二进制,那么计算机是怎么表示现实世界当中的文字的呢?
- 八种基本数据类型当中,byte、short、int、long、float、double、boolean这7种数据类型计算机在表示的时候比较容易,因为底层都是数字,十进制的数字和二进制之间存在一种固定的转换规则。
- 但是八种基本数据类型当中char类型表示的是现实世界中的文字,文字和计算机二进制之间”默认“情况下是不存在任何转换关系的。
- 为了让计算机可以表示现实世界当中的文字,我们需要进行人为的干涉,需要人负责提前制定好”文字“和”二进制“之间的对照关系。这种对照转换关系被称为:字符编码。
- 计算机最初只支持英文,最先出现的字符编码是:ASCII码
编码和解码的时候采用同一套字典/对照表,不会出现乱码。
当解码和编码的时候采用的不是同一套对照表,会出现乱码问题,
-
跟着计算机的发展,后来出现了一种编码方式,是国际标组织ISO制定,这种编码方式支持西欧语言,向上兼容ASCII码仍然不支持中文,这种编码方式是:ISO-8859-1,又被称为latin-1
-
跟着计算机向亚洲发展,计算机开始支持中文、日文、韩文等国家文字,其中支持简体中文的编码方式:GB2312 < GBK < GB18030
-
支持繁体中文:大五码
-
后来出现了一种编码方式统一了全球所有的文字,容量较大,这种编码方式叫做:unicode编码
unicode编码方式有很多种具体的实现: -
UTF-8、UTF-16、UTF-32.…
-
java语言采用的是哪一种编码方式呢?
-
java语言源代码采用的是unicode编码方式,所以标识符可以写中文。
-
现在在实际开发中,一般使用UTF-8编码方式较多。【统一编码方式】
12、八种基本数据类型的取值范围:
| byte | [-128 ~ 127] |
| short | [-32768 ~ 32767] |
| int | [-2147483648 ~ 2147483647] |
| long | / |
| float | / |
| double | / |
| boolean | [true,falese] |
| char | [0 ~ 65535] |
13、以下java程序主要讲解的是数据类型之,char类型
public class DataTypeTest01 {public static void main(String[] args){// 定义一个char类型的变量,起名c,同时赋值字符'a'char c = 'a';System.out.print(c);// 一个中文占用2个字节,char类型正好是2个字节// 所以java中的char类型变量可以存储一个中文字符char x = '国';System.out.print(x);// 编译错误// ab是字符串不能使用单引号括起来// char y = 'ab';// "a"是字符串类型// k变量是char类型// 类型不兼容,编译错误char k = "a";// 声明char e;// 赋值e = "e";// 再次赋值System.out.print(e);} }二、关于八种数据类型的默认值
| byte,short,int,long | 0 |
| float,double | 0.0 |
| boolean | false【在C语言中,true是1,false是0】 |
| char | \u0000 |
八种基本数据类型的默认值是一切向0看齐。
public class DataTypeTest02 {// 这里的static必须加,别问。static int k = 1000;// 变量还是遵守这个语法:必须先声明,在赋值,才能访问。// 成员变量没有手动赋值系统会默认赋值【局部变量不会】static int f; //成员变量public static void main(String[] args){/*int i; //局部变量System.out.print(i);*/System.out.print(k);System.out.print(f);} }三、关于java语言中的char类型:
转义字符
转义字符出现在特殊字符之前,会将特殊字符转换成普通字符。
\n 换行符
\t 制表符
’ 普通的单引号
\ 普通的反斜杠
" 普通的双引号
四、关于java语言当中的整数型:
数据类型 占用空间大小 默认值 取值范围----------------------------------------------------------------byte 1 0 [-128 ~ 127]short 2 0 [-32768 ~ 32767]int 4 0 [-2147483648 ~ 2147483647]long 8 0L1、java语言当中的“整数型字面值”被默认当做int类型来处理,要让这个“整数型字面值”被当做long类型来处理的话,需要在“整数型字面值”后面添加1/L,建议使用大写的L
2、java语言当中的整数型字面值有三种表示方式:
- 第一种方式:十进制【是一种缺省的默认的方式】
- 第二种方式:八进制【在编写八进制整数型字面值的时候需要以0开始】
- 第三中方式:十六进制【在编写十六进制整数型字面值的时候需要以0x开始】
五、关于java中的整数型
byte
short
int
long
六、关于浮点型数据类型:
float单精度【4个字节】
double 双精度【8个字节,精度较高】
double的精度太低【相对来说的】,不适合做财务软件。
财务涉及到钱的问题,要求精度较高,所以SUN在基础SE类库当中
为程序员准备了精确度更高的类型,只不过这种类型是一种引用数据类型,不属于基本数据类型,它是:
java.math.BigDecimal
其实java程序中SUN提供了一套庞大的类库,java程序员是基于这套基础的类库来进行开发的,所以要知道java的SE类库的字节码在哪里,要知道java的SE类库的源码在哪里。
- SE类库字节码:\Java\jdk1.8.0_101\jre\lib\rt.jar
- SE类库源码: D:\Java\jdk1.8.0_101\src.zip
例如;String.java和String.class
我们的(String[] args)中的String使用的就是String.class字节码文件
在java语言当中,所有的浮点型字面值【3.0】,默认被当做double类型来处理
要想改字面值当做float类型来处理,需要在字面值后面添加F/f
注意:
double和float在计算机内部二进制存储的时候存储的都是近似值。
在现实世界当中有一些数字是无限循环的,例如:3.3333333333333…
计算机的资源是有限的,用有限的资源存储无限的数据只能存储近似值
七、关于布尔型数据类型
boolean
在java语言当boolea类型只有两个值:turefals,没有其他值。
不像C语言当中,0和1可以表示假和真。
在底层存储的时候boolean类型占用1个字节,因为实际存储的时候false底层是0,true底层是1.
布尔类型在实际开发当中非常重要,经常使用在逻辑运算和条件控制语句当中。
public class DataTypeTest07 {public static void main(String[] args){// 编译错误:不兼容的类型// boolean flag = 1;//boolean loginSuccess = true; boolean loginSuccess = false;// if语句以后在解释【条件控制语句】if(loginSuccess){System.out.println("恭喜你,登录成功");}else{System.out.println("对不起,用户名不存在或者密码错误!");}} }八、关于基本数据类型之间的互相转换:转换规则
byte < short < int < long < float < double char <
注:任何浮点类型不管占用多少个字节,都比整数型容量大。
char和short可表示的种类数量相同,但是char可以取更大的正整数
注意:
byte b = 3; 可以编译通过,3没有超出byte类型取值范围
int i = 10;
byte b = i / 3; 编译报错,编译器只检查语法,不会“运算” i / 3
最后,祝大家早日学有所成,拿到满意offer
总结
以上是生活随笔为你收集整理的初级Java开发面试必问项!!! 标识符、字面值、变量、数据类型,该学学了!的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 支付宝借呗怎么提额
- 下一篇: 什么?面试官问我Java内存模型!这不得