初级Java开发面试必问项!!! 标识符、字面值、变量,2024年最新初级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开发交流君样:593142328

SystemService UserService CustomerService

  • 类名、接口名:首字母大写,后面每个单词首字母大写

  • 变量名、方法名:首字母大写,后面每个单词首字母大写

  • 长量名:全部大写

4、合法和不合法的标识符

| 合法 | 不合法 |

| — | — |

| _123Test | 123Test |

| | HelloWorld! |

| A_B_C | HelloWorld# |

| $ABC | Hello World |

| class1 | class |

| public0 | public |

*/

public class IdentifierTest01

//IdentifierTest01是一个类名,名字可以修改

{

//main是一个方法名

public static void main(String[] agrs){

//args是一个变量名

}

//doSome就是方法名

public static void doSome(){

//i就是变量名

int i = 10;

}//Java开发交流君样:593142328

}

字面值

================================================================

关于字面值:


  • 字面值:

  • 10、100、3.14、“abc”、‘a’、true、false

  • 字面值就是数据

  • 字面值是java源程序的组成部分之一,包括标识符和关键字他们都是java源程序的组成部分。

  • 数据在现实世界当中是分门别类的,所以数据在计算机编程语言当中也是有类型的:【数据类型】

| 【数据类型】 | 【数据类型】 |

| — | — |

| 10、100 | 属于整数字面值 |

| 3.14 | 属于浮点型字面值 |

| true、false | 属于布尔型字面值 |

| “abc”、“程序员” | 属于字符串型字面值 |

| ‘A’、‘人’ | 属于字符型字面值 |

注意:

  • java语言当中所有的字符串字面值必须使用双引号括起来,双引号是半角

  • java语言当中所有的字符型字面值必须使用单引号括起来,单引号是半角

*/

public class ConstTest01

{

public static void main(String[] args){

System.out.println(“abc”);

System.out.println(“你最近过得好吗?”);

System.out.println(10);

System.out.println(false);

System.out.println(true);

System.out.println(‘A’);

System.out.println(3.14);

// 编译报错,因为单引号中只能存放单个字符,属于字符型字面值

// System.out.println(‘ABC’);

//Java开发交流君样:593142328

// 100是一个字面值,是一个整数型数值,那么既然是数据存储在内存当中,必定会占用一定的内存空间。

System.out.println(100);//加入Java开发交流君样:756584822一起吹水聊天

}

}

变量

===============================================================

一、关于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); //10

int i = 20; System.out.println(i); //20

int i = 100; System.out.println(i); //100

8、有了变量的概念之后,内存空间得到了重复的使用;

int i = 10; System.out.println(i); … System.out.println(i);

9、通常访问一个变量包括两种访问形式:

  • 第一种:读取变量中保存的具体数据 get/获取

  • 第二种:修改变量中保存的具体数据 set/设置

i = 20: //set

System.out.println(i); //get

10、变量在一行上可以声明多个

int a,b,c;

11、变量必须先声明,再赋值,才能访问。

  • int i; 程序执行到这里,内存空间并没有开辟出来,变量i并没有初始化。所以没有赋值之前是无法访问的。

public class VarTest01

{

public static void main(String[] args){

//声明一个int类型的变量,起名i

int i;//Java开发交流君样:593142328

// 编译报错,变量i并没有初始化

// System.out.println(i);

//加入Java开发交流君样:756584822一起吹水聊天

// 给i变量赋值,i 变量在这里完成初始化,内存开辟

i = 100;

System.out.println(i);

// i 再次重新赋值

i = 200;

System.out.println(i);

// 一行上可以同时声明多个变量

// a和b尚未初始化,c赋值300

// int a,b,c = 300;

}

}

二、关于java语言当中的变量:使用所有的基础语法开发系统业务


1、在方法体当中的java代码,是遵守自上而下的顺序依次执行的,逐行执行。

  • 第一行;第二行;第三行;

**特点:**第二行的代码必须完整的结束之后,第三行程序才能执行。

2、在同一个“作用域”当中,变量名不能重名,但是变量可以重新赋值。

public class VarTest02

{

public static void main(String[] args)

int i = 100;

System.out.println(i); //100

i = 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):

}

}

四、关于变量的分类:


根据变量声明的位置分类;

  • 局部变量

  • 在方法体当中声明的变量叫做局部变量

  • 成员变量

  • 在方法体外【类体之内】声明的变量叫做成员变量

  • 在不同的作用域当中,变量名是可以相同的。

  • 在同一个作用域当中,变量名不能重名。

public class VarTest04

{

// 成员变量

int k = 200;

// 主方法:入口

public static void main(String[] args){

// i变量就是局部变量

int i = 10;

//加入Java开发交流君样:756584822一起吹水聊天

// java遵循“就近原则”

System.out.println(i);

}

// 成员变量

int i = 100; // 什么变量

// 类体中不能直接编写java语句【除声明变量之外】

// System.out.println(i):

// doSome方法

public static void doSome(){

// 局部变量

int i = 90;

}

}

