JAVA基础篇

java中的三种注释

java一共有三种注释方式,单行注释//,多行注释 /* /,文档注释/* */

//编译时候: 检查代码的语法
//字节码文件与平台无关的 

//注释:  解释说明的文字
//重要性: 代码中必须存在的,必有的内容
/*多行注释*/
/**文档注释*/
/*
	注释的分类:
		单行注释
			颜色: 绿色
			作用域: 有效作用的范围
				从//开始的当前行
			嵌套: 可以嵌套单行,不可以嵌套文档和多行注释
			位置: 行的上面或者行尾
		多行注释
			颜色: 绿色
			作用域: 多行有效
			嵌套: 可以嵌套单行,不可以嵌套文档和多行注释
			位置: 类的上面|方法的上面
		文档注释
			颜色: 蓝黑色
			作用域: 多行有效
			嵌套: //可以嵌套单行,不可以嵌套文档和多行注释
			位置: 类的上面|方法的上面
		
		多行和文档注释的区别:
			1.文档注释,在使用工具的时候(idea..),在方法的上面会提供方法参数的注释
			2.文档注释的内容,可以保留在对类生成的API文档中
				API文档: 说明文档  javadoc Demo01.java
		
		注意: 所有的注释都不会被编译
		      注释不会存在于class文件中
*/
public class Demo01{ //类体的开始
	//主方法
	public static void main(String[] args){//方法的开始
		
		System.out.println("帅哥");
		
	}//方法的结束
	
}//类的结束

在这里插入图片描述

  • 一个java文件中可以定义多个类,但是类名不能相同
  • 被public修饰的类只能存在一个,并且要求与文件名保持一致
  • java是以类为单位的
  • 修改了源代码一定要重新编译
  • javac编译的时候: javac Demo02.java 编译Demo02文件中所有的类,同时检查代码的语法,编译出多个class文件,class文件以类名为单位
  • java命令解释执行: java 类名 java命令后面自动匹配class文件,所有可以省略名,因为class文件是以类为单位的
  • 一个类中不能存现多个主方法,程序只能存在一个入口
//公共的 类 类后面跟名 收字母大写
public class Demo02{ //类的开始
	//主方法: 作为程序的入口
	//主方法中的代码会逐行的执行
	public static void main(String[] args){//方法的开始
		
		System.out.println("Demo02");
		
	}//方法的结束
	
}//类的结束

class Demo{ //可以多个类
	
	public static void main(String[] args){//方法的开始
		
		System.out.println("Demo");
		
	}//方法的结束
	
}//类的结束

在这里插入图片描述

关键字 :

​ Java关键字是Java语言保留供内部使用的特殊单词,已经在使用 public公共的 class
​ 关键字会变色
​ 关键字全部小写

保留字 :

​ 是Java语言保留供内部使用的特殊单词,但是现在还没有被使用,所以叫做保留 goto const

注意: 关键字和保留字都不能被使用

标识符:

​ 就是给类,接口,方法,变量等起名字的字符序列。一切起名字地方的这个名字就是标识符

​ 标识符得到命名规则 : 必须遵守不遵守就报错
​ 组成: 只能有字母,数字,下划线_,美元符号$任意组合而成,但是数字不能开头
​ 严格区分大小写
​ 关键字与保留字不能作为标识符使用

关键字 :

Java关键字是Java语言保留供内部使用的特殊单词,已经在使用 public公共的 class
关键字会变色
关键字全部小写

保留字 :

是Java语言保留供内部使用的特殊单词,但是现在还没有被使用,所以叫做保留 goto const

注意: 关键字和保留字都不能被使用

标识符的命名规范 : 应该遵守,但是不遵守不报错
见名知意
驼峰命名原则
包(文件夹) : 全部小写 层级之间使用.连接 shang.hai -> shang文件夹中存在一个hai文件夹
类名|接口名 : 每个单词首字母大写 ShangHai
方法名|变量名 : 第一个单词全部小写,第二个单词首字母大写 shangHai
常量名 : 全部大写,每个单词之间使用_连接 SHANG_HAI

变量

