面试题之java基础

本文介绍了Java编程中的基础概念,包括标识符的规则、关键字的定义,详细讲解了常量与变量的区别,特别是常量池的工作原理。此外,还探讨了数据类型、运算符和数组的使用,包括数组的初始化与内存分配。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.标识符-----什么是标识符

标识符就是程序中给变量、类、方法命名的符号。
规则;
1.标识符可以是字母数字下划线和美元符组成,但不能是以数字开头
2.标识符不可以是java的关键字和保留字,但可以包含关键字和保留字
3.标识符不能包含空格
4.标识符只能包含美元符不能包括#@等
这里提一下关键字
具备特殊用途的单词被称作关键字
eg: new 、 class 、 public 、 private 、 int 、short 、try…

2.常量与变量(什么是常量池)

常量:常量就是不变的量,java通过final来修饰常量;常量不能被修改,否则报错
那什么是常量池?在类加载完成,经过验证准备阶段之后,在堆中生成字符串实例,然后将该对象字符串实例或者其引用存到String pool中.
解读2:常量池指的是在编译器被确定,并保存在已编译的.class文件中的一些数据。它包括关于类,方法、接口中的常量,也包括字符串直接量。

String s0 = "hello";
String s1 = "hello";
String s2 = "he" + "llo";

java 会保证每个字符串常量只有一个,不会产生多个副本。例子中s0和s1在编译器就被确定了,所以S0 == S1,而“he”+"llo"也是字符串常量,当一个字符串由多个字符串常量连接而成时,他本身也是字符串常量。所以s2也是常量池中“hello”的引用。

  • 常量池的作用?有待解决

变量以及作用:
程序所用的数据都会保留在内存中,程序员需要一种机制来访问内存中的数据,这种机制就叫做变量,每个变量都代表某一小块内存。变量是有名字的,程序对变量赋值,就是把数据装入变量所代表的内存区域的过程。

3.数据类型
byte 1位 short 2位 int 4位 long 8位

char 字符型通常用于表示单个字符,字符型值必须使用单引号括起来
4.运算符
运算符是一种特殊的符号,用来表示运算、赋值、比较等。
&:按位与 |:按位或。 ~按位非
&&:与 ||或 !非

7.数组

1.java要求所有的数组要具有相同的数据类型
2.数组的定义方式 是String[] str;
3.数组用来存储多个数据,每个数组元素存放一个数据,通常可通过数组的索引来访问数组元素。
4.java中数组要先初始化才能使用。一旦为数组分配了控件,每个内存空间里存储的内容就是该数组元素的值,即使这个内存空间存储为空,也是一个值null
5.数组的初始化有两种方式
1.静态初始化:由程序员显示为数组指定初始值。
2.动态初始化:由系统为每个元素指定初始值。
6.数组也是一种引用类型变量。
7.数组的引用存放在占内存中,数组的元素存放在堆内存中。

问题:为什么要分堆内存和占内存。
当一个方法被执行的时候,每个方法都会创建自己的内存占栈,栈内存主要为了存储方法的参数或变量值,而对象则存储在堆内存中,因为对象的创建成本特别高,所以,所以,一些临时数据存放在栈中,当方法使用完毕后,这些数据则会被销毁。而对象只要有引用只想它,它就不能被销毁。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值