数据类型

=================================================================

一、关于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 9

8、字节(byte)

1 byte = 8 bit 【1个字节 = 8个比特位】1比特位表示一个二进制位: 1/0

1 KB = 1024 Byte、1 MB = 1024 KB、1 GB = 1024 MB、1 TB = 1024 GB

1 TB = 1024 * 1024 * 1024 * 1024 * 8

9、整数型当中的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码

‘a’ -> 97 【01100001】

‘A’ -> 65

‘0’ -> 48

‘a’ – (按照ASCII解码) --> 01100001

01100001 – 按照ASCII编码 --> ‘a’

编码和解码的时候采用同一套字典/对照表,不会出现乱码。

当解码和编码的时候采用的不是同一套对照表,会出现乱码问题,

  • 跟着计算机的发展,后来出现了一种编码方式,是国际标组织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] |

注意:short和char所表示的种类总数是一样的,只不过char可以标识更大的正整数。

因为char没有负数。

13、以下java程序主要讲解的是数据类型之,char类型

public class DataTypeTest01

{

public static void main(String[] args){

// 定义一个char类型的变量,起名c,同时赋值字符’a’

char c = ‘a’;

System.out.print©;

// 一个中文占用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 制表符

’ 普通的单引号

\ 普通的反斜杠

" 普通的双引号

public class DataTypeTest03

{

public static void main(String[] args){

// 普通的n字符

char c1 = ‘n’:

System.out.print(c1);

// 依照目前所学知识,一下程序无法编译通过,因为显示是一个字符串,不能使用单引号括起来

// 但是经过编译,发现编译通过了,这说明以下并不是一个字符串,而是“一个”字符

// 这是一个“换行符”,属于char类型的数据

// 反斜杠在java语言当中具有转义功能。

char c2 = ‘\n’;

/*

System.out.print(“Hello”);

System.out.print(“World!”);

*/

// System.out.println()和System.out.print()区别:

// println输出之后换行,print表示输出,但是不换行

/*

System.out.print(“Hello”);

System.out.println(“World!”);

*/

System.out.print(“A”);

// System.out.print(c2);

System.out.println(“B”);

// 普通的t字符

char x = ‘t’;

System.out.print(“t”);

// 制表符tab

// 强调:制表符和空格不一样,他们的ASCII不一样,体现在键盘上两个不同的“按键”

char y = ‘\t’;

System.out.println(“A”);

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注Java)
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

结语

小编也是很有感触,如果一直都是在中小公司,没有接触过大型的互联网架构设计的话,只靠自己看书去提升可能一辈子都很难达到高级架构师的技术和认知高度。向厉害的人去学习是最有效减少时间摸索、精力浪费的方式。

我们选择的这个行业就一直要持续的学习,又很吃青春饭。

虽然大家可能经常见到说程序员年薪几十万,但这样的人毕竟不是大部份,要么是有名校光环,要么是在阿里华为这样的大企业。年龄一大,更有可能被裁。

送给每一位想学习Java小伙伴,用来提升自己。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

本文到这里就结束了,喜欢的朋友可以帮忙点赞和评论一下,感谢支持!

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

‘t’;

System.out.print(“t”);

// 制表符tab

// 强调:制表符和空格不一样,他们的ASCII不一样,体现在键盘上两个不同的“按键”

char y = ‘\t’;

System.out.println(“A”);

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
[外链图片转存中…(img-vc1o5VyX-1712972052885)]
[外链图片转存中…(img-rDxYtAa9-1712972052886)]
[外链图片转存中…(img-6LDKZm3x-1712972052886)]
[外链图片转存中…(img-CRcMYhUF-1712972052887)]
[外链图片转存中…(img-p9IRvUtm-1712972052887)]
[外链图片转存中…(img-YREYuSb3-1712972052887)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注Java)
[外链图片转存中…(img-yreIWYWC-1712972052888)]

结语

小编也是很有感触,如果一直都是在中小公司,没有接触过大型的互联网架构设计的话,只靠自己看书去提升可能一辈子都很难达到高级架构师的技术和认知高度。向厉害的人去学习是最有效减少时间摸索、精力浪费的方式。

我们选择的这个行业就一直要持续的学习,又很吃青春饭。

虽然大家可能经常见到说程序员年薪几十万,但这样的人毕竟不是大部份,要么是有名校光环,要么是在阿里华为这样的大企业。年龄一大,更有可能被裁。

送给每一位想学习Java小伙伴,用来提升自己。

[外链图片转存中…(img-cwgvq5DZ-1712972052888)]

本文到这里就结束了,喜欢的朋友可以帮忙点赞和评论一下,感谢支持!

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
[外链图片转存中…(img-EaWgyTav-1712972052889)]

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值