JAVA语言基础

语言基础

一、课前复习

1、Java语言的特点

2、Java的执行机制

3、Java中的标识符命名规则

二、变量

2.1 变量的定义

变量三要素:

1、变量类型

2、变量名

3、值

注意:一个隐含的要素是,内存地址。

2.2 变量的基本使用

public class Demo01 {
    public static void main(String[] args) {
        // 先声明
        int money;
        
        // 后赋值
        money = 200;
        
        // 应用
        System.out.println(money);
    }
}

注意:Java是强类型语言,值必须与类型一致。

2.3 变量定义的三种方式

public class Demo01 {
    public static void main(String[] args) {
        // 方式1:先声明后赋值
        // 先声明
        int money;
        // 后赋值
        money = 200;
        // 应用
        System.out.println(money);
        
        // 方式2:声明的同时赋值
        int count = 1;
        // 第二次赋值
        count = 2 + 3;
        System.out.println(count); // 结果为5
        
        // 方式3,同时声明多个变量[了解,不优秀,不推荐使用]
        int n1, n2 = 1, n3, n4 = 5, n5;
        System.out.println(n2);
//      System.out.println(n5); // 报错,没有赋值
    }
}

三、数据类型[重点]

3.1 分类

  • 基本数据类型:

    • 整数

      • byte

      • short

      • int

      • long

    • 小数

      • float单精度

      • double双精度

    • 布尔

    • 字符

  • 引用数据类型:除了基本数据类型以外的其他类型

    • 字符串

    • 数组

    • 对象

3.2 整数

public class Demo02 {
    // 整数类型
    public static void main(String[] args) {
        // byte 1字节  范围:-128~127
        byte num1 = -128;
        
        // short 2字节 范围:-32768~32767,-2^15 ~ 2^15-1
        short num2 = 32767;
        System.out.println(num2);
        
        // int 4字节 范围:-2^31 ~ 2^31-1,-2147483648~2147483647
        int num3 = 2147483647;
        
        // long 8字节 范围:-2^63 ~ 2^63-1
        long num4 = 214748364464564648L;
        
        // 注意:Java中整数默认类型是int,如果要定义一个long类型
        //,赋值时需要在数字后面加一个L,大小写均可
        // 推荐使用大写的L,避免被误认为数字1
    }
}

3.3 小数

public class Demo03 {
    // 小数
    public static void main(String[] args) {
        // 注意:小数在计算机表示是不精确的,需要精确运算以及大整数运算时,应该使用BigDecimal类
        System.out.println(1-0.9);
        // 小数采用科学计数法来保存
        // float,4字节,负数范围:-3.4x10^38~-1.4x10^-45,正数范围:1.4x10^-45~3.4x10^38
        // 注意:Java中小数默认类型是double,如果要使用float需要在最后加一个f
        float f1 = 1000000234682.23456789F;
        System.out.println(f1);
        // 注意:long类型虽然有8个字节,但是存储的范围比float小,因为float使用指数存储
        // double 8字节,负数范围:-1.7x10^308~-4.9x10^-324,正数范围:4.9x10^-324~1.7x10^308
        double d1 = 1000000234682.23456789;
        System.out.println(d1);
    }
}

3.4 布尔

public class Demo04 {
    // 布尔
    public static void main(String[] args) {
        // boolean 1字节,值为true或者false,true表示为真,false表示假
        boolean b = true;
        b = false;
        System.out.println(b);
    }
}

3.5 字符

字符集:

ASCII:1字节

ISO-8859-1:1字节,很多时候相当于ASCII

GB2312:早期中文字符集,使用2个字节,各取高位的一部分来表示,可以支持几千个中文

GBK:中文字符集,使用2个字节,各取高位的一大部分来表示,可以支持更多的中文

GB18030:中国通用的字符集,

Unicode:万国码,2字节,能支持大多数国家的文字,包含ASCII的内容

UTF-8:统一传输格式,支持国际上大多数国家文字,是现在通用的字符集,一般英文1个字节,中文等其他文字3-4个字节。

UTF-16、UTF-32

注意:乱码出现的原因是写入的字符集和读取的字符集不一致。

