java知识点整理
1、JDK,JRE,JVM分别是什么?
JDK:(Java Development Kit) Java开发工具包。
JRE:(Java Runtime Environment)运行JAVA程序所必须的环境的集合,包含JVM标准实现及Java核心类库。两部分( Java Runtime Environment, Java Plug-in)。
JVM:(Java Virtual Machine)java虚拟机 JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。
2、Java语言是跨平台的吗?JVM是跨平台的吗?
不同平台需要安装对应版本的JVM才能运行Java文件。
Java的运行需要有当前平台相应的JVM支持。
所以说java语言是跨平台的而JVM不是跨平台的。
3、 什么是注释?注释分为几种?注释有什么作用?
注释就是对代码的解释说明的文字;
分为三种:
1、单行注释://解释说明文字
2、多行注释:/*解释说明性文字 */
3、文档注释:
作用
就是对程序进行说明解释,方便给人看还可以对程序进行排错。
4、什么是标识符?由哪些部分组成?常见的命名规则有哪些?
用于表识类名、变量名、方法名、类型名、数组名、文件名等有效字符序列称为标识符。
有字母、数字、下划线以及“$”符号组成。
规则:
(1)标识符必须由字母、下划线或‘$’开头,后面可跟数字等。
(2)标识符的大小写是区别对待的。
(3)在自定义标识符的时候应该使其能反应她所表示的变量、对象等的意义。
4、计算出十进制46对应的二进制,八进制,十六进制的值。
二进制:
46
23…0
11…1
5…1
2…1
1…0
0…1
结果:0b101110
八进制:
46
5…6
0…5
计算结果:056
十六进制:
46->二进制符:0010 1110
2 14->E
结果:0x2E
5、什么是变量?变量的定义格式?要使用变量需要注意什么?
变量就是一块储存空间
格式:
数据类型 变量名 =值;
注意:
在使用变量时必须指定该变量只能存放哪种数据类型。
6、Java中的数据类型分几类?基本数据类型有哪些?
两类数据类型:
基本数据类型 和引用数据类型
基本数据类型有:八大类
byte、 int 、short、float、Double、 long、 boolean 、char
7、数据类型转换
隐式转换
低级向高级转换—自动转换
byte i = 0;
int a =i;
long b = i;
float c =b;
double d =c;
short j =i;
强制转换:
高级到低级转换—强制转换
int i=99;
byte b=(byte)i;
char c=(char)i;
float f=i;
double d = f;
f =(float) d;
包装类过度类型转换
JAVA 共有6个包装类:Boolean、Integer、Long、Float、Double、Character
面试题:
第一题:
byte b1=3,b2=4,b;
b=b1+b2;
b=3+4;
哪句是编译失败的呢?为什么呢?
答:b=b1+b2编译失败,应为左边b1+b2的带的结果默认为int类型,而右边默认为btye类型,
第二题:
byte by = 130;有没有问题?有问题如何解决?结果是多少呢?
答:有问题,byte的取值范围是-128到127,130超出了范围会报错
解决方案:采用short类型接收130,结果是130
8、常见的算术运算符有哪些?
运算符 | 意义 |
---|---|
+ | 加 |
- | 减 |
* | 乘 |
/ | 除 |
% | 求余、求模 |
// | 整除 |
** | 幂次方 |
+运算符的作用有哪些?
(1)做数字的加法运算。
(2)做字符串的拼接作用。
除法和取余的区别?
除法会去掉多余的余数 取余只会取余数
++和–的使用规则?
变量在左边时会先运算再自加或自减
变量在右边时会先自加或自减在进行运算
9、常见的赋值运算符有哪些?
运算符 | 意义 |
---|---|
= | 赋值 |
+= | 加等 |
-= | 减等 |
*= | 乘等 |
/= | 除等 |
%= | 模等 |
+=运算的作用是什么?
再当前变量上再增加一个参数后重新赋值给当前的变量
10、short s = 1; s = s + 1;有没有问题?如果有怎么解决?
答:有问题,
右边的变量默认为int类型,而int 类型需要进行强制转换才能变成short类型,s=(short)s+1;
short s = 1; s += 1;有没有问题?如果有怎么解决?
答:没有问题
11、常见的关系运算符有哪些?
运算符 | 意义 |
---|---|
> | 大于 |
< | 小于 |
== | 等于 |
>= | 大于等于 |
<= | 小于等于 |
!= | 不等于 |
关系运算符的结果有什么特点?
都是boolean值
12、常见的逻辑运算符有哪些?
运算符 | 意义 |
---|---|
& | 逻辑与 |
逻辑或 | |
! | 逻辑非 |
&& | 短路与 |
^ | 逻辑异或(只要两边操作数不同,结果就是true) |
&和&&的区别是什么?
答:区别在于
&在判断第一个条件不满足时还会继续判断下一个条件从而判断两次
&&在判断第一个条件不满足时不会判断下一个条件,从而实现阻断作用,提高了运行效率
|和||的区别是什么?
答:区别在于
|在判断第一个条件满足时还会继续判断下一个条件从而判断两次
||在判断第一个条件满足时不会判断下一个条件,从而实现阻断作用,提高了运行效率
13、位运算符^的特点是什么?
一个数据对另一个数据位异或两次,该数本身不变。
14、如何实现对两个整数变量的值进行互换。
发方一:
方法一:使用第三方变量(开发中使用)
int a =10;
int b = 20;
int c = a;
a=b;
b=c;
方法二:用位异或实现
a = a ^ b;
b = a ^ b; // a ^ b ^ b = a
a = a ^ b; // a ^ b ^ a = b
面试题:
请自己实现两个整数变量的交换
方法一:使用第三方变量(开发中使用)
int a =10;
int b = 20;
int c = a;
a=b;
b=c;
方法二:用位异或实现
a = a ^ b;
b = a ^ b; // a ^ b ^ b = a
a = a ^ b; // a ^ b ^ a = b
15、三元运算符的格式是什么?
格式:[条件语句]?[表达式1]:[表达式2]
执行流程是什么?
先执行条件语句,如果为true或1则选择表达式1执行,反之选择表达式2
16、使用三元运算符完成如下练习
int a=1,b=2,c=4;
比较两个数是否相等
a==b?“相等”:“不相等”
获取两个数中最大值
a>b?a:b
获取三个数中最大值
a>b?(a>c?a:c):(b>c?b:c)
17、if语句的格式有几种?注意事项是什么?分别在什么时候使用?
答:有三种,分别是
if(){}、
if(){}else{}、
if(){}else if(){}else if(){}…else{}
第一种:if(){}
当符合某种条件时需要额外的执行步骤时,使用if(){}而不需要用else{},如jdbc中关闭连接时:
if(con !=null){//即当con对象不为空时,需要执行 con.close();
con.close();
}
第二种:if(){}else{}
int i=9;
if(i<9){
System.out.println(“i小于9”);
}else{
System.out.println(“i不小于9”);
}
这种情况可以使用三目运算符:
String s=i<9 ? “i小于9” : “i不小于9”;
System.out.println(s);
第三种:if(){}else if(){}else{}
int i=9;
String s=null;
if(i==1){
s=“i等于1”;
}else if(i==2){
s=“i等于2”;
}else if(i==3){
s=“i等于3”;
}else{
s=“i不等于1、2、3,那究竟等于几呢?”;
}
System.out.println(s);
这种情况可以用
switch(i){
case 1:
s=“i等于1”;
break;
case 2:
s=“i等于2”;
break;
case 3:
s=“i等于3”;
break;
default :
s=“i不等于1、2、3,那究竟等于几呢?”;
break;//这个break语句可以省略
}
18、看程序写结果:请自己独立分析,先不要编译运行。
第一题
int x = 1,y = 1;
if(x++==2 & ++y==2)
{
x =7;
}
System.out.println("x="+x+",y="+y);
第二题
int x = 1,y = 1;
if(x++==2 && ++y==2)
{
x =7;
}
System.out.println("x="+x+",y="+y);
第三题
int x = 1,y = 1;
if(x++==1 | ++y==1)
{
x =7;
}
System.out.println("x="+x+",y="+y);
第四题
int x = 1,y = 1;
if(x++==1 || ++y==1)
{
x =7;
}
System.out.println("x="+x+",y="+y);
第五题
boolean b = true;
if(b==false)
System.out.println("a");
else if(b)
System.out.println("b");
else if(!b)
System.out.println("c");
else
System.out.println("d");