Java基础知识一(关键字,标识符,命名规则,书写规范,常量,变量,数据类型,隐式转换,强转,字符串,运算符)

关键字

1、在java中有着特殊含义、特殊功能的单词

在这里插入图片描述

2、取名字的时候不要和关键字重名,但是可以包含关键字 class Myclass

3、还有两个保留关键字 goto const,在java中没有特殊的含义,但是依然不能使用

标识符

1、用来给类、接口、枚举、方法、变量、常量取名字的字符序列

2、组成

​ 1、以英文大小写、数字

​ 4、两个特殊的符号 $ _

​ 5、除英文外的其他字符(中文)(不建议)

3、注意事项

​ 1、不能以数字开头

​ 2、不能和关键字重名

Public myclass _class 可以

class 1class 不可以

命令规则

1、在是一个合法标识符的前提下,给类、包、变量、方法取名字的时候还要遵循一定的原则,这些原则不会被编译器检查,是程序员约定俗成的东西

2、包 全部小写 域名倒着写

​ ujiuye.com com.ujiuye.demos

3、 、接口、枚举 所有单词的第一个字母大写,其他字母小写 一般是一个名词 驼峰法

​ HelloWorld MyClass Dog

4、方法 第一个单词全部小写,从第二个单词开始首字母大写,其他字母小写 一般是动词或者动宾结构

​ setName queryAllStudent get

5、变量 第一个单词全部小写,从第二个单词开始首字母大写,其他字母小写,一般是一个形容词

​ myName name i

6、常量 所有单词全部大写 多个单词通过_进行分割

​ E PI MAX_VALUE

java的书写规范

1、左大括号左边要有空格,右边要有换行和缩进 (tab)

2、右大括号要与本次层的代码对齐

3、符号左右两边要有空格

4、不同的代码块要有换行

常量

1、在程序运行过程中,其值不会发生改变的量就是常量

2、分类

​ 1、字面值常量: 12 12.34

​ 2、符号性常量:只知道常量的名称,而不知道常量的值 public static final int MAX_VALUE = 100;

3、字面值常量

​ 1、整数类型 12 13

​ 2、小数类型 12.34 12.0

​ 3、布尔类型 表示是是非非的东西 true false

​ 4、字符类型 ‘a’ ‘b’ 使用单引号引起来的单个字符

​ 6、字符串类型 使用双引号引起来的字符序列 “张三”

​ 7、空常量 null 表示空

class Demo02_常量 {
    
    

	public static void main(String[] args) {
    
    
		//整数常量
		System.out.println(10);
		System.out.println(-100);

		//小数常量
		System.out.println(-12.34);
		System.out.println(13.0);
		
		//布尔常量
		System.out.println(true);
		System.out.println(false);

		//字符常量   使用单引号引起来的单个字符
		System.out.println('q');//q
		System.out.println('张');//张   汉字也是单个字符
		//System.out.println('ab');//报错误      ab是两个字符
		//System.out.println('');//报错    一个字符都没有
		System.out.println('	');//空格和制表符都是单个字符

		//字符串常量   使用双引号引起来的字符序列
		System.out.println("666");
		System.out.println("true");
		System.out.println("");
		System.out.println("bacdefdjfsdfsdsdfds");

		//空常量null
		//System.out.println("null");字符串常量

		/*
			你吃饭了吗      早饭  晚饭  午饭
		
			null        char[] 数组可以为null    String也可以为null
		*/
		
		//System.out.println(null);//报错  引用不明确
	}
}

变量

1、在程序运行过程中,其值会发生改变的量

2、定义的格式

​ 数据类型 变量名 = 变量值;

​ int i = 10;

刘德华 张学友 明星

4、本质:使用不变得变量名,去表示不断变化的数据

5、在内存中,开辟了一段空间,存储不断变化的数据

6、对变量重新赋值

​ 变量名 = 重新要赋的值;

​ i = 20;

7、变量在内存中的理解
在这里插入图片描述

class Demo03_变量 {
    
    

	public static void main(String[] args) {
    
    
		//定义一个变量
		int i = 10;
		System.out.println(i);//10
		//对变量重新赋值
		i = 20;
		System.out.println(i);//20

		/*j = 30;报错
		System.out.println(j);*/
		

	}
}

练习

1、定义两个整数int a = 10; int b = 20; 将两个变量交换值

