Java笔记_基础语法

说明:

此处为java代码

此处为运行结果此样式为你键盘输入的内容

此处为说明或注意

喜闻乐见的 Hello World

public class HelloWorld { //定义一个名叫"HelloWorld"的类
    public static void main(String[] args){ //main方法: java程序的入口
        System.out.println("Hello World"); //打印至控制台
    }
}

Hello World

要求java源文件名必须与类名相同,即文件名必须为HelloWorld.java
System.out.println();将括号内的内容打印至控制台
main方法: java程序的入口, 即运行时从此处开始运行

数据类型

常见数据类型

public class Demo {
    public static void main(String[] args) {
        int i = 123; //整数
        double d = 1.23; //小数
        char c = 'a'; //字符
        String s = "abc"; //字符串
        boolean b = true; //真假 真:true 假:false
        System.out.println(i);
        System.out.println(d);
        System.out.println(c);
        System.out.println(s);
        System.out.println(b);
    }
}

123
1.23
a
abc
true

只有字符串类型首字母大写:String
字符类型使用单引号或双引号包裹都可以,但只能赋值单个字符
字符串类型必须用双引号包裹

数据类型转换

public class Demo {
    public static void main(String[] args) {
        int i = 123;
        double d = 1.23;
        String si = "123";
        String sd = "1.23";

        int i1 = (int) d; //高精度转低精度 需要强行转换 直接砍掉小数点之后的数字
        System.out.println(i1);
        
        double d1 = i; //低精度转高精度 可以直接转换
        System.out.println(d1);
        
        int i2 = Integer.parseInt(si); //字符串转数字需使用 Integer 包装 且字符串内容必须为整数
        System.out.println(i2);
        
        double d2 = Double.parseDouble(sd); //字符串转数字需使用 Double 包装 且字符串内容必须为整数或小数
        System.out.println(d2);
        
        String si1 = String.valueOf(i); //String.valueOf 可将其他类型数据转换成字符串类型
        System.out.println(si1);
        
        String sd1 = String.valueOf(d);
        System.out.println(sd1);
        
        String si2 = i + ""; //拼接一个空字符串效果一样 使用字符串拼接会自动将其他类型转换成字符串
        System.out.println(si2);
        
        String sd2 = d + "";
        System.out.println(sd2);
    }
}

1
123.0
123
1.23
123
1.23
123
1.23

java是强类型语言

数组

public class Demo {
    public static void main(String[] args) {
        int[] as = new int[3]; //使用 数据类型[] 定义一个数组
        as[0] = 1; //注意: 索引是从0开始
        as[1] = 12;
        as[2] = 13;
        String[] ss = {"y", "w", "x", "k"}; //可以直接将数组赋值 用大括号包裹 以逗号分割

        System.out.println(as[0]);
        System.out.println(as[1]);
        System.out.println(as[2]);

        System.out.println(ss[0]);
        System.out.println(ss[1]);
        System.out.println(ss[2]);
        System.out.println(ss[3]);
    }
}

1
12
13
y
w
x
k

数组大小在定义之后是无法改变的
数组是可以嵌套的 二维数组 三维数组 …
int[][] = {{1, 2}, {2, 3, 6}, {3, 4, 8, 9}, {0, 3, 2, 1, 5, 7}}

运算符

算数运算符

public class Demo {
    public static void main(String[] args) {
        int a = 15;
        int b = 10;
        System.out.println("a = " + a); //此处 + 为字符串拼接,并非运算符
        System.out.println("b = " + b);

        System.out.println("a + b = " + (a + b)); //加法
        System.out.println("a - b = " + (a - b)); //减法
        System.out.println("a * b = " + (a * b)); //乘法
        System.out.println("a / b = " + (a / b)); //除法
        System.out.println("a % b = " + (a % b)); //取余
        System.out.println("a++ = " + a++); //先输出 再自加1
        System.out.println("++a = " + ++a); //先自加1 再输出
        System.out.println("a-- = " + a--); //先输出 再自减1
        System.out.println("--a = " + --a); //先自减1 再输出
    }
}

