Java基础语法
1.注释
- 平时我们编写代码,在代码量比较少的时候,还可以看懂自己写的,但是当项目结构一旦复杂起来,我们就需要用到注释了。
- 注释并不会被执行,是给我们写代码的人看的
- 书写注释是一个非常好的习惯
- Java中的注释有三种:
- 单行注释,格式://
- 多行注释,格式:/**/
- 文档注释,格式:/***/
2.标识符
访问控制 | private | protected | public | ||||
---|---|---|---|---|---|---|---|
类,方法和变量修饰符 | abstract | class | extends | final | implements | interface | natice |
new | static | strictfp | synchronized | transient | volatile | ||
程序控制 | break | continue | return | do | while | if | else |
for | instanceof | switch | case | default | |||
错误处理 | try | catch | throw | throws | finally | ||
包相关 | import | package | |||||
基本类型 | boolean | byte | char | double | float | int | long |
short | null | true | false | ||||
变量引用 | super | this | void | ||||
保留字 | goto | const |
【注意:】Java所有的组成部分都需要名字。类名、变量名以及方法名都被称为标识符!!!
标识符注意点
- 所有的标识符都应该以字母(A-Z或者a-z),美元符($)、或者下画线(_)开始
- 首字母之后可以老师字母(A-Z或者a-z),美元符($)、下画线(_)或数字的任何字符组合
- 不能使用关键字作为变量名或方法名
- 标识符是大小写敏感的
- 合法标识符举例:age、$salary、_value、__1_value
- 非法标识符举例:123abc、-salary、#abc
public static void main(String[] args){
String 王者荣耀 = "祖安人民";
System.out.println(王者荣耀);
}
- 可以使用中文命名,但是一般不建议这样去使用,也不建议使用拼音,很Low
3.数据类型
- 强类型语言
- 要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用
- 弱类型语言
- 要求变量的使用不需要符合规定,所有变量都必须先定义后才能使用
- Java的数据类型分为两大类
- 基本类型(primitive type)
- 数值类型
- 整数类型:
- byte占1个字节范围:-128~127
- short占2个字节范围:-32768~32767
- int占4个字节范围:-2147483648~2147483647
- long占8个字节范围:-9223372036854775808~9223372036854775807
- 浮点类型(小数点):
- float占4字节
- double占8个字节
- 字符类型char占2个字节
- 整数类型:
- boolean类型:占1位其值只有true和false两个
- 数值类型
- 引用类型(reference type)
- 类
- 接口
- 数组
- 基本类型(primitive type)
PS:什么是字节
-
位(bit):是计算机 内部数据 存储的最小单位,11001100是一个八位二进制数。
-
字节(byte):是计算机中 数据处理 的基本单位,习惯上用大写B来表示,
-
1B(byte,字节)= 8bit(位)
-
字符:是指计算机中使用的字母、数字、字和符号
-
1bit表示1位
-
1Byte表示一个字节1B=8b。
-
1024B=1KB
-
1024KB=1M
-
1024M=1G
4.类型转换
- 由于Java是强类型语言,所以要进行有些运算的时候的,需要用到类型转换。
低 --------------------------------> 高
byte,short,char-> int-> long-> float -> double
- 运算中,不同类型的数据先转换为同一类型,然后进行计算。
- 强制类型转换
- 自动类型转换
5.变量
- 变量就是可以变化的量!
- Java是一种强类型语言,每个变量都必须声明其类型
- Java中变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。
type varName [=value] [{,varName[=value]}];
//格式: 数据类型 变量名 = 值; 可以使用逗号隔开来声明多个同类型变量。
【注意事项】
- 每个变量都有类型,类型可以是基本类型,也可以是引用类型
- 变量名必须是合法的标识符
- 变量声明是一条完整的语句,因此每个变量声明都必须以分号结束
变量作用域
-
类变量
- 访问:实例变量是通过定义类的对象来访问。类变量可以通过类或类对象来访问。
- 生存周期 :实例变量与类对象生存周期共存亡。类变量与类共存亡。
- 变量修改:多个对象指向不同的实例变量堆内存,即实例变量的值只与对象相关。多个对象指向同一个类变量的堆内存,即类变量的值与类对象无关,为最后一次修改的值。
-
实例变量
-
局部变量
-
定义在方法中的变量都是局部变量(main方法也是方法,所以定义在main方法中的变量也是局部变量)。
-
生存时间:局部变量的生存时间和方法的生存时间一致,调用该方法声明该局部变量并初始化的时,该局部变量被创建并分配内存空间;直到该方法调用结束局部变量也就结束了;
-
创建位置:局部变量是创建在栈内存中的。
-
public class Variable{
static int allCicks=0; //类变量
String str="Hello world"; //实例变量
public void method(){
int i=0; //局部变量
}
}
变量的命名规范
- 所有变量、方法、类名:见名知意
- 类成员变量:首字母小写和驼峰原则:monthSalary
- 局部变量:首字母小写和驼峰式原则
- 常量:大写字母和下划线:MAX_VALUE
- 类名:首字母大写和驼峰原则:Man,GoodMan
- 方法名:首字母小写和驼峰原则:run(),runRun()
6.常量
- 常量(Constant):初始化(initializa)后不能再改变值!不会变动值。
- 所谓常量可以理解成一种特殊的变量,它的值被设定后,在程序运行过程中不允许被改变
final 常量名=值
final double PI=3.14;
- 常量名一般使用大写字符。
7.运算符
- Java语言支持如下运算符:
- 算术运算符:+、-、*、/、%、++、--
- 赋值运算符:=
- 关系运算符:>、<、>=、<=、==、!=instanceof
- 逻辑运算符:&&、||、!
- 位运算符:&、|、^、~、>>、<<、>>>(了解!!!)
- 条件运算符:? :
- 扩展赋值运算符号:+=、-=、*=、/=
Ps :补充知识
-
在一个运算中存在一个long类型的数,结果都为long类型;
-
同理 :在一个运算中存在一个double类型的数值,结果都为double类型;
-
没有long类型的数值,结果都为int;
-
JAVA运算优先级:
运算符 | 结合性 |
---|---|
[] 、 ()、 (方法调用) | 从左向右 |
!、 ~、 ++、 --、+(一元运算符)、-(一元运算) | 从右向左 |
*、/、% | 从左向右 |
+、- | 从左向右 |
<<、>>、>>> | 从左向右 |
< 、<=、 >、 >= instanceof | 从左向右 |
==、 != | 从左向右 |
& | 从左向右 |
^ | 从左向右 |
| | 从左向右 |
&& | 从左向右 |
|| | 从左向右 |
?: | 从右向左 |
= | 从右向左 |
示例:
public class stlye
{
public static void main(String[] args)
{
int a=10,b=6;
System.out.println("改变之前的数:a="+a+",b="+b);
a-=b++;
System.out.println("改变之后的数:a="+a+",b="+b);
}
}
运算结果:
改变之前的数:a=10,b=6
改变之后的数:a=4,b=7
因为b++运算中先执行++,再返回后置++运算表达式(b++)的返回值(6)给-=运算符。
在这个程序中a-=b++等于a=a-b++=10-6,所以a=4。
8.包机制
- 为了更好地组织类,Java提供了包机制,用于区别类名的命名空间。
- 包语句的语法格式为:
package pkg1[.pkg2[.pkg3...]];
-
一般利用公司的域名倒置作为包名;
例如:www.baidu.com 创建包的时候:com.baidu.www baike
-
为了能够使用某一个包的成员,我们需要在Java程序中明确导入该包。使用 ”import“ 语句可以完成此功能
import package1[.package2...].(classname|*)
9.Java Doc
格式:
javadoc - encoding UTF-8 -charset UTF-8 [文件名.java]
encoding:
编码格式
charset
: 字符级编码
- javadoc 命令是用来生成自己API文档的
- 参数信息
- @author 作者名
- @version 版本号
- @since 指明需要最早使用的jdk版本
- @param 参数名
- @return 返回值情况
- @throws 异常抛出情况