java学习(2)

java学习(2)

helloworld

class A{
    public static void main(String[] args) {
        System.out.println("helloworld");
    }
}
// 编译java  javac A.java 生成一个java.class的文件
// 运行程序 java A 
// helloworld

关键字


在java中关键字的字母全部都是小写

变量

常量

在执行过程中,其值不会发生改变的量(数据)

class A{
    public static void main(String[] args) {
        System.out.println("helloworld");
    }
}

比如在这段代码中,常量就是helloworld

常量的分类

  • 字符串常量: 被双引号所包裹的内容
  • 整数常量: 所有整数
  • 小数常量 所有小数
  • 字符常量 被单引号包裹的内容,里面只能存放单个字符
  • 布尔常量 只有两个值,true 和false
  • 空常量 null 在java中 null空常量不能输出打印
class A{
    public static void main(String[] args) {
        System.out.println("helloworld");


       // - 字符串常量: 被双引号所包裹的内容
       // - 整数常量: 所有整数
       // - 小数常量 所有小数
       // - 字符常量 被单引号包裹的内容,里面只能存放单个字符
       // - 布尔常量 只有两个值,true 和false
       // - 空常量 null 在java中 null空常量不能输出打印
        System.out.println("helloworld");
        System.out.println(32);
        System.out.println(32.1);
        System.out.println('c');
        System.out.println(true);
        System.out.println(null); // 报错
//        A.java:17: 错误: 对println的引用不明确
//        System.out.println(null);
//                  ^
//        PrintStream 中的方法 println(char[]) 和 PrintStream 中的方法 println(String) 都匹配
//        1 个错误

    }
}

变量与数据类型

变量就是内存中的存储空间,空间中存储着经常发生改变的量(数据)

java中的变量定义格式 数据类型 变量名 = 数据值

不同的数据类型占用不同的内存空间,因此他们所表示的数据大小也不一样

  • 整数
    整数有4种数据类型,内存所占用的字节数量也不同
    byte 占用 1字节
    short 占用 2字节
    int 占用 4字节 (默认)
    long 占用8字节

  • 浮点数
    float(单精度) 4字节
    double(双精度) 8字节 (默认)

  • 字符
    char 2字节

  • 布尔类型
    bool 1字节

基本数据类型与引用数据类型

变量的定义和使用

基本数据类型的存储方式

变量使用的注意事项

  • 变量名不允许重复定义
  • 一条语句可以定义多个变量,但需要使用逗号分隔
    int a = 10, b = 30, c= 203
  • 变量在使用之前一定要赋值
  • 定义float和long变量的注意事项
    float a=12.3F long a = 20202002020L
  • 变量的作用域范围

计算机存储单元

计算机是可以用来存储数据的,但是无论是内存还是硬盘,计算机存储设备的最小信息单元叫"位(bit)",我们又叫做比特,通常用b小时,而计算机中最小的存储单元是字节(byte) 用B表示,有8个位组成

常用的存储单位及转换

1B(字节)  = 8bit
1KB = 1024B
1MB = 1024KB
1GB = 1024MB
1TB = 1024GB
1PB = 1024TB

键盘录入

linux中有stdin,python中有input shell中有read,为了方便测试或者其他需要读取屏幕前用户数据的程序。
需要使用键盘录入的形式,在java中主要使用Scan来进行录入

package hzj;

import java.util.Scanner;

public class DemoScanner {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int i = sc.nextInt();
        System.out.println(i);
    }
}

类型转换

  • 隐式转换
    将数据类型中,取值范围小的数据,给取值范围大的类型赋值,会做数据类型转换,比如
int a = 10;
double b  = a ;
system.out.print(b) // 10.0

  • 强制转换
    将取值范围大的类型赋值给取值范围小的数据类型
double b = 10.0
int a = (int)b
print(a) // 10

强制类型转换,转换不是四舍五入进行转换的,而是直接截断小数点后面的内容,所以会发生精度的损伤严重

package hzj;

import java.util.Scanner;

public class DemoScanner {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int i = (int)sc.nextDouble();
        System.out.println(i);
//        1.0
//        1

//        1.1
//        1

//        1.5
//        1

    }
}

计算符计算

主要是一个地板除/和一个取余除%

public class DemoScanner {
    public static void main(String[] args) {
        int d = 10;
        int b = 3;
        // 地板除 保留整数
        int res = d / b ;
        // 取余除 保留余数
        float res2 = d % b;
        System.out.println(res); // 3
        System.out.println(res2); // 1
    }
}
       // 数值拆分案例
        // 录入一个三位数,将他们拆为个位 十位 百位

        Scanner sc = new Scanner(System.in);
        int number = sc.nextInt();

        // 拆分
        int n1 = number % 10;
        int n1_extar = number / 10;
        int n2 = n1_extar % 10;
        int n3 = n1_extar / 10;
        System.out.printf("%d,%d,%d",n1,n2,n3);
    }

自增自减操作符

package hzj;

import java.util.Scanner;

public class DemoScanner {
    public static void main(String[] args) {
        int a = 10;
        System.out.println(a++); // 10
        System.out.println(a++); // 11

        int b = 10;
        b--;
        System.out.println(b); // 9

        a = 10;
        int c = ++a; // 先自加后赋值
        int d = 10;
        int e = d++; // 先赋值后++
        System.out.println(c); // 10
        System.out.println(a); //11
        System.out.println(d); // 11
        System.out.println(e); // 10
    }
}

三元运算符

格式 关系表达式? 表达式1:表达式2;
如果值为true 则返回表达式1
如果值为false 则返回表达式2

package hzj;

import java.util.Scanner;

public class DemoScanner {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        int max = a > b ? a:b;
        System.out.println(max);
        System.out.println(a>b?a:b);
    }
}

package hzj;

import java.util.Scanner;

public class DemoScanner {
    public static void main(String[] args) {
        // 案例 求最高身材
        int a = 120 , b = 130 , c = 150;
        // 取最大值
        int max = a>b?a:b;
        int max2 = max>c?max:c;
        System.out.println(max2); // 150
    }

}

流程控制

顺序执行结构

public class DemoScanner {
    public static void main(String[] args) {
        System.out.println(2); // 2
        System.out.println(2); // 2
        System.out.println(2); // 2
        System.out.println(2); // 2
        System.out.println(2); // 2
        System.out.println(2); // 2
    }
}

if语句

package hzj;

import java.util.Scanner;

public class DemoScanner {
    public static void main(String[] args) {
        // 形式1
        boolean flag = true;
        if (flag == true){
            System.out.println("true");
        } else {
            System.out.println("false");
        }

        // 形式2
        if (flag == true ) System.out.println("true");
    }

}

switch语句

public class DemoScanner {
    public static void main(String[] args) {
        int a = 10;
        // 形式1
        switch (a){
            case 1:
                System.out.println("1");
            case 2:
                System.out.println("2");
            default:
                System.out.println(a);
        }
    }
}

循环语句

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

}

Random生成随机数

package hzj;

import java.util.Random;

public class DemoScanner {
    public static void main(String[] args) {
        Random r = new Random();
        int n = r.nextInt(10); // 0-9 不加的话会在整个int取值范围内做random
        System.out.println(n);
    }

}

原文地址:https://www.cnblogs.com/Alpacapyer/p/13973487.html