1.什么是jdk?
JDK是Java Development Kit的缩写,是java语言的软件开发工具包,包含:jre、javac、和工具(javadoc、jdb),能够创建、编译和运行程序。
jre是java运行时的环境,包括java虚拟机jvm、java类库、java命令和一些基础构件。jre不能用于创建新程序。如果要进行编程方面的工作,需要安装jdk。
javac是编译器,将java源程序转换成字节码文件。
javadoc是文档生成器,用于从源码注释中提取文档。
jdb是debugger,java调试工具,可用来查错。
jvm是java虚拟机,主要是通过在实际计算机模仿各种计算机功能来实现的,组成部分包括堆、方法区、栈、本地方法栈、程序计算器等部分组成的,其中方法回收堆和方法区是共享区,也就是谁都可以使用,而栈和程序计算器、本地方法栈区是归JVM的。Java能够被称为“一次编译,到处运行”的原因就是Java屏蔽了很多的操作系统平台相关信息,使得Java只需要生成在JVM虚拟机运行的字节码文件,就可以在多种平台运行。不同的操作系统有不同的jvm,比如linux、ios分别包含各自的jvm版本,编译文件实际运行在各自的jvm上,达到通用的目的。
2.java基本数据类型
java的原始数据类型,也叫java的基本数据类型,共8个,包含:
整型:
byte:1字节
short:2字节
int:4字节
long:8字节
浮点型:
float单精度:4字节
double双精度:8字节
布尔型:
boolean:1字节
字符型:
char:2字节
3.运算符
算数运算符
+ - * / 加减乘除
% 取余数,求模,算整除
++ 自增
-- 自减
比较运算符(关系运算符)
== 相等比较
!= 不等比较
>
<
>=
<=
位运算符
& 如果相对应位都是1,则结果为1,否则为0 (A&B),得到12,即0000 1100
| 如果相对应位都是 0,则结果为 0,否则为 1 (A | B)得到61,即 0011 1101
^ 如果相对应位值相同,则结果为0,否则为1 (A ^ B)得到49,即 0011 0001
〜 按位取反运算符翻转操作数的每一位,即0变成1,1变成0。 (〜A)得到-61,即1100 0011
<< 按位左移运算符。左操作数按位左移右操作数指定的位数。 A << 2得到240,即 1111 0000
>> 按位右移运算符。左操作数按位右移右操作数指定的位数。 A >> 2得到15即 1111
>>> 按位右移补零操作符。左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充。 A>>>2得到15即0000 1111
逻辑运算符
&& 称为逻辑与运算符。当且仅当两个操作数都为真,条件才为真。 (A && B)为假。
| | 称为逻辑或操作符。如果任何两个操作数任何一个为真,条件为真。 (A | | B)为真。
! 称为逻辑非运算符。用来反转操作数的逻辑状态。如果条件为true,则逻辑非运算符将得到false。 !(A && B)为真。
+ 字符串拼接
赋值运算符
= 简单的赋值运算符,将右操作数的值赋给左侧操作数 C = A + B将把A + B得到的值赋给C
+ = 加和赋值操作符,它把左操作数和右操作数相加赋值给左操作数 C + = A等价于C = C + A
- = 减和赋值操作符,它把左操作数和右操作数相减赋值给左操作数 C - = A等价于C = C - A
* = 乘和赋值操作符,它把左操作数和右操作数相乘赋值给左操作数 C * = A等价于C = C * A
/ = 除和赋值操作符,它把左操作数和右操作数相除赋值给左操作数 C / = A,C 与 A 同类型时等价于 C = C / A
(%)= 取模和赋值操作符,它把左操作数和右操作数取模后赋值给左操作数 C%= A等价于C = C%A
<< = 左移位赋值运算符 C << = 2等价于C = C << 2
>> = 右移位赋值运算符 C >> = 2等价于C = C >> 2
&= 按位与赋值运算符 C&= 2等价于C = C&2
^ = 按位异或赋值操作符 C ^ = 2等价于C = C ^ 2
| = 按位或赋值操作符 C | = 2等价于C = C | 2
三元运算符(条件运算符)
variable x = (expression) ? value if true : value if false
instanceof 运算符
该运算符用于操作对象实例,检查该对象是否是一个特定类型(类类型或接口类型)。
instanceof运算符使用格式如下:
( Object reference variable ) instanceof (class/interface type)
如果运算符左侧变量所指的对象,是操作符右侧类或接口(class/interface)的一个对象,那么结果为真。
下面是一个例子:
String name = "James";
boolean result = name instanceof String; // 由于 name 是 String 类型,所以返回真
如果被比较的对象兼容于右侧类型,该运算符仍然返回true。
看下面的例子:
class Vehicle {}
public class Car extends Vehicle {
public static void main(String[] args){
Vehicle a = new Car();
boolean result = a instanceof Car;
System.out.println( result);
}
}
以上实例编译运行结果如下:
true
4.循环有几种,区别是什么?
java基本循环方式有三种,分别是for循环,while循环,do…while循环。另外还有增强for循环,迭代器。
区别:
1.for循环知道循环次数
for(循环开始的位置;循环条件;更改条件){循环体代码}
2.while循环不知道循环次数,先判断再执行,不符合条件不执行。
while(判断条件){循环体}
3.do…while循环不知道循环次数,先执行一次循环体再进行条件判断,不符合条件结束执行。
do{循环体}while(判断条件)
知道从哪开始,到哪结束,怎么改变的,用for
先判断再执行用while,先执行再判断用do…while
5.continue和break的区别
break和continue都是用来控制循环结构的。
break:提前终止循环可以使用break来完成。break完全结束一个循环,跳出循环体执行循环后面的语句。
continue:理解为continue是跳过当次循环中剩下的语句,执行下一次循环。
区别:continue只终止本次循环,break则完全终止循环