目录
java语言基础
1.分别简述什么是JDK、JRE、JVM,以及他们之间的关系。
JDK:Java Development Kit是针对Java开发员的产品,是整个Java的核心,包括了Java运行环境JRE、Java开发工具集和Java基础类库。
JRE:Java Runtime Environment是运行JAVA的运行时环境,包含JVM和Java核心类库。
JVM:Java Virtual Machine,Java虚拟机的缩写,是整个java实现跨平台的最核心的部分,能够运行以Java语言写的软件程序。
2.java实现跨平台的原理是什么?
原理:只要在需要运行java应用程序的操作系统上,先安装一个Java虚拟机(JVM Java Virtual Machine)即可。由JVM来负责Java程序在该系统中的运行。
因为有了JVM,所以同一个Java程序在三个不同的操作系统中都可以执行。这样就实现了Java程序的跨平台性。也称为Java具有良好的可移植性。
3.Java代码是如何运行的?
编译:代码编写完成后,通过编译将java源文件即.java文件转换为字节码文件 即 .class文件。
运行:然后先启动java虚拟机,不同的操作系统有不同的JVM,因此java跨平台。然后在指定的操作系统上,加载字节码文件。字节码文件都一致,但每个JVM不同,每个JVM都是根据服务器硬件而专门编写的。这样JVM虚拟机会把字节码文件再次编译成对应硬件服务器上的指令集。从而实现java代码的跨平台运行。再通过JVM加载.class字节码文件。
4.java中标识符的命名规则是什么?
①标识符可以由26个大小写英文字母、数字0-9,下划线_,美元符号$符组成,不能包含@ % 空格等其他特殊字符。
②标识符不能以数字开头,可以以字母,下划线开头
③标识符要见名知意
④标识符严格区分大小写
⑤标识符命名规则遵守驼峰命名规则,变量名首字母小写,多个单词从第二个单词开始首字母大写,通常方法名和变量名命名规则一样,类名首字母要大写,包名全部采用小写
5.char类型能否存储汉字,为什么?能不能直接存储数字,使用时是不是直接使用数字,为什么?
答,能存储汉字。因为java采用Unicode编码,两个字节表示一个字符,汉字占一个字符。而char在java中占两个字节,所以可以存储中文
能直接存储数字,无论是数字,字母还是汉字或者其他的内容都可以存储。
使用时不是直接使用数字,赋值数字,运行时会自动转换为对应ASCll的字符。0-127是对应的ASCll表中值
char类型的标志:单引号’ ',单引号中有且只能有一个字符,至少有一个字符,为空编译报错。不能为空。
6.注释:
①单行注释://
②多行注释:/* */
③文档注释:/** */
7.定义包:
①定义一个包 package--java关键字,专门用来定义包
② com.huacit.day01--包名,全小写,一般是公司域名倒写+正常包名
8.定义类:
class --java关键字,用来定义类
HelloWorld--类名,首字母大写
9.驼峰命名法:
变量命名规则,首字母小写,多个单词从第二个单词开始首字母大写
10.隐式转换和显示转换的区别
小类型转换大类型时会发生隐式转换,不需要我们操作编译器自动转换
大类型转换小类型时会发生显示转换,需要我们在转换的变量或字面值前加小括号,小括号中放入要转换成的数据类型。需要注意的是,如果小数转成整数,会直接将小数点后的所有位数全舍弃,不会四舍五入。
11.基本类型运算规则
1.不同数据类型进行运算,结果类型与最大数据类型一致
2.byte,short,char三种比int小的整数,在计算时会自动转成int
3.整数运算溢出
4.浮点型运算不精确(API阶段解决)
5.浮点数的特殊值
System.out.println(3.3/0);//无穷大 System.out.println(0/0.0);//NaN
12.&和&&的区别:
&既是位运算符,也是逻辑运算符。当&两边是数字时,会将数字转化成二进制数进行运算,当&的两边时boolean类型时,会进行逻辑判断,左右两边都true时才返回true。
&&是逻辑运算符,也叫短路与。
二者的区别:在判断时,如果左边表达式结果为false时,短路与&&会直接返回false,不再对右边的表达式进行判断,而&会将左右两边的表达式都判断完才返回结果。推荐使用短路与&&,执行效率更高。
13.三元运算符
三元运算符,也叫三目表达式
语法:boolean表达式?1:2;
执行流程:当boolean表达式值为true时,执行1,否则执行2
14.switch表达式都可以使用什么数据类型?
byte short char int enum(枚举类型jdk5.0新增),String(jdk7.0新增)
15.怎么结束多层循环?
使用 ①标记break;循环后的代码仍然执行
②return ;return 是结束整个程序,return语句后面直接跟分号 ,不能跟其他语句。使用return语句结束循环,循环后的所有代码不再执行
结束循环可以使用:
continue:结束本次循环,继续下一次循环。
break :结束当前循环,如果是多层循环,只是跳出本层循环。
return; 结束整个程序
16.分支结构有几种?语法结构怎么写?有什么区别?
4种,分别为单分支,双分支,多分支, switch-case。
单分支:if(boolean表达式){语句;}
双分支:if(boolean表达式){满足条件执行;}else{不满足条件执行;}
多分支:if(boolean 表达式1){语句1;}else if(boolean 表达式2){语句2;}else if()……
switch (变量){
case 常量1:[语句1];[break];
case 常量2:[语句2];[break];
case 常量3:[语句2];[break];
[default:语句;]
}