Java基础笔记(未完)

本文详细介绍了Java编程中的数据类型,包括基本数据类型如整型、浮点型、字符型和布尔型,以及它们的取值范围和内存占用。此外,还讲解了变量的声明、赋值以及常量的使用。接着,阐述了数据类型转换,包括自动类型转换和强制类型转换的规则及注意事项。最后,探讨了算术运算符、比较运算符、逻辑运算符以及三元运算符的用法,展示了各种运算符在实际代码中的应用。
摘要由CSDN通过智能技术生成

代码注释

  • // :

    // 这是第一种注释,可以单独一行也可以在代码末尾
    
  • /**/:

    /* 
    这是第二种注释,可以不换行
    可以多行
    */
    

关键字

有特殊含义的、被保留的、不能随意使用的字符

关键字特点

  1. 完全小写的字母
  2. 编译器中有特殊颜色

标识符

  • 标识符:在程序中,用户自定义的内容。如:类的名字/方法的名字、变量的名字等等

命名规则

硬性要求

  • 可以包含英文字母,数字,$,和下划线
  • 不能以数字开头
  • 不能是关键字

软性建议

  • 类名:大驼峰式(HelloWorld)
  • 变量名:小驼峰式(helloWorld)
  • 方法名:小驼峰式(helloWorldPrint)

常量

在程序运行期间,固定不变的值

常量的分类

  1. 字符串常量:用双引号引起来的部分叫字符串常量,如"hello"
  2. 整型常量:直接写整数,如 23
  3. 浮点数常量:直接写小数,有小数点,如23.4
  4. 字符常量:用单引号引起来的单个字符,必须有内容不能空,如’h’,‘9’,‘中’
  5. 布尔常量:true,false
  6. 空常量:null 代表没有任何数据,但是不能把null写入代码

常量相关代码

public class Demo01Const{
	public static void main(String[] args){
		
		/*输出字符串常量*/
		System.out.println("ABC");
		System.out.println("");
		System.out.println("9");
		
		/*输出整型常量*/
		System.out.println(11);
        System.out.println(-11);

		/*输出浮点型常量*/
		System.out.println(2.3);

		/*输出字符常量*/
		System.out.println('A');

		/*输出布尔常量*/
		System.out.println(true);
        System.out.println(false);

		/*输出空常量*/
		System.out.println();
	}
}

数据类型

数据类型分类

基本数据类型(四类八种)

整型 byte short int long

浮点型 float double

字符型 char

布尔型 boolean

数据类型关键字内存占用取值范围
字节型byte1B-128~127
短整型short2B-32768~32567
整型int(默认)4B-231~231-1
长整型long8B-263~263-1
单精度浮点数float4B1.4013E-45~3.4028E+38
双精度浮点数double(默认)8B4.9E-324~1.7977E+308
字符型char2B0~65535
布尔类型boolean1Btrue false

字符串不是基本类型,而是引用类型

浮点型可能只是一个近似值

数据范围与字节数不一定相关,float比long的数据范围更广泛,但float更节省空间

浮点数默认为double类型,如果使用float需要加后缀F

整数默认为int类型,如果使用long需要加后缀L

  • 引用数据类型

    接口 数组

变量

程序运行期间,内容可以发生改变的量

使用方法

数据类型 变量名称; //创建一个变量

变量名称 = 数据值; //赋值

数据类型 变量名称 = 数据值; //在创建变量同时进行赋值

代码示例

// variable 可变的(变量)
public class Demo02Variable{
	public static void main(String[] args){
		float num1;	// 定义一个float型变量num1
		num1 = 10.2F;	// 给num1赋值10.2
		System.out.println(num1);	// 输出num1
	}
}

注意事项

  • 定义变量时,变量名称不可重复

  • 定义long 和float时,字母后缀L和F不能省略

  • 赋值必须在数据类型的范围内

  • 变量需要先定义,后使用

  • 变量使用不能超过作用域的范围 作用域 从变量定义的哪一行开始,一直到直接所属的大括号结束位置

  • 可以通过一个语句来创建多个变量,但一般情况不推荐

    int a, b, c;
    

数据类型转换

自动类型转换

  • 取值范围小的自动转换为取值范围大的
    • 特点:代码不需要进行特殊处理,自动完成
    • 规则:数据范围从小到大
public static void main(String[] args){
	System.out.println(1024);    //输出整数1024,默认为int类型
	System.out.println(3.14);    //输出浮点数3.14,默认为double类型
	long num1 = 100;    //没有L后缀,100默认为int类型,但是num1为long类型,int->long,从小到大符合规则,自动进行数据转换了
	System.out.println(num1);
}

强制类型转换

  • 特点:代码需要进行特殊处理,不能自动完成

  • 格式:范围小的类型 范围小的变量名 = (范围小的类型)原本范围大的数据

    int num = (int)100L;    //100L为long类型,范围比int大,使用强制类型转换,将100L转换成int型
    

