一 . 安装JDK
1,安装
下载双击安装包或在官网下载,一直点击下一步傻瓜式安装即可。
2.配置环境变量
找到我的电脑,右键属性,高级系统设置,找到环境变量。变量名JAVA_HOME,变量值就是jdk的安装路径,jrm也是同理变量名为JRM_HOME。然后点击系统变量里的path点击编辑新建 %JAVA_HOME%\bin 和 %JAVA_HOME%\bin 。
3.检验
win+输入cmd
二.HelloWorld程序
public class HelloWorld {
public static void main (String[] args) {
System.out.println(“I love Java”);
}
}
- 后缀为.java
- 文件夹上方输入cmd打开命令窗口输入javac HelloWorld.java编译class文件
- 命令窗口输入java HelloWorld 就可以运行
注意事项:
- class关键字后的名字与文件名必须一致。
- 类名单词不要有空格
- 类名首字母大写,用大驼峰
三.idea
- 安装idea时一路下一步即可。
- 第一次使用点击new project创建项目然后填写项目名称和项目位置以及JDK版本,语言选择java,取消勾选”Add sample code”。
- 在src文件夹下创建包然后包名为公司反域名,例如“com.baidu”,最后创建class。
四.变量
数据类型 变量名; 例如 int a; |
变量的定义,变量命名用小驼峰 |
变量名 = 值; 例如 a = 2; |
变量的赋值,变量先定义才能赋值 |
五.数据类型
1.基本数据类型
byte字节 |
1个字节 |
short短整型 |
2个字节 |
int整型 |
4个字节 |
long长整型 |
8个字节 |
float单精度浮点型 |
4个字节 |
double 双精度浮点型 |
8个字节 |
char 字符型 |
1个字节 |
boolean 布尔型 |
1个字节 |
String字符串 |
六.类型转换
1.默认转换
小转大为默认转换
(byte,short) -> int
2.强制转换
可以将数据转换过去,但是有可能丢失精度
例如:
long l1 = 1;
int l1 = (int)l1;
//long转成int
七.运算符
1.算术运算符
注:多个运算符存在时,顺序为先括号再乘除最后加减
+ |
加法,数字相加,遇到字符串后续全部拼接 |
- |
减法,只能数字相减 |
* |
乘法,只能数字相乘 |
/ |
除法,只能数字相除,不会四舍五入,可用做取位运算 |
% |
取余,两数相除的余数,可判断奇偶性 |
++ |
自增,i++为先执行i再自增,++i先让i自增然后再执行 |
-- |
与自增同理 |
2.赋值运算
注:结果为布尔值
= |
右边的数据赋值给左边的变量 |
+= |
相加后再赋值 |
-= |
相减后再赋值 |
*= |
相乘后再赋值 |
/= |
相除后在赋值 |
3.关系运算
关系运算完结果是布尔值:true,false
> |
大于 |
>= |
大于等于 |
< |
小于 |
<= |
小于等于 |
== |
相等 |
!= |
不等 |
4.逻辑运算
&/&& |
与运算,两边都为真结果才为真, 短路逻辑&&一边为假时直接结束不再花时间判断另一边 |
|/|| |
或运算,两边都为假结果才是假,短路逻辑||一边为真时结果就为真,不用再判断另一个 |
! |
非,取反,用于flag |
5.三目运算
格式:数据类型 变量名 = 布尔表达式?true(结果为真则执行这个):false(结果为假则执行这个);
例如:int result = a > b ? a : b;
八.Scanner
键盘录入,开发使用不到。
格式:Scanner sc = new Scanner(System.in);
System.out.println(“请输入……”);
数据类型 变量 = sc.next变量();
例如:Scanner sc = new Scanner(System.in);
System.out.println(“请输入数字”);
int num = sc.nextInt();
九.流程控制语句
【重点】: 1.先记语法格式!!! 2.再看执行流程!!!
1.if类
if(布尔表达式) { 执行语句; }; |
if语句,布尔表达式结果为true执行{}里的语句,结果为false就跳过{}内不执行 |
if(布尔表达式) { 执行语句1; }else { 执行语句2; }; |
if else语句,布尔表达式结果为true执行{}里的语句,结果为false就执行else {}里面的语句,二选一。 |
if(布尔表达式1) { 执行语句1; }else if(布尔表达式2){ 执行语句2; }else if(布尔表达式3){ 执行语句3; }…… else{ 最后执行语句; } |
if else if 语句,在if语句后又加了else if,是多选一,如果if 和所有的else if都没执行,就指定else{}里的。 |
2.switch(了解)
格式:
swtich(值){
case 值1:
执行语句1;
break;
case 值2:
执行语句2;
break;
default:
执行语句;
};
10.循环语句
while(布尔表达式) { 执行语句; }; |
while循环,先判断布尔表达式是否为true,为true则执行{}里的执行语句,执行完后继续判断布尔表达式,一直到不满足条件为止。 |
do{ 执行语句; }while(布尔表达式); |
do while循环,没有用的循环,知道就行,和while循环的区别在于do里面的语句在开始先执行一次才开始判断布尔表达式 |
例如 for(int i = 0; I <= 5; i++){ 执行语句; }; |
for循环,使用最多的循环,执行顺序为:开始条件——》判断结束条件——》执行语句——》循环条件 |
for(int i = 0; i <= 5; i++){ for(int j = 0; j <= i, j++){ System.out.print(“*”) } }; 冒泡: for(int i = 0;i < arr.length - 1) { for(int j = 0;i < arr.length) } |
for循环嵌套,利用外循环控制行,内循环控制列可2d打印,并且可以在数组中利用冒泡循环进行排序。 |
十一.流程控制关键字(工作时基本不用)
- break关键字,只能在switch和循环中使用,作用是结束循环并执行下面的程序。
- continue关键字,只能在循环中使用,作用是结束当前循环,进入下一次循环。
十二.方法(重点)
语法:public static 返回数据类型 方法名(数据类型 变量名,据类型 变量名2 ……) { 方法内容 } |
方法名需要见名知意,用小驼峰命名法。 |
无参无返回值: public static void 方法名(){ 方法内容 } |
直接在里面写方法,在其他函数(主要是主函数)中调用即可 |
有参数无返回值: public static void 方法名(数据类型 变量名,数据类型 变量名2){ 方法内容 } |
参数里面填写的是形参,可以在调用这个方法的函数里给形参赋值变成实参,方法有多个参数的时候要按顺序赋值。 |
无参有返回值: public static 数据类型 方法名(){ 方法内容 return 返回值; } |
返回值的数据类型必须和方法定义的数据类型一致,可以在调用它的函数里赋值给变量或者直接打印。 |
有参有返回值: public static 数据类型 方法名 (数据类型 变量名,数据类型 变量名2) { 方法内容 return 返回值; } |
十三.数组
数据类型[] 数组名 = new 数据类型[数组长度]; 例如 int[] arr = new int[5]; |
数组声明方式,想知道里面内容打印地址时候可以使用System.out.println(Arrays.toString(数组名)) |
方法执行会进栈,执行完弹栈消失,而new出来的对象会进堆。堆中创建数组对象会开辟连续空间,并且分配下标从0开始。 |
堆和栈 |
例如int a = arr[0] 意思是把数组arr中的0下标地址也就是第一个数据赋值给a |
取值 |
例如arr[0] = 2; 意思是把2赋值给数组的0下标地址 |
存值 |
数据类型[] 数组名 = {值1,值2,值3……} 例如 int[] arr = {11,22,33}; |
指定数据的创建数组方式 |
int length = arr.length; |
数组长度属性,利用这段代码看出数组长度 |
for(int i = 0;I < arr.length; i++){ System.out.println(arr[i]); } |
数组的遍历,可延申出大量题型 |