java基础知识及其重要面试点-第一篇

目录

自增自减运算符

自增++自减--运算符作用:

面试考点

JDK、JRE、JVM关系

Java语言版本历史

Java三大平台

IDEA操作

模块操作

项目操作

IDEA常用快捷键

Debug工具的使用

标识符

java数据类型

自动类型转换

逻辑运算符使用注意事项

扩展赋值运算符注意事项

逻辑语句注意事项

循环语句和跳转语句注意事项

基本数据类型和 String 类型的转换

方法重载

自增自减运算符

自增++自减--运算符作用:

对当前变量值进行+1-1的赋值操作

i++、++i单独使用时没有区别

++、--如果在表达式中或者同时有其他操作,放在变量前后会有明显区别

int a=1;
int r=++a;
//结果:a=2 r=2
int a=1
int r=a++;
//结果:r=1 a=2

面试考点

 int k=3;
    int p=5;
    int rs=k++ + ++k - --p +p-- - k-- + ++p +2;
    System.out.println("i="+k);
    System.out.println("r="+p);
    System.out.println("r="+rs);
//结果:k=4 p=4 rs=9
在运算过程中,需要同步更新k和p的值

JDK、JRE、JVM关系

JDK=JRE+开发工具集(javac、javadoc等)

JRE=JVM+javase标准类库

如果只想运行开发好的 .class 文件 只需要 JRE

标准类库作用是包含了一些开发中常用的方法,比如lang包、util包

Java语言版本历史

java5.0:标志性版本

java8.0:最稳定版本

java17:2021长期维护版本,带有TLS的都是长期稳定维护的

Java三大平台

Java EE: Java 语言的(企业版),用于 Web 方向的网站开发。

Java SE: Java 语言的(标准版),用于桌面应用的开发,是其他两个版本的基础。

Java ME: Java 语言的(小型版),用于嵌入式消费类电子设备

IDEA操作

模块操作

创建模块

删除模块

注意:模块的删除,只是从左侧列表中临时删除,硬盘中还是存在的.

项目操作

关闭项目

修改项目名

  1. 关闭项目

  2. 从列表中移除当前项目

  3. 到硬盘中手动修改项目名称

IDEA常用快捷键

Ctrl + alt + L格式化代码
Alt + shift + ↑上移当前行
Alt + shift + ↓下移当前行
Alt+回车导入包,自动修正
Ctrl+N查找类
Ctrl+R替换文本
Ctrl+F查找文本
Shift+F6重构-重命名
Ctrl+X剪切当前行
Ctrl+D复制行
Ctrl+/批量加入单行注释,再按一次就是取消
Ctrl+Shift+/批量加入多行注释,再按一次就是取消
Alt+1快速打开或隐藏工程面板
F2高亮错误或警告快速定位
Ctrl+F12可以显示当前文件的结构

Debug工具的使用

  1. 加断点
        2. 右键选择Debug运行
        3. 点哪里 : Step Over (程序向下执行一步)
        4. 看哪里 :
                    Debugger :
                        Frames : 可以看到程序中有哪些方法正在执行
                        Variables : 可以看到变量的变量过程
                    Console : 控制台
        5.点击多个断点可以在执行代码时直接跳转到对应的下一个断点。

标识符

自己对类、方法、变量起的名字

规则

1、数字、字母、下划线、美元符

2、数字不能开头

3、不能是关键字

规范化命名

驼峰命名

小驼峰命名法 : 变量

1. 一个单词的时候, 所有字母小写
2. 多个单词的时候, 从第二个单词开始首字母大写

大驼峰命名法 : 类

1. 一个单词的时候, 首字母大写  Student   Test   Demo
2.如果是多个单词, 每个单词首字母大写  GoodStudent

java数据类型

注:声明float型数据,需在数据后加f或F。声明long类型时,也需要在后面加l或L。

自动类型转换

隐式转换介绍

取值范围小的数据或变量, 给取值范围大的变量赋值, 可以直接赋值

注:这里的小的大的指的是取值范围,不是字节大小。

取值范围从小到大: byte short int long float double

注:float占用4个字节,long占用8个字节,但是float的取值范围比long大。因为小数二进制的存储方式,比整数更加节省空间。

byte、short、int这三个数据类型在运算过程中会直接提升为int再进行运算

举例说明

   byte b1 = 3;
                byte b2 = 4;
                byte b3 = b1 + b2;//答案错误,在运算时这两个变量会直接提升为int再进行运算,除非强制类型转换。
 byte b = 3 + 4;
//3和4都是字面量,默认是int类型,按理应该会报错。但java存在常量优化机制,在编译的时候自动将3和4相加,在.class 文件中保存的是7这个值。

逻辑运算符使用注意事项

& |和&& ||区别

& |没有短路效果,即&左边的值无论是true或false都会执行右边的逻辑,&&的短路效果体现在若左边是false右边将不会执行。

举例

 		int x = 3;
        int y = 4;
        boolean result = ++x > 5 && y-- < 3;

        System.out.println(result);     // false
        System.out.println(x);          // 4
        System.out.println(y);          // 4
//因为左边条件是false,右边的代码将不会执行,所以y的值将不会自减

扩展赋值运算符注意事项

扩展赋值运算符+=、-=等内部存在强转效果

double num1 = 12.3;
int num2 = 10;
num2 += num1;       // num2 = (int)22.3;
System.out.println(num2);       // 22

逻辑语句注意事项

循环语句和跳转语句注意事项

break和continue异同点

异:break跳过某一层循环,continue则跳过某一次循环的执行,继续下一次。

同:两者都只能在循环中使用,这两个关键字下面不能写代码,属于无效代码

for循环注意事项

for循环中()定义的变量在整个循环结束后,会从内存中释放。for循环中{}定义的变量在每一轮循环结束后,会从内存中释放。

switch语句注意事项

switch语句中的()可以接收的类型有基本数据类型中的byte short int char 和引用数据类型的enum(JDK5) String(JDK7),如果case中没有break则会开启case穿透现象。

switch(1){
  case 1:
  sout("1");
  case 2:
  sout("2");
  break;
}//结果输出1 2

基本数据类型和 String 类型的转换

二维数组的遍历

二维数组可以理解为里面保存的是多个一维数组。

int arr[][]={
  {1,2,3},
  {4,5,6},
{7,8,9}
}
for(int i=0;i<arr.length;i++){
  for(int j=0;j<arr[i].length;j++){
    sout(arr[i][j]);
  }
}

数组的内存图

方法区:字节码文件加载时进 入的内存 栈:方法运行时,所进入的内存 堆:new出来的数据,都会进入堆内存,开辟空间,产生地址值。

方法重载

同一个类中,出现多个方法名称相同,但是形参列表是不同的,那么这些方法就是重载方法。修饰符、返回值类型都无所谓

形参列表不同指的是:形参个数、类型、顺序不同。不关心形参的名称。

break和continue区别?

break:跳出并结束当前所在循环的执行。

continue:用于跳出当前循环的当次执行,进入下一次循环。只能在循环中使用

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值