class Demo04_变量练习 {
    
    
	
	//1、定义两个整数int a = 10; int b = 20;   将两个变量交换值
	public static void main(String[] args) {
    
    

		int a = 10;
		int b = 20;
		
		//用第三个变量  int c
		int c = a;
		a = b;
		b = c;
		
		System.out.println(a);
		System.out.println(b);
	}

	
}

变量的注意事项

1、变量是有作用域的

​ 作用域就是作用的范围

​ 作用范围就是所在最近的大括号

2、变量必须先声明才能使用

​ int a = 10; b = 10;

3、变量的声明和赋值可以分离开来

​ int a; 变量的声明

​ a = 10; 变量的赋值

4、同一个作用域不能定义相同的变量

​ int a

​ int a

5、一行可以定义多个变量

​ int a, b = 20, c,d = 40; 不建议这种方式定义多个变量

​ int a;

​ int b = 20;

​ int c ;

​ int d = 40;

class Demo05_变量的作用域 {
    
    

	public static void main(String[] args) {
    
    
		int a = 10;
		

		int b;
		//System.out.println(b);  报错    b没有初始化
		b = 20;
		System.out.println(b);

		int c = 20;
		//int c = 30;  变量不可以重复定义
		System.out.println(c);

		int d = 100, e = 200,f;
		System.out.println(d);
		System.out.println(e);
	}

	public void test() {
    
    
		//a是未定义的
		//System.out.println(a);
	}
}

java的数据类型

1、java是强类型语言,在声明变量的时候需要显式的说明数据类型,jvm才知道给变量分配多大的内存空间

2、分类

​ 1、基本数据类型:四类八种,是jdk已经提前定义好的,基本类型不能增加也不能减少,描述的就是数值本身

​ int a = 10

​ 2、引用数据类型:描述不是数值本身而是一个地址,引用数据类型是多个基本数据类型组成而成,描述的地址

3、基本数据类型 四类八种

​ 整数类型

​ byte 1个字节 8bit 1bit代表一个开关(两种可能 开和关) 2的8次方 -128-----127

​ short 2个字节 2的16次方 - 215-------215-1

​ int 4个字节 2的32次方 -2^31 ----------2^31 - 1

​ long 8个字节 2的64次方 -263---------231 - 1

​ 小数类型 IEEE754标准

​ float 4个字节 > long

​ double 8个字节 > float

​ 布尔类型

​ boolean 未知 true false

​ 字符类型

​ char 2个字节 =short

class Demo06_基本数据类型 {
    
    

	public static void main(String[] args) {
    
    
		
		//整数
		byte b = 10;
		short s = 20;
		int i = 100;
		long lo = 10000;
		System.out.println(b);
		System.out.println(s);
		System.out.println(i);
		System.out.println(lo);
		//小数类型
		//float f = 12.34;
		double d = 12.0;
		//System.out.println(f);
		System.out.println(d);

		//字符类型

		char c = 'a';
		System.out.println(c);

		//布尔类型
		boolean bo = true;
		boolean bo1 = false;
		System.out.println(bo);
		System.out.println(bo1);
		//boolean bo2 = "true"; 字符串类型不能赋值给boolean类型
	}
}

常量的默认类型

1、整数的常量默认类型是int类型,随便写出一个整数常量要在int的表示范围之内

​ int的表示范围:- 2147483648------2147483647

​ 如果超出了int的表示范围,可以使用long类型,在整数常量后面加上一个大写的L

​ 2147483648L

2、小数的常量默认类型是double类型,随便写出一个小数常量要在double的表示范围之内

​ 如果想要表示float类型的常量,在常量后面加上大写的F

​ float f = 12.34F;

class Demo07_常量的默认类型 {
    
    

	public static void main(String[] args) {
    
    
		//整数默认是int
		System.out.println(2147483647);
		//long类型的常量
		System.out.println(2147483648L);

		//小数的默认类型是double
		System.out.println(12.34);
		//float类型的常量
		float f = 12.34F;
		System.out.println(f);
	}
}

类型之隐式转换

1、在java中是存在计算的,两个类型进行计算,结果是大的类型

​ byte < short = char < int < long < float < double char不参与比较

2、int和int以下的类型进行计算结果是int类型

​ byte和byte进行计算,结果是int类型