a = 15
b = 10
a + b = 25
a - b = 5
a * b = 150
a / b = 1
a % b = 5
a++ = 15
++a = 17
a-- = 17
–a = 15

除法只能获取到整数部分
++a是先让a自加1再参与运算
a++是先参与运算再让a自加1
{
int a = 10;
System.out.println(a++ + ++a); //执行结果:22 (10 + 12)
System.out.println(a++); //执行结果:12
System.out.println(a); //执行结果:13
}

比较运算符

public class Demo {
    public static void main(String[] args) {
        int a = 15;
        int b = 10;
        System.out.println("a = " + a);
        System.out.println("b = " + b);

        System.out.println("a == b : " + (a == b)); //等于
        System.out.println("a != b : " + (a != b)); //不等于
        System.out.println("a > b : " + (a > b)); //大于
        System.out.println("a < b : " + (a < b)); //小于
        System.out.println("b >= a : " + (b >= a)); //大于等于
        System.out.println("b <= a : " + (b <= a)); //小于等于
    }
}

a = 15
b = 10
a == b : false
a != b : true
a > b : true
a < b : false
b >= a : false
b <= a : true

在java中=是赋值操作 想要比较两个数是否相等需要用==

位运算符

public class Demo {
    public static void main(String[] args) {
        int a = 15;
        int b = 10;
        System.out.println("a = " + a);
        System.out.println("b = " + b);

        System.out.println("a & b = " + (a & b)); //或运算符: a的二进制与b的二进制相对应位的值都是1,则为1,否则为0
        System.out.println("a | b = " + (a | b)); //非运算符: a的二进制与b的二进制相对应位的值都是 0,则为0,否则为1
        System.out.println("a ^ b = " + (a ^ b)); //异或运算符: a的二进制与b的二进制相对应位的值相同,则为0,否则为1
        System.out.println("~a = " + (~a)); //取反运算符: 翻转a的二进制的每一位,即0变成1,1变成0
        System.out.println("a << 2 = " + (a << 2)); //左移运算符: a的二进制的每一位左移2位
        System.out.println("a >> 2  = " + (a >> 2)); //右移运算符: a的二进制的每一位右移2位
    }
}

a = 15
b = 10
a & b = 10
a | b = 15
a ^ b = 5
~a = -16
a << 2 = 60
a >> 2 = 3

位运算涉及二进制的原码,反码,补码 等领域 了解即可
<<1; //二进制左移一位,相当于乘二
>>1; //二进制右移一位,相当于除二

逻辑运算符

public class Demo {
    public static void main(String[] args) {
        boolean a = true;
        boolean b = false;
        System.out.println("a = " + a);
        System.out.println("b = " + b);
        
        System.out.println("a && b : " + (a && b)); //逻辑与运算符: 两个操作数都为真,条件才为真
        System.out.println("a || b : " + (a || b)); //逻辑或操作符: 两个操作数任何一个为真,条件就为真
        System.out.println("!a : " + (!a)); //逻辑非运算符: 取反用来反转操作数的逻辑状态
    }
}

a = true
b = false
a && b : false
a || b : true
!a : false

&&||&|效率更高

流程控制

while

public class Demo {
    public static void main(String[] args) {
        int i = 0;
        while(i < 3){ //()内为条件,当条件为真时执行循环
            System.out.println(i);
            i++;
        }
    }
}

0
1
2

i3i < 3不成立,跳出循环

Created with Raphaël 2.2.0 int i = 0 i < 3 ? System.out.println(i); i++; 结束 yes no

for

public class Demo {
    public static void main(String[] args) {
        for (int i = 0; i < 3; i++) {
            System.out.println(i);
        }
    }
}

0
1
2

while相比看起来更加整洁 但变量i只在循环中可以使用
continue打断循环i++也会执行

Created with Raphaël 2.2.0 int i = 0 i < 3 ? System.out.println(i); i++; 结束 yes no

do while

