1.1 JDK的下载和安装
JDK下载地址
使用纯英文目录安装
1.2 Path环境变量的配置
此电脑右键属性->高级系统设置->环境变量
变量名:JAVA_HOME
变量值:C:\Program Files\Java\jdk1.8.0_65
变量名:Path
变量值:%JAVA_HOME%\bin
1.注释
单行注释的格式是使用//
多行注释的格式是使用/* 和 */
文档注释以/**
开始,以*/
结束。
2.常量
常量:在程序运行过程中,其值不可以发生改变的量。
字符串,整数,小数,字符,布尔,空常量 ;
3.变量
格式一: 数据类型 变量名 = 数据值;
格式二: 数据类型 变量名;
变量名 = 初始化值;
格式三: 数据类型 变量名 = 数据值,变量名 = 数据值;
4.数据类型
基本数据类型:
数据类型 | 关键字 | 内存占用 | 取值范围 |
---|---|---|---|
整数类型 | byte | 1 | -128~127 |
short | 2 | -32768~32767 | |
int(默认) | 4 | -2的31次方到2的31次方-1 | |
long | 8 | -2的63次方到2的63次方-1 | |
浮点类型 | float | 4 | 负数:-3.402823E+38到-1.401298E-45 正数: 1.401298E-45到3.402823E+38 |
double(默认) | 8 | 负数:-1.797693E+308到-4.9000000E-324 正数:4.9000000E-324 到1.797693E+308 | |
字符类型 | char | 2 | 0-65535 |
布尔类型 | boolean | 1 | true,false |
5.标识符
命名规范: 首字母小写,从第二个单词开始每个单词的首字母大写。
6.类型转换
1 算术运算符
+,-,*,/,%;加减乘除余数
注意: 当“+”操作中出现字符串时,这个”+”是字符串连接符,而不是算术运算。
2 自增自减运算符
++ 自增 变量的值加1
– 自减 变量的值减1
int x = 10;
int y = x++; // 先赋值后运算,++在后边,所以是使用x原来的值赋值给y,x本身自增1
System.out.println("x:" + x + ", y:" + y); // x:11,y:10
int m = 10;
int n = ++m; // 先运算后赋值,++在前边,所以是使用m自增后的值赋值给n,m本身自增1
System.out.println("n:" + n + ", m:" + m); // n:11,m:11
3 赋值运算符
=;+=;-=;*=;/=;%=;
4 关系运算符
==;!=;>;>=;<;<=;
5 逻辑运算符
&与,同时true则true;
| 或,有一个true则true;
^异或,结果不同则true;
!非,相反结果;
6 短路逻辑运算符
短路是执行左边判断出结果就不再执行右边
&&短路与;
||短路或;
7 三元运算符
关系表达式 ? 为true执行表达式1 : 为false执行表达式2;
1.if语句
格式:
if (关系表达式1) {
语句体1;
} else if (关系表达式2) {
语句体2;
}
…
else {
语句体n+1;
}
2.switch语句
switch (表达式) {
case 1:
语句体1;
break;
case 2:
语句体2;
break;
...
default:
语句体n+1;
break;
}
如果switch语句中,case省略了break语句, 就会开始case穿透,不在进行匹配直到找到break
3.for循环
for (初始化语句;条件判断语句;条件控制语句) {
循环体语句;
}
4.while循环
初始化语句;
while (条件判断语句) {
循环体语句;
条件控制语句;
}
5.dowhile循环
初始化语句;
do {
循环体语句;
条件控制语句;
}while(条件判断语句);
6.跳转控制语句
7.Random产生随机数
import java.util.Random;
Random r = new Random();
int num = r.nextInt(10);
数组就是存储数据长度固定的容器,存储多个数据的数据类型要一致。
格式一: 数据类型[] 数组名
格式二: 数据类型 数组名[]
1.数组的动态初始化
数据类型[] 数组名 = new 数据类型[数组长度];
2.数组元素访问
每一个存储到数组的元素,都会自动的拥有一个索引,从0开始。
访问数组元素格式
数组名[索引];
3.静态初始化格式
?
方式一
数据类型[] 数组名 = new 数据类型[]{元素1,元素2,...};
方式二
数据类型[] 数组名 = {元素1,元素2,...};
4.异常
ArrayIndexOutOfBoundsException 数组越界异常。
NullPointerException 空指针异常。
1.动态初始化格式
数据类型[][] 变量名 = new 数据类型[m][n];
m表示这个二维数组,可以存放多少个一维数组
n表示每一个一维数组,可以存放多少个元素
2.二维数组静态初始化
完整格式 : 数据类型[][] 变量名 = new 数据类型[][]{ {元素1, 元素2...} , {元素1, 元素2...}
简化格式 : 数据类型[][] 变量名 = { {元素1, 元素2...} , {元素1, 元素2...} ...};
1.无参数方法定义和调用
定义格式:
public static void 方法名 ( ) {
// 方法体;
}
调用格式:
方法名();
2.带参数方法定义和调用
定义格式:
public static void 方法名 (参数1) {
方法体;
}
public static void 方法名 (参数1, 参数2, 参数3...) {
方法体;
}
调用格式:
方法名(参数);
方法名(参数1,参数2);
定义格式
public static 返回值类型 方法名 ( 参数 ) {
方法体;
return 数据 ;
}
调用格式
数据类型 变量名 = 方法名 ( 参数 ) ;
5.1 方法参数传递基本类型
5.2 方法参数传递引用类型
* 对于引用类型的参数,形式参数的改变,影响实际参数的值
* 引用数据类型的传参,传入的是地址值,内存中会造成两个引用指向同一个内存的效果,所以即使方法弹栈,堆内存中的数据也已经是改变后的结果
String 类代表字符串,Java 程序中所有的双引号字符串,都是 String 类的对象,字符串不可变,它们的值在创建后不能被更改
常用的构造方法
public String() //创建一个空白字符串对象,不含有任何内容
public String(char[] ch) //根据字符数组的内容来创建字符串对象
public String(String original) //根据传入的字符串内容,来创建字符串对象
String s = "abc" 直接赋值的方式创建字符串对象
通过构造方法创建
? 通过 new 创建的字符串对象,每一次 new 都会申请一个内存空间,虽然内容相同,但是地址值不同
直接赋值方式创建
? 以“”方式给出的字符串,只要字符序列相同(顺序和大小写),无论在程序代码中出现几次,JVM 都只会建立一个 String 对象,并在字符串池中维护
String类 : public boolean equals(String s) 比较两个字符串内容是否相同、区分大小写
? public boolean equals(Object anObject) 比较字符串的内容,严格区分大小写
? public boolean equalsIgnoreCase(String anotherString) 比较字符串的内容,忽略大小写
? public int length() 返回此字符串的长度
? public char charAt(int index) 返回指定索引处的 char 值
? public char[] toCharArray() 将字符串拆分为字符数组后返回
? public String substring(int beginIndex, int endIndex) 根据开始和结束索引进行截取,得到新的字符串(包含头,不包含尾)
? public String substring(int beginIndex) 从传入的索引处截取,截取到末尾,得到新的字符串
? public String replace(CharSequence target, CharSequence replacement) 使用新值,将字符串中的旧值替换,得到新的字符串
? public String[] split(String regex) 根据传入的规则切割字符串,得到字符串数组
1 StringBuilder类概述
? 概述 : StringBuilder 是一个可变的字符串类,我们可以把它看成是一个容器,这里的可变指的是 StringBuilder 对象中的内容是可变的
2 StringBuilder类和String类的区别
3 StringBuilder类的构造方法
常用的构造方法
方法名 | 说明 |
---|---|
public StringBuilder() | 创建一个空白可变字符串对象,不含有任何内容 |
public StringBuilder(String str) | 根据字符串的内容,来创建可变字符串对象 |
4 StringBuilder常用的成员方法
添加和反转方法
方法名 | 说明 |
---|---|
public StringBuilder append(任意类型) | 添加数据,并返回对象本身 |
public StringBuilder reverse() | 返回相反的字符序列 |
5 StringBuilder和String相互转换
StringBuilder转换为String
? public String toString():通过 toString() 就可以实现把 StringBuilder 转换为 String
String转换为StringBuilder
? public StringBuilder(String s):通过构造方法就可以实现把 String 转换为 StringBuilder