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));
}
}