Java基础(一)
一、JDK、JRE和JVM
JDk:Java开发工具包, 供开发者使用(编写Java程序使用)
JRE:Java程序运行环境(只要要运行java程序所必须的运行环境)
JVM:Java虚拟机,跨平台的核心部分(Java程序其实是运行在JVM上的,JVM将Java程序的.class文件解释给本地系统)
二、类型转换
1、自动类型转换:容量小的类型会自动转换为容量大的数据类型
**注意:
(1)、short 、char 、 byte之间不进行相互的类型转换, 他们之间进行运算时都会先转换为int再计算。 【拓展:在方法的重载中,传递的是byte类型时,重载方法中没有接受byte类型的方法,有short 、int和char类型,会调用short的,没有short会调用int,不会调用char(应为char类型存储的字符只有正数,而byte可以存放负数,传参会报错)】
(2)、boolean不参与运算,String类型和任何基本数据类型进行运算,值都会便会String类型输出 **
2、强制类型转换(如下格式)
int i = 10;
byte b;
b = (byte)(i + b);
注意: 强制类型转换会导致精度的降低或溢出,谨慎使用
三、前++和后++
前++:先运算在取值
后++:先取值后运算
```java
class Test {
public static void main (String [] args) {
boolean x=true;
boolean y=false;
short z=42;
//if(y == true)
if((z++==42)&&(y=true))z++;
if((x=false) || (++z==45)) z++;
System. out.println("z="+z);
}
}``
四、break 和 continue
1、break用于终止某个代码块,如下代码中的break在i==3条件成立下会结束for循环,所以只会打印0,1,2 (3是不会打印的)
public class BreakTest{
public static void main(String args[]){
for(int i = 0; i<10; i++){
if(i==3)
break;
System.out.println(" i =" + i);
}
System.out.println("Game Over!");
}
}
2、continue:只会结束本次循环,下一次循环还是会执行
3、return:结束一个方法
五、数组(引用数据类型)
1、数组是相同类型(可以为任何数据类型)的数据按一定的顺序进行排列的集合,以一个名字进行命名,并通过编号(下标)的方式对数据进行管理
2、数组的特点:
- 1)数组是有序排列的
- 2)数组属于引用数据类型的变量。数组的元素,既可以是基本数据类型,也可以是引用数据类型
- 3)创建数组对象会在内存中开辟一整块连续的空间
- 4)数组的长度一旦确定,就不能修改。
3、数组的定义方式
int[] ids;//声明
//1.1 静态初始化:数组的初始化和数组元素的赋值操作同时进行
ids = new int[]{1001,1002,1003,1004};
// 方法二
int[] arr4 = {1,2,3,4,5};//类型推断
//1.2动态初始化:数组的初始化和数组元素的赋值操作分开进行
String[] names = new String[5];
4、数组的默认初始化值
5、 数组的内存解析
- 程序首先会加载栈中定义的局部变量,即我们的数组变量,数组是通过new的方式创建的,会在堆中开辟一个连续的空间,并给该空间一个首地址值,这个首地址值会赋给栈空间中的数组变量(这样我们就可以通过首地址值引用数组中的数据),并且会给数组中的数据进行数据初始化。
六、 Arrays工具类
- Java.util.Arrays类
- 常用方法:
- equals(int [] a,int[] b):判断两个数组是否相等
- toString(int[] a):输出数组信息
- fill(int[] a,int val):将指定的值填充到数组中
- sort(int[] a):对数组进行排序
- binarySearch(int[] a,int key):对(排序后)的数组进行二分法检索指定的值