Java基础和数据类型

1.概念

数据类型:是在内存中开辟多大的空间
变量:内存中空间首地址不好记,起个别名
值:内存中这个空间里面放的值

//在内存中开辟4字节的空间来存放1000这个整数,这个空间不好记,起别名叫做
money 2 int money = 1000;

二、命名规则;

1、合法:
1)、只能由字母、数字、_、$组成
2)、不能以数字开头
3)、不能是java的关键字

2、规范:
见名知义;

三、数据类型

数据类型分为基本数据类型和引用类型

基本数据类型有以下8个:

1、存整数的有4个: byte(1)、short(2)、int(4)、long(8)

2、存小数的有2个: float(4)、double(8) 尽量采用double来表示小数

3、存字符的1个: char(2)

4、布尔类型1个: boolean(1bit) 有

1个引用类型要关注:String字符串类型 String str = “abc中国”;

        // 数据类型
        // 两种: 基本数据类型和引用数据类型
        //8大基本数据类型:
        // 整数类型: byte,short,int,long
        //byte: 一个字节,-128~127
        byte b = 10;
        System.out.println(Byte.MIN_VALUE);
        System.out.println(Byte.MAX_VALUE);

        //short: 两个字节,-32768~32767
        short s = 100;
        System.out.println(Short.MIN_VALUE);
        System.out.println(Short.MAX_VALUE);
        //int: 四个字节,-2147483648~2147483647
        int i = 1000;
        System.out.println(Integer.MIN_VALUE);
        System.out.println(Integer.MAX_VALUE);
        //long: 八个字节,-9223372036854775808~92
        long l = 100_000_000_000_000L;
        System.out.println(Long.MIN_VALUE);
        System.out.println(Long.MAX_VALUE);

        // 浮点数类型: float,double
        // float单精度浮点型: 4个字节,-3.4E38~3.4E38
        float f = 3.14f;
        System.out.println(Float.MIN_VALUE);
        System.out.println(Float.MAX_VALUE);
        // double双精度浮点型: 8个字节,-1.7E308~1.7E308
        double d = 2.5d;
        System.out.println("------");
        System.out.println(Double.MIN_VALUE);
        System.out.println(Double.MAX_VALUE);
        // 字符类型: char
        // 字符类型只有一种: char 占两个字节
        char c = 'a';
        // 布尔类型: booledan
        // 占一个字节只有两个取值true和false

        // 引用数据类型: 类(class),接口(interface),数组(array)

字符串和变量连接用"+";

四、常量

一旦赋了值就不能再改变的量。用final来修饰
通常情况下,常量全大写

final int PI = 20;//常量
PI = 30;//报错,i只能为20,不能修改

五、Scanner接收控制台的输入

//1.导入Scanner类
import java.util.Scanner;
        // 2. 创建Scanner对象,绑定到System.in
        Scanner scanner =new Scanner(System.in);

        // 3. 提示用户输入信息
        System.out.print("请输入一个整数:");

        // 4. 接收用户输入的信息
        int num = scanner.nextInt();

        // 5. 输出用户输入的信息
        System.out.println("您输入的整数是:" + num);

六、类型转换

前提条件:是数值(整数和小数)类型之间的转换
看是自动类型转换还是强制类型转换,主要看是否有风险
1、自动类型转换 小——>大
2、强制类型转换 大 ——>小
如果是一个表达式,结果就为表达式中最大的那个类型
double = int + double
在Java中整型、实型、字符型被视为简单数据类型,
这些类型由低级到高级分别为(byte,short,char)–int–long–float–double

七、赋值运算符

=将右边的值赋给左边

        Scanner input = new Scanner(System.in);
        System.out.print("请输入第一个数:");
        int num1 = input.nextInt();
        System.out.print("请输入第二个数:");
        int num2 = input.nextInt();
        System.out.println("交换前的num1:" + num1 + ",num2:" + num2);
        //num1和num2交换
        int temp = num1;
        num1 = num2;
        num2 = temp;
        System.out.println("交换后的:num1:" + num1 + ",num2:" + num2);

八、算术运算符

+:数值之间的“+”表示两个数相加;如出现字符串,则表示相连接
-、*:正常的减和乘
/:按照上溯到最大的那个类型处理,必须两个整型相除,得到结果一定是整型
%:取余数
++:自增
–:自减

        int num1 = 9;
        //num1++;
        //System.out.println(++num1); //先自增,后打印输出num1。等同于下面两句代码4
        /*num1 = num1 + 1;
         System.out.println(num1);*/
        /*System.out.println(num1++);//先打印输出num1,再自增。等同于下面两句代码
        System.out.println(num1);
        num1 = num1 + 1;*/

+=、-=、*=、/=、%=

//        num1+=2; 等同于 num1 = num1 + 2;
//        num1‐=2; 等同于 num1 = num1 ‐ 2;
//        num1*=2; 等同于 num1 = num1 * 2;
//        num1/=2; 等同于 num1 = num1 / 2;
//        num1%=2; 等同于 num1 = num1 % 2;

九、关系运算符

关系运算符得到的结果一定是个布尔类型,也就是结果要么是true,要么是false
==、!=、>、<、>=、<=

十、逻辑运算符

&& 短路与
|| 短路或
! 非(取反)

短路与指的是当第一个表达式为false时,整个表达式一定为false,后面的表达式代码就不执行了
短路或指的是当第一个表达式为true时,整个表达式一定为true,后面的表达式代码就不执行了
标准的与或非

& 与
| 或
!非
没有短路的概念,也就意味着所有表达式的代码都运行,不管第一个表示式的结果。

十一、三元(三目)运算符

语法:
变量 = 条件 ? 表达式1 : 表达式2;
当条件为true时,把表达式1的结果赋给变量
当条件为false时,把表达式2的结果赋给变量

 int min;
        min = 5 < 7 ? 5 : 7;
        System.out.println(min);
        //min=5
        min = 10 < 7 ? 10 : 7;
        System.out.println(min);//min = 7;
        Scanner input = new Scanner(System.in);
        System.out.print("请输入4位的会员卡号:");
        int card = input.nextInt();
        int ge = card % 10;
        int shi = (card / 10) % 10;
        int bai = (card / 100) % 10;
        int qian = card / 1000;
        int result = qian + bai + shi + ge;
        System.out.println("会员卡号是:" + card);
        System.out.println("千位数:" + qian + ",百位数:" + bai + ",十位数:" + shi + ",个位数:" + ge);
        System.out.println("会员卡号" + card + "各位之和:" + result);
        //根据分解后的数字之和,判断用户是否中奖。如果数字之和大于20,则中奖
        String msg = result > 20 ? "会员卡号" + card + "的会员,您中奖了!奖品是MP3!" : "未中奖";
        System.out.println(msg);

你可能感兴趣的:(Java全栈工程师学习,#,Java开发,java,python,开发语言)