JAVA基础语法笔记
1 注释、标识符、关键字
1.1 注释
- 养成写注释的习惯
- 注释不执行
- 单行注释 line comment://注释
- 块注释 block comment:/注释/
- 文档注释 javadoc:/**开头,*/结尾,可以加参数
1.2 标识符
- 以大小写字母、美元符号($)或者下划线(_)开头
- 大小写敏感
- 避开关键字
tips:标识符用规范的英文单词含义
2 数据类型
java是强类型语言,变量先定义后使用,安全性高
2.1 基本类型
//整数
int num1=10;
byte num2=20;
short num3=30;
long num4=30L;
//小数
float num5=50.32F;
double num6=3.1415926;
//字符
char name='w';
//布尔值
boolean flag=true;
tips:
- long类型和float类型在数字后有首字母大写后缀。
- char类型只存储一个字符,用单引号
- String作为字符串是类,不是关键字,String name=“www”;
2.2 引用类型
除了常用八大基本类型以外,主要包括类、接口和数组。
2.3 整数进制
进制 | 前缀 |
---|---|
二进制BIN | 0b |
十进制DEC | |
八进制 | 0 |
十六进制HEX | 0x |
int i=10;//十进制
int i8=010;//八进制0
int i16=0x10;//十六进制0x
输出结果为:10;8;16;
2.4 浮点数精度
float f=0.1f;
double d=1.0/10;
System.out.println(f==d);//false
float d1=23123123123123f;
float d2=d1+1;
System.out.println(d1==d2);//true
tips :
- float类型是有限离散的,存在舍入误差
- 不要完全使用float类型进行数额比较,特别是在对数额精确度要求高的系统,比如银行业务
- 使用BigDecimal数学工具类,更适用于银行业务
2.5 字符编码
char c1='a';
System.out.println((int)c1);//97
char c2='/u0061';
System.out.println(c2);//a
tips:
- 字符a的ascll码是97(DEC),其中DEC:0=48 A=65 a=97
- /u用于转换为unicode表,后跟字符的十六进制编码,其中HEX:0=30 A=41 a=61
2.6 转义字符
转义字符 | 意义 |
---|---|
\t | 制表符,相当于tab键 |
\n | 换行符,相当于Enter键 |
3 类型转换
3.1 数据类型优先级
从低到高:byte\short\char->int->long->float->double
tips:
当转换存在内存溢出时,数值将存在问题
examples:byte在-128~127,当给byte类型变量赋值128时,输出改变量的结果为-128。
3.2 强制转换和自动转换
类型 | 应用 | 方法 |
---|---|---|
强制转换 | 从高到低 | (类型)变量名 |
自动转换 | 从低到高 | 自动 |
tips:
- 不能对布尔类型进行转换
- 转换存在内存溢出或精度丢失的问题。
- JDK7,数字之间可用下划线分割,且不会影响。example:iint i=1_000_000_000;
3.3 内存溢出问题
int money=10_0000_0000;
int years=20;
int total=money*years;
//total输出结果为-1474826480,说明该乘法结果已经溢出
//错误的溢出处理方法
long total2=money*years;//右式默认int类型,已经在右式计算结果上溢出,溢出结果赋值给long类型不能解决溢出
//正确的溢出处理方法
long total3=money*((long)years);//将右式结果默认为long类型
4 变量、作用域、常量
4.1 变量
4.1.1 变量定义
tips:
- java是强类型语言,要求声明变量类型。
- 变量可以为基本类型或引用类型。
- 变量名必须是合法标识符。
- 不建议在一行中定义多个变量,会降低可读性,example: int a,b,c;
type varName [=value];
4.1.2 变量命名
tips:
- 英文含义
- 类成员变量、局部变量、方法名:首字母小写和驼峰原则,比如:stuName;
- 常量:大写字母和下划线,比如:MAX_VALUE;
- 类名:首字母大写和驼峰原则,比如:StuList;
4.2 作用域
4.2.1 类变量
tips:
- 关键词“ static ”
- 从属于类对象,与类同生同消。
4.2.2 实例变量
tips:
- 在方法的外面,在类的里面,从属于类对象
- 不要求一定初始化,未初始化的数值输出该类型的默认值,除基本类型,其余默认值为null
- 需要通过类调用
example:
定义实例变量M_age和M_name,无需初始化实例变量的数值,通过Main类的变量Test_01调用。
4.2.3 局部变量
tips:
- 定义在方法内,只在方法内有用。
- 必须声明和初始化数值。
4.3 常量
tips:
- 初始化后不能改值
- 语法格式
final type VarName=value;
3.常量名一般用大写,比如:PI
4.修饰符不区分先后顺序,比如:public、static、final,即final static double Var与static final double Var一致。
5 运算符
5.1 基本运算符
tips:
- instanceof 是面向对象的运算符
- 除法运算要注意浮点值保存的问题,可以对式子强制转换类型。
- 运算结果,如果参与运算的变量存在long类型(double类型),则式子结果为long(double类型),否则为int
5.2 自增自减运算符
tips:
1、+±-在变量后面,先赋值后+±-;
2、+±-在变量前面,先+±-后赋值;
5.3 幂运算
tips:
- 使用工具类,调用Math类中的pow(底,幂);
- example:
2^3=8;
double pow=Math.pow(2,3);
5.4 逻辑运算符
运算符 | 效果 |
---|---|
与 | 两真为真 |
或 | 两假为假 |
非 | 取反 |
tips:
- 短路运算:当与运算的左式为假,则式子一定为假,右式不再运算;当或运算的左式为真,则式子一定为真,右式不再运算
example1:
a=5,与运算左式为假,则右式中的a++不会执行,a的数值最终还是5
example2:
a=5,或运算左式为真,则右式中的a++不会执行,a的数值最终还是5
5.5 位运算
运算符 | 效果 |
---|---|
与 | 全1为1 |
或 | 有1为1 |
非~ | 取反 |
异或A^B | 相同为0,不同为1 |
左移<< | 乘以2 |
右移>> | 除以2 |
example1:
A=0101; B=1001;
A&&B=0001;
A||B=1101;
~A=1010;
A^B=1100;
example2:
3*8=3*(2^3)=24,可以直接对3做三次(因为8是2^3)左移,在硬件上比执行乘法要来得更快(见汇编)。
5.6 三元运算符
tips:
- a= x?y:z
- 如果x==true,则a=x,否则a=z
example:String type=score<60?"不及格“:”及格“;
5.7 字符串连接符
tips:
- 用 + 连接;
- 只要输出的式子中使用了字符串连接符+,当有String类型在加法运算的前面,则其他类型转换为String类型拼接输出;如果在加法运算的后面,则前面正常执行加法运算。
example:
6 包机制
tips:
- 本质上是文件夹,为了更好的组织类,用于区别类名的命名空间。
- 语法格式:
package pkg1[. pkg2[. pkg3…]];
- 一般利用公司域名倒置作为包名
example:
百度:www.baidu.com
百度百科:www.baike.baidu.com
百度文库:www.wenku.baidu.com
则,在com包下建立baidu包,在baidu包内建立wenku包、baike包和www包。
则,在wenku包中的.java文件最上面会出现以下路径代码:
package com.baidu.wenku;
- ctrl+鼠标右键可以转入对应包
- 导入包的语法代码,必须在包路径代码的下面:
package 包地址;
import 导入内容地址/Java自带;
- 导入自写的包时,要保证当前.java文件中类的命名与导入包的类名不一致。
- 若需要导入某包下所有文件,则使用包名.*
package com.baidu.wenku.*;
7 JavaDoc文档注释
tips:
- javadoc命令是用来生成API文档的
- /**回车,自动生成方法中需要注释的内容
- 参数信息:
参数 | 含义 |
---|---|
@author | 作者名 |
@version | 版本号 |
@since | 指明最早使用的jdk版本 |
@param | 参数名 |
@return | 返回值情况 |
@throws | 异常抛出情况 |
example:
4.命令窗口生成javaDoc:
cmd进入当前包,执行命令
javadoc -encoding UTF-8 -charset UTF-8 文件名.java
- 在idea中生成javaDoc:
在idea中打开工具栏(Tools),选择Generate JavaDoc…
- 生成index.html