/*
	变量: 可变的量 存储单个数据
		在java程序执行过程中,其值可以发生改变的量
		相当于造盒子,盒子就是变量   盒子的名字就是变量名   盒子中存储的数据就是变量值
			停车位   位置是变量   停车位的编号就是变量名   车就是数据
			一块内存空间	 空间就是变量   空间中放的数据就是变量值  根据存储数据为空间起名字->变量名
		java中定义一个变量,就是在内存中开辟一块空间,用来存储指定类型的数据
			空间的大小由数据决定 
		
		变量 : 指的是一个块空间,作用就是为了存储数据
		数据类型: 是数据就存储对应的数据类型,不同的数据类型代表不同的内存空间
			整数int  double小数   字符类型char    字符串String""   boolean布尔
			
		定义: 
			声明的同时赋值
				数据类型 变量名 = 赋值;
			
			先声明后赋值
				数据类型 变量名; 声明
				变量名 = 赋值;   赋值
				
		
		定义变量的注意事项:
			变量的名字 : 标识符的命名规则|规范
			变量的类型 : 根据要存储的变量值进行选择
			变量的值 : 与变量的类型保持一致
		
		
		
		注意: 变量可以赋值为一个数据值,可以赋值为一个表达式,但是都是最终得到一个结果数据然后才能赋值给变量
			  一条语句结束必须添加;
*/
public class VariableDemo04{ 
	public static void main(String[] args){
		//声明一个变量,用来存储学生的年龄 18
		int age = 18;
		
		System.out.println(age);  //打印一个名字叫做age的变量空间中存储的数据值
		
		//声明 一个变量存储学生的名字
		String name;
		//名字为张三
		name="张三";
		System.out.println(name); 
		
		//张三改名为李小龙
		name = "李小龙";
		System.out.println(name); 
		
		//同时声明多个变量
		int x, y ,z;
		x = 1;
		y=z=2;
		System.out.println(x); 
		System.out.println(y); 
		System.out.println(z); 
		
		//定义了char类型的变量
		char ch1='a',ch2='b';
		System.out.println(ch1); 
		System.out.println(ch2); 
	}
	
}

变量

​ 作用域: 从变量的声明开始,到包含它的离它最近的}结束
​ {} -> 自成作用域

注意:

​ 同一作用域范围内,变量名不能重复
​ 变量的值一旦修改不可恢复

分类:

​ 局部变量 : 在方法中|语句块中{} 定义的变量就为局部变量
​ 使用之前必须已经声明并且已经赋值
​ 在java中局部变量不存在默认值
​ 成员变量 : 定义在类中方法外
​ 整数:0 小数:0.0 字符:’ ’ 字符串:null 布尔: false

public class VariableDemo05{ 
	//成员  类中方法外
	int a = 10;
	int b;

	public static void main(String[] args){
		//局部
		//声明一个变量
		int i;
		//System.out.println(i); 局部没有默认值
		i = 5;
		
		i = 10;
		
		if(true){
			int j = 15;
		}
		
		//System.out.println(j);
	}
	
	//成员
	
	public static void haha(){
		//System.out.println(i); 错误: 找不到符号
	}
	
	//成员
	
}
数据类型:

​ 基本数据类型 4类八种
​ 计算机中基础存储单位就是字节 1byte = 8bit比特位
​ 整型(整数)
​ byte 字节型 1个字节 8位 [-128,127] 8个2相乘最近除以二(判断正负)
​ short 短整型 2个字节 16位 [-32768,323767] 正负3万
​ int 整型 4个字节 32位 ±21亿
​ long 长整型 8个字节 64位 最大

注意:

​ 在java中整 数的字面常量值默认是int类型
​ 需要在long类型数据的后面添加l|L(推荐)
​ 使用最多的整型为int类型

浮点型(小数)

​ float 单精度 能够表示小数点后7位左右
​ double 双精度 能够表示小数点后15位左右

​ 浮点类型运算可能不精确
​ java中小数的字面常量值默认double类型
​ 推荐使用double类型
​ 表示float类型的小数在数据的后面添加f\F

字符型
char 字符型

​ 如何表示字符型的数据:
​ 通过’'中包含一个字符,有且仅有一个字符
​ 0~65535之间的整数 : 字符集 unicode

布尔型

​ boolean true|false 1位

引用数据类型 3中

​ 类 接口 数组[]