强制类型转换注意事项

  • 强制类型转换一般不推荐使用,因为有可能发精度损失、数据溢出

    • 精度损失:丢失超出范围的部分,小数转整数会丢失小数部分

    • 数据溢出:范围小的类型装不下原类型的数据,输出错误

      public static void main(String[] args){
      	int num = (int)100L;    //强制类型转换
      	System.out.println(num);
      	int num1 = (int)1000000000000L;    //long类型存储数据超出int类型数据范围发生数据溢出
      	System.out.println(num1);
      	int num2 = (int)3.678;    //发生数据精度丢失,输出结果丢弃小数部分
      	System.out.println(num2);
      }
      
  • byte/short/char 三种类型可以发生数学运算,例如“+”

    • 在运算时都会首先提升为int类型,char类型运算按ASCII码值运算

      byte num3 = 1;
      short num4 = 2;
      int num5 = num3 + num4;    //byte,short,char计算时自动提升为int类型,char根据ASCII码进行行算
      System.out.println(num5);
      
  • boolean类型不能发生强制类型转换

ASCII码

American Standard Code for Information Interchange美国标准编码信息交换

因为计算机中,所有指令,字符,操作等最终都会转化为二进制数字,所以,用ASCII码来表示字符所真正存储时所对应的十进制数字,来实现相关的转换

记忆:字符0–>48 a–>97 A–>65

public class Demo03DataTypeChar{
	public static void main(String[] args){
		char zifu1 = '1';
		System.out.println(zifu1+0);
	}
}

// 输出结果为49.因为字符1对应的ASCII码为48,在进行char与int类型的加法时,遵循自动类型转换,范围小的转换为范围大的,字符1根据ASCII码转换为整数48再与整数1相加得49

Unicode码

万国码

也是数字和符号的对应关系,开头0-127部分与ASCII完全一样,但是从128开始包含有更多文字,甚至包含emoj表情:)

输入输出中文就需要使用Unicode编码

运算符

operator 运算符

定义

进行特定操作的符号。例如:“+”

算数运算符

算术运算符具体含义
+加法运算,字符串连接运算
-减法运算
*乘法运算
/除法运算
%取模运算,两个数字相除取余数
++ --自增自减运算

Java中,运算时有不同类型的数据,结果会是数据类型范围较大的类型,如果相同数据类型进行运算,结果还是该类型

python中除法运算默认为float

C中除法运算取决于参与运算的数字类型

public class Demo04Operator{
	public static void main(String[] args){
		// 两个常量之间可以进行数学运算		
		System.out.println(20 + 30 );
		// 两个变量之间也可以进行数学运算
		int a = 20;
		int b = 30;
		System.out.println(a-b);
		// 变量和常量之间可以混合使用
		System.out.println(a*10);
	}
}

加法相关

  • 对于数字来说,加法就是数学运算相加。

  • 对于字符char类型而言,在计算前会被提升为int,然后再计算。因为int类型数据范围要比char大,所以结果也是int

  • 对于字符串String(首字母大写,并不是关键字),加号代表字符串连接如果和int相加,由于String数据范围更大,所以结果会是字符串。

public class Demo05Plus{
	public static void main(String[] args){
		String str1 = "Hello";
		System.out.println(str1);
		System.out.println(str1 + "World");
		System.out.println(str1 + 20);
	}
}

自增自减

  • 注意++的前后位置,++在前先自加再运算,++在后先取值再自加

    public class Demo06DoublePlus{
    	public static void main(String[] args){
    		int num1 = 10;
    		System.out.println(num1);
    		System.out.println(num1++);    //结果仍然为10,但num1的值自加1
    		System.out.println(num1);
    		System.out.println(++num1);    //结果为12,num1的值自加1
    	}
    }
    

赋值运算符

= 将右侧的值赋给左侧

+= 自身加上右侧的值

-= 自身减去右侧的值

*= 自身乘右侧的值

/= 自身除以右侧的值

%= 自身模右侧的值

public class Demo07Assignment{
	public static void main(String[] args){
		int a = 10;
		a *= 2;
		System.out.println(a);
	}
}

比较运算符

== 相等

> 大于

< 小于

>= 大于等于

<= 小于等于

!= 不等于

  • 比较运算的结果为Boolean类型,结果为truefalse

    public class Demo08Compare{
    	public static void main(String[] args){
    		int a = 10;
    		int b = 20;
    		System.out.println(a > b);    //输出结果为false
    	}
    }
    

逻辑运算符

&& 与:二者全真才是真

|| 或:有一个真就是真

! 非(取反) :真变假,假变真

public class Demo09Logic{
	public static void main(String[] args){
		System.out.println(10 == 10);
	}
}

三元运算符

  • 一元运算符:仅需一个数据就可以进行操作的运算符

    例如:!,++,--

  • 二元运算符:需要两个数据才能进行操作

    例如:=,+,-,*,/,%,&&,||

  • 三元运算符:需要三个数据才能进行的操作

    语法格式:

    数据类型 变量名 = 条件判断 ? a : b

    如果条件判断为true,取a,如果判断为false,取b

    问号后面的两个数据的类型必须和变量名一致

    public class Demo10Operator{
    	public static void main(String[] args){
    		int max, a = 10, b = 9;
    		max = a > b? a : b; 		
    		System.out.println(max);
    	}
    }
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值