public class Demo05 {
    // 字符
    public static void main(String[] args) {
        // char 2字节 范围数字为0~65535
        // 字符采用单引号赋值
        char ch1 = 'A';
        System.out.println(ch1 + 1);
        // 也可以采用数字赋值
        char ch2 = 66;
        System.out.println(ch2);
        // 中文
        char ch3 = '中';
        System.out.println(ch3);
        System.out.println((int)ch3);
        // 万国码
        char ch4 = '\u4f01'; // 十六进制
        System.out.println(ch4);
        // 万国码
        char ch5 = 20225;
        System.out.println(ch5);
        
        // 转义字符
        char ch6 = '\'';
        System.out.println(ch6);
        char ch7 = '\\';
        System.out.println(ch7);
        
        System.out.print("a\nb");
        System.out.println("a\tb");
        
        System.out.println("71\t8\t9\t10");
        System.out.println("11\t1454\t13\t14");
    }
}

3.6 引用数据类型【字符串】

public class Demo06 {
    // 字符串
    public static void main(String[] args) {
        //String 使用""引入内容,可以写入多个字符
        String str1 = "Hello";
        String str2 = "中国人中国心";
        String str3 = "我家有一只🐕";
        System.out.println(str3);
    }
}

四、类型转换

1、自动类型转换

// 类型转换
public class Demo07 {
    public static void main(String[] args) {
        // 1、自动类型转换
        // 类型兼容,目标类型大于源类型
        byte b = 127;
        int n = b;
        
        // float比long范围大
        long l1 = 234792374923749283L;
        float f = l1;
        
        // char放入int
        char ch = '你';
        n = ch;
    }
}

2、强制类型转换

// 类型转换
public class Demo08 {
	public static void main(String[] args) {
		// 1、强制类型转换
		// 类型兼容,目标类型小于源类型
		// 考虑是类型的范围大小,而不是值
		int n = 1;
		byte b = (byte) n;
		
		// float比long范围大
		float f = 1.5f;
		long l1 = (long) f;// 值为1,截断
		
		
		// char与short
		// char的范围与short的范围不重叠,需要相互转换
		char ch = 65;
		short sh1 = (short) ch;
		
		short sh2 = 20;
		char ch1 = (char) sh2;
		
		// 超出最大值,或者最小值,会循环
		int n1 = -129;
		byte b2 = (byte) n1;
		System.out.println(b2);
	}
}

五、运算符

5.1 算术运算符

public class Demo09 {
	// 算术运算符
	public static void main(String[] args) {
		// 加
		int n = 5 + 3;
		int n1 = n + 3;
		int n2 = n + n1 + 2 + 5;
		// 当有字符串时,+作用是拼接字符串
		System.out.println("hello, " + n2);
		System.out.println("A" + 1);
		// 字符相加结果得到数字,要显示字符,需要强制转换
		System.out.println((char)('A' + 1));
        
		// 减
		int n3 = -5 - 6;
		
		// 乘
		int n4 = 5 * 3;
		
		// 除
		// 注意:两个整数相除,得到的还是整数
		double n5 = 5 / 2;
		System.out.println(n5);
		
		// 求余(求模,取模)
		int n6 = 5 % 2;
		System.out.println(n6); // 1
		int n7 = -5 % 2;
		System.out.println(n7); // -1
		int n8 = 5 % -3;
		System.out.println(n8); // 2
		int n9 = -5 % -3;
		System.out.println(n9); // -2
		System.out.println(5.5 % 2); // 1.5
		System.out.println(5.5 % 2.5); // 0.5
		
		// 混合运算规则:先算乘除余,后算加减,可以通过小括号改变优先级
	}
}

一元(单目)运算符:只需要一个操作数。

public class Demo10 {
	// 一元运算符
	public static void main(String[] args) {
		int n = 3;
//		n++;// 相当于n = n + 1;
		++n;// 相当于n = n + 1;
		System.out.println(n);
		
		int m = 5;
//		m--;// 相当于m = m - 1;
		--m;// 相当于m = m - 1;
		System.out.println(m);
		
		// 当参与其他运算时,++(--)在前,就先自增,再参与运算,++(--)在后,先参与运算,后自增
		int n1 = 3;
		int a = --n1 + 5;
		System.out.println(a);
		System.out.println(n1);
		
		int n2 = 2;
		// 2 + 4 + 5 + 5
		int b = (n2++)+(++n2) + (++n2) + (n2++);
		System.out.println(b);
		System.out.println(n2);
		
		// 经典面试题
		byte b1 = 1;
//		b1++;
		b1 = (byte) (b1 + 1);
		System.out.println(b1);
		// b1++; 与 b1 = b1 + 1;
		// 自增会自动转换类型,而+法不会,需要强转类型
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值