public class DataType06{ 
	//组方法
	public static void main(String[] args){
	    //定义一个变量,用来存储班级同学的个数,每个班级不能超过50人
		byte num = 20;  //num 数
		
		//定义年龄
		short age = 70;  // age 年龄
		System.out.println(num);
		System.out.println(age);
		
		//月薪
		int salary = 10000;  //salary 薪资
		System.out.println(salary);
		
		//余额
		long money = 100000000001L;  //moeny  钱
		System.out.println(money);
		
		//double
		double d = 1.23456789876;   //默认为double 保留16为小数
		float f = 1.23456789876f;	//强制转换为 float  小数后面加F/f
		
		System.out.println(f);
		
		//char
		char ch1 = ' ';		//只能是一个可以为空 只能是一个
		char ch2 = '1';		//可以为数字1 只能是一个
		char ch3 = '中';	//可以为中文,只能是一个
		char ch4 = '*';		//可以是特殊服  *
		char ch5 = 97;		//可以是 (ASCLL 字符代码表)阿斯科码对照表  阿斯科码中a=97 字符a十进制就是97
		char ch6 = 65535;
		System.out.println(ch1);
		System.out.println(ch2);
		System.out.println(ch3);
		System.out.println(ch4);
		System.out.println(ch5);
		System.out.println(ch6);
		
		//boolean
		boolean flag = 1>0;
		System.out.println(flag);
	}
	
}

在这里插入图片描述

数据类型的转换 (重点!!!)
自动类型提升

​ 从小->大

强制类型转换

​ 从大->小
​ 小范围类型 变量名 = (小范围类型)大范围类型数据;

注意:

​ =是自右向左运算的符号
​ 如果运算时,存在多种类型的数据参与运算,最终的结果类型提升为参与运算中最大的类型,如果最大类型<int类型,结果自动提升成为int
​ char类型参与运算,先转为十进制的整数,再运算
​ 从小到大
​ byte ->short -> char -> int ->long -> float ->double

public class DataTypeCon07{ 

	public static void main(String[] args){
		//自动类型提升
	    byte b = 100;
		short s = b;
		
		
		//强制类型转换
		int i = (int)100L;
		System.out.println(i);
		
		byte b2 = (byte)i;
		System.out.println(b2);
		
		//自动类型提升
		long l = b+s+i;
		System.out.println(l);
		
		float f = (float)1.5;
		//取整
		int i2 = (int)f;
		System.out.println(f);
		System.out.println(i2);
		
		double d = f+l;
		
		float f2 = l;
		
		//先运算,再强转,最后再赋值
		short s3 = (short)(b+s); //()+()名字规范
		
		//short与int类型运算,结果为int类型,然后再抢转为short,再赋值
		short s4 = (short)(s+1);
		
		//char
		char ch = 'a';
		System.out.println(ch+1);
		
		char ch2 = 'a'+1;
		System.out.println(ch2);  //  ASCLL (字符代码表)阿斯科码对照表  阿斯科码中a=97 字符a十进制97 97+1=98 阿斯科码b=98
		
		//强转
		char ch3 = (char)(ch+1);
		System.out.println(ch3); 
		
		//圆环型
		byte by = (byte)128;
		System.out.println(by); 
		
		/*
		byte b = 127;
		short s = 30000;
		int i = 2100000000;
		long l = 10000000000L;
		int i2 = (int)(b + s +i + l);
		System.out.println(i2);*/
	}
	
}

在这里插入图片描述

随机数

(数据类型)(最小值+Math.random()*(最大值-最小值+1))

Math 数学类
java 提供的类,包含很多数学操作功能

​ Math.random() 生成随机数
​ [0.0,1.0) 随机小数 -> double

​ 公式: 左闭右闭门
​ [min,max]随机整数 (int)(Math.random()(max-min+1)+min)
​ [min,max)随机整数 (int)(Math.random()
(max-min)min)
​ []左闭右闭门闭区间可以取到, ()左开右开开区间不能取到

​ [)左闭区间可以去到,右开区间不能取到

​ (]左开区间不能去到,右闭区间可以取到

public class Demo08{ 

	public static void main(String[] args){
		double d1 = Math.random();
		System.out.println(d1);
		System.out.println(Math.random());
		System.out.println(Math.random());
		System.out.println(Math.random());
		System.out.println(Math.random());
		System.out.println(Math.random());
		
		//[1,26]  min = 1  max=26
		System.out.println((int)(Math.random()*(26-1+1)+1));
		//[5,7]
		System.out.println((int)(Math.random()*(7-5+1)+5));
		System.out.println((int)(Math.random()*(7-5+1)+5));
		System.out.println((int)(Math.random()*(7-5+1)+5));
		System.out.println((int)(Math.random()*(7-5+1)+5));
		System.out.println((int)(Math.random()*(7-5+1)+5));
		
		//[3,50)-> min3 max50    (2,50)->min2+1  max50
		System.out.println((long)(Math.random()*(50-3)+3));
	}
	
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值