public class Demo {
    public static void main(String[] args) {
        int i = 0;
        do{
            System.out.println(i);
            i++;
        }while(i < 3);
    }
}

0
1
2

无论条件真假都至少循环一次

Created with Raphaël 2.2.0 开始 System.out.println(i); i++; i < 3 ? 结束 yes no

if else

public class Demo {
    public static void main(String[] args) {
        int a = 5;
        if (a > 5) {
            System.out.println("a > 5");
        } else if (a < 5) {
            System.out.println("a > 5");
        } else {
            System.out.println("a = 5");
        }
    }
}

a = 5

Created with Raphaël 2.2.0 开始 a > 5 ? System.out.println("a > 5"); 结束 a < 5 ? System.out.println("a > 5"); System.out.println("a = 5"); yes no yes no

switch

public class Demo {
    public static void main(String[] args) {
        int a = 3;
        switch (a) {
            case 1: {
                System.out.println("a = 1");
                break;
            }
            case 2: {
                System.out.println("a = 2");
                break;
            }
            case 3: {
                System.out.println("a = 3");
                break;
            }
            default: {
                System.out.println("a != 1 && a != 2 && a != 3");
                break;
            }
        }
    }
}

a = 3

if else对比switch只能判断是否等于,无法判断是否大于或小于

Created with Raphaël 2.2.0 开始 a = 1 ? System.out.println("a = 1"); 结束 a = 2 ? System.out.println("a = 2"); a = 3 ? System.out.println("a = 3"); System.out.println("a != 1 && a != 2 && a != 3"); yes no yes no yes no

三元运算

public class Demo {
    public static void main(String[] args) {
        int i = 10;
        String s = (i < 12) ? "真的" : "假的";
        System.out.println(s);
    }
}

真的

a ? b : c;
判断 a 是否为真,若为真返回 b ,否则返回 c

死循环

public class Demo {
    public static void main(String[] args) {
        while (true){
            System.out.println("起床");
            System.out.println("吃饭");
            System.out.println("敲代码");
        }
    }
}

起床
吃饭
敲代码
起床
吃饭
敲代码
起床
吃饭
敲代码
。。。。。。(无限循环)

在不知到要循环几次的时候可以采用死循环
一般使用continuebreak控制循环

continue break

public class Demo {
    public static void main(String[] args) {
        for (int i = 0; i < 100; i++) {
            if (i == 2) {
                continue; //跳出当前循环,进行下一循环
            }
            if (i == 5) {
                break; //终止循环
            }
            System.out.println(i);
        }
    }
}

0
1
3
4

通常配合if语句使用

键盘输入输出

import java.util.Scanner; //导入键盘输入所需的包

public class Demo {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in); //创建一个可以读取我们键盘输入内容的对象 命名为 sc
        System.out.print("请输入字符串: "); //打印至控制台并且不换行
        String s = sc.next(); //等待键盘输入字符串
        System.out.print("请输入整数: ");
        int i = sc.nextInt(); //等待键盘输入整数
        System.out.print("请输入小数: ");
        double d = sc.nextDouble(); //等待键盘输入小数
        System.out.println("你输入的字符串是: " + s);
        System.out.println("你输入的整数是: " + i);
        System.out.println("你输入的小数是: " + d);
    }
}

请输入字符串: abc
请输入整数: 123
请输入小数: 1.23
你输入的字符串是: abc
你输入的整数是: 123
你输入的小数是: 1.23

import: 导包 导入写好的类 可以使用其方法,变量等
数据类型不能乱,否则报错

随机数

import java.util.Random; //导入一个可以获取随机数的包

public class Demo {
    public static void main(String[] args) {
        Random r = new Random();
        for (int i = 0; i < 5; i++) {
            int a = r.nextInt(100); //获取0~99之间的随机整数
            System.out.println(a);
        }
    }
}

40
22
71
68
18

由于获取的是随机数,每次生成的结果都不会一样
生成ab之间的随机数(a < b):
int i = r.nextInt(b - a + 1) + a;

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值