0
点赞
收藏
分享

微信扫一扫

JavaSE-Day02

霍华德 2022-01-21 阅读 37

1.数据类型

1.1 数据类型分类

Java中的数据类型分为基本数据类型和引用数据类型

基本数据类型

是Java语言中内置的类型,分别是整数类型、浮点类型、字符类型、布尔类型。这四类基本类型是最简单、最基础的类型。

引用数据类型

是强大的数据类型,它是基于基本数据类型创建的。JavaSE中提供了一个超级类库,类库中包含了近万种引用数据类型。不过现在我们先要学习的是基本类型!

1.2 基本数据类型表示

整数类型

十进制表示方式:正常数字 如 13、25等

二进制表示方式:以0b(0B)开头 如0b1011 、0B1001

八进制表示方式:以0开头 如01、07、0721

十六进制表示方式:以0x(0X)开头 数字以0-9及A-F组成 如0x23A2、0xa、0x10

浮点数类型

如1.0、-3.15、3.168等

布尔类型

true,false

字符类型

如'a','A', '0', '家'

1.3 基本数据类型占用大小和表示范围

四类八种占用字节数数据表示范围

   整型

(精确)

byte1-128~127
short2-32768~32767
int(默认)4-2147483648~2147483647
long8-2^63~2^63-1

   浮点型

(不精确)

float4-3.403E38~3.403E38
double(默认)8-1.798E308~1.798E308
字符型char2表示一个字符
布尔型bollean1只有两个值true与false

2.常量和变量

2.1常量

定义:不变的数据量

分类:

 2.2变量

public static void main(String[] args) {
		// byte类型变量
		byte b = 100;
		System.out.println(b);
		
		//short类型变量
		short s = 100;
		System.out.println(s);
		
		//int类型变量
		int x = 100;
		System.out.println(x);
		
		//long类型变量
		long num = 100L;
		System.out.println(num);
		
		//float类型变量
		float f = 2.0F;
		System.err.println(f);
		float f2 = 2.0f;
		System.out.println(f2);
				
		//double类型变量
		double d = 3.14;
		System.out.println(d);
		double d2 = 3.14d;
		System.out.println(d2);
		double d3 = 3.14D;
		System.out.println(d3);
		
		//char类型变量
		char c = 'a';
		System.out.println(c);
		
		//boolean类型变量
		boolean flag = true;
		System.out.println(flag);
	}
public static void main(String[] args) {
		int x;
		x = 20;  //下面要使用变量x x必须先赋值
		System.out.println(x);
}
public static void main(String[] args) {
	int x = 20;  // 定义一个int类型变量x
	//int x = 30;  //编译报错, 不能重复定义一个x变量
	x =30; // 正确,表示给x重新赋值
	//x = "abc"; //编译报错,赋值时,类型要匹配
}
public static void main(String[] args) {
		int a= 100;
		{
			int b = 200;
			System.out.println(a);
			System.out.println(b);
		}
		//System.out.println(b);  // 编译报错,这里不能访问到变量b
	}

3.数据类型转换

3.1数据类型转换

数据类型转换分为自动类型转换和强制类型转换

自动类型转换:小类型——>大类型

           格式:范围大的数据类型 变量 = 范围小的数据类型值

强制类型转换:大类型不能转换为小类型 但通过强制类型转换可以实现

            格式:范围小的数据类型 变量 = (范围小的数据类型) 范围大的数据类型值

3.2类型转换案例 

1.计算一年有多少毫秒(一年按365天计算)

public class Demo01 {
    public static void main(String[] args) {
        long result = 365L*24*60*60*1000;
        System.out.println(result);
    }
}

2.整数的除法运算 

public class Demo02 {
    public static void main(String[] args) {
        int x = 10;
        int y = 4;

        int result = x/y;
        System.out.println(result); // 2

        double result2 = x/y;
        System.out.println(result2); //2.0;

        double result3 = (double)x/y; // 把x强转成double
        System.out.println(result3); //2.5

        double result4 = 1.0*x/y;
        System.out.println(result4);
    }
}

3.浮点数 四舍五入取整 四舍五入取两位小数

public class Demo03 {
    public static void main(String[] args) {
        double x = 3.4665;
        //四舍五入取整数
        int result = (int)(x+0.5);
        System.out.println(result);

        // 四舍五入取保留两位小数
        double result2 = (int)(x*100+0.5)/100.0;
        System.out.println(result2);
    }
}

4.字符集

4.1常见字符集

4.2几个特殊意义的字符

4.3练习

在控制台输出完成水果超市价格表如下图

public class Demo04 {
    public static void main(String[] args) {
        System.out.println("水果编号\t水果名称\t水果单价\t计价单位\t品质");
        System.out.println(1+"\t榴莲\t"+32.0+"\t公斤\t"+"A");
        System.out.println(2+"\t苹果\t"+6.5+"\t公斤\t"+"B");
        System.out.println(3+"\t猕猴桃\t"+6.0+"\t公斤\t"+"A");
    }
}

5.运算符

5.1概述

5.2分类

算术运算符 赋值运算符 关系运算符 逻辑运算符 三元运算符

5.2.1算术运算符

public class Demo05 {
    public static void main(String[] args) {
        int result1  = 1+2;
        int result2 = 3-1;
        int result3 = 3*2;
        int result4 = 3/2;
        int result5 = 3%2;  // 取模 (余数) -------> 判断能不能整除

        System.out.println(result1);     //3
        System.out.println(result2);    //2
        System.out.println(result3);    //6
        System.out.println(result4);    //1
        System.out.println(result5);    //1
        
        int x = 100;
        int y = 3;
        int result6 = x+y;
        int result7 = x/y;
        int result8 = x%y;
        System.out.println(result6);  //103
        System.out.println(result7); //33
        System.out.println(result8); // 1
        
        // ++(递增)   --(递减)
        int a = 1;
        //a++;
        ++a;
        System.out.println(a);  //3
    }
public static void main(String[] args) {
		int a = 1;
		//int b = ++a;//a:2 b:2 注意:++在前表示先计算++  再赋值
		int b = a++;//a:2 b:1 注意:++在后表示先赋值  再计算++
		System.out.println(a);
		System.out.println(b);
}

5.2.2赋值运算符

public static void main(String[] args) {
		int a = 5;
		int b = 2;
		
		a+=2; // a= a+2;
		System.out.println(a); //7
		
		a-=1; // a = a-1;
		System.out.println(a); //6
		
		a*=2; // a = a*2;
		System.out.println(a); //12
		
		a/=2; a = a/2;
		System.out.println(a); //6
		
		a%=2; a= a%2;
		System.out.println(a); //0
	}

5.2.3关系运算符

public static void main(String[] args) {
int a = 2;
int b = 1;
System.out.println(b>a);  // true
System.out.println(b>=a);  // true
System.out.println(b<a);  // false
System.out.println(b<=a);  // false
System.out.println(b==a);  // false
System.out.println(b!=a);  // true
}

5.2.4逻辑运算符

public static void main(String[] args) {
/*	    int x = 5;
		int y = 3;
		
		int a = 10;
		int b =8;
		
		System.out.println(x>y & a>=b);  // true & true = true
		System.out.println(x>y & a<b);   // true & false = false
		System.out.println(a<b & x>y);   // false & true = false
		System.out.println(a<b & x<y);   // false & false = false
		
		System.out.println(x>y | a>=b);  // true | true = true
		System.out.println(x>y | a<b);   // true | false = true
		System.out.println(a<b | x>y);   // false | true = true
		System.out.println(a<b | x<y);   // false | false = false
		
		System.out.println(x>y ^ a>=b);  // true ^ true = false
		System.out.println(x>y ^ a<b);   // true ^ false = true
		System.out.println(a<b ^ x>y);   // false ^ true = true
		System.out.println(a<b ^ x<y);   // false ^ false = false
*/
	
/*	
		int x = 5;
		int y = 3;
		
		int a = 10;
		int b =8;
		
		System.out.println(!(x>y));  // false
		System.out.println(!(x<y));  // true
		
		System.out.println(x>y && a>=b);  // true && true = true
		System.out.println(x>y && a<b);   // true && false = false
		System.out.println(a<b && x>y);   // false && true = false
		System.out.println(a<b && x<y);   // false && false = false
		
		System.out.println(x>y || a>=b);  // true || true = true
		System.out.println(x>y || a<b);   // true || false = true
		System.out.println(a<b || x>y);   // false || true = true
		System.out.println(a<b || x<y);   // false || false = false
	*/
}
int x = 5;
int y = 3;
		
int a = 10;
int b =8;
/*
System.out.println(x<y & a++<b);  // false
System.out.println(a);  // 既是第一个表达式是false 也会计算第2个表达式  也就是执行了a++ a的值变为11
*/
System.out.println(x<y && a++<b);   // false
System.out.println(a);  //10   第一个表达式是false了结果就直接为false 不会执行第2个表达式 也就是没有执行a++ a的值还是10

 5.2.5三元运算符

int a = 5;
int b = 8;
		
int result = a<b?a:b;
System.out.println(result);  // 判断a大于b吗  如果a大于b 把 a赋给result  反之把b赋给result

 练习:交换两个变量的值

// 使用临时变量
public static void main(String[] args) {
       int a = 1;
       int b = 2;

       int temp = a;
       a = b;
       b = temp;

        System.out.println(a);
        System.out.println(b);
    }

//不使用临时变量
public static void main(String[] args) {
       int a = 1;
       int b = 2;

       int sum = a+b;
       a = sum - a;
       b = sum - a;
       System.out.println(a);
       System.out.println(b);
    }

//采用和的方式
public static void main(String[] args) {
       int a = 1;
       int b = 2;

       b = a+b-(a=b);
       System.out.println(a);
       System.out.println(b);
    }

 5.2.6键盘录入scanner类

import java.util.Scanner;
public class Demo24_键盘输入 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int x = sc.nextInt();  //代码执行到这一步时,会阻塞(停住) 等着键盘从控制台输入,输入完成后回车,把输入的值赋给了x
		System.out.println("键盘输入的值为:"+x);
		double y = sc.nextDouble();
		System.out.println("键盘输入的浮点数值为:"+y);
	}
}

5.2.7位运算符

举报

相关推荐

javaSE 笔记 day02

JavaSE learning day02

JavaSE基础进阶学习day02

JavaSE02

Javase day04

Day-02-02

【JavaSE基础】02-面向对象

JavaSE learning day07

Javase_test_day8

0 条评论