3、int和int以上的类型进行计算,结果是大的类型

​ byte和long类型进行计算结果是long类型

class Demo08_隐式转换 {
    
    

	public static void main(String[] args) {
    
    
		byte b1 = 10;
		byte b2 = 20;
		//  byte和byte相加结果是int类型
		int i = b1 + b2;
		System.out.println(i);
		long l1 = 100;
		long l2 = b1 + l1;
		System.out.println(l2);
	}
}

类型之强制转换

1、小类型转成大类型,可以直接进行转换

​ long l = 100;

2、把大类型的数据转成小类型的数据会出现精度丢失,编译器不会直接进行转化,可以通过强制

3、格式

​ 数据类型 变量 = (要转换成的类型)要转换的数据;

​ long l = 100;

​ int i = l; 大类型转成小类型必须要进行强转

4、强转的过程中会出现跟生活中不符合的情况

class Demo09_强制转换 {
    
    

	public static void main(String[] args) {
    
    
		long l1 = 100;

		System.out.println(l1);

		long l2 = 200;
		//int i = l2;  不让直接转换,需要强转
		int i = (int)l2;
		System.out.println(i);

		int i1 = 130;
		byte b = (byte)i1;
		System.out.println(b);//-126
		/*
			二进制在计算机存储的   第一位是符号位   0 正数    1负数
			计算机是都以补码存在的
			原码  反码   补码
			正数  原码 = 反码 = 补码
			负数  反码 = 原码的符号位不变,其他位取反    
					补码 = 反码 + 1	
			
			00000000 000000000 00000000 10000010

			补码:10000010
			反码:10000001
			原码:11111110    - (2 + 4 + 8 +  16 +  32 + 64) = -126
		*/
		
		

	}
}

字符串类型

1、类型名称String

2、使用双引号引起来的字符序列,是一个引用类型

3、+代表字符串的拼接

4、一个字符串去拼接其他类型结果还是一个字符串

​ “张三” + 1 = “张三1”

class Demo10_字符串的拼接 {
    
    

	public static void main(String[] args) {
    
    
		String str = "张三";
		
		System.out.println(str + "1");
		System.out.println("6" + 6);//66
		System.out.println("6 + 6 = " + 6 + 6);//6 + 6 = 66
		System.out.println(6 + 6 + " = 6 + 6");//12 = 6 + 6
		System.out.println("6 + 6 = " + (6 + 6));//6 + 6 = 12

		int a = 6;
		int b = 6;
		//12a = 6,b = 612
		System.out.println(a + b + "a = " + a + ", b = " + b + (a + b));
	}
}

java中的运算符

1、分类

​ 1、算术运算符

​ 2、赋值运算符

​ 3、比较运算符

​ 4、逻辑运算符

​ 5、三元运算符

算术运算符

1、用来计算的运算符

2、+ - * / %

3、+

​ 表示整数

​ 表示字符串的拼接

​ 表示加法运算

4、/

​ 一个整数除以一个整数结果还是一个整数

​ 只要有一个是小数,结果就是小数 18 / 4 = 4

5、% 取余运算符 取模运算符

​ 1、求余数

​ 2、判断奇偶性

​ 3、判断是否被一个数整数

class Demo11_算术运算符 {
    
    

	public static void main(String[] args) {
    
    

		//除法
		System.out.println(10 / 4);//2
		System.out.println(10.0 / 4);//2.5
		// %取余
		System.out.println(10 % 4);//2
		System.out.println(91 % 7);//0
	}
}

三元运算符

1、可以操作三个表达式的运算符叫做三元运算符

2、格式

​ 表达式1 ? 表达式2 :表达式3

3、执行流程

​ 表达式1必须是boolean类型,返回的结果要么是true,要么是false

​ 表达式2和表达式3可以是任意类型

​ 如果是true的话,表达式2就作为整个三元表达式的结果

​ 如果是false的话,表达式3就作为整个三元表达式的结果

class Demo12_三元表达式 {
    
    

	public static void main(String[] args) {
    
    

		System.out.println(false ? "张三" : "李四");
		// == 比较两个数据是否相等,返回是boolean类型
		System.out.println(91 % 7 == 0 ? "王五" : "赵六");
	}
}

猜你喜欢

转载自blog.csdn.net/lizicheng1996/article/details/113007894