一,类
//测试:一个java文件中是否可以存在多个类?
//答案:一个java文件中可以存在多个类,但是被public修饰的类只能有一个,这个类的类名要与文件名保持一致
//如果一个java文件中有多个类,编译的时候会出现多个class文件,因为java是类为单位的
public class Demo01{
//主方法
//程序的入口,java命令解释执行的时候会找主方法,逐行执行主方法中的内容
public static void main(String[] args){
//换行: 光标从这一行的行尾移动到下一行的行首
System.out.print(“hahahaha”);
System.out.print(“hehehe”);
}
//一个类中可以存在多个方法,但是主方法只能有一个
public static void haha(String[] args){
//换行: 光标从这一行的行尾移动到下一行的行首
System.out.print(“123”);
}
}
class Demo{
public static void main(String[] args){
//换行: 光标从这一行的行尾移动到下一行的行首
System.out.print("demo");
}
}
二,注释
//单行注释
/多行注释/
什么是注释?
解释说明的文字
注释的作用:
1.对代码的解释说明
2.便于后期维护
注释的分类:
单行注释:
作用域: 只在当前行有效
注释的位置: 行的上面或者行尾
颜色: 绿色
嵌套关系: 可以嵌套单行不可以嵌套多行
多行注释:
作用域: 多行内容有效
注释的位置:类的上面或者方法的上面
颜色:绿色
嵌套关系:可以单行,不可以嵌套多行和文档注释
文档注释:
作用域:多行内有效
注释的位置:类的上面或者方法的上面
颜色:蓝色
嵌套关系://可以单行,不可以嵌套多行和文档注释
可以存在与对类生成的api文档中,使用javadoc命令对类生成api文档(java的说明手册)
注意:注释不会被Java编译器编译
三,标识符
在java中所有起名字地方的名字都是标识符
标识符的命名规则:
1.数字,字母,下划线_,美元符号$任意组合而成,数字不能开头
2.严格区分大小写
3.关键字不能作为标识符使用
标识符的命名规范:
1.见名之一
2.驼峰命名原则
包: 全部小写
单级包:shangxuetang
多级包:每一个级别之间使用.分隔 shang.xue.tang
类|接口: 每个单词的首字母大写 ShangXueTang
方法|变量: 第一个单词全部小写,后面的每个单词首字母大写 shangXueTang
常量: 全部大写,多个单词之间使用_分隔 SHANG_XUE_TANG
关键字和保留字:
关键字:
在java中有一些词java有自己的用法和用途,这些词关键字
工具中有特别颜色的显示
关键字都是小写
保留字: const goto
在java中有一些词java将来可能有自己的用法和用途,这些词保留字
一般说关键字就包含保留字
四,常量
常量:
程序运行过程中,其值不会发生改变的量
分类:
自定义常量:被final关键字修饰的变量为常量
字面值常量:
整数常量 : 0 100 -3 ...
小数常量 : 1.1 -3.4...
字符串常量 : "因为" "123" "~" ...
字符常量 : 's' '1' '~' ' '...
布尔常量 : true false
空常量: null
五,变量
变量: 可变的量
在程序运行过程中,其值可能会发生改变的量
在内存中开辟一个块内存空间,用来存放之类类型的数据
语法:
数据类型 变量名 = 变量值 ; ---声明的同时赋值
常用的数据类型: int整数 double String字符串 char boolean
数据类型 变量名; ---先声明
变量名 = 变量值 ; ---后赋值
一行中同时声明多个变量
=是java中唯一一个自右向左运算的符号
变量关注的点:
数据类型
变量名(标识符)
值,数据类型要一致
作用域 {}
统一作用域内部变量不能同名
变量在使用时候的注意事项(1.赋值 2.打印 3.运算):
1.变量必须已声明
2.变量必须已经赋值
3.在变量的作用域返回内部使用变量
4.变量同一时刻只能存储一个值
变量的分类:
成员变量|实例变量: 定义在类中方法外|语句块外
只声明不赋值,有默认值
整数0 小数0.0 字符串null 布尔false 字符型' '
局部变量: 定义在类中方法外|语句块中
作用域:变量的声明开始,到包裹变量的离变量最近的}之间的距离
没有默认值,必须声明并且赋值使用
六,数据类型
数据类型:
1.基本数据类型:四类八种
整型
表示名称 表现形式 大小 范围
字节型 byte 1个字节 8位 [-128,127]
短整型 short 2个字节 16位 [-32768,32767]
整型 int 4个字节 32位 ±21亿
长整型 long 8个字节 64位 非常大
整数的字面常量值默认类型为int,给long类型的变量赋值,需要在数据的后面添加L/l,推荐使用L
浮点型
表示名称 表现形式 大小 精度
单精度 float 4个字节 小数点后6位左右
双精度 double 8个字节 小数点后15位左右
小数的字面常量值默认double类型,在数据的后面添加一个F/f
浮点类型因为存储不够精确,不会使用浮点类型进行精确的运算
表示小数完全可以,如果想要非常精确的计算表示小数,推荐你使用java提供的引用数据类型
字符型
表示名称 表现形式 大小 范围
字符型 char 2个字节 0~65535
字符型的表现形式:
''中包裹单个字符 'a' '号' '1' '*' ' '
0~65535之间的整数可以表示字符型,对应Unicode字符集 去简单的ASCII中查看
如果字符型类型的数据才加四则运算,会先转为十进制的数再去运算
布尔型
boolean 1位 true|false
经常使用在比较运算中
2.引用数据类型: 类 接口 数组
七,数据类型之间的相互转换
数据类型转换
1.布尔类型不参与类型转换
2.
自动类型转换
小范围数据类型->大范围数据类型
byte,short,char 才参与运算的时候,如果没有int或比int更大的类型的数据参与运算,结果类型会提升成为int类
如果有,结果为自动提升成为最大的数据类型
如果在byte,short,char类型赋值的时候,在期范围之内的常量能够成功赋值
强制类型转换
大范围数据类型->小范围数据类型,有可能有损失精度
小范围数据类型 变量 = (小范围数据类型)大范围数据类型;
byte short char int long float double
public class DataTypeCon07{
public static void main(String[] args){
byte b1=100;
short s1=b1;
System.out.println(s1);
int i1=b1+s1;
System.out.println(i1);
double d1=i1+b1+s1;
System.out.println(d1);
long l1=100;
float f1=l1;
System.out.println(f1);
double d2=f1+1;
System.out.println(d2);
final int i2=100;
short s2=i2;
System.out.println(s2);
char ch=i2+1;
System.out.println(ch);
//强制类型转换
int i3=(int)100L;
System.out.println(i3);
short s3=(short)i1;
System.out.println(s3);
//取整:值保留整数
double d4=123.456;
int i4=(int)d4;
System.out.println(i4);
short s5=(short)(s1+1);
System.out.println(s5);
char ch2=(char)(ch+1);
System.out.println(ch2);
System.out.println('a'+1);
char ch3='a'+1;
System.out.println(ch3);
//圆环型计算结果
byte byte1=(byte)130;
System.out.println(byte1);
//年薪
int money=1000000000;
int month=12;
long sal=(long)money*month;
System.out.println(sal);
}
}