一 java语言基础
1.1 java语言执行机制
首先先编译后执行,电脑只认识二进制语言,靠jdk将.java文件编译成.class字节码文件。
1.2 jdk 和jre的区别?
jdk 是指开发环境。jdk的安装包里面有jre
jre 是指运行环境,
二 jdk的安装和配置环境
2.1 安装jdk
jdk安装版本
然后下载–安装–直接点击下一步操作–注意路径在英文路径下
2.2 jdk的配置环境
在桌面找到此电脑----然后找到设置—找到高级变量设置—在系统的目录下配置jdk—命名为JAVA_HOME 然后找到jdk的安装位置—然后找到PATH路径—使用%JAVA_HOME%\bin就配置完成
2.3查看jdk配置是否完成?
win+R 在黑窗口输入java -version
三 java 常量
3.1 注释
- 单行注释: // 是用来解释说明这行代码的意义
- 多行注释: /***/ 也是用来解释这行代码的意义
- 文本注释:/** * * /
3.2 8大基本数据类型
整数型 | btye int short long |
---|---|
浮点型 | float double |
字节型 | char |
布尔型 | boolean |
3.3 自动类型转换 和强制类型转换
- 自动类型转换: 当容量小的数据类型的变量与容量大的数据类型运算时,结果自动提升容量大的数据类型。
- byte-char,short—》int —>long—>float—>double
- 强制类型转换
- 此时的容量大小是指 表示数的范围大和小 比如 float容量大于long容量;
public class Demo {
public static void main(String[] args) {
int a=5;
String bString= "HelloWorld";
char c='A';//65
System.out.println(a+bString);
System.out.println(a+c);
}
}
3.4 String类型不是基本数据类型
- String 是声明字符串
- String 类型 是 java.long.Object 继承了Object 但是 这个类被fianl修饰。所以不能被继承。
四 运算符
4.1 算术运算符
规则: 有括号先算括号里面,然后在算乘除 在算加减。
案例1 :
package com.mmc.a_test1;
public class Demo1 {
public static void main(String[] args) {
int a=3;
int b=5;
System.out.println(a+b);
System.out.println(a-b);
System.out.println(a/b);
System.out.println(a%b);
}
}
《 自增自减 》
1 a++ 表示将a的值赋值给其它变量然后在加一给本身使用
2 ++a 表示自身先加一 然后在赋值给变量使用;
package com.mmc.a_test1;
public class Demo2 {
public static void main(String[] args) {
int a=2;
int b=5;
System.out.println(a++);//2
System.out.println(a);//3
System.out.println(++a);//4
System.out.println(b--);//5
System.out.println(--b);//3
}
}
4.2 逻辑运算符
- 逻辑与 和 断路与 (&& 、&)
如果条件1为false的话,整体就为false。那么条件2和条件3就不执行了。
如果条件一为true 为真,那么要执行后面的函数。
断路与;不管前面的条件是否为真,都要执行后面的函数条件。 - 逻辑或 和 断路或
如果条件为true的话,整体就为true。那么后面的条件就不再执行了。
4.3关系运算符
< (是否小于) >(是否大于) >=(是否大于等于) <=(是否小于等于) != ==
4.4 比较运算符
比较运算符的结构都是boolen 也就是要么是ture 要么是false
== >= <= !=
五 分支结构
5.1 if 分支结构
if (条件){
语句1;
}
int money = 10;
if (money > 8) {
System.out.println("今天吃顿好的,吃个黄焖鸡");
}
System.out.println("程序结束");
// if (money > 8) 可以省略大括号
// System.out.println("今天吃顿好的,吃个黄焖鸡");
//
}
5.2 if - else 分支结构
if (条件){
语句1;
}else{
语句2;
}
//执行流程:如果条件为true的话吗,执行语句体1跳过else后面大括号的语句体2 ,往下执行。
//如果条件为false的话,跳过语句体1去执行语句体2。二者只选择其一
int a = 20;
if (a > 20) {
System.out.println("今天中午吃泡面,加蛋加肠");
} else {
System.out.println("喝西北风");
}
System.out.println("程序结束");
}
5.3 if -else if 分支
if(条件1){
语句体1
} else if(条件2){
语句体2;
}else if (条件3){
语句体3 ;
}else{
语句体;
}
执行流程,如果条件1为ture 则执行条件语句体1,否则,这执行其它语句
六 switch-- case–
switch(表达式){
case 常量1 :
语句体1;
break;
default:
语句体n;
break;
}
6.1 switch(表达式)的类型(面试题)、
1 这个表达式里数据类型为 整数型 int short byte 字符型 char 然后枚举
2 整数型里面的long不能被用在switch里 因为long的类型数据大,强转换导致数据丢失;
3 char 的在AscaII中可以转换 a 97 A 65
七 while循环
7.1 while 和do – while 循环结构
语法格式 :
while (条件){
语句体
}
执行流程 : 代码执行到while以后,首先判断括号里面的那个条件,如果条件为true 执行大括号里面的语句体,执行完,再次返回到whlie 在判断条件是否为flase 如果为flase 则程序结束;
---------------------------------
do {
语句体
}while(条件)
//执行流程,
7.2 for循环结构
for (表达式1;表达式2;表达式3) {
}
八 方法
8.1 方法的定义
有参有返回值
有参无返回值
无参无返回值
无参有返回值
② 语法格式
public static void 方法名(){
。。。。。。。
}
//注意事项:
方法不能定义在main方法里面
可以在main中调用这个方法,调用需要用到方法的名字就可以了。
2
//有参的里面形参 调用的这个方法是实参;
public static void 方法名(int a,int b){
。。。。。。。
}
九 数组
9.1 定义数组的三种方式
① 数据类型[] 数组名=new 数组类型[容量];
容量: 确定当前数组中的容量是多少,而且创建之后,数组的容量不可以改变;
数组的下标从0开始 ,但是数组的下标不能为负数
② 数据类型[] 数组名={值,值1,值2,值3};
9.2 冒泡排序 和 选择排序
注意 我这只是封装一个方法
public static void maoPao(int[] arrys) {
for (int i = 0; i < arrys.length; i++) {
for (int j = 0; j < arrys.length-i-1; j++) {
if (arrys[j]>arrys[j+1]) {
int temp;
temp=arrys[j];
arrys[j]=arrys[j+1];
arrys[j+1]=temp;
}
}
}
System.out.println(Arrays.toString(arrys));
}
//选择排序
public static void xuanZe(int[] arr) {
//选着最小下标
for (int i = 0; i < arr.length; i++) {
int index=i;
for (int j = i+1; j < arr.length; j++) {
if (arr[index]>arr[j]) {
index=j;
}
}
if (i!=index) {
int temp=arr[index];
arr[index]=arr[i];
arr[i]=temp;
}
}
System.out.println(Arrays.toString(arr));
}
}