java基础知识,jdk-数组
一、java基础知识
1、java的由来。
java是由Sun公司在1995年发布的,开发设计者是詹姆斯高斯林和他的团队。衍生自c++,在这之前被称为Oak(橡树)。
2、java的环境配置:JDK、JRE、JVM。(三者的关系JDK>JRE>JVM,所以在安装时,只安装JDK即可)
JDK:(java development kit)java开发工具包,是给开发人员使用的。
环境变量的配置:计算机-->属性-->高级系统设置-->高级-->环境变量-->系统变量-->path,双击path,在值得最后先添加";",然后添加jdk的命令所在的路径。
JRE:(java runtime environment)java运行环境
JVM:java虚拟机,一个虚拟的计算机,具有命令集并且具有管理内存区域的功能。可以执行命令,管理数据,内存,寄存器。java语言的特点,一次编译,到处运行,就是因为每个OS都有其相应的JVM。
验证JDK是否安装成功,在命令提示符中运行java,javac。查看安装JDK的版本,输入java -version即可。
3、在文件中编写一个java小程序
3.1编写步骤。
①编写.java源文件public class HelloWorld{ }----class后面的名字必须与源文件的名字一致,而且首字母必须大写。在{ }里写main()方法,在main()的{ }里写输出语句System.out.println();
②编译,将.java文件编译成.class文件,在命令提示符中运行:javac 文件名.java
③运行,在jvm上运行.class文件,在命令提示符中运行:java 文件名
3.2注释。
①单行注释: //
②多行注释: /* */
③文档注释: /** */ 一般给类和方法注释
3.3编写类文件需要注意的地方。
①文件名首字母一定要大写,扩展名为.java
②类名一定要与文件名相同,class关键字前的修饰词为public
③如果当前文件为程序启动文件,那么类里面一定要有程序的入口(main方法)
public static void main(String[] args){
}
3.4输出语句:System.out.println();
3.5运行程序:
①编译:使用javac.exe把.java文件编译成.class文件
reg: javac Demo01.java
②运行:使用java.exe运行.class文件
reg: java Demo01
二、java基本数据类型
1、八大基本数据类型(占用字节数)
整数类型:byte(1)-128~127、short(2)-32768~32767、int(4)、long(8)
浮点数类型:float(4)、double(8)
字符类型(无符号整数类型):char(2)0~65535
布尔类型:boolean(1)
类型转换:
①自动转换:从小类型到大类型赋值,会自动转换
byte->short(char)->int->long->float->double
②强制转换:从大类型到小类型赋值,需要强制转换
格式:小类型名 变量名 = (小类型名)大类型变量名
2、引用数据类型
三、变量。
1、概念:在内存中开辟的一个存储空间,用来存储数据。
2、变量名的命名规则:
①由字母,数字,下划线和$组成,但是数字不能开头
②见名知意,驼峰命名法,不建议使用汉字
③不能使用java中的关键字
3、变量的使用规则:
①在使用之前必须先声明和初始化
int age = 1;
②变量可以被重复赋值,必须是同一个类型
③在一个作用域中,变量名不可以重复声明
四、运算符。
1、字符串拼接符号:
+。值的特点: 是用双引号引起来的。
2、算数运算符:
+,-,*,/,%,++,--。在运算时,当参与运算的变量里,类型不同时,运算结果是大类型。
++:自增运算,当运算符在变量前/后时,先自增后赋值/先赋值后自增。
--:自减运算,当运算符在变量前/后时,先自减后赋值/先赋值后自减。
3、关系运算符:>,>=,<,<=,==,!=。
4、逻辑运算符:与&& & 或|| | 非!。
规则:与运算:一假则假,全真为真。或运算:一真则真,全假为假。非运算:非真即徦,非假即真。
& | 单个符号的与或运算:前后两个条件都进行判断。
&& ||,又叫短路运算符,当第一个条件就能确定整个结果时,不判断第二个条件。
5、赋值运算符:=,+=,-=,*=,/=,%=。
6、三目运算符(三元运算符):格式: boolean表达式? 值1:值2;
翻译:如果条件成立,结果为值1,否则,结果为值2。值1和值2必须是同一类型。
五、程序运行结构。(顺序结构、分支结构、循环结构)
1、分支结构:有if和switch两种。
①if语句:if(boolean表达式){
逻辑块//表达式的结果为true时,执行逻辑块
}
if(boolean表达式){
//表达式的结果为true时,执行
}else{
//表达式的结果为false时,执行
}-----两条分支,必走其中一条
if(boolean表达式){
//表达式的结果为true时,执行
}else if(boolean表达式){
//表达式的结果为true时,执行
}else if(boolean表达式){
//表达式的结果为true时,执行
}else{
}
②switch语句
格式:
switch(整数表达式){
case 值1:---------;
case 值2:---------;break;
……………………………………
default:--------;
}
break; 打断,毁掉的意思,break可以打断循环结构,执行循环结构后面的代码。
continue:结束本次循环,执行下一次循环。
整数表达式:结果类型只能是 byte short char int。
2、循环结构:当重复执行一些相同的代码逻辑或者相似的代码逻辑时,就需要使用循环结构。
循环三要素:①循环变量的初始化;②循环条件;③循环变量的改变----变量向着循环结束的方向改变。
① while循环结构
while(boolean表达式){
要循环执行的内容
}
②do{
循环体
}while(boolean表达式);
while与do-while的区别:
do-while:会先执行一次循环体,然后判断条件,
while:先判断条件,当条件为true时,执行循环体
③for循环
for(循环变量的声明和初始化;循环条件;循环变量的改变){
循环体
}
while和do-while适合不知道次数的循环
for循环适合知道次数的循环
六、数组
1、概念:一组相同类型的数据
2、数组的声明和初始化:
①静态初始化:int[] arr = {1,2,3,4,5};
②动态初始化:int[] arr1 = new int[5];//{0,0,0,0,0}
int[] arr2 = new int[]{1,2,3,4,5};
整型数组:默认值0
浮点数类型:默认值0.9
字符类型:默认值'\u0000'
boolean类型:默认值false
引用类型: 默认值null
元素:就是数组中存的数据
长度:创建出来的数组长度都是固定的,不可变
变量名.length;
3、元素的访问:元素:就是数组中存的数据
长度:创建出来的数组长度都是固定的,不可变
变量名.length;
4、数组工具类型:Arrays。
导包:import java.util.Arrays;
Arrays.toString(数组变量名);作用:将数组的元素变成字符串"["+元素1+","+元素2+","+…………+元素n+"]"。
数组之间的赋值:
不会产生的新的数据
而是指向同一个数据。
如果改变其中一个数组的元素
那么另外一个变量也改变
5、数组的排序:
①简单排序:
②冒泡排序:
③插入排序:
6、jvm管理的内存:
其中两块堆,栈:
栈:存储的是方法中的变量
包括参数,以及内部的临时变量
堆:存储的是引用类型的值(实际上是对象)
7、数组的复制
System.arraycopy(p1,p2,p3,p4,p5);
p1:要复制谁,--源数组
p2:从源数组的哪个下标开始复制
p3:复制到哪个数组---目标数组
p4:目标数组从哪个下标开始
p5:复制源数组元素的长度
系统复制方法:
System.arraycopy(p1,p2,p3,p4,p5);
p1:表示源数组
p2:表示从源数组的哪个下标开始
p3:表示目标数组
p4:表示从目标数组的哪个下标开始
p5:表示复制源数组的元素个数
8、数组的扩容
Arrays.copyOf(p1,p2);
p1:源数组,
p2:扩容后的长度
会得到一个新的数组