Day-2 Java基础语法
注释
- 单行注释: //
- 多行注释: /* ………… */
- 文档注释: /** *…… *…… */
标识符

- 所有标识符都应该以字母(A-Z或者a-z),美元符($)、或者下划线(_)开始。
- 首字母之后可以是字母(A-Z或者a-z),美元符($)、或者下划线(_)或数字的任意字符组合。
- 不能使用关键字作为变量名或者方法名。
- 标识符是大小写敏感的。Man和man是不一样的。
- 合法标识符举例:age、$salary、_value-、__1_value
- 非法标识符举例:123abc、-salary、#abc
- 可以使用中文命名,但不建议使用中文和拼音命名。
数据类型
强类型语言
- 要求变量使用严格符合规定,所有变量必须先定义后才能使用
弱类型语言
Java的数据类型分为两大类
-
基本数据类型(primitive type)
- 数值型
- 整数类型(byte,short,int,long)
- 浮点型(float,double)
- 字符型(char)
- 布尔型(boolean) -
引用数据类型(reference type)
* 类(class)
* 接口(interface)
* 数组([])

注意事项:
- 用long定义整数时,需在整数后加L,用float定义浮点数时,需要在浮点数后加F。
- 整数拓展,在java中表示在数字前加0b表示二进制,加0表示八进制,加0x表示十六进制。
- 浮点数扩展,银行业务怎么表示? float为单精度浮点型,本身即是接近不等于,而double为双精度浮点型。建议使用BigDecimal数学工具类。
float f =0.1F; //0.1
double d = 1.0/10; // 0.1
System.out.println(f==d); //false
float d1 = 23651542154f;
float d2 = d1+1;
System.out.println(d1==d2); //true
- 所有字符的本质还是数字,如a=97,A=65,用Unicode编码,U0000~UFFFF。
什么是字节
定义:变量是内存中的小容器,用来存储数据。那么计算机内存是怎么存储数据的呢?无论是内存还是硬盘,计算机存储设备的最小信息单元叫“位(bit)”,我们又称之为“比特位”,通常用小写的字母b表示。而计算机最小的存储单元叫“字节(byte)”,通常用大写字母B表示,字节是由连续的8个位组成。
常用存储单元关系
1B= 8b
1KB = 1024B
1MB = 1024KB
1GB = 1024MB
1TB = 1024GB
类型转换
- 定义
数据类型的转换是在所赋值的数值类型和被变量接收的数据类型不一致时发生的,它需要从一种数据类型转换成另一种数据类型。 - 分类
- 隐式转换
- 定义
- 在运算过程中,由于不同的数据类型会转换成同一种数据类型,所以整型、浮点型以及字符型都可以参与混合运算。自动转换的规则是从低级类型数据转换成高级类型数据。
- 转换规则
- 数值型数据的转换:byte→short→int→long→float→double。
- 字符型转换为整型:char→int。
- 转换条件
- 自动类型转换的实现需要同时满足两个条件:①两种数据类型彼此兼容,②目标类型的取值范围大于源数据类型(低级类型数据转换成高级类型数据)。例如 byte 类型向 short 类型转换时,由于 short 类型的取值范围较大,会自动将 byte 转换为 short 类型。
- 显式转换
- 定义
- 当两种数据类型不兼容,或目标类型的取值范围小于源类型时,自动转换将无法进行,这时就需要进行强制类型转换。
- 语法格式
- 目标类型 变量名 = (目标类型) (被转换的数据);
- 举例:int b = (byte)(a + b); - 注意
- 如果超出了被赋值的数据类型的取值范围得到的结果会与你期望的结果不同
- 不建议强制转换,因为会有精度的损失。
变量
- 变量:就是变化的量
- Java是一种强类型语言,每个变量必须声明其类型
- Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域
注意事项
- 每个变量都有类型,类型可以是基本类型,也可以是引用类型
- 变量名必须是合法的标识符
- 变量声明是一条完整的语句,因此每一个声明都必须以分号结束
变量作用域
- 类变量:static 变量类型 变量名=……
- 实例变量:变量类型 变量名 从属于对象:如果不自行初始化,这个类型的默认值
- 局部变量:必须声明和初始化值
常量
- 常量(constant):初始化(initialize)之后不能再改变值!不会变动的值。
- 所谓常量可以理解为一种特殊的变量,他的值被设定后,在程序运行过程中不允许被改变。
- 常量名一般使用大写字母。
final 常量名=值;
final double PI=3.14;
- 所有变量,方法,类名:见名知意
- 类成员所有变量:首字母小写和驼峰原则:monthSalary;除了第一个单词外,后面的单词字母大写: lastName
- 局部变量:首字母小写和驼峰原则
- 常量:大写字母和下划线:MAX_VALUE
- 类名:首字母大写和驼峰原则:Man,GodMother
- 方法名:首字母小写和驼峰原则:run(),runRun()
- 修饰符,不存在先后顺序
final static double PI=3.14;
static final double PI=3.14; //这两句是同一个意思
运算符
- 赋值运算符:以符号“=”表示,是一个二目运算符。左边必须是一个变量,右边可以是一个常量、变量或表达式,且多个赋值运算符时,自右向左运行
- 算数运算符:有乘(“*”)、除(“/”)、取余(“%”’),加(“+”),减(“-”)
- 自增和自减运算符:是单目运算符,可放到操作数之前,也可放到操作数之后,但是操作数必须是一个整型或浮点型;b= a++,先给b赋值,再自增;c= ++a,先自增,再给c赋值
- 比较运算符:">","<","==","<=",">=","!=",只会返回True或False
- 逻辑运算符:&&(逻辑与)、||(逻辑或)、!(逻辑非)。区别:其中 && 和 || 是二目运算符,且从左向右运行,而!是单目运算符,从右向左运算,逻辑运算有短路运算,即若是前半部分能够确定,后半部分不再执行。
- 位运算符:“按位与&”,“按位或|”,“按位取反~”,“按位异或^”,“移位操作,左移<<,右移>>,无符号右移>>>”。注意一般情况下,一个数左移多少位相当于这个数乘以2的多少次方,不过有一个情况需要考虑,
就是当最左端的数由0以成1时,结果会变化;一般情况下当操作数为正整数时,右移相当于右移几次就除以2的几次方;除了“按位与”和“按位或”,其他只能用于处理整数的操作数。如何计算2*8最快,采用位运算符即2<<3 - 字符串连接符 + ,String
int a = 10;
int b = 20;
System.out.println(a+b); //30
System.out.println(""+a+b); //1020
System.out.println(a+b+""); //30
System.out.println(a+b+""+a); //3010
- 三元运算符:格式(条件式?值1:值2)
//运算规则为:若条件式的值为true,则整个表达式取值1,否则取值2
boolean b=20<45?true:false;//当20<45为真时,取true ,为假时取false
//相当于if……else
boolean a;
if(20<45)//将20<45作为判断条件
a=true//条件成立将true赋给a
else:
a=false//条件不成立将false赋给a
- 若有long型整数和int型相加结果为int型,其余不同整型相加均为int型。
优先级()

包机制
- 为了更好的组织类,Java提供了包机制,用于区别类名的命名空间
- 包语句的语法格式为:
package pkg1[. pkg2[. pk3...]];
一般利用公司域名倒置作为包名;
为了能够使用某一个包的成员,我们需要在Java程序中明确导入该包。使用'import'语句可以完成此功能
import pkg1[. pkg2[. pk3...]];
JavaDoc
- javadoc -encoding UTF-8 -charset UTF-8 Java文件名.java
- 在IDEA中生成JavaDoc:在顶部Tool工具栏中有Generate JavaDoc,并在other command line arguments中加入-encoding utf-8 -charset utf-8。
浙公网安备